de.rwth.dfa.jvm
Class FactorisedFlowGraphSolver
java.lang.Object
|
+--de.rwth.dfa.jvm.Solver
|
+--de.rwth.dfa.jvm.GraphSolver
|
+--de.rwth.dfa.jvm.FactorisedFlowGraphSolver
- Direct Known Subclasses:
- FactorisedBasicBlockGraphSolver, FlowGraphSolver
- public class FactorisedFlowGraphSolver
- extends GraphSolver
A JVM abstraction solver using factorised flow graphs.
- Version:
- $Id: FactorisedFlowGraphSolver.java,v 1.2 2002/09/17 06:53:53 mohnen Exp $
- Author:
- Markus Mohnen
Constructor Summary |
FactorisedFlowGraphSolver(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions)
Creates a new FactorisedFlowGraphSolver instance with out stop
watch. |
FactorisedFlowGraphSolver(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
Stopwatch stopwatch)
Creates a new FactorisedFlowGraphSolver instance with stop watch. |
Method Summary |
protected RootedGraph |
createGraph()
Creates a factorised flow graph for a method. |
protected java.lang.Object |
getFunction(RootedGraph.Node n)
Computes the transfer function for a node, i.e. |
protected java.lang.Object |
getInit(RootedGraph.Node n,
boolean isForward)
Computes the initial value for a node, i.e. |
protected java.util.Hashtable |
nodesToIndex(Graph graph)
Computes a hash table associating nodes with indices in the solution array. |
protected void |
transferSolution(RootedGraph graph,
Graph.NodeDyer gsolution,
boolean isForward,
boolean isAll,
java.lang.Object[] solution)
Transfers the solution associated with the flow graph nodes to an array. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FactorisedFlowGraphSolver
public FactorisedFlowGraphSolver(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions,
Stopwatch stopwatch)
- Creates a new
FactorisedFlowGraphSolver
instance with stop watch.
- Parameters:
abstraction
- an Abstraction
valuemethodName
- a String
valuemethodInstrs
- an InstructionList
valuemethodExceptions
- a CodeException[]
valuestopwatch
- a Stopwatch
value
FactorisedFlowGraphSolver
public FactorisedFlowGraphSolver(Abstraction abstraction,
java.lang.String methodName,
de.fub.bytecode.generic.InstructionList methodInstrs,
de.fub.bytecode.classfile.CodeException[] methodExceptions)
- Creates a new
FactorisedFlowGraphSolver
instance with out stop
watch.
- Parameters:
abstraction
- an Abstraction
valuemethodName
- a String
valuemethodInstrs
- an InstructionList
valuemethodExceptions
- a CodeException[]
valuestopwatch
- a Stopwatch
value
nodesToIndex
protected java.util.Hashtable nodesToIndex(Graph graph)
- Computes a hash table associating nodes with indices in the solution array.
- Parameters:
graph
- a Graph
value- Returns:
- a
Hashtable
value
createGraph
protected RootedGraph createGraph()
- Creates a factorised flow graph for a method.
- Overrides:
createGraph
in class GraphSolver
- Returns:
- a
RootedGraph
value
getInit
protected java.lang.Object getInit(RootedGraph.Node n,
boolean isForward)
- Computes the initial value for a node, i.e. for a single instruction.
- Overrides:
getInit
in class GraphSolver
- Parameters:
n
- a RootedGraph.Node
value- Returns:
- an
Object
value
getFunction
protected java.lang.Object getFunction(RootedGraph.Node n)
- Computes the transfer function for a node, i.e. for a single instruction.
- Overrides:
getFunction
in class GraphSolver
- Parameters:
n
- a RootedGraph.Node
value- Returns:
- an
Object
value
transferSolution
protected void transferSolution(RootedGraph graph,
Graph.NodeDyer gsolution,
boolean isForward,
boolean isAll,
java.lang.Object[] solution)
- Transfers the solution associated with the flow graph nodes to an array.
- Overrides:
transferSolution
in class GraphSolver
- Parameters:
graph
- a RootedGraph
valuegsolution
- a Graph.NodeDyer
valueisForward
- a boolean
valueisAll
- a boolean
valuesolution
- an Object[]
value