| Package | Description |
|---|---|
| com.ibm.wala.analysis.pointers |
This package defines utilities to help navigate pointer analysis results.
|
| com.ibm.wala.analysis.reflection |
This package provides functions to deal with reflection.
|
| com.ibm.wala.analysis.reflection.java7 | |
| com.ibm.wala.client |
This package provides interfaces for some base utilities for use by WALA clients.
|
| com.ibm.wala.demandpa.alg | |
| com.ibm.wala.demandpa.flowgraph | |
| com.ibm.wala.demandpa.util | |
| com.ibm.wala.escape | |
| com.ibm.wala.ipa.callgraph |
This package provides basic interfaces and functions for call graph
construction.
|
| com.ibm.wala.ipa.callgraph.impl |
This package provides some implementations of basic functions needed for
various call graph construction algorithms.
|
| com.ibm.wala.ipa.callgraph.propagation |
This package provides the base layer for propagation-based call graph
construction and pointer analysis.
|
| com.ibm.wala.ipa.callgraph.propagation.cfa |
This package provides RTA call graph
construction.
|
| com.ibm.wala.ipa.callgraph.propagation.rta |
This package provides CFA-style call graph
construction and pointer analysis.
|
| com.ibm.wala.ipa.modref | |
| com.ibm.wala.ipa.slicer | |
| com.ibm.wala.ipa.slicer.thin | |
| com.ibm.wala.viz.viewer |
| Modifier and Type | Interface and Description |
|---|---|
interface |
HeapGraph<T extends InstanceKey>
A
Graph view of a pointer analysis solution. |
class |
HeapGraphImpl<T extends InstanceKey>
A
Graph view of a pointer analysis solution. |
| Constructor and Description |
|---|
BasicHeapGraph(PointerAnalysis<InstanceKey> P,
CallGraph callGraph) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
InstanceKeyWithNode
An instance key which has an associated
CGNode. |
| Modifier and Type | Method and Description |
|---|---|
Context |
GetMethodContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver)
If
the
CallSiteReference invokes either Class.getMethod(java.lang.String, java.lang.Class<?>...) or Class.getDeclaredMethod(java.lang.String, java.lang.Class<?>...),
and the receiver is a type constant and
the first argument is a constant,
then return a GetMethodContextSelector. |
Context |
GetClassContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
| Modifier and Type | Method and Description |
|---|---|
Context |
MethodHandles.ContextSelectorImpl.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] actualParameters) |
| Modifier and Type | Field and Description |
|---|---|
protected PointerAnalysis<InstanceKey> |
AbstractAnalysisEngine.pointerAnalysis
Results of pointer analysis
|
| Modifier and Type | Method and Description |
|---|---|
PointerAnalysis<InstanceKey> |
AbstractAnalysisEngine.getPointerAnalysis() |
| Modifier and Type | Method and Description |
|---|---|
InstanceKey |
InstanceKeyAndState.getInstanceKey() |
| Modifier and Type | Method and Description |
|---|---|
Collection<InstanceKey> |
SimpleDemandPointsTo.getPointsTo(PointerKey pk) |
Collection<InstanceKey> |
IDemandPointerAnalysis.getPointsTo(PointerKey pk) |
Collection<InstanceKey> |
DemandRefinementPointsTo.getPointsTo(PointerKey pk) |
com.ibm.wala.util.collections.Pair<DemandRefinementPointsTo.PointsToResult,Collection<InstanceKey>> |
DemandRefinementPointsTo.getPointsTo(PointerKey pk,
com.ibm.wala.util.Predicate<InstanceKey> ikeyPred)
compute a points-to set for a pointer key, aiming to satisfy some predicate
|
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.util.collections.Pair<DemandRefinementPointsTo.PointsToResult,Collection<PointerKey>> |
DemandRefinementPointsTo.getFlowsTo(InstanceKey ik)
get all the pointer keys that some instance key can flow to
|
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.util.collections.Pair<DemandRefinementPointsTo.PointsToResult,Collection<InstanceKey>> |
DemandRefinementPointsTo.getPointsTo(PointerKey pk,
com.ibm.wala.util.Predicate<InstanceKey> ikeyPred)
compute a points-to set for a pointer key, aiming to satisfy some predicate
|
DemandRefinementPointsTo.PointsToResult |
DemandRefinementPointsTo.pointsToPassesPred(PointerKey pk,
com.ibm.wala.util.Predicate<InstanceKey> ikeyPred,
PointerAnalysis<InstanceKey> pa)
check if the points-to set of a variable passes some predicate, without necessarily computing the whole points-to set
|
DemandRefinementPointsTo.PointsToResult |
DemandRefinementPointsTo.pointsToPassesPred(PointerKey pk,
com.ibm.wala.util.Predicate<InstanceKey> ikeyPred,
PointerAnalysis<InstanceKey> pa)
check if the points-to set of a variable passes some predicate, without necessarily computing the whole points-to set
|
| Constructor and Description |
|---|
InstanceKeyAndState(InstanceKey ik,
StateMachine.State state) |
| Modifier and Type | Field and Description |
|---|---|
Collection<com.ibm.wala.util.collections.Pair<PointerKey,InstanceKey>> |
DemandPointerFlowGraph.NewMultiDimInfo.newInstrs |
| Constructor and Description |
|---|
DemandPointerFlowGraph.NewMultiDimInfo(Collection<com.ibm.wala.util.collections.Pair<PointerKey,InstanceKey>> newInstrs,
Collection<com.ibm.wala.util.collections.Pair<PointerKey,PointerKey>> arrStoreInstrs) |
| Modifier and Type | Method and Description |
|---|---|
static InstanceKey |
CallGraphMapUtil.mapInstKey(InstanceKey ik,
CallGraph fromCG,
CallGraph toCG,
HeapModel heapModel) |
| Modifier and Type | Method and Description |
|---|---|
static InstanceKey |
CallGraphMapUtil.mapInstKey(InstanceKey ik,
CallGraph fromCG,
CallGraph toCG,
HeapModel heapModel) |
| Constructor and Description |
|---|
PABasedMemoryAccessMap(CallGraph cg,
PointerAnalysis<InstanceKey> pa) |
PABasedMemoryAccessMap(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Map<Statement,Set<PointerKey>> mod,
Map<Statement,Set<PointerKey>> ref) |
PABasedMemoryAccessMap(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
SDG sdg) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
ILiveObjectAnalysis.mayBeLive(InstanceKey ik,
CGNode m,
int instructionIndex) |
boolean |
FILiveObjectAnalysis.mayBeLive(InstanceKey ik,
CGNode m,
int instructionIndex) |
boolean |
ILiveObjectAnalysis.mayBeLive(InstanceKey ik,
CGNode m,
com.ibm.wala.util.intset.IntSet instructionIndices) |
boolean |
FILiveObjectAnalysis.mayBeLive(InstanceKey ik,
CGNode m,
com.ibm.wala.util.intset.IntSet instructionIndices) |
| Modifier and Type | Method and Description |
|---|---|
PointerAnalysis<InstanceKey> |
CallGraphBuilderCancelException.getPartialPointerAnalysis() |
PointerAnalysis<InstanceKey> |
CallGraphBuilder.getPointerAnalysis() |
| Modifier and Type | Method and Description |
|---|---|
Context |
ContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] actualParameters)
Given a calling node and a call site, returns the Context in which the callee should be evaluated.
|
| Modifier and Type | Method and Description |
|---|---|
static CallGraphBuilderCancelException |
CallGraphBuilderCancelException.createCallGraphBuilderCancelException(Exception cause,
CallGraph cg,
PointerAnalysis<InstanceKey> pointerAnalysis) |
static CallGraphBuilderCancelException |
CallGraphBuilderCancelException.createCallGraphBuilderCancelException(String msg,
CallGraph cg,
PointerAnalysis<InstanceKey> pointerAnalysis) |
| Modifier and Type | Method and Description |
|---|---|
Context |
UnionContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver)
If only one Context exists return it, else return a DelegatingContext.
|
Context |
DelegatingContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
DefaultContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
ContextInsensitiveSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
PointerAnalysis<T extends InstanceKey>
Abstract definition of pointer analysis
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractTypeInNode
|
class |
AllocationSite
|
class |
AllocationSiteInNode
|
class |
ConcreteTypeKey
An instance key which represents a unique set for each concrete type.
|
class |
ConstantKey<T>
An instance key which represents a unique, constant object.
|
class |
MultiNewArrayInNode
An
InstanceKey which represents a multinewarray allocation site in a CGNode. |
class |
NormalAllocationInNode
|
class |
SmushedAllocationSiteInNode
An
InstanceKey which represents the set of all allocation sites
of a given type in a CGNode. |
class |
StringConstantCharArray
An
InstanceKey which represents the constant char[] contents
of a string constant object. |
class |
ZeroLengthArrayInNode
Represents an array with length zero.
|
| Modifier and Type | Field and Description |
|---|---|
protected InstanceKey |
AbstractFieldPointerKey.instance |
| Modifier and Type | Field and Description |
|---|---|
protected com.ibm.wala.util.intset.MutableMapping<InstanceKey> |
PropagationSystem.instanceKeys
bijection from InstanceKey <=>Integer
|
static com.ibm.wala.util.intset.MutableMapping<InstanceKey> |
PointsToSetVariable.instanceKeys
used only for paranoid checking.
|
protected com.ibm.wala.util.intset.MutableMapping<InstanceKey> |
AbstractPointerAnalysis.instanceKeys
bijection from InstanceKey <=>Integer
|
protected com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
PointerAnalysisImpl.ImplicitPointsToSetVisitor.pointsToSet |
| Modifier and Type | Method and Description |
|---|---|
InstanceKey[][] |
SSAPropagationCallGraphBuilder.ConstraintVisitor.InvariantComputer.computeInvariantParameters(SSAAbstractInvokeInstruction call) |
InstanceKey[][] |
SSAPropagationCallGraphBuilder.ConstraintVisitor.DefaultInvariantComputer.computeInvariantParameters(SSAAbstractInvokeInstruction call)
Side effect: records invariant parameters as implicit points-to-sets.
|
InstanceKey |
FilteredPointerKey.SingleInstanceFilter.getInstance() |
InstanceKey |
InstanceFieldPointerKey.getInstanceKey() |
InstanceKey |
AbstractFieldPointerKey.getInstanceKey() |
InstanceKey |
PropagationSystem.getInstanceKey(int i) |
InstanceKey |
SmushedAllocationSiteInstanceKeys.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
PropagationCallGraphBuilder.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
PointerAnalysisImpl.HModel.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
InstanceKeyFactory.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
ClassBasedInstanceKeys.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
AllocationSiteInNodeFactory.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInstanceKeyForAllocation(NewSiteReference allocation) |
InstanceKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInstanceKeyForClassObject(Object obj,
TypeReference type) |
<T> InstanceKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInstanceKeyForConstant(T S) |
<T> InstanceKey |
SmushedAllocationSiteInstanceKeys.getInstanceKeyForConstant(TypeReference type,
T S) |
<T> InstanceKey |
PropagationCallGraphBuilder.getInstanceKeyForConstant(TypeReference type,
T S) |
<T> InstanceKey |
PointerAnalysisImpl.HModel.getInstanceKeyForConstant(TypeReference type,
T S) |
<T> InstanceKey |
InstanceKeyFactory.getInstanceKeyForConstant(TypeReference type,
T S) |
<T> InstanceKey |
ClassBasedInstanceKeys.getInstanceKeyForConstant(TypeReference type,
T S) |
<T> InstanceKey |
AllocationSiteInNodeFactory.getInstanceKeyForConstant(TypeReference type,
T S) |
InstanceKey |
SmushedAllocationSiteInstanceKeys.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
PropagationCallGraphBuilder.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
PointerAnalysisImpl.HModel.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
InstanceKeyFactory.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
ClassBasedInstanceKeys.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
AllocationSiteInNodeFactory.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
SmushedAllocationSiteInstanceKeys.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
PropagationCallGraphBuilder.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
PointerAnalysisImpl.HModel.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
InstanceKeyFactory.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
ClassBasedInstanceKeys.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
AllocationSiteInNodeFactory.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInstanceKeyForMultiNewArray(NewSiteReference allocation,
int dim) |
InstanceKey |
SSAPropagationCallGraphBuilder.getInstanceKeyForPEI(CGNode node,
ProgramCounter instr,
TypeReference type) |
InstanceKey |
SmushedAllocationSiteInstanceKeys.getInstanceKeyForPEI(CGNode node,
ProgramCounter pei,
TypeReference type) |
InstanceKey |
PointerAnalysisImpl.HModel.getInstanceKeyForPEI(CGNode node,
ProgramCounter peiLoc,
TypeReference type) |
InstanceKey |
InstanceKeyFactory.getInstanceKeyForPEI(CGNode node,
ProgramCounter instr,
TypeReference type) |
InstanceKey |
ClassBasedInstanceKeys.getInstanceKeyForPEI(CGNode node,
ProgramCounter peiLoc,
TypeReference type) |
InstanceKey |
AllocationSiteInNodeFactory.getInstanceKeyForPEI(CGNode node,
ProgramCounter pei,
TypeReference type) |
static InstanceKey |
SSAPropagationCallGraphBuilder.getInstanceKeyForPEI(CGNode node,
ProgramCounter x,
TypeReference type,
InstanceKeyFactory ikFactory) |
InstanceKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInstanceKeyForPEI(ProgramCounter instr,
TypeReference type) |
static InstanceKey[] |
ConcreteTypeKey.getInstanceKeysForPEI(SSAInstruction pei,
IR ir,
IClassHierarchy cha) |
protected InstanceKey[] |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInvariantContents(int valueNumber) |
protected InstanceKey[] |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber) |
InstanceKey[] |
SSAPropagationCallGraphBuilder.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber,
HeapModel hm)
precondition:contentsAreInvariant(valueNumber)
|
protected InstanceKey[] |
SSAPropagationCallGraphBuilder.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber,
HeapModel hm,
boolean ensureIndexes) |
InstanceKey |
ReceiverInstanceContext.getReceiver() |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
PointerAnalysisImpl.computeImplicitPointsToSetAtGet(CGNode node,
FieldReference field,
int refVn,
boolean isStatic) |
PointerAnalysis<InstanceKey> |
PropagationSystem.extractPointerAnalysis(PropagationCallGraphBuilder builder) |
com.ibm.wala.util.intset.OrdinalSetMapping<InstanceKey> |
AbstractPointerAnalysis.getInstanceKeyMapping() |
Collection<InstanceKey> |
AbstractPointerAnalysis.getInstanceKeys() |
PointerAnalysis<InstanceKey> |
PropagationCallGraphBuilder.getPointerAnalysis() |
com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
PointerAnalysisImpl.getPointsToSet(PointerKey key) |
PointerAnalysis<InstanceKey> |
PropagationSystem.makePointerAnalysis(PropagationCallGraphBuilder builder) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
PropagationCallGraphBuilder.assignInstanceToCatch(PointerKey exceptionVar,
Set<IClass> catchClasses,
InstanceKey e)
Handle assign of a particular exception instance into an exception variable
|
protected int |
PointerKeyComparator.compareInstanceKeys(InstanceKey k1,
InstanceKey k2) |
int |
PropagationSystem.findOrCreateIndexForInstanceKey(InstanceKey key) |
Context |
TargetMethodContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] R) |
Context |
ReceiverTypeContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
CloneContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
FilteredPointerKey |
PropagationCallGraphBuilder.getFilteredPointerKeyForLocal(CGNode node,
int valueNumber,
InstanceKey filter) |
int |
PropagationSystem.getInstanceIndex(InstanceKey ik) |
PointerKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForArrayContents(InstanceKey I)
TODO: expand this API to differentiate between different array indices
|
PointerKey |
PointerKeyFactory.getPointerKeyForArrayContents(InstanceKey I)
TODO: expand this API to differentiate between different array indices
|
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getPointerKeyForInstanceField(InstanceKey I,
IField f) |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
PointerKey |
PointerKeyFactory.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
CGNode |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getTargetForCall(CGNode caller,
CallSiteReference site,
IClass recv,
InstanceKey[] iKey) |
protected CGNode |
PropagationCallGraphBuilder.getTargetForCall(CGNode caller,
CallSiteReference site,
IClass recv,
InstanceKey[] iKey) |
protected Set<CGNode> |
SSAPropagationCallGraphBuilder.getTargetsForCall(CGNode caller,
SSAAbstractInvokeInstruction instruction,
InstanceKey[][] invs) |
protected void |
SSAPropagationCallGraphBuilder.iterateCrossProduct(CGNode caller,
SSAAbstractInvokeInstruction call,
com.ibm.wala.util.intset.IntSet parameters,
InstanceKey[][] invariants,
com.ibm.wala.util.functions.VoidFunction<InstanceKey[]> f) |
boolean |
PropagationSystem.newConstraint(PointerKey lhs,
InstanceKey value) |
protected void |
SSAPropagationCallGraphBuilder.processCallingConstraints(CGNode caller,
SSAAbstractInvokeInstruction instruction,
CGNode target,
InstanceKey[][] constParams,
PointerKey uniqueCatchKey) |
static boolean |
PropagationCallGraphBuilder.representsNullType(InstanceKey key) |
| Constructor and Description |
|---|
AbstractFieldPointerKey(InstanceKey container) |
ArrayContentsKey(InstanceKey instance) |
FilteredPointerKey.SingleInstanceFilter(InstanceKey concreteType) |
InstanceFieldKey(InstanceKey instance,
IField field) |
InstanceFieldKeyWithFilter(IClassHierarchy cha,
InstanceKey instance,
IField field) |
PropagationCallGraphBuilder.InstanceArrayStoreOperator(InstanceKey instance) |
PropagationCallGraphBuilder.InstancePutFieldOperator(IField field,
InstanceKey instance) |
ReceiverInstanceContext(InstanceKey I) |
SelectiveCPAContext(Context base,
InstanceKey[] x) |
| Constructor and Description |
|---|
AbstractPointerAnalysis(CallGraph cg,
com.ibm.wala.util.intset.MutableMapping<InstanceKey> instanceKeys) |
PointerAnalysisImpl(PropagationCallGraphBuilder builder,
CallGraph cg,
PointsToMap pointsToMap,
com.ibm.wala.util.intset.MutableMapping<InstanceKey> instanceKeys,
PointerKeyFactory pointerKeys,
InstanceKeyFactory iKeyFactory) |
SelectiveCPAContext(Context base,
Map<ContextKey,InstanceKey> parameterObjs) |
| Modifier and Type | Method and Description |
|---|---|
InstanceKey |
ZeroXInstanceKeys.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
<T> InstanceKey |
ZeroXInstanceKeys.getInstanceKeyForConstant(TypeReference type,
T S) |
InstanceKey |
ZeroXInstanceKeys.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
ZeroXInstanceKeys.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
ZeroXInstanceKeys.getInstanceKeyForPEI(CGNode node,
ProgramCounter pei,
TypeReference type) |
| Modifier and Type | Method and Description |
|---|---|
static Context |
ContainerContextSelector.findRecursiveMatchingContext(IMethod M,
Context C,
InstanceKey receiver)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C a) includes the method M.
|
Context |
OneLevelSiteContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
ContainerContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] keys) |
Context |
CallStringContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
boolean |
ContainerContextSelector.mayUnderstand(CGNode caller,
CallSiteReference site,
IMethod targetMethod,
InstanceKey receiver) |
| Modifier and Type | Method and Description |
|---|---|
InstanceKey |
TypeBasedHeapModel.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
InstanceKey |
TypeBasedHeapModel.getInstanceKeyForConstant(TypeReference type,
Object S) |
InstanceKey |
TypeBasedHeapModel.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
TypeBasedHeapModel.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
TypeBasedHeapModel.getInstanceKeyForPEI(CGNode node,
ProgramCounter instr,
TypeReference type) |
| Modifier and Type | Method and Description |
|---|---|
PointerAnalysis<InstanceKey> |
AbstractRTABuilder.getPointerAnalysis() |
com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
TypeBasedPointerAnalysis.getPointsToSet(PointerKey key) |
| Modifier and Type | Method and Description |
|---|---|
PointerKey |
TypeBasedHeapModel.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
String |
TypeBasedHeapModel.getStringConstantForInstanceKey(InstanceKey I) |
protected void |
BasicRTABuilder.updateSetsForNewClass(IClass klass,
InstanceKey iKey,
CGNode node,
NewSiteReference n)
Perform needed bookkeeping when a new class is discovered.
|
protected abstract void |
AbstractRTABuilder.updateSetsForNewClass(IClass klass,
InstanceKey iKey,
CGNode node,
NewSiteReference ns)
Perform needed bookkeeping when a new class is discovered.
|
| Modifier and Type | Field and Description |
|---|---|
protected PointerAnalysis<InstanceKey> |
ModRef.RefVisitor.pa |
protected PointerAnalysis<InstanceKey> |
ModRef.ModVisitor.pa |
| Modifier and Type | Method and Description |
|---|---|
InstanceKey |
DelegatingExtendedHeapModel.getInstanceKeyForAllocation(CGNode node,
NewSiteReference allocation) |
<T> InstanceKey |
DelegatingExtendedHeapModel.getInstanceKeyForConstant(TypeReference type,
T S) |
InstanceKey |
DelegatingExtendedHeapModel.getInstanceKeyForMetadataObject(Object obj,
TypeReference objType) |
InstanceKey |
DelegatingExtendedHeapModel.getInstanceKeyForMultiNewArray(CGNode node,
NewSiteReference allocation,
int dim) |
InstanceKey |
DelegatingExtendedHeapModel.getInstanceKeyForPEI(CGNode node,
ProgramCounter instr,
TypeReference type) |
| Modifier and Type | Method and Description |
|---|---|
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
ExtendedHeapModel.getPointerKeyForArrayLength(InstanceKey I) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForArrayLength(InstanceKey I) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
| Modifier and Type | Method and Description |
|---|---|
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> |
ModRef.computeMod(CallGraph cg,
PointerAnalysis<InstanceKey> pa)
For each call graph node, what heap locations (as determined by a heap model) may it write, including its callees transitively
|
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> |
ModRef.computeMod(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
HeapExclusions heapExclude)
For each call graph node, what heap locations (as determined by a heap model) may it write, including its callees transitively
|
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> |
ModRef.computeRef(CallGraph cg,
PointerAnalysis<InstanceKey> pa)
For each call graph node, what heap locations (as determined by a heap model) may it read, including its callees transitively
|
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> |
ModRef.computeRef(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
HeapExclusions heapExclude)
For each call graph node, what heap locations (as determined by a heap model) may it read, including its callees transitively
|
Set<PointerKey> |
ModRef.getMod(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl)
Compute the set of
PointerKeys that represent pointers that instruction s may write to. |
Set<PointerKey> |
ModRef.getMod(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl,
boolean ignoreAllocHeapDefs)
Compute the set of
PointerKeys that represent pointers that instruction s may write to. |
Set<PointerKey> |
ModRef.getRef(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl)
Compute the set of
PointerKeys that represent pointers that instruction s may read. |
ExtendedHeapModel |
ModRef.makeHeapModel(PointerAnalysis<InstanceKey> pa) |
protected ModRef.ModVisitor |
ModRef.makeModVisitor(CGNode n,
Collection<PointerKey> result,
PointerAnalysis<InstanceKey> pa,
ExtendedHeapModel h) |
protected ModRef.ModVisitor |
ModRef.makeModVisitor(CGNode n,
Collection<PointerKey> result,
PointerAnalysis<InstanceKey> pa,
ExtendedHeapModel h,
boolean ignoreAllocHeapDefs) |
protected ModRef.RefVisitor |
ModRef.makeRefVisitor(CGNode n,
Collection<PointerKey> result,
PointerAnalysis<InstanceKey> pa,
ExtendedHeapModel h) |
| Constructor and Description |
|---|
ArrayLengthKey(InstanceKey i) |
| Constructor and Description |
|---|
ModRef.ModVisitor(CGNode n,
Collection<PointerKey> result,
H h,
PointerAnalysis<InstanceKey> pa,
boolean ignoreAllocHeapDefs) |
ModRef.RefVisitor(CGNode n,
Collection<PointerKey> result,
PointerAnalysis<InstanceKey> pa,
H h) |
| Modifier and Type | Method and Description |
|---|---|
PointerAnalysis<InstanceKey> |
SDG.getPointerAnalysis() |
| Modifier and Type | Method and Description |
|---|---|
static Map<Statement,Set<PointerKey>> |
CISlicer.scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa)
Compute the set of pointer keys each statement mods
|
static Map<Statement,Set<PointerKey>> |
CISlicer.scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa,
boolean ignoreAllocHeapDefs,
ModRef modRef)
Compute the set of pointer keys each statement mods.
|
static Map<Statement,Set<PointerKey>> |
CISlicer.scanForMod(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef)
Compute the set of pointer keys each statement mods
|
static Map<Statement,Set<PointerKey>> |
CISlicer.scanForRef(SDG sdg,
PointerAnalysis<InstanceKey> pa)
Compute the set of pointer keys each statement refs
|
static Map<Statement,Set<PointerKey>> |
CISlicer.scanForRef(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef)
Compute the set of PointerKeys each statement refs.Be careful to avoid eager PDG construction here! That means ..
|
| Constructor and Description |
|---|
CISlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
CISlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
CISlicer(SDG sdg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef) |
ThinSlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa) |
ThinSlicer(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
ModRef modRef) |
| Modifier and Type | Field and Description |
|---|---|
protected PointerAnalysis<InstanceKey> |
PaPanel.pa |
| Modifier and Type | Method and Description |
|---|---|
protected List<? extends PointerKey> |
PaPanel.getPointerKeysUnderInstanceKey(InstanceKey ik)
Get the set of pointer keys that should be presented below an instance key in the heap tree.
|
| Modifier and Type | Method and Description |
|---|---|
protected PaPanel |
WalaViewer.createPaPanel(CallGraph cg,
PointerAnalysis<InstanceKey> pa) |
| Constructor and Description |
|---|
PaPanel(CallGraph cg,
PointerAnalysis<InstanceKey> pa) |
WalaViewer(CallGraph cg,
PointerAnalysis<InstanceKey> pa) |
Copyright © 2015. All rights reserved.