/* * (non-Javadoc) * * @see com.ibm.domo.ssa.SSAInstruction.Visitor#visitReturn(com.ibm.domo.ssa.SSAReturnInstruction) */ @Override public void visitReturn(SSAReturnInstruction instruction) { // skip returns of primitive type if (instruction.returnsPrimitiveType() || instruction.returnsVoid()) { return; } else { // just make a node for the def'd value PointerKey def = heapModel.getPointerKeyForLocal(node, instruction.getResult()); addNode(def); PointerKey returnValue = heapModel.getPointerKeyForReturnValue(node); addNode(returnValue); addEdge(returnValue, def); } // PointerKey returnValue = getPointerKeyForReturnValue(node); // PointerKey result = getPointerKeyForLocal(node, // instruction.getResult()); // // if (!supportFullPointerFlowGraph && // // contentsAreInvariant(instruction.getResult())) { // if (contentsAreInvariant(symbolTable, du, instruction.getResult())) { // system.recordImplicitPointsToSet(result); // InstanceKey[] ik = getInvariantContents(symbolTable, du, node, // instruction.getResult(), SSAPropagationCallGraphBuilder.this); // for (int i = 0; i < ik.length; i++) { // system.newConstraint(returnValue, ik[i]); // } // } else { // system.newConstraint(returnValue, assignOperator, result); // } }