Package org.jruby.ir.instructions
Class LoadBlockImplicitClosureInstr
java.lang.Object
org.jruby.ir.instructions.Instr
org.jruby.ir.instructions.ResultBaseInstr
org.jruby.ir.instructions.NoOperandResultBaseInstr
org.jruby.ir.instructions.LoadBlockImplicitClosureInstr
- All Implemented Interfaces:
FixedArityInstr
,ResultInstr
public class LoadBlockImplicitClosureInstr
extends NoOperandResultBaseInstr
implements FixedArityInstr
Load the block passed to this scope via the on-heap frame (or similar cross-call structure).
This is typically used to access the "yieldable" target for blocks and evals. Only used
when within a scope that will use an on-heap frame.
-
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
Constructors -
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).boolean
computeScopeFlags
(IRScope scope, EnumSet<IRFlags> flags) Does this instruction do anything the scope is interested in?void
Methods inherited from class org.jruby.ir.instructions.NoOperandResultBaseInstr
getOperands, setOperand
Methods inherited from class org.jruby.ir.instructions.ResultBaseInstr
encode, getResult, updateResult
Methods inherited from class org.jruby.ir.instructions.Instr
canBeDeletedFromScope, canRaiseException, cloneOperands, dumpableFields, getOperation, getUsedVariables, hasSideEffects, interpret, interpretAndGetNewIPC, isDead, isDeletable, markDead, renameVars, simplifyInstr, simplifyOperands, simplifyOperands, toString, toStringNonOperandArgs, transfersControl
-
Constructor Details
-
LoadBlockImplicitClosureInstr
-
-
Method Details
-
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. -
decode
-
computeScopeFlags
Description copied from class:Instr
Does this instruction do anything the scope is interested in?- Overrides:
computeScopeFlags
in classInstr
- Returns:
- true if it modified the scope or set any flags.
-
visit
-