|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object joeq.Compiler.Dataflow.Solver joeq.Compiler.Dataflow.IterativeSolver
public class IterativeSolver
Solves a dataflow problem using a iterative technique. Successively iterates over the locations in the graph in a given order until there are no more changes.
Field Summary | |
---|---|
protected Collection |
boundaries
The boundary locations. |
protected boolean |
change
Change flag, set to true if we need to iterate more times. |
protected jwutil.graphs.Navigator |
graphNavigator
Navigator to navigate the graph of locations. |
protected List |
traversalOrder
The order in which the locations are to be traversed. |
Fields inherited from class joeq.Compiler.Dataflow.Solver |
---|
dataflowValues, factory, problem |
Constructor Summary | |
---|---|
IterativeSolver()
|
|
IterativeSolver(jwutil.collections.MapFactory f)
|
Method Summary | |
---|---|
Iterator |
allLocations()
Returns an iteration of all graph locations. |
Iterator |
boundaryLocations()
Returns an iteration of all boundary locations. |
protected Collection |
getPredecessors(Object c)
Get the predecessor locations of the given location. |
protected Collection |
getSuccessors(Object c)
Get the successor locations of the given location. |
protected Iterator |
getTraversalOrder()
Returns an iteration of the order in which the locations are to be traversed. |
void |
initialize(Problem p,
jwutil.graphs.Graph graph)
Initializes the solver to prepare to solve the dataflow problem on the given graph. |
void |
initialize(Problem p,
jwutil.graphs.Graph graph,
List order)
Initializes this solver with the given dataflow problem, graph, and traversal order. |
void |
solve()
Solves this dataflow problem. |
Methods inherited from class joeq.Compiler.Dataflow.Solver |
---|
compareResults, direction, dumpResults, getDataflowValue, initializeDataflowValueMap, reset |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected List traversalOrder
protected Collection boundaries
protected jwutil.graphs.Navigator graphNavigator
protected boolean change
Constructor Detail |
---|
public IterativeSolver(jwutil.collections.MapFactory f)
public IterativeSolver()
Method Detail |
---|
protected Iterator getTraversalOrder()
protected Collection getPredecessors(Object c)
protected Collection getSuccessors(Object c)
public void initialize(Problem p, jwutil.graphs.Graph graph)
Solver
initialize
in class Solver
public void initialize(Problem p, jwutil.graphs.Graph graph, List order)
Solver.initialize(joeq.Compiler.Dataflow.Problem, jwutil.graphs.Graph)
public Iterator allLocations()
Solver
allLocations
in class Solver
public Iterator boundaryLocations()
Solver
boundaryLocations
in class Solver
public void solve()
Solver
solve
in class Solver
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |