public abstract class AstSSAPropagationCallGraphBuilder
extends com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor |
static class |
AstSSAPropagationCallGraphBuilder.AstInterestingVisitor |
static class |
AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl |
com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.ConstraintVisitor, com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitorcom.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.ArrayLoadOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.ArrayStoreOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.FilterOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.GetFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InstanceArrayStoreOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InstancePutFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InverseFilterOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.MutableBoolean, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.PutFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.TypedPointerKey| Modifier and Type | Field and Description |
|---|---|
static boolean |
DEBUG_PROPERTIES |
static boolean |
DEBUG_TYPE_INFERENCE |
| Modifier | Constructor and Description |
|---|---|
protected |
AstSSAPropagationCallGraphBuilder(com.ibm.wala.classLoader.IMethod fakeRootClass,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory pointerKeyFactory) |
| Modifier and Type | Method and Description |
|---|---|
protected com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph |
createEmptyCallGraph(com.ibm.wala.classLoader.IMethod fakeRootClass,
com.ibm.wala.ipa.callgraph.AnalysisOptions options) |
protected abstract com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey |
fieldKeyForUnknownWrites(com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKey)
If the given fieldKey represents a concrete field, return the corresponding field key that
represents all writes to unknown fields that could potentially alias fieldKey
|
abstract GlobalObjectKey |
getGlobalObject(com.ibm.wala.util.strings.Atom language) |
boolean |
hasNoInterestingUses(com.ibm.wala.ipa.callgraph.CGNode node,
int vn,
com.ibm.wala.ssa.DefUse du) |
protected boolean |
isUncataloguedField(com.ibm.wala.classLoader.IClass type,
java.lang.String fieldName)
each language can specify whether a particular field name should be stored in object catalogs
or not.
|
com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter |
makeDefaultContextInterpreters(com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter appContextInterpreter,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.cha.IClassHierarchy cha) |
protected com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitor |
makeInterestingVisitor(com.ibm.wala.ipa.callgraph.CGNode node,
int vn) |
protected com.ibm.wala.ipa.callgraph.propagation.PropagationSystem |
makeSystem(com.ibm.wala.ipa.callgraph.AnalysisOptions options) |
com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.ConstraintVisitor |
makeVisitor(com.ibm.wala.ipa.callgraph.CGNode node) |
protected abstract boolean |
sameMethod(com.ibm.wala.ipa.callgraph.CGNode opNode,
java.lang.String definingMethod)
Is definingMethod the same as the method represented by opNode? We need this since the names
for methods in some languages don't map in the straightforward way to the CGNode
|
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. |
addBlockInstructionConstraints, addConstraintsFromNode, addNodeInstructionConstraints, addNodePassthruExceptionConstraints, addNodeValueConstraints, contentsAreInvariant, contentsAreInvariant, getCaughtExceptionTypes, getCFAContextInterpreter, getIncomingPEIs, getInstanceKeyForPEI, getInstanceKeyForPEI, getInvariantContents, getInvariantContents, getTargetPointerKey, getTargetsForCall, getUniqueCatchKey, hasUniqueCatchBlock, isConstantRef, iterateCrossProduct, iteratePointerKeys, makeSolver, processCallingConstraints, unconditionallyAddConstraintsFromNodeaddAssignmentsForCatchPointerKey, addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, customInit, filterForClass, getAnalysisCache, getCallGraph, getClassHierarchy, getContextInterpreter, getContextSelector, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForConstant, getInstanceKeyForMetadataObject, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerAnalysis, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getSystem, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, setPointerKeyFactory, wasChangedclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetInstanceKeyForAllocation, getInstanceKeyForConstant, getInstanceKeyForMetadataObject, getInstanceKeyForMultiNewArraygetFilteredPointerKeyForLocal, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticFieldpublic static final boolean DEBUG_TYPE_INFERENCE
public static final boolean DEBUG_PROPERTIES
protected AstSSAPropagationCallGraphBuilder(com.ibm.wala.classLoader.IMethod fakeRootClass,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory pointerKeyFactory)
protected abstract boolean useObjectCatalog()
EachElementGetInstructions.protected boolean isUncataloguedField(com.ibm.wala.classLoader.IClass type,
java.lang.String fieldName)
public abstract GlobalObjectKey getGlobalObject(com.ibm.wala.util.strings.Atom language)
public com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter makeDefaultContextInterpreters(com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter appContextInterpreter,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.cha.IClassHierarchy cha)
protected com.ibm.wala.ipa.callgraph.propagation.PropagationSystem makeSystem(com.ibm.wala.ipa.callgraph.AnalysisOptions options)
makeSystem in class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilderprotected com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph createEmptyCallGraph(com.ibm.wala.classLoader.IMethod fakeRootClass,
com.ibm.wala.ipa.callgraph.AnalysisOptions options)
createEmptyCallGraph in class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilderprotected com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitor makeInterestingVisitor(com.ibm.wala.ipa.callgraph.CGNode node,
int vn)
makeInterestingVisitor in class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilderpublic boolean hasNoInterestingUses(com.ibm.wala.ipa.callgraph.CGNode node,
int vn,
com.ibm.wala.ssa.DefUse du)
hasNoInterestingUses in class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilderpublic com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.ConstraintVisitor makeVisitor(com.ibm.wala.ipa.callgraph.CGNode node)
makeVisitor in class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilderprotected abstract com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKeyForUnknownWrites(com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKey)
protected abstract boolean sameMethod(com.ibm.wala.ipa.callgraph.CGNode opNode,
java.lang.String definingMethod)