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 TypeFieldDescriptionintintintFields 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 TypeMethodDescriptionbooleanvoidbooleanintdetermineRPC(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, isEND, isRuby2Keywords, newDynamicScope, popDynScope, pushNewDynScope, receivesKeywordArguments, reuseParentDynScope, setDynamicScopeEliminated, setExplicitCallProtocol, setReuseParentDynScope, toString
-
Field Details
-
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
-
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()
-