| Package | Description |
|---|---|
| com.ibm.wala.dataflow.IFDS |
This package provides an RHS solver for IFDS problems.
|
| com.ibm.wala.ipa.slicer |
| Modifier and Type | Method and Description |
|---|---|
static <T> PathEdge<T> |
PathEdge.createPathEdge(T s_p,
int d1,
T n,
int d2) |
protected PathEdge<T> |
TabulationSolver.getCurPathEdge() |
protected PathEdge<T> |
TabulationSolver.getCurSummaryEdge() |
protected PathEdge<T> |
TabulationSolver.popFromWorkList() |
PathEdge<T> |
ITabulationWorklist.take() |
| Modifier and Type | Method and Description |
|---|---|
Collection<PathEdge<T>> |
TabulationSolver.getSeeds() |
Collection<PathEdge<T>> |
TabulationSolver.Result.getSeeds() |
Collection<PathEdge<T>> |
TabulationResult.getSeeds() |
Collection<PathEdge<T>> |
TabulationProblem.initialSeeds()
Define the set of path edges to start propagation with.
|
| Modifier and Type | Method and Description |
|---|---|
void |
TabulationSolver.addSeed(PathEdge<T> seed)
Restart tabulation from a particular path edge.
|
void |
PartiallyBalancedTabulationSolver.addSeed(PathEdge<T> seed) |
protected boolean |
TabulationSolver.Worklist.compareElements(PathEdge<T> p1,
PathEdge<T> p2) |
protected boolean |
TabulationSolver.Worklist.compareElements(PathEdge<T> p1,
PathEdge<T> p2) |
boolean |
TabulationDomain.hasPriorityOver(PathEdge<T> p1,
PathEdge<T> p2)
returns
true if p1 should be processed before
p2 by the TabulationSolver
For example, if this domain supports a partial order on facts, return true
if p1.d2 is weaker than p2.d2 (intuitively p1.d2 meet p2.d2 = p1.d2)
return false otherwise |
boolean |
TabulationDomain.hasPriorityOver(PathEdge<T> p1,
PathEdge<T> p2)
returns
true if p1 should be processed before
p2 by the TabulationSolver
For example, if this domain supports a partial order on facts, return true
if p1.d2 is weaker than p2.d2 (intuitively p1.d2 meet p2.d2 = p1.d2)
return false otherwise |
boolean |
UnorderedDomain.hasPriorityOver(PathEdge<U> p1,
PathEdge<U> p2) |
boolean |
UnorderedDomain.hasPriorityOver(PathEdge<U> p1,
PathEdge<U> p2) |
void |
ITabulationWorklist.insert(PathEdge<T> elt) |
protected void |
TabulationSolver.processCall(PathEdge<T> edge)
Handle lines [14 - 19] of the algorithm, propagating information into and across a call site.
|
protected void |
TabulationSolver.processExit(PathEdge<T> edge)
Handle lines [21 - 32] of the algorithm, propagating information from an exit node.
|
protected void |
TabulationSolver.processParticularCallee(PathEdge<T> edge,
int callNodeNum,
Collection<T> allReturnSites,
T calleeEntry)
handle a particular callee for some call node.
|
| Modifier and Type | Method and Description |
|---|---|
Collection<PathEdge<Statement>> |
Slicer.SliceProblem.initialSeeds() |
Copyright © 2015. All rights reserved.