Package org.jruby.ir.dataflow.analyses
Class UnboxableOpsAnalysisNode
java.lang.Object
org.jruby.ir.dataflow.FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
public class UnboxableOpsAnalysisNode
extends FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
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 instructionvoidboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state, Class reqdType, Map<Variable, TemporaryLocalVariable> unboxMap, Variable v, List<Instr> newInstrs) voidBuilds the data-flow variables (or facts) for a particular instruction.voidcompute_MEET(org.jruby.dirgra.Edge e, UnboxableOpsAnalysisNode 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 functionvoidinit()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()voidunbox(Map<Variable, TemporaryLocalVariable> unboxMap) voidunboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state, Class reqdType, Map<Variable, TemporaryLocalVariable> unboxMap, Variable v, List<Instr> newInstrs) Methods inherited from class org.jruby.ir.dataflow.FlowGraphNode
buildDataFlowVars, computeDataFlowInfo, computeDataFlowInfoBackward, computeDataFlowInfoForward, getBB, getCFG, getExceptionTargetNode, hasExceptionsRescued
-
Constructor Details
-
UnboxableOpsAnalysisNode
-
-
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<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
buildDataFlowVars
Description copied from class:FlowGraphNodeBuilds the data-flow variables (or facts) for a particular instruction.- Specified by:
buildDataFlowVarsin classFlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
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<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
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<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
initSolution
public void initSolution()Description copied from class:FlowGraphNodeAny setting up of state/initialization before applying transfer function- Overrides:
initSolutionin classFlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
applyTransferFunction
Description copied from class:FlowGraphNodeApply transfer function to the instruction- Specified by:
applyTransferFunctionin classFlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
solutionChanged
public boolean solutionChanged()Description copied from class:FlowGraphNodeDid dataflow solution for this node change from last time?- Specified by:
solutionChangedin classFlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
finalizeSolution
public void finalizeSolution()Description copied from class:FlowGraphNodeAny required cleanup of state after applying transfer function- Overrides:
finalizeSolutionin classFlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
-
boxVar
-
unboxVar
-
unbox
-
toString
-