Package org.jruby.ir.dataflow.analyses
Class LoadLocalVarPlacementNode
java.lang.Object
org.jruby.ir.dataflow.FlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode
public class LoadLocalVarPlacementNode
extends FlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) Set<LocalVariable>(package private) Set<LocalVariable>(package private) Set<LocalVariable>Fields inherited from class org.jruby.ir.dataflow.FlowGraphNode
basicBlock, problem -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidInitialize 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, LoadLocalVarPlacementNode 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 functionprivate TemporaryLocalVariablegetLocalVarReplacement(LocalVariable v, FullInterpreterContext fic, Map<Operand, Operand> varRenameMap) 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
-
Field Details
-
inRequiredLoads
Set<LocalVariable> inRequiredLoads -
outRequiredLoads
Set<LocalVariable> outRequiredLoads -
reqdLoads
Set<LocalVariable> reqdLoads
-
-
Constructor Details
-
LoadLocalVarPlacementNode
-
-
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<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
buildDataFlowVars
Description copied from class:FlowGraphNodeBuilds the data-flow variables (or facts) for a particular instruction.- Specified by:
buildDataFlowVarsin classFlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
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<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
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<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
initSolution
public void initSolution()Description copied from class:FlowGraphNodeAny setting up of state/initialization before applying transfer function- Overrides:
initSolutionin classFlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
applyTransferFunction
Description copied from class:FlowGraphNodeApply transfer function to the instruction- Specified by:
applyTransferFunctionin classFlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
solutionChanged
public boolean solutionChanged()Description copied from class:FlowGraphNodeDid dataflow solution for this node change from last time?- Specified by:
solutionChangedin classFlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
finalizeSolution
public void finalizeSolution()Description copied from class:FlowGraphNodeAny required cleanup of state after applying transfer function- Overrides:
finalizeSolutionin classFlowGraphNode<LoadLocalVarPlacementProblem,LoadLocalVarPlacementNode>
-
toString
-
getLocalVarReplacement
private TemporaryLocalVariable getLocalVarReplacement(LocalVariable v, FullInterpreterContext fic, Map<Operand, Operand> varRenameMap) -
addLoads
-