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 TypeFieldDescriptionint
int
int
Fields 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 TypeMethodDescriptionboolean
void
boolean
int
determineRPC
(int ipc) findBasicBlockOf
(long callsiteId) void
We plan on running this in full interpreted mode.getCFG()
getNewUnboxedVariable
(Class type) Get all variables referenced by this scope.boolean
protected void
boolean
boolean
boolean
void
boolean
Methods 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:
hasExplicitCallProtocol
in 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:
getCFG
in classInterpreterContext
-
computeScopeFlagsFromInstructions
public void computeScopeFlagsFromInstructions()- Overrides:
computeScopeFlagsFromInstructions
in classInterpreterContext
-
getDataFlowProblems
-
getExecutedPasses
-
getLinearizedBBList
-
toStringInstrs
- Overrides:
toStringInstrs
in 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:
initialize
in classInterpreterContext
-
createTemporaryVariable
-
getNewTemporaryVariableFor
-
getNewUnboxedVariable
-
getNewTemporaryVariable
-
needsFrame
public boolean needsFrame() -
bindingHasEscaped
public boolean bindingHasEscaped() -
needsOnlyBackref
public boolean needsOnlyBackref()
-