| Package | Description |
|---|---|
| com.ibm.wala.demandpa.util | |
| com.ibm.wala.ipa.slicer | |
| com.ibm.wala.ipa.slicer.thin |
| 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 | Class and Description |
|---|---|
class |
ExceptionalReturnCallee
A
Statement representing the exceptional return value in a callee,
immediately before returning to the caller. |
class |
ExceptionalReturnCaller
A
Statement representing the exceptional return value in a caller,
immediately after returning to the caller. |
class |
GetCaughtExceptionStatement
identifier of a GetCaughtException instruction
|
class |
HeapStatement |
static class |
HeapStatement.HeapParamCallee |
static class |
HeapStatement.HeapParamCaller |
static class |
HeapStatement.HeapReturnCallee |
static class |
HeapStatement.HeapReturnCaller |
class |
MethodEntryStatement
A statement representing method entry, used for managing control dependence.
|
class |
MethodExitStatement
A
Statement representing method exit used as a dummy exit for starting propagation to a seed statement in backwards
slicing. |
class |
NormalReturnCallee
A
Statement representing the normal return value in a callee,
immediately before returning to the caller. |
class |
NormalReturnCaller
A
Statement representing the normal return value in a caller,
immediately after returning to the caller. |
class |
NormalStatement
A statement that has a corresponding index in the SSA IR
|
class |
ParamCallee
A
Statement representing a formal parameter |
class |
ParamCaller
A
Statement representing an actual parameter |
class |
PhiStatement
identifier of a phi instruction
|
class |
PiStatement
identifier of a Pi instruction
|
class |
StatementWithInstructionIndex
A
Statement which carries an instruction index, representing the index of an SSAInstruction in the IR instruction
array. |
| Modifier and Type | Method and Description |
|---|---|
Statement |
Slicer.SliceProblem.getFakeEntry(Statement node) |
Statement |
PDG.getNode(int number) |
Statement[] |
PDG.getParamCalleeStatements() |
Statement[] |
PDG.getReturnStatements() |
static Statement |
PDG.ssaInstruction2Statement(CGNode node,
SSAInstruction s,
Map<SSAInstruction,Integer> instructionIndices,
IR ir) |
| Modifier and Type | Method and Description |
|---|---|
static Collection<Statement> |
Slicer.computeBackwardSlice(SDG sdg,
Collection<Statement> ss)
Use the passed-in SDG
|
static Collection<Statement> |
Slicer.computeBackwardSlice(SDG sdg,
Statement s)
Use the passed-in SDG
|
static Collection<Statement> |
Slicer.computeBackwardSlice(Statement s,
CallGraph cg,
PointerAnalysis<InstanceKey> pointerAnalysis) |
static Collection<Statement> |
Slicer.computeBackwardSlice(Statement s,
CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
static Collection<Statement> |
Slicer.computeForwardSlice(SDG sdg,
Statement s)
Use the passed-in SDG
|
static Collection<Statement> |
Slicer.computeForwardSlice(Statement s,
CallGraph cg,
PointerAnalysis<InstanceKey> pa,
Slicer.DataDependenceOptions dOptions,
Slicer.ControlDependenceOptions cOptions) |
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.
|
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.
|
protected static Collection<Statement> |
Slicer.computeSlice(SDG sdg,
Collection<Statement> ss,
boolean backward) |
Set<Statement> |
PDG.getCallerParamStatements(SSAAbstractInvokeInstruction call)
return the set of all PARAM_CALLER and HEAP_PARAM_CALLER statements associated with a given call
|
Set<Statement> |
PDG.getCallerReturnStatements(SSAAbstractInvokeInstruction call)
return the set of all NORMAL_RETURN_CALLER and HEAP_RETURN_CALLER statements associated with a given call.
|
Set<Statement> |
PDG.getCallStatements(SSAAbstractInvokeInstruction call)
return the set of all PARAM_CALLER, HEAP_PARAM_CALLER, and NORMAL statements (i.e., the actual call statement) associated with
a given call
|
TabulationDomain<Object,Statement> |
Slicer.SliceProblem.getDomain() |
protected com.ibm.wala.util.graph.NumberedEdgeManager<Statement> |
SDG.getEdgeManager() |
IPartiallyBalancedFlowFunctions<Statement> |
Slicer.SliceProblem.getFunctionMap() |
com.ibm.wala.util.graph.NumberedNodeManager<Statement> |
SDG.getNodeManager() |
Iterator<Statement> |
PDG.getPredNodes(Statement N) |
Iterator<Statement> |
PDG.getSuccNodes(Statement N) |
ISupergraph<Statement,PDG> |
Slicer.SliceProblem.getSupergraph() |
Collection<PathEdge<Statement>> |
Slicer.SliceProblem.initialSeeds() |
Iterator<? extends Statement> |
SDG.iterateLazyNodes()
iterate over the nodes
|
Iterator<? extends Statement> |
ISDG.iterateLazyNodes()
Iterate over the nodes which have been discovered so far, but do NOT eagerly construct the entire graph.
|
Iterator<Statement> |
PDG.iterateNodes(com.ibm.wala.util.intset.IntSet s) |
Iterator<Statement> |
PDG.iterator() |
Collection<Statement> |
Slicer.slice(SDG sdg,
Collection<Statement> roots,
boolean backward)
Main driver logic.
|
| Modifier and Type | Method and Description |
|---|---|
static Collection<Statement> |
Slicer.computeBackwardSlice(SDG sdg,
Collection<Statement> ss)
Use the passed-in SDG
|
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.
|
protected static Collection<Statement> |
Slicer.computeSlice(SDG sdg,
Collection<Statement> ss,
boolean backward) |
protected Slicer.SliceProblem |
Slicer.makeSliceProblem(Collection<Statement> roots,
ISDG sdgView,
boolean backward)
Return an object which encapsulates the tabulation logic for the slice problem.
|
Collection<Statement> |
Slicer.slice(SDG sdg,
Collection<Statement> roots,
boolean backward)
Main driver logic.
|
| Constructor and Description |
|---|
Slicer.SliceProblem(Collection<Statement> roots,
ISDG sdg,
boolean backward) |
| Modifier and Type | Method and Description |
|---|---|
Statement |
CISDG.getNode(int number) |
| Modifier and Type | Method and Description |
|---|---|
Collection<Statement> |
CISlicer.computeBackwardThinSlice(Collection<Statement> seeds) |
Collection<Statement> |
CISlicer.computeBackwardThinSlice(Statement seed) |
Iterator<Statement> |
CISDG.getPredNodes(Statement N) |
Iterator<Statement> |
CISDG.getSuccNodes(Statement N) |
Iterator<? extends Statement> |
CISDG.iterateLazyNodes() |
Iterator<Statement> |
CISDG.iterateNodes(com.ibm.wala.util.intset.IntSet s) |
Iterator<Statement> |
CISDG.iterator() |
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 ..
|
| Modifier and Type | Method and Description |
|---|---|
void |
CISDG.addEdge(Statement src,
Statement dst) |
void |
CISDG.addNode(Statement n) |
Collection<Statement> |
CISlicer.computeBackwardThinSlice(Statement seed) |
boolean |
CISDG.containsNode(Statement N) |
int |
CISDG.getNumber(Statement N) |
int |
CISDG.getPredNodeCount(Statement N) |
com.ibm.wala.util.intset.IntSet |
CISDG.getPredNodeNumbers(Statement node) |
Iterator<Statement> |
CISDG.getPredNodes(Statement N) |
int |
CISDG.getSuccNodeCount(Statement N) |
com.ibm.wala.util.intset.IntSet |
CISDG.getSuccNodeNumbers(Statement node) |
Iterator<Statement> |
CISDG.getSuccNodes(Statement N) |
boolean |
CISDG.hasEdge(Statement src,
Statement dst) |
void |
CISDG.removeAllIncidentEdges(Statement node) |
void |
CISDG.removeEdge(Statement src,
Statement dst) |
void |
CISDG.removeIncomingEdges(Statement node) |
void |
CISDG.removeNode(Statement n) |
void |
CISDG.removeNodeAndEdges(Statement N) |
void |
CISDG.removeOutgoingEdges(Statement node) |
| Modifier and Type | Method and Description |
|---|---|
Collection<Statement> |
CISlicer.computeBackwardThinSlice(Collection<Statement> seeds) |
| 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) |
Copyright © 2015. All rights reserved.