org.jruby.compiler.ir.dataflow
Class DataFlowProblem

java.lang.Object
  extended by org.jruby.compiler.ir.dataflow.DataFlowProblem
Direct Known Subclasses:
LiveVariablesProblem

public abstract class DataFlowProblem
extends java.lang.Object


Nested Class Summary
static class DataFlowProblem.DF_Direction
           
 
Field Summary
protected  CFG _cfg
           
 DataFlowProblem.DF_Direction _direction
           
protected  java.util.List<FlowGraphNode> _fgNodes
           
 
Constructor Summary
DataFlowProblem(DataFlowProblem.DF_Direction d)
           
 
Method Summary
abstract  FlowGraphNode buildFlowGraphNode(BasicBlock bb)
           
 void compute_MOP_Solution(CFG c)
           
 java.lang.String getDataFlowVarsForOutput()
           
 int getDFVarsCount()
           
 DataFlowProblem.DF_Direction getFlowDirection()
           
abstract  java.lang.String getProblemName()
           
 java.util.Set<CFG.CFG_Edge> incomingEdgesOf(BasicBlock bb)
           
 boolean isEmpty()
          Are there are available data flow facts to run this problem? SSS FIXME: Silly optimization?
 java.util.Set<CFG.CFG_Edge> outgoingEdgesOf(BasicBlock bb)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_direction

public final DataFlowProblem.DF_Direction _direction

_cfg

protected CFG _cfg

_fgNodes

protected java.util.List<FlowGraphNode> _fgNodes
Constructor Detail

DataFlowProblem

public DataFlowProblem(DataFlowProblem.DF_Direction d)
Method Detail

buildFlowGraphNode

public abstract FlowGraphNode buildFlowGraphNode(BasicBlock bb)

getProblemName

public abstract java.lang.String getProblemName()

isEmpty

public boolean isEmpty()
Are there are available data flow facts to run this problem? SSS FIXME: Silly optimization?


getFlowDirection

public DataFlowProblem.DF_Direction getFlowDirection()

compute_MOP_Solution

public void compute_MOP_Solution(CFG c)

getDFVarsCount

public int getDFVarsCount()

incomingEdgesOf

public java.util.Set<CFG.CFG_Edge> incomingEdgesOf(BasicBlock bb)

outgoingEdgesOf

public java.util.Set<CFG.CFG_Edge> outgoingEdgesOf(BasicBlock bb)

getDataFlowVarsForOutput

public java.lang.String getDataFlowVarsForOutput()

toString

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


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