com.ibm.wala.cast.ipa.callgraph
Class AstSSAPropagationCallGraphBuilder
java.lang.Object
com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
- All Implemented Interfaces:
- CallGraphBuilder, HeapModel, InstanceKeyFactory, PointerKeyFactory
- Direct Known Subclasses:
- AstJavaSSAPropagationCallGraphBuilder, CrossLanguageSSAPropagationCallGraphBuilder, JSSSAPropagationCallGraphBuilder
public abstract class AstSSAPropagationCallGraphBuilder
- extends SSAPropagationCallGraphBuilder
| Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder |
assignOperator, callGraph, cha, contextSelector, DEBUG_GENERAL, entrypointCallSites, filterOperator, instanceKeyFactory, inverseFilterOperator, options, pointerKeyFactory, system |
| Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder |
addBlockInstructionConstraints, addConstraintsFromNode, addNodeInstructionConstraints, addNodePassthruExceptionConstraints, contentsAreInvariant, contentsAreInvariant, getCaughtExceptionTypes, getCFAContextInterpreter, getIncomingPEIs, getInstanceKeyForPEI, getInstanceKeyForPEI, getInvariantContents, getInvariantContents, getTargetPointerKey, getTargetsForCall, getUniqueCatchKey, hasUniqueCatchBlock, isConstantRef, iterateCrossProduct, iteratePointerKeys, makeSolver, makeVisitor, processCallingConstraints, unconditionallyAddConstraintsFromNode |
| Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder |
addAssignmentsForCatchPointerKey, addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, customInit, filterForClass, getAnalysisCache, getCallGraph, getClassHierarchy, getContextInterpreter, getContextSelector, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerAnalysis, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, makeSystem, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, wasChanged |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEBUG_TYPE_INFERENCE
public static final boolean DEBUG_TYPE_INFERENCE
- See Also:
- Constant Field Values
DEBUG_PROPERTIES
public static final boolean DEBUG_PROPERTIES
- See Also:
- Constant Field Values
AstSSAPropagationCallGraphBuilder
protected AstSSAPropagationCallGraphBuilder(IClassHierarchy cha,
AnalysisOptions options,
AnalysisCache cache,
PointerKeyFactory pointerKeyFactory)
useObjectCatalog
protected abstract boolean useObjectCatalog()
- should we maintain an object catalog for each instance key, storing the
names of all known properties of the instance key? required to handle
EachElementGetInstructions.
- See Also:
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.visitPut(SSAPutInstruction),
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.visitEachElementGet(EachElementGetInstruction)
isUncataloguedField
protected boolean isUncataloguedField(IClass type,
java.lang.String fieldName)
- each language can specify whether a particular field name should be stored
in object catalogs or not. By default, always return false.
makeDefaultContextInterpreters
public SSAContextInterpreter makeDefaultContextInterpreters(SSAContextInterpreter appContextInterpreter,
AnalysisOptions options,
IClassHierarchy cha)
createEmptyCallGraph
protected ExplicitCallGraph createEmptyCallGraph(IClassHierarchy cha,
AnalysisOptions options)
- Overrides:
createEmptyCallGraph in class PropagationCallGraphBuilder
makeInterestingVisitor
protected SSAPropagationCallGraphBuilder.InterestingVisitor makeInterestingVisitor(CGNode node,
int vn)
- Overrides:
makeInterestingVisitor in class SSAPropagationCallGraphBuilder
hasNoInterestingUses
public boolean hasNoInterestingUses(CGNode node,
int vn,
DefUse du)
- Overrides:
hasNoInterestingUses in class SSAPropagationCallGraphBuilder
makeVisitor
protected SSAPropagationCallGraphBuilder.ConstraintVisitor makeVisitor(ExplicitCallGraph.ExplicitNode node)