protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, int lhsVn) { newFieldRead(opNode, objVn, fieldsVn, getBuilder().getPointerKeyForLocal(opNode, lhsVn)); }
protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, int lhsVn) { newFieldRead(opNode, objVn, fieldsVn, getBuilder().getPointerKeyForLocal(opNode, lhsVn)); }
} else { final Set<CGNode> result = HashSetFactory.make(); PointerKey F = getBuilder().getPointerKeyForLocal(opNode, 1);
} else { final Set<CGNode> result = HashSetFactory.make(); PointerKey F = getBuilder().getPointerKeyForLocal(opNode, 1);
SymbolTable st = ir.getSymbolTable(); PointerKey rhs = getBuilder().getPointerKeyForLocal(definingNode, vn);
SymbolTable st = ir.getSymbolTable(); PointerKey rhs = getBuilder().getPointerKeyForLocal(definingNode, vn);
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); } }
protected void newFieldOperationFieldConstant(CGNode opNode, final boolean isLoadOperation, final ReflectedFieldAction action, final int objVn, final InstanceKey[] fieldsKeys) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); if (contentsAreInvariant(symtab, du, objVn)) { system.recordImplicitPointsToSet(objKey); InstanceKey[] objectKeys = getInvariantContents(symtab, du, opNode, objVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objectKeys, fieldsKeys); } else { newFieldOperationOnlyFieldConstant(isLoadOperation, action, objKey, fieldsKeys); } }
PointerKey A = builder.getPointerKeyForLocal(caller, instruction.getUse(i)); builder.getSystem().newConstraint(F, (F instanceof FilteredPointerKey) ? builder.filterOperator : assignOperator, A); targetVisitor.newFieldWrite(target, av, fn, constParams[i]); } else if(i >= num_pseudoargs) { PointerKey A = builder.getPointerKeyForLocal(caller, instruction.getUse(i)); targetVisitor.newFieldWrite(target, av, fn, A); InstanceKey[] nullkeys = builder.getInvariantContents(sourceST, sourceDU, caller, nullvn, builder); for (int i = argCount; i < paramCount; i++) { PointerKey F = builder.getPointerKeyForLocal(target, targetST.getParameter(i)); for (InstanceKey nullkey : nullkeys) { builder.getSystem().newConstraint(F, nullkey); PointerKey RA = builder.getPointerKeyForLocal(caller, instruction.getDef(0)); builder.getSystem().newConstraint(RA, assignOperator, RF); PointerKey EA = builder.getPointerKeyForLocal(caller, instruction.getDef(1)); builder.getSystem().newConstraint(EA, assignOperator, EF);
protected void newFieldOperationFieldConstant(CGNode opNode, final boolean isLoadOperation, final ReflectedFieldAction action, final int objVn, final InstanceKey[] fieldsKeys) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); if (contentsAreInvariant(symtab, du, objVn)) { system.recordImplicitPointsToSet(objKey); InstanceKey[] objectKeys = getInvariantContents(symtab, du, opNode, objVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objectKeys, fieldsKeys); } else { newFieldOperationOnlyFieldConstant(isLoadOperation, action, objKey, fieldsKeys); } }
PointerKey A = builder.getPointerKeyForLocal(caller, instruction.getUse(i)); builder.getSystem().newConstraint(F, (F instanceof FilteredPointerKey) ? builder.filterOperator : assignOperator, A); targetVisitor.newFieldWrite(target, av, fn, constParams[i]); } else if(i >= num_pseudoargs) { PointerKey A = builder.getPointerKeyForLocal(caller, instruction.getUse(i)); targetVisitor.newFieldWrite(target, av, fn, A); InstanceKey[] nullkeys = builder.getInvariantContents(sourceST, sourceDU, caller, nullvn, builder); for (int i = argCount; i < paramCount; i++) { PointerKey F = builder.getPointerKeyForLocal(target, targetST.getParameter(i)); for (InstanceKey nullkey : nullkeys) { builder.getSystem().newConstraint(F, nullkey); PointerKey RA = builder.getPointerKeyForLocal(caller, instruction.getDef(0)); builder.getSystem().newConstraint(RA, assignOperator, RF); PointerKey EA = builder.getPointerKeyForLocal(caller, instruction.getDef(1)); builder.getSystem().newConstraint(EA, assignOperator, EF);
SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); final PointerKey fieldKey = getBuilder().getPointerKeyForLocal(opNode, fieldsVn);
SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); final PointerKey fieldKey = getBuilder().getPointerKeyForLocal(opNode, fieldsVn);