Package org.jruby.ir.interpreter
Class FullInterpreterContext
java.lang.Object
org.jruby.ir.interpreter.InterpreterContext
org.jruby.ir.interpreter.FullInterpreterContext
Created by enebo on 2/27/15.
-
Field Summary
FieldsModifier and TypeFieldDescriptionintprivate final CFGprivate Map<String,DataFlowProblem> Map of name -> dataflow problemprivate Set<LocalVariable>Local variables defined in this scopeprivate final List<CompilerPass>What passes have been run on this scope?intintprivate BasicBlock[]private Set<LocalVariable>Local variables used in this scopeFields inherited from class org.jruby.ir.interpreter.InterpreterContext
dynamicScopeEliminated, hasExplicitCallProtocol, instructions, instructionsCallback, rescueIPCs, temporaryVariableCount -
Constructor Summary
ConstructorsConstructorDescriptionFullInterpreterContext(IRScope scope, Instr[] instructions, int temporaryVariableCount, EnumSet<IRFlags> flags) FullInterpreterContext(IRScope scope, CFG cfg, BasicBlock[] linearizedBBList, int temporaryVariableCount, EnumSet<IRFlags> flags) -
Method Summary
Modifier and TypeMethodDescriptionbooleanprivate CFGvoidbooleanintdetermineRPC(int ipc) findBasicBlockOf(long callsiteId) voidWe plan on running this in full interpreted mode.getCFG()getNewUnboxedVariable(Class type) Get all variables referenced by this scope.booleanprotected voidbooleanbooleanbooleanvoidbooleanMethods inherited from class org.jruby.ir.interpreter.InterpreterContext
allocateTemporaryBooleanVariables, allocateTemporaryFixnumVariables, allocateTemporaryFloatVariables, allocateTemporaryVariables, getEngine, getFileName, getFlags, getInstructions, getLine, getName, getRequiredArgsCount, getRescueIPCs, getScope, getStaticScope, getTemporaryVariableCount, isDynamicScopeEliminated, newDynamicScope, popDynScope, pushNewDynScope, receivesKeywordArguments, reuseParentDynScope, setDynamicScopeEliminated, setExplicitCallProtocol, setReuseParentDynScope, toString
-
Field Details
-
cfg
-
linearizedBBList
-
dataFlowProblems
Map of name -> dataflow problem -
executedPasses
What passes have been run on this scope? -
definedLocalVars
Local variables defined in this scope -
usedLocalVars
Local variables used in this scope -
floatVariableIndex
public int floatVariableIndex -
fixnumVariableIndex
public int fixnumVariableIndex -
booleanVariableIndex
public int booleanVariableIndex
-
-
Constructor Details
-
FullInterpreterContext
public FullInterpreterContext(IRScope scope, CFG cfg, BasicBlock[] linearizedBBList, int temporaryVariableCount, EnumSet<IRFlags> flags) -
FullInterpreterContext
-
-
Method Details
-
linearizeBasicBlocks
-
buildCFG
-
hasExplicitCallProtocol
public boolean hasExplicitCallProtocol()- Overrides:
hasExplicitCallProtocolin classInterpreterContext
-
needsBinding
public boolean needsBinding() -
generateInstructionsForInterpretation
public void generateInstructionsForInterpretation()We plan on running this in full interpreted mode. This will fixup ipc, rpc, and generate instr list -
getCFG
- Overrides:
getCFGin classInterpreterContext
-
computeScopeFlagsFromInstructions
public void computeScopeFlagsFromInstructions()- Overrides:
computeScopeFlagsFromInstructionsin classInterpreterContext
-
getDataFlowProblems
-
getExecutedPasses
-
getLinearizedBBList
-
toStringInstrs
- Overrides:
toStringInstrsin classInterpreterContext
-
toStringLinearized
-
duplicate
-
determineRPC
public int determineRPC(int ipc) -
findBasicBlockOf
-
getUsedLocalVariables
Get all variables referenced by this scope. -
setUpUseDefLocalVarMaps
public void setUpUseDefLocalVarMaps() -
usesLocalVariable
-
definesLocalVariable
-
initialize
protected void initialize()- Overrides:
initializein classInterpreterContext
-
createTemporaryVariable
-
getNewTemporaryVariableFor
-
getNewUnboxedVariable
-
getNewTemporaryVariable
-
needsFrame
public boolean needsFrame() -
bindingHasEscaped
public boolean bindingHasEscaped() -
needsOnlyBackref
public boolean needsOnlyBackref()
-