public abstract class FlowGraphNode<T extends DataFlowProblem<T,U>,U extends FlowGraphNode<T,U>> extends Object
| Modifier and Type | Field and Description | 
|---|---|
| protected BasicBlock | basicBlock | 
| protected T | problem | 
| Constructor and Description | 
|---|
| FlowGraphNode(T problem,
             BasicBlock basicBlock) | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | applyPreMeetHandler()Initialize this data flow node to compute the new solution
 This is done before iteratively calling the MEET operator. | 
| abstract void | applyTransferFunction(Instr i)Apply transfer function to the instruction | 
| 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(org.jruby.dirgra.Edge e,
            U 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<U> workList,
                   BitSet bbSet) | 
| void | computeDataFlowInfoBackward(List<U> workList,
                           BitSet bbSet) | 
| void | computeDataFlowInfoForward(List<U> workList,
                          BitSet bbSet) | 
| void | finalizeSolution()Any required cleanup of state after applying transfer function | 
| BasicBlock | getBB() | 
| CFG | getCFG()Get the control flow graph | 
| U | getExceptionTargetNode() | 
| boolean | hasExceptionsRescued() | 
| void | init()Initialize this data flow node for solving the current problem
 This is done after building dataflow variables for the problem. | 
| void | initSolution()Any setting up of state/initialization before applying transfer function | 
| abstract boolean | solutionChanged()Did dataflow solution for this node change from last time? | 
protected final T extends DataFlowProblem<T,U> problem
protected final BasicBlock basicBlock
public FlowGraphNode(T problem, BasicBlock basicBlock)
public abstract void buildDataFlowVars(Instr i)
public void init()
public abstract void applyPreMeetHandler()
public abstract void compute_MEET(org.jruby.dirgra.Edge e,
                U pred)
public void initSolution()
public abstract void applyTransferFunction(Instr i)
public abstract boolean solutionChanged()
public void finalizeSolution()
public BasicBlock getBB()
public CFG getCFG()
public void buildDataFlowVars()
public boolean hasExceptionsRescued()
public U getExceptionTargetNode()
Copyright © 2001-2015 JRuby. All Rights Reserved.