Modifier and Type | Field and Description |
---|---|
protected Map<DemandCSPointsTo.VarAndContext,Pair<PointsToSetInternal,AllocAndContextSet>> |
DemandCSPointsTo.contextsForAllocsCache |
protected Map<DemandCSPointsTo.VarAndContext,Pair<PointsToSetInternal,AllocAndContextSet>> |
DemandCSPointsTo.contextsForAllocsCache |
Modifier and Type | Method and Description |
---|---|
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
PointsToSetInternal |
WrappedPointsToSet.getWrapped() |
PointsToSetInternal |
WrappedPointsToSet.getWrapped() |
Modifier and Type | Method and Description |
---|---|
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
protected PointsToSetInternal |
DemandCSPointsTo.checkContextsForAllocsCache(DemandCSPointsTo.VarAndContext varAndContext,
AllocAndContextSet ret,
PointsToSetInternal locs) |
protected AllocAndContextSet |
DemandCSPointsTo.findContextsForAllocs(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal locs) |
protected AllocAndContextSet |
DemandCSPointsTo.findContextsForAllocs(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal locs) |
protected Set<SootMethod> |
DemandCSPointsTo.getCallTargets(PointsToSetInternal p2Set,
NumberedString methodStr,
Type receiverType,
Set<SootMethod> possibleTargets) |
protected Set<SootMethod> |
DemandCSPointsTo.getCallTargets(PointsToSetInternal p2Set,
NumberedString methodStr,
Type receiverType,
Set<SootMethod> possibleTargets) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleMatchSrc(VarNode matchSrc,
PointsToSetInternal intersection,
VarNode loadBase,
VarNode storeBase,
DemandCSPointsTo.VarAndContext origVarAndContext,
SparkField field,
boolean refine) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleMatchSrc(VarNode matchSrc,
PointsToSetInternal intersection,
VarNode loadBase,
VarNode storeBase,
DemandCSPointsTo.VarAndContext origVarAndContext,
SparkField field,
boolean refine) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected boolean |
DemandCSPointsTo.refineAlias(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAlias(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAliasInternal(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAliasInternal(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineP2Set(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal badLocs) |
protected boolean |
DemandCSPointsTo.refineP2Set(DemandCSPointsTo.VarAndContext varAndContext,
PointsToSetInternal badLocs) |
protected boolean |
DemandCSPointsTo.refineP2Set(VarNode v,
PointsToSetInternal badLocs,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineP2Set(VarNode v,
PointsToSetInternal badLocs,
HeuristicType heuristic) |
Constructor and Description |
---|
WrappedPointsToSet(PointsToSetInternal wrapped) |
WrappedPointsToSet(PointsToSetInternal wrapped) |
Modifier and Type | Method and Description |
---|---|
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
PointsToSetInternal |
AllocationSiteHandler.PointsToSetHandler.getP2set() |
PointsToSetInternal |
AllocationSiteHandler.PointsToSetHandler.getP2set() |
Modifier and Type | Method and Description |
---|---|
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
static PointsToSetInternal |
SootUtil.constructIntersection(PointsToSetInternal set1,
PointsToSetInternal set2,
PAG pag) |
void |
AllocationSiteHandler.PointsToSetHandler.setP2set(PointsToSetInternal p2set) |
void |
AllocationSiteHandler.PointsToSetHandler.setP2set(PointsToSetInternal p2set) |
Modifier and Type | Field and Description |
---|---|
protected PointsToSetInternal |
Node.p2set |
protected PointsToSetInternal |
Node.p2set |
Modifier and Type | Method and Description |
---|---|
PointsToSetInternal |
Node.getP2Set()
Returns the points-to set for this node.
|
PointsToSetInternal |
Node.getP2Set()
Returns the points-to set for this node.
|
PointsToSetInternal |
Node.makeP2Set()
Returns the points-to set for this node, makes it if necessary.
|
PointsToSetInternal |
Node.makeP2Set()
Returns the points-to set for this node, makes it if necessary.
|
Modifier and Type | Method and Description |
---|---|
void |
Node.setP2Set(PointsToSetInternal ptsInternal)
Use the specified points-to set to replace current one
|
void |
Node.setP2Set(PointsToSetInternal ptsInternal)
Use the specified points-to set to replace current one
|
Modifier and Type | Class and Description |
---|---|
class |
BitPointsToSet
Implementation of points-to set using a bit vector.
|
class |
DoublePointsToSet
Implementation of points-to set that holds two sets: one for new
elements that have not yet been propagated, and the other for elements
that have already been propagated.
|
class |
EmptyPointsToSet
Implementation of an empty, immutable points-to set.
|
class |
HashPointsToSet
HashSet implementation of points-to set.
|
class |
HybridPointsToSet
Hybrid implementation of points-to set, which uses an explicit array for
small sets, and a bit vector for large sets.
|
class |
SharedHybridSet
A shared representation of a points-to set which uses a bit vector + a list
of extra elements, an "overflow list", to make adding single elements fast in
most cases.
|
class |
SharedListSet
Implementation of a points-to set as a sorted list of elements,
but where similar lists share parts of their data.
|
class |
SortedArraySet
Implementation of points-to set using a sorted array.
|
Modifier and Type | Field and Description |
---|---|
protected PointsToSetInternal |
DoublePointsToSet.newSet |
protected PointsToSetInternal |
DoublePointsToSet.newSet |
protected PointsToSetInternal |
DoublePointsToSet.oldSet |
protected PointsToSetInternal |
DoublePointsToSet.oldSet |
Modifier and Type | Method and Description |
---|---|
PointsToSetInternal |
DoublePointsToSet.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
DoublePointsToSet.getNewSet()
Returns set of newly-added nodes since last call to flushNew.
|
PointsToSetInternal |
DoublePointsToSet.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
PointsToSetInternal |
PointsToSetInternal.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
PointsToSetInternal |
DoublePointsToSet.getOldSet()
Returns set of nodes already present before last call to flushNew.
|
abstract PointsToSetInternal |
P2SetFactory.newSet(Type type,
PAG pag)
Returns a newly-created set.
|
abstract PointsToSetInternal |
P2SetFactory.newSet(Type type,
PAG pag)
Returns a newly-created set.
|
Modifier and Type | Method and Description |
---|---|
boolean |
BitPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
DoublePointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
EmptyPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
HashPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
HybridPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
PointsToSetInternal.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other minus the contents of exclude into this set;
returns true if this set changed.
|
boolean |
SharedHybridSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
boolean |
SharedListSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
boolean |
SortedArraySet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
PointsToSetInternal.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other minus the contents of exclude into this set;
returns true if this set changed.
|
boolean |
BitPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
SortedArraySet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
EmptyPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
DoublePointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
HashPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
HybridPointsToSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude)
Adds contents of other into this set, returns true if this set
changed.
|
boolean |
SharedListSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
boolean |
SharedHybridSet.addAll(PointsToSetInternal other,
PointsToSetInternal exclude) |
protected BitVector |
PointsToSetInternal.getBitMask(PointsToSetInternal other,
PAG pag) |
protected BitVector |
PointsToSetInternal.getBitMask(PointsToSetInternal other,
PAG pag) |
void |
DoublePointsToSet.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
void |
PointsToSetInternal.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
void |
PointsToSetInternal.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
void |
DoublePointsToSet.mergeWith(PointsToSetInternal other)
Merges other into this set.
|
Modifier and Type | Field and Description |
---|---|
protected LargeNumberedMap<FieldRefNode,PointsToSetInternal> |
PropAlias.loadSets |
protected LargeNumberedMap<FieldRefNode,PointsToSetInternal> |
PropAlias.loadSets |
Modifier and Type | Method and Description |
---|---|
protected PointsToSetInternal |
PropAlias.getP2Set(FieldRefNode n) |
protected PointsToSetInternal |
PropAlias.getP2Set(FieldRefNode n) |
protected PointsToSetInternal |
PropAlias.makeP2Set(FieldRefNode n) |
protected PointsToSetInternal |
PropAlias.makeP2Set(FieldRefNode n) |
Modifier and Type | Method and Description |
---|---|
protected void |
Checker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
MergeChecker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
Checker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
protected void |
MergeChecker.checkAll(Node container,
PointsToSetInternal nodes,
Node upstream) |
void |
OnFlyCallGraph.updatedFieldRef(AllocDotField df,
PointsToSetInternal ptsi) |
void |
OnFlyCallGraph.updatedFieldRef(AllocDotField df,
PointsToSetInternal ptsi) |
Modifier and Type | Method and Description |
---|---|
MutableEdgeLabelledDirectedGraph |
DeadlockDetector.detectLocksetDeadlock(Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |
MutableEdgeLabelledDirectedGraph |
DeadlockDetector.detectLocksetDeadlock(Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |
protected void |
LockAllocator.findLockableReferences(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
PointsToAnalysis pta,
CriticalSectionAwareSideEffectAnalysis tasea,
Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |
protected void |
LockAllocator.findLockableReferences(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
PointsToAnalysis pta,
CriticalSectionAwareSideEffectAnalysis tasea,
Map<Value,Integer> lockToLockNum,
List<PointsToSetInternal> lockPTSets) |