public abstract class FlowGraphNode extends Object
Modifier and Type | Field and Description |
---|---|
protected BasicBlock |
basicBlock |
protected DataFlowProblem |
problem |
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(Edge e,
BasicBlock source,
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(List<FlowGraphNode> workList,
BitSet bbSet) |
void |
finalizeSolnForNode()
After meet has been performed, do some more logic.
|
BasicBlock |
getBB() |
FlowGraphNode |
getExceptionTargetNode() |
FlowGraphNode |
getNonExitBBExceptionTargetNode() |
boolean |
hasExceptionsRescued() |
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 problem
protected BasicBlock basicBlock
public FlowGraphNode(DataFlowProblem p, BasicBlock n)
public abstract void initSolnForNode()
public abstract void compute_MEET(Edge e, BasicBlock source, 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(List<FlowGraphNode> workList, BitSet bbSet)
public boolean hasExceptionsRescued()
public FlowGraphNode getExceptionTargetNode()
public FlowGraphNode getNonExitBBExceptionTargetNode()
Copyright © 2001-2013 JRuby. All Rights Reserved.