Top Inners Fields Constructors Methods
org.jruby.ir.dataflow

public abstract Class DataFlowProblem<T extends DataFlowProblem<T, U>, U extends FlowGraphNode<T, U>>

extends Object
Class Inheritance
Known Direct Subclasses
org.jruby.ir.dataflow.analyses.DefinedVariablesProblem, org.jruby.ir.dataflow.analyses.LiveVariablesProblem, org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem, org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem, org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
Imports
org.jruby.ir.interpreter.FullInterpreterContext, org.jruby.ir.representations.BasicBlock, java.util.*

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum

Field Summary

Modifier and TypeField and Description
private Map<BasicBlock, U>
public final DataFlowProblem.DF_Direction
protected FullInterpreterContext
protected List<U>
private int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public int
private void
public abstract U
public void
protected LinkedList<U>
generateWorkList()

Generate an ordered list of flow graph nodes in a forward or backward order depending on direction.

public String
public int
public U
public U
public FullInterpreterContext
public DataFlowProblem.DF_Direction
public U
public abstract String
public boolean
isEmpty()

Are there are available data flow facts to run this problem?

public void
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

basicBlockToFlowGraphback to summary
private Map<BasicBlock, U> basicBlockToFlowGraph
directionback to summary
public final DataFlowProblem.DF_Direction direction
ficback to summary
protected FullInterpreterContext fic
flowGraphNodesback to summary
protected List<U> flowGraphNodes
nextVariableIdback to summary
private int nextVariableId

Constructor Detail

DataFlowProblemback to summary
public DataFlowProblem(DataFlowProblem.DF_Direction direction)

Method Detail

addDataFlowVarback to summary
public int addDataFlowVar()
buildFlowGraphback to summary
private void buildFlowGraph()
buildFlowGraphNodeback to summary
public abstract U buildFlowGraphNode(BasicBlock bb)
compute_MOP_Solutionback to summary
public void compute_MOP_Solution()
generateWorkListback to summary
protected LinkedList<U> generateWorkList()

Generate an ordered list of flow graph nodes in a forward or backward order depending on direction.

getDataFlowVarsForOutputback to summary
public String getDataFlowVarsForOutput()
getDFVarsCountback to summary
public int getDFVarsCount()
getEntryNodeback to summary
public U getEntryNode()
getExitNodeback to summary
public U getExitNode()
getFICback to summary
public FullInterpreterContext getFIC()
getFlowDirectionback to summary
public DataFlowProblem.DF_Direction getFlowDirection()
getFlowGraphNodeback to summary
public U getFlowGraphNode(BasicBlock bb)
getNameback to summary
public abstract String getName()
isEmptyback to summary
public boolean isEmpty()

Are there are available data flow facts to run this problem? SSS FIXME: Silly optimization?

setupback to summary
public void setup(FullInterpreterContext fic)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
org.jruby.ir.dataflow back to summary

public final Enum DataFlowProblem.DF_Direction

extends Enum<DataFlowProblem.DF_Direction>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final DataFlowProblem.DF_Direction
public static final DataFlowProblem.DF_Direction
public static final DataFlowProblem.DF_Direction

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static DataFlowProblem.DF_Direction
public static DataFlowProblem.DF_Direction[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

BACKWARDback to summary
public static final DataFlowProblem.DF_Direction BACKWARD
BIDIRECTIONALback to summary
public static final DataFlowProblem.DF_Direction BIDIRECTIONAL
FORWARDback to summary
public static final DataFlowProblem.DF_Direction FORWARD

Constructor Detail

DF_Directionback to summary
private DF_Direction()

Method Detail

valueOfback to summary
public static DataFlowProblem.DF_Direction valueOf(String name)
valuesback to summary
public static DataFlowProblem.DF_Direction[] values()