Package org.jruby.ir.dataflow.analyses
Class DefinedVariableNode
java.lang.Object
org.jruby.ir.dataflow.FlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
org.jruby.ir.dataflow.analyses.DefinedVariableNode
-
Field Summary
Fields inherited from class org.jruby.ir.dataflow.FlowGraphNode
basicBlock, problem -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInitialize this data flow node to compute the new solution This is done before iteratively calling the MEET operator.voidApply transfer function to the instructionvoidBuilds the data-flow variables (or facts) for a particular instruction.voidcompute_MEET(org.jruby.dirgra.Edge e, DefinedVariableNode 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.voidAny required cleanup of state after applying transfer functionvoididentifyInits(Set<Variable> undefinedVars) voidinit()Initialize this data flow node for solving the current problem This is done after building dataflow variables for the problem.voidAny setting up of state/initialization before applying transfer functionbooleanDid dataflow solution for this node change from last time?toString()Methods inherited from class org.jruby.ir.dataflow.FlowGraphNode
buildDataFlowVars, computeDataFlowInfo, computeDataFlowInfoBackward, computeDataFlowInfoForward, getBB, getCFG, getExceptionTargetNode, hasExceptionsRescued
-
Constructor Details
-
DefinedVariableNode
-
-
Method Details
-
init
public void init()Description copied from class:FlowGraphNodeInitialize this data flow node for solving the current problem This is done after building dataflow variables for the problem.- Overrides:
initin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
buildDataFlowVars
Description copied from class:FlowGraphNodeBuilds the data-flow variables (or facts) for a particular instruction.- Specified by:
buildDataFlowVarsin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
applyPreMeetHandler
public void applyPreMeetHandler()Description copied from class:FlowGraphNodeInitialize this data flow node to compute the new solution This is done before iteratively calling the MEET operator.- Specified by:
applyPreMeetHandlerin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
compute_MEET
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_MEETin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
initSolution
public void initSolution()Description copied from class:FlowGraphNodeAny setting up of state/initialization before applying transfer function- Overrides:
initSolutionin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
applyTransferFunction
Description copied from class:FlowGraphNodeApply transfer function to the instruction- Specified by:
applyTransferFunctionin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
identifyInits
-
solutionChanged
public boolean solutionChanged()Description copied from class:FlowGraphNodeDid dataflow solution for this node change from last time?- Specified by:
solutionChangedin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
finalizeSolution
public void finalizeSolution()Description copied from class:FlowGraphNodeAny required cleanup of state after applying transfer function- Overrides:
finalizeSolutionin classFlowGraphNode<DefinedVariablesProblem,DefinedVariableNode>
-
toString
-