Package org.jruby.ir.instructions
Class LoadLocalVarInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.ResultBaseInstr
org.jruby.ir.instructions.OneOperandResultBaseInstr
org.jruby.ir.instructions.LoadLocalVarInstr
- All Implemented Interfaces:
FixedArityInstr
,ResultInstr
-
Field Summary
Fields inherited from class org.jruby.ir.instructions.ResultBaseInstr
result
Fields inherited from class org.jruby.ir.instructions.Instr
EMPTY_OPERANDS
-
Constructor Summary
ConstructorsConstructorDescriptionLoadLocalVarInstr
(TemporaryLocalVariable result, LocalVariable lvar, IRScope scope) -
Method Summary
Modifier and TypeMethodDescriptionClone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope).static LoadLocalVarInstr
void
void
This is the variable that is being loaded from the scope.getScope()
interpret
(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) protected void
simplifyOperands
(Map<Operand, Operand> valueMap, boolean force) getLocalVar is saved for location and should not be simplified so we still know its original depth/offset.String[]
void
Methods inherited from class org.jruby.ir.instructions.OneOperandResultBaseInstr
getOperand1, getOperands, setOperand, setOperand1
Methods inherited from class org.jruby.ir.instructions.ResultBaseInstr
getResult, updateResult
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, computeScopeFlags, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyInstr, simplifyOperands, toString, transfersControl
-
Constructor Details
-
LoadLocalVarInstr
-
-
Method Details
-
getLocalVar
This is the variable that is being loaded from the scope. This variable doesn't participate in the computation itself. We just use it as a proxy for its (a) name (b) offset (c) scope-depth. -
getScope
-
simplifyOperands
getLocalVar is saved for location and should not be simplified so we still know its original depth/offset.- Overrides:
simplifyOperands
in classInstr
-
decrementLVarScopeDepth
public void decrementLVarScopeDepth() -
toStringNonOperandArgs
- Overrides:
toStringNonOperandArgs
in classInstr
-
clone
Description copied from class:Instr
Clone the instruction for use in an inlining context (either when a scope is inlined into another scope, or when a block has to be cloned because its associated call belongs to an inlined scope). This might renaming variables and labels to eliminate naming conflicts. The implementation might vary on the cloning mode. -
encode
- Overrides:
encode
in classOneOperandResultBaseInstr
-
decode
-
interpret
public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) -
visit
-