public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, int rhsVn) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey rhsKey = getBuilder().getPointerKeyForLocal(opNode, rhsVn); if (contentsAreInvariant(symtab, du, rhsVn)) { system.recordImplicitPointsToSet(rhsKey); newFieldWrite(opNode, objVn, fieldsVn, getInvariantContents(symtab, du, opNode, rhsVn)); } else { newFieldWrite(opNode, objVn, fieldsVn, rhsKey); } }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, int rhsVn) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey rhsKey = getBuilder().getPointerKeyForLocal(opNode, rhsVn); if (contentsAreInvariant(symtab, du, rhsVn)) { system.recordImplicitPointsToSet(rhsKey); newFieldWrite(opNode, objVn, fieldsVn, getInvariantContents(symtab, du, opNode, rhsVn)); } else { newFieldWrite(opNode, objVn, fieldsVn, rhsKey); } }
@Override public void visitPropertyWrite(AstPropertyWrite instruction) { if (AstSSAPropagationCallGraphBuilder.DEBUG_PROPERTIES) { Position instructionPosition = getInstructionPosition(instruction); if (instructionPosition != null) { System.err.println("processing write instruction " + instruction + ", position " + instructionPosition); } } newFieldWrite(node, instruction.getUse(0), instruction.getUse(1), instruction.getUse(2)); }
@Override public void visitPropertyWrite(AstPropertyWrite instruction) { if (AstSSAPropagationCallGraphBuilder.DEBUG_PROPERTIES) { Position instructionPosition = getInstructionPosition(instruction); if (instructionPosition != null) { System.err.println("processing write instruction " + instruction + ", position " + instructionPosition); } } newFieldWrite(node, instruction.getUse(0), instruction.getUse(1), instruction.getUse(2)); }