| Package | Description |
|---|---|
| com.ibm.wala.demandpa.alg | |
| com.ibm.wala.demandpa.alg.refinepolicy | |
| com.ibm.wala.demandpa.flowgraph | |
| com.ibm.wala.demandpa.util | |
| 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 | Method and Description |
|---|---|
PointerKey |
PointerKeyAndState.getPointerKey() |
| 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
|
com.ibm.wala.util.collections.Pair<DemandRefinementPointsTo.PointsToResult,Collection<PointerKey>> |
DemandRefinementPointsTo.getFlowsTo(InstanceKeyAndState ikAndState)
get all the pointer keys that some instance key with state can flow to
|
| 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
|
Collection<InstanceKeyAndState> |
DemandRefinementPointsTo.getPointsToWithStates(PointerKey pk) |
protected void |
DemandRefinementPointsTo.PointsToComputer.handleBackCopy(PointerKeyAndState curPkAndState,
PointerKey predPk,
IFlowLabel label) |
protected Collection<PointerKeyAndState> |
DemandRefinementPointsTo.PointsToComputer.matchingPToQueried(PointerKeyAndState curPkAndState,
PointerKey predPk,
IFlowLabel label) |
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 |
|---|
DemandRefinementPointsTo.PointsToComputer(PointerKey pk) |
PointerKeyAndState(PointerKey pk,
StateMachine.State state) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
TunedFieldRefinementPolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
boolean |
OnlyArraysPolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
boolean |
NeverRefineFieldsPolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
boolean |
ManualFieldPolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
boolean |
FieldRefinePolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
boolean |
DelegatingFieldRefinePolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state)
returns
true if
A.shouldRefine(field) || B.shouldRefine(field). |
boolean |
AlwaysRefineFieldsPolicy.shouldRefine(IField field,
PointerKey basePtr,
PointerKey val,
IFlowLabel label,
StateMachine.State state) |
| Modifier and Type | Field and Description |
|---|---|
Collection<com.ibm.wala.util.collections.Pair<PointerKey,PointerKey>> |
DemandPointerFlowGraph.NewMultiDimInfo.arrStoreInstrs |
Collection<com.ibm.wala.util.collections.Pair<PointerKey,PointerKey>> |
DemandPointerFlowGraph.NewMultiDimInfo.arrStoreInstrs |
protected Map<PointerKey,SSAAbstractInvokeInstruction> |
AbstractFlowGraph.callDefs
Map: LocalPointerKey -> SSAInvokeInstruction.
|
protected Map<PointerKey,Set<SSAAbstractInvokeInstruction>> |
AbstractFlowGraph.callParams
Map:
LocalPointerKey -> Set<SSAInvokeInstruction>. |
Collection<com.ibm.wala.util.collections.Pair<PointerKey,InstanceKey>> |
DemandPointerFlowGraph.NewMultiDimInfo.newInstrs |
protected Map<PointerKey,CGNode> |
AbstractFlowGraph.params
Map: LocalPointerKey -> CGNode.
|
protected Map<PointerKey,CGNode> |
AbstractFlowGraph.returns
Map:
LocalPointerKey -> CGNode. |
| Modifier and Type | Method and Description |
|---|---|
static PointerKey |
AbstractFlowGraph.convertPointerKeyToHeapModel(PointerKey pk,
HeapModel h)
convert a pointer key to one in the memory access map's heap model
TODO move this somewhere more appropriate
|
PointerKey |
PointerKeyAndCallSite.getKey() |
| Modifier and Type | Method and Description |
|---|---|
protected Iterator<PointerKey> |
AbstractFlowGraph.getArrayReads(PointerKey arrayRef) |
Iterator<PointerKey> |
IFlowGraph.getReadsOfInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
AbstractFlowGraph.getReadsOfInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
IFlowGraph.getWritesToInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
AbstractFlowGraph.getWritesToInstanceField(PointerKey pk,
IField f) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
DemandPointerFlowGraph.StatementVisitor.addExceptionDefConstraints(IR ir,
CGNode node,
List<ProgramCounter> peis,
PointerKey exceptionVar,
Set<IClass> catchClasses)
Generate constraints which assign exception values into an exception pointer
|
protected void |
AbstractFlowGraph.addExceptionDefConstraints(IR ir,
CGNode node,
List<ProgramCounter> peis,
PointerKey exceptionVar,
Set<IClass> catchClasses)
Generate constraints which assign exception values into an exception pointer
|
static PointerKey |
AbstractFlowGraph.convertPointerKeyToHeapModel(PointerKey pk,
HeapModel h)
convert a pointer key to one in the memory access map's heap model
TODO move this somewhere more appropriate
|
protected Iterator<PointerKey> |
AbstractFlowGraph.getArrayReads(PointerKey arrayRef) |
Set<CallerSiteContext> |
IFlowGraph.getPotentialCallers(PointerKey formalPk) |
Set<CallerSiteContext> |
AbstractDemandFlowGraph.getPotentialCallers(PointerKey formalPk) |
Iterator<PointerKey> |
IFlowGraph.getReadsOfInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
AbstractFlowGraph.getReadsOfInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
IFlowGraph.getWritesToInstanceField(PointerKey pk,
IField f) |
Iterator<PointerKey> |
AbstractFlowGraph.getWritesToInstanceField(PointerKey pk,
IField f) |
boolean |
SimpleDemandPointerFlowGraph.hasEdge(PointerKey src,
PointerKey dst) |
| Constructor and Description |
|---|
PointerKeyAndCallSite(PointerKey key,
CallSiteReference callSiteRef) |
| 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) |
DemandPointerFlowGraph.NewMultiDimInfo(Collection<com.ibm.wala.util.collections.Pair<PointerKey,InstanceKey>> newInstrs,
Collection<com.ibm.wala.util.collections.Pair<PointerKey,PointerKey>> arrStoreInstrs) |
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 PointerKey |
CallGraphMapUtil.mapPointerKey(PointerKey pk,
CallGraph fromCG,
CallGraph toCG,
HeapModel heapModel) |
| Constructor and Description |
|---|
PABasedMemoryAccessMap(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Map<Statement,Set<PointerKey>> mod,
Map<Statement,Set<PointerKey>> ref) |
PABasedMemoryAccessMap(CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Map<Statement,Set<PointerKey>> mod,
Map<Statement,Set<PointerKey>> ref) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
FilteredPointerKey
A
PointerKey which carries a type filter, used during pointer analysis |
interface |
InstanceFieldPointerKey |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractFieldPointerKey
Common implementation for
InstanceFieldPointerKey implementations. |
class |
AbstractLocalPointerKey
A
PointerKey representing a local variable must carry at least a CGNode. |
class |
AbstractPointerKey
This class exists to force
PointerKey implementations to implement equals() and hashCode()s. |
class |
ArrayContentsKey
A
PointerKey which represents the contents of an array instance. |
class |
InstanceFieldKey
An pointer key which represents a unique set for a field associated with a set of instances.
|
class |
InstanceFieldKeyWithFilter
an instance field pointer key key that carries a type filter
|
class |
LocalPointerKey
A pointer key which provides a unique set for each local in each call graph node.
|
class |
LocalPointerKeyWithFilter
a local pointer key that carries a type filter
|
class |
NodeKey
A key which represents a set corresponding to a call graph node.
|
static class |
PropagationCallGraphBuilder.TypedPointerKey
A pointer key that delegates to an untyped variant, but adds a type filter
|
class |
ReturnValueKey
A key which represents the return value for a node.
|
class |
ReturnValueKeyWithFilter
a helper class which can modify a PropagationCallGraphBuilder to deal with
reflective factory methods.
|
class |
StaticFieldKey
An pointer key which represents a unique set for each static field.
|
| Modifier and Type | Method and Description |
|---|---|
PointerKey |
PropagationCallGraphBuilder.TypedPointerKey.getBase() |
PointerKey |
PointsToSetVariable.getPointerKey() |
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.getPointerKeyForExceptionalReturnValue() |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForExceptionalReturnValue(CGNode node) |
PointerKey |
PointerKeyFactory.getPointerKeyForExceptionalReturnValue(CGNode node) |
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForExceptionalReturnValue(CGNode node) |
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) |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForLocal(CGNode node,
int valueNumber) |
PointerKey |
PointerKeyFactory.getPointerKeyForLocal(CGNode node,
int valueNumber) |
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForLocal(CGNode node,
int valueNumber) |
PointerKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getPointerKeyForLocal(int valueNumber) |
PointerKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getPointerKeyForReturnValue() |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
PointerKeyFactory.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getPointerKeyForStaticField(IField f) |
PointerKey |
PropagationCallGraphBuilder.getPointerKeyForStaticField(IField f) |
PointerKey |
PointerKeyFactory.getPointerKeyForStaticField(IField f) |
PointerKey |
PointerAnalysisImpl.HModel.getPointerKeyForStaticField(IField f) |
PointerKey |
SSAPropagationCallGraphBuilder.getTargetPointerKey(CGNode target,
int index)
TODO: enhance this logic using type inference TODO!!!: enhance filtering to consider concrete types, not just cones.
|
PointerKey |
SSAPropagationCallGraphBuilder.getUniqueCatchKey(SSAAbstractInvokeInstruction call,
IR ir,
CGNode node)
precondition: hasUniqueCatchBlock(call,node,cg)
|
| Modifier and Type | Method and Description |
|---|---|
Iterable<PointerKey> |
PointerAnalysisImpl.getPointerKeys() |
Iterable<PointerKey> |
PointerAnalysis.getPointerKeys() |
Iterator<PointerKey> |
PointsToMap.getTransitiveRoots() |
Iterator<PointerKey> |
PointsToMap.iterateKeys() |
Iterator<PointerKey> |
SSAPropagationCallGraphBuilder.iteratePointerKeys() |
Iterator<PointerKey> |
PropagationSystem.iteratePointerKeys() |
Iterator<PointerKey> |
PointerAnalysisImpl.HModel.iteratePointerKeys() |
Iterator<PointerKey> |
HeapModel.iteratePointerKeys() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
PropagationCallGraphBuilder.addAssignmentsForCatchPointerKey(PointerKey exceptionVar,
Set<IClass> catchClasses,
PointerKey e)
Generate a set of constraints to represent assignment to an exception variable in a catch clause.
|
protected void |
PropagationCallGraphBuilder.assignInstanceToCatch(PointerKey exceptionVar,
Set<IClass> catchClasses,
InstanceKey e)
Handle assign of a particular exception instance into an exception variable
|
PointsToSetVariable |
PropagationSystem.findOrCreatePointsToSet(PointerKey key)
If key is unified, returns the representative
|
int |
PointsToMap.getIndex(PointerKey p) |
int |
PropagationSystem.getNumber(PointerKey p) |
PointsToSetVariable |
PointsToMap.getPointsToSet(PointerKey p)
If p is unified, returns the representative for p.
|
com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
PointerAnalysisImpl.getPointsToSet(PointerKey key) |
com.ibm.wala.util.intset.OrdinalSet<T> |
PointerAnalysis.getPointsToSet(PointerKey key) |
boolean |
PointerAnalysisImpl.isFiltered(PointerKey key)
did the pointer analysis use a type filter for a given points-to set? (this is ugly).
|
boolean |
PointerAnalysis.isFiltered(PointerKey pk)
did the pointer analysis use a type filter for a given points-to set?
(this is ugly).
|
boolean |
PointsToMap.isImplicit(PointerKey p) |
boolean |
PropagationSystem.isTransitiveRoot(PointerKey key) |
boolean |
PropagationSystem.isUnified(PointerKey result) |
boolean |
PointsToMap.isUnified(PointerKey p) |
boolean |
PropagationSystem.newConstraint(PointerKey lhs,
com.ibm.wala.fixpoint.AbstractOperator<PointsToSetVariable> op,
PointerKey rhs) |
boolean |
PropagationSystem.newConstraint(PointerKey lhs,
com.ibm.wala.fixpoint.AbstractOperator<PointsToSetVariable> op,
PointerKey rhs1,
PointerKey rhs2) |
boolean |
PropagationSystem.newConstraint(PointerKey lhs,
InstanceKey value) |
boolean |
PropagationSystem.newConstraint(PointerKey lhs,
com.ibm.wala.fixpoint.UnaryOperator<PointsToSetVariable> op,
PointerKey rhs)
NB: this is idempotent ...
|
boolean |
PropagationSystem.newFieldRead(PointerKey lhs,
com.ibm.wala.fixpoint.UnaryOperator<PointsToSetVariable> op,
PointerKey rhs,
PointerKey container) |
boolean |
PropagationSystem.newFieldWrite(PointerKey lhs,
com.ibm.wala.fixpoint.UnaryOperator<PointsToSetVariable> op,
PointerKey rhs,
PointerKey container) |
void |
PropagationSystem.newSideEffect(com.ibm.wala.fixpoint.AbstractOperator<PointsToSetVariable> op,
PointerKey[] arg0) |
void |
PropagationSystem.newSideEffect(com.ibm.wala.fixpoint.AbstractOperator<PointsToSetVariable> op,
PointerKey arg0,
PointerKey arg1) |
void |
PropagationSystem.newSideEffect(com.ibm.wala.fixpoint.UnaryOperator<PointsToSetVariable> op,
PointerKey arg0) |
protected void |
SSAPropagationCallGraphBuilder.processCallingConstraints(CGNode caller,
SSAAbstractInvokeInstruction instruction,
CGNode target,
InstanceKey[][] constParams,
PointerKey uniqueCatchKey) |
void |
PointsToMap.put(PointerKey key,
PointsToSetVariable v) |
void |
PointsToMap.recordImplicit(PointerKey key)
record that a particular points-to-set is represented implicitly
|
void |
PropagationSystem.recordImplicitPointsToSet(PointerKey key)
record that a particular points-to-set is represented implicitly.
|
void |
PointsToMap.recordTransitiveRoot(PointerKey key)
record points-to-sets that are "roots" of the transitive closure.
|
void |
PointsToMap.recordUnified(PointerKey key)
record that a particular points-to-set has been unioned with another
|
| Constructor and Description |
|---|
PointsToSetVariable(PointerKey key) |
| Modifier and Type | Class and Description |
|---|---|
class |
ExceptionReturnValueKey
A key which represents the return value for a node.
|
| Modifier and Type | Method and Description |
|---|---|
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForExceptionalReturnValue(CGNode node) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForLocal(CGNode node,
int valueNumber) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
DefaultPointerKeyFactory.getPointerKeyForStaticField(IField f) |
| Modifier and Type | Class and Description |
|---|---|
class |
RTASelectorKey
This RTA implementation tracks a single set of Classes for each Selector
|
| Modifier and Type | Method and Description |
|---|---|
protected PointerKey |
BasicRTABuilder.getKeyForSite(CallSiteReference site) |
protected abstract PointerKey |
AbstractRTABuilder.getKeyForSite(CallSiteReference site) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForExceptionalReturnValue(CGNode node) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
TypeBasedHeapModel.getPointerKeyForStaticField(IField f) |
| Modifier and Type | Method and Description |
|---|---|
Collection<PointerKey> |
TypeBasedPointerAnalysis.getPointerKeys() |
Iterator<PointerKey> |
TypeBasedHeapModel.iteratePointerKeys() |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.util.intset.OrdinalSet<InstanceKey> |
TypeBasedPointerAnalysis.getPointsToSet(PointerKey key) |
boolean |
TypeBasedPointerAnalysis.isFiltered(PointerKey pk) |
| Modifier and Type | Class and Description |
|---|---|
class |
ArrayLengthKey
A
PointerKey that represents an array length location |
| Modifier and Type | Field and Description |
|---|---|
protected Collection<PointerKey> |
ModRef.RefVisitor.result |
protected Collection<PointerKey> |
ModRef.ModVisitor.result |
| Modifier and Type | Method and Description |
|---|---|
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForArrayContents(InstanceKey I) |
PointerKey |
ExtendedHeapModel.getPointerKeyForArrayLength(InstanceKey I) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForArrayLength(InstanceKey I) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForExceptionalReturnValue(CGNode node) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForInstanceField(InstanceKey I,
IField field) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForLocal(CGNode node,
int valueNumber) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForReturnValue(CGNode node) |
PointerKey |
DelegatingExtendedHeapModel.getPointerKeyForStaticField(IField f) |
| 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. |
Iterator<PointerKey> |
DelegatingExtendedHeapModel.iteratePointerKeys() |
| Modifier and Type | Method and Description |
|---|---|
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 |
|---|
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 |
|---|---|
PointerKey |
HeapStatement.getLocation() |
| Modifier and Type | Method and Description |
|---|---|
Set<PointerKey> |
HeapExclusions.filter(Collection<PointerKey> s) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
HeapExclusions.excludes(PointerKey pk) |
static TypeReference |
HeapExclusions.getType(PointerKey pk) |
| Modifier and Type | Method and Description |
|---|---|
Map<Statement,com.ibm.wala.util.intset.OrdinalSet<Statement>> |
HeapReachingDefs.computeReachingDefs(CGNode node,
IR ir,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Collection<Statement> statements,
HeapExclusions exclusions,
CallGraph cg)
For each statement s, return the set of statements that may def the heap value read by s.
|
Set<PointerKey> |
HeapExclusions.filter(Collection<PointerKey> s) |
| Constructor and Description |
|---|
HeapStatement.HeapParamCallee(CGNode node,
PointerKey loc) |
HeapStatement.HeapParamCaller(CGNode node,
int callIndex,
PointerKey loc) |
HeapStatement.HeapReturnCallee(CGNode node,
PointerKey loc) |
HeapStatement.HeapReturnCaller(CGNode node,
int callIndex,
PointerKey loc) |
HeapStatement(CGNode node,
PointerKey loc) |
| Constructor and Description |
|---|
PDG(CGNode node,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> ref,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions exclusions,
CallGraph cg,
ModRef modRef) |
PDG(CGNode node,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> ref,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions exclusions,
CallGraph cg,
ModRef modRef) |
PDG(CGNode node,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> ref,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions exclusions,
CallGraph cg,
ModRef modRef,
boolean ignoreAllocHeapDefs) |
PDG(CGNode node,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> ref,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions,
HeapExclusions exclusions,
CallGraph cg,
ModRef modRef,
boolean ignoreAllocHeapDefs) |
| 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 |
|---|
CISDG(SDG noHeap,
Map<Statement,Set<PointerKey>> mod,
Map<Statement,Set<PointerKey>> ref) |
CISDG(SDG noHeap,
Map<Statement,Set<PointerKey>> mod,
Map<Statement,Set<PointerKey>> ref) |
| 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.
|
Copyright © 2015. All rights reserved.