public abstract class FlowGraphNode
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected BasicBlock |
_bb |
protected DataFlowProblem |
_prob |
Constructor and Description |
---|
FlowGraphNode(DataFlowProblem p,
BasicBlock n) |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
applyTransferFunction()
Compute "OUT/IN" for the current node! The choice of "IN/OUT" is determined by the direction of data flow.
|
void |
buildDataFlowVars()
Builds the data-flow variables (or facts) for a particular node.
|
abstract void |
buildDataFlowVars(Instr i)
Builds the data-flow variables (or facts) for a particular instruction.
|
abstract void |
compute_MEET(CFG.CFG_Edge edge,
FlowGraphNode pred)
"MEET" current solution of "IN/OUT" with "OUT/IN(pred)",
where "pred" is a predecessor of the current node!
The choice of "IN/OUT" is determined by the direction of data flow.
|
void |
computeDataFlowInfo(java.util.List<FlowGraphNode> workList,
java.util.BitSet bbSet) |
void |
finalizeSolnForNode()
After meet has been performed, do some more logic.
|
BasicBlock |
getBB() |
void |
init()
Initialize this data flow node for solving the current problem
This is done after building dataflow variables for the problem.
|
abstract void |
initSolnForNode()
Initialize this data flow node to compute the new solution
This is done before iteratively calling the MEET operator.
|
protected DataFlowProblem _prob
protected BasicBlock _bb
public FlowGraphNode(DataFlowProblem p, BasicBlock n)
public abstract void initSolnForNode()
public abstract void compute_MEET(CFG.CFG_Edge edge, FlowGraphNode pred)
public abstract boolean applyTransferFunction()
public abstract void buildDataFlowVars(Instr i)
public void init()
public void finalizeSolnForNode()
public BasicBlock getBB()
public void buildDataFlowVars()
public void computeDataFlowInfo(java.util.List<FlowGraphNode> workList, java.util.BitSet bbSet)
Copyright © 2002-2009 JRuby Team. All Rights Reserved.