public abstract class DataFlowProblem
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
DataFlowProblem.DF_Direction |
| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Integer,FlowGraphNode> |
basicBlockToFlowGraph |
DataFlowProblem.DF_Direction |
direction |
protected java.util.List<FlowGraphNode> |
flowGraphNodes |
private int |
nextVariableId |
protected IRScope |
scope |
private java.util.ArrayList<DataFlowVar> |
variables |
| Constructor and Description |
|---|
DataFlowProblem(DataFlowProblem.DF_Direction d) |
| Modifier and Type | Method and Description |
|---|---|
(package private) int |
addDataFlowVar(DataFlowVar v) |
private void |
buildFlowGraph() |
abstract FlowGraphNode |
buildFlowGraphNode(BasicBlock bb) |
void |
compute_MOP_Solution() |
java.lang.String |
getDataFlowVarsForOutput() |
int |
getDFVarsCount() |
DataFlowProblem.DF_Direction |
getFlowDirection() |
protected FlowGraphNode |
getFlowGraphNode(BasicBlock b) |
java.lang.Iterable<BasicBlock> |
getIncomingSourcesOf(BasicBlock bb) |
private java.util.LinkedList<FlowGraphNode> |
getInitialWorkList() |
abstract java.lang.String |
getName() |
java.lang.Iterable<BasicBlock> |
getOutgoingDestinationsOf(BasicBlock bb) |
IRScope |
getScope() |
boolean |
isEmpty()
Are there are available data flow facts to run this problem? SSS FIXME: Silly optimization?
|
void |
setup(IRScope scope) |
java.lang.String |
toString() |
public final DataFlowProblem.DF_Direction direction
protected java.util.List<FlowGraphNode> flowGraphNodes
protected IRScope scope
private int nextVariableId
private java.util.ArrayList<DataFlowVar> variables
private java.util.Map<java.lang.Integer,FlowGraphNode> basicBlockToFlowGraph
public DataFlowProblem(DataFlowProblem.DF_Direction d)
public abstract FlowGraphNode buildFlowGraphNode(BasicBlock bb)
public abstract java.lang.String getName()
public boolean isEmpty()
public DataFlowProblem.DF_Direction getFlowDirection()
public void setup(IRScope scope)
public IRScope getScope()
public void compute_MOP_Solution()
private java.util.LinkedList<FlowGraphNode> getInitialWorkList()
public int getDFVarsCount()
public java.lang.Iterable<BasicBlock> getIncomingSourcesOf(BasicBlock bb)
public java.lang.Iterable<BasicBlock> getOutgoingDestinationsOf(BasicBlock bb)
public java.lang.String getDataFlowVarsForOutput()
public java.lang.String toString()
toString in class java.lang.Objectint addDataFlowVar(DataFlowVar v)
protected FlowGraphNode getFlowGraphNode(BasicBlock b)
private void buildFlowGraph()