public class UnboxableOpsAnalysisNode extends FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
basicBlock, problem
Constructor and Description |
---|
UnboxableOpsAnalysisNode(UnboxableOpsAnalysisProblem prob,
BasicBlock n) |
Modifier and Type | Method and Description |
---|---|
void |
applyPreMeetHandler()
Initialize this data flow node to compute the new solution
This is done before iteratively calling the MEET operator.
|
void |
applyTransferFunction(Instr i)
Apply transfer function to the instruction
|
void |
boxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state,
Class reqdType,
Map<Variable,TemporaryLocalVariable> unboxMap,
Variable v,
List<Instr> newInstrs) |
void |
buildDataFlowVars(Instr i)
Builds the data-flow variables (or facts) for a particular instruction.
|
void |
compute_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.
|
void |
finalizeSolution()
Any required cleanup of state after applying transfer function
|
void |
init()
Initialize this data flow node for solving the current problem
This is done after building dataflow variables for the problem.
|
void |
initSolution()
Any setting up of state/initialization before applying transfer function
|
boolean |
solutionChanged()
Did dataflow solution for this node change from last time?
|
String |
toString() |
void |
unbox(Map<Variable,TemporaryLocalVariable> unboxMap) |
void |
unboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state,
Class reqdType,
Map<Variable,TemporaryLocalVariable> unboxMap,
Variable v,
List<Instr> newInstrs) |
buildDataFlowVars, computeDataFlowInfo, computeDataFlowInfoBackward, computeDataFlowInfoForward, getBB, getCFG, getExceptionTargetNode, hasExceptionsRescued
public UnboxableOpsAnalysisNode(UnboxableOpsAnalysisProblem prob, BasicBlock n)
public void init()
FlowGraphNode
init
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void buildDataFlowVars(Instr i)
FlowGraphNode
buildDataFlowVars
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void applyPreMeetHandler()
FlowGraphNode
applyPreMeetHandler
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void compute_MEET(org.jruby.dirgra.Edge e, UnboxableOpsAnalysisNode pred)
FlowGraphNode
compute_MEET
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void initSolution()
FlowGraphNode
initSolution
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void applyTransferFunction(Instr i)
FlowGraphNode
applyTransferFunction
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public boolean solutionChanged()
FlowGraphNode
solutionChanged
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void finalizeSolution()
FlowGraphNode
finalizeSolution
in class FlowGraphNode<UnboxableOpsAnalysisProblem,UnboxableOpsAnalysisNode>
public void boxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state, Class reqdType, Map<Variable,TemporaryLocalVariable> unboxMap, Variable v, List<Instr> newInstrs)
public void unboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.UnboxState state, Class reqdType, Map<Variable,TemporaryLocalVariable> unboxMap, Variable v, List<Instr> newInstrs)
public void unbox(Map<Variable,TemporaryLocalVariable> unboxMap)
Copyright © 2001-2015 JRuby. All Rights Reserved.