org.jruby.compiler.ir.dataflow.analyses
Class LiveVariableNode

java.lang.Object
  extended by org.jruby.compiler.ir.dataflow.FlowGraphNode
      extended by org.jruby.compiler.ir.dataflow.analyses.LiveVariableNode

public class LiveVariableNode
extends FlowGraphNode


Field Summary
 
Fields inherited from class org.jruby.compiler.ir.dataflow.FlowGraphNode
_bb, _prob
 
Constructor Summary
LiveVariableNode(DataFlowProblem prob, BasicBlock n)
           
 
Method Summary
 boolean applyTransferFunction()
          Compute "OUT/IN" for the current node! The choice of "IN/OUT" is determined by the direction of data flow.
 void buildDataFlowVars(Instr i)
          Builds the data-flow variables (or facts) for a particular instruction.
 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 init()
          Initialize this data flow node for solving the current problem This is done after building dataflow variables for the problem.
 void initSolnForNode()
          Initialize this data flow node to compute the new solution This is done before iteratively calling the MEET operator.
 java.lang.String toString()
           
 
Methods inherited from class org.jruby.compiler.ir.dataflow.FlowGraphNode
buildDataFlowVars, computeDataFlowInfo, finalizeSolnForNode, getBB
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LiveVariableNode

public LiveVariableNode(DataFlowProblem prob,
                        BasicBlock n)
Method Detail

init

public void init()
Description copied from class: FlowGraphNode
Initialize this data flow node for solving the current problem This is done after building dataflow variables for the problem.

Overrides:
init in class FlowGraphNode

buildDataFlowVars

public void buildDataFlowVars(Instr i)
Description copied from class: FlowGraphNode
Builds the data-flow variables (or facts) for a particular instruction.

Specified by:
buildDataFlowVars in class FlowGraphNode

initSolnForNode

public void initSolnForNode()
Description copied from class: FlowGraphNode
Initialize this data flow node to compute the new solution This is done before iteratively calling the MEET operator.

Specified by:
initSolnForNode in class FlowGraphNode

compute_MEET

public void compute_MEET(CFG.CFG_Edge edge,
                         FlowGraphNode pred)
Description copied from class: FlowGraphNode
"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.

Specified by:
compute_MEET in class FlowGraphNode

applyTransferFunction

public boolean applyTransferFunction()
Description copied from class: FlowGraphNode
Compute "OUT/IN" for the current node! The choice of "IN/OUT" is determined by the direction of data flow. OUT/IN = transfer-function(facts at start/end of node, instructions of current node processed in fwd/reverse dirn)

Specified by:
applyTransferFunction in class FlowGraphNode

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2002-2009 JRuby Team. All Rights Reserved.