jruby/docs BETA
Navigation
org.jruby.ir.instructions 146
C AliasInstr
I ArgReceiver
C ArrayDerefInstr
C AsFixnumInstr
C AsStringInstr
C AttrAssignInstr
C BFalseInstr
C BIntInstr
C BNEInstr
C BNilInstr
C BSwitchInstr
C BTrueInstr
C BUndefInstr
C BlockGivenCallInstr
C BlockGivenInstr
C BranchInstr
C BreakInstr
C BuildBackrefInstr
C BuildCompoundArrayInstr
C BuildCompoundStringInstr
C BuildDynRegExpInstr
C BuildLambdaInstr
C BuildNthRefInstr
C BuildRangeInstr
C BuildSplatInstr
C CallBase
C CallInstr
C CheckArgsArrayArityInstr
C CheckArityInstr
C CheckForLJEInstr
C ClassSuperInstr
I ClosureAcceptingInstr
C CopyInstr
C DebugOutputInstr
C DefineClassInstr
C DefineClassMethodInstr
C DefineInstanceMethodInstr
C DefineMetaClassInstr
C DefineModuleInstr
C EQQInstr
C ExceptionRegionEndMarkerInstr
C ExceptionRegionStartMarkerInstr
I FixedArityInstr
C FrameNameCallInstr
C GVarAliasInstr
C GetClassVarContainerModuleInstr
C GetClassVariableInstr
C GetEncodingInstr
C GetFieldInstr
C GetGlobalVariableInstr
C GetInstr
C InheritanceSearchConstInstr
C InlinedLineNumberInstr
C InstanceSuperInstr
C Instr
C IntegerMathInstr
C JumpInstr
I JumpTargetInstr
C LabelInstr
C LexicalSearchConstInstr
C LineNumberInstr
C LoadBlockImplicitClosureInstr
C LoadFrameClosureInstr
C LoadImplicitClosureInstr
C LoadLocalVarInstr
C MatchInstr
C ModuleVersionGuardInstr
C MultiBranchInstr
C MultipleAsgnBase
C NOperandInstr
C NOperandResultBaseInstr
C NoOperandInstr
C NoOperandResultBaseInstr
C NoResultCallInstr
C NonlocalReturnInstr
C NopInstr
C OneOperandBranchInstr
C OneOperandInstr
C OneOperandResultBaseInstr
C OptArgMultipleAsgnInstr
C PopBackrefFrameInstr
C PopBindingInstr
C PopBlockFrameInstr
C PopMethodFrameInstr
C PrepareBlockArgsInstr
C PrepareFixedBlockArgsInstr
C PrepareNoBlockArgsInstr
C PrepareSingleBlockArgInstr
C ProcessModuleBodyInstr
C PushBackrefFrameInstr
C PushBlockBindingInstr
C PushBlockFrameInstr
C PushMethodBindingInstr
C PushMethodFrameInstr
C PutClassVariableInstr
C PutConstInstr
C PutFieldInstr
C PutGlobalVarInstr
C PutInstr
C RaiseArgumentErrorInstr
C RaiseRequiredKeywordArgumentError
C ReceiveArgBase
C ReceiveExceptionBase
C ReceiveIndexedArgBase
C ReceiveJRubyExceptionInstr
C ReceiveKeywordArgInstr
C ReceiveKeywordRestArgInstr
C ReceiveKeywordsInstr
C ReceiveOptArgInstr
C ReceivePostReqdArgInstr
C ReceivePreReqdArgInstr
C ReceiveRestArgInstr
C ReceiveRubyExceptionInstr
C ReceiveSelfInstr
C RecordEndBlockInstr
C ReifyClosureInstr
C ReqdArgMultipleAsgnInstr
C RescueEQQInstr
C RestArgMultipleAsgnInstr
C RestoreBindingVisibilityInstr
C ResultBaseInstr
I ResultInstr
C ReturnBase
C ReturnInstr
C ReturnOrRethrowSavedExcInstr
C RuntimeHelperCall
C SaveBindingVisibilityInstr
C SearchConstInstr
C SearchModuleForConstInstr
C SetCapturedVarInstr
I Site
C StoreLocalVarInstr
E SuperInstrType
C ThreadPollInstr
C ThrowExceptionInstr
C ToAryInstr
C ToggleBacktraceInstr
C TraceInstr
C TwoOperandBranchInstr
C TwoOperandInstr
C TwoOperandResultBaseInstr
C UndefMethodInstr
C UnresolvedSuperInstr
C UpdateBlockExecutionStateInstr
C YieldInstr
C ZSuperInstr
BuildLambdaInstr — members 9+
C new(result, lambda_body)
M clone(ii) Instr
M closure_arg() Operand
M compute_scope_flags(scope, flags) boolean
M decode(d) BuildLambdaInstr
M has_literal_closure?() boolean
M interpret(context, curr_scope, curr_dyn_scope, self, temp) Object
M lambda_body() WrappedIRClosure
C visit(visitor)
from Instr
F EMPTY_OPERANDS Operand[]
M can_be_deleted_from_scope(fic) boolean
M can_raise_exception() boolean
M clone_operands(info) Operand[]
M dead?() boolean
M deletable?() boolean
M dumpable_fields() Field[]
M has_side_effects?() boolean
M interpret_and_get_new_ipc(context, curr_dyn_scope, curr_scope, self, temp, ipc) int
C mark_dead()
M operation() Operation
C rename_vars(rename_map)
M simplify_instr(manager) Instr
M simplify_operands(scope, value_map) Operand
M to_string() String
M to_string_non_operand_args() String[]
M transfers_control() boolean
M used_variables() Variable>
from ResultBaseInstr
M result() Variable
C update_result(result)
from OneOperandResultBaseInstr
C encode(e)
M operand1() Operand
C operand1=(operand1)
M operands() Operand[]
C set_operand(i, operand)

org.jruby.ir.instructions.BuildLambdaInstr

class extends OneOperandResultBaseInstr implements FixedArityInstr implements ClosureAcceptingInstr 9 members

Constructors

new

new ( Variable result, WrappedIRClosure lambda_body )
Java: <init>(org.jruby.ir.operands.Variable result, org.jruby.ir.operands.WrappedIRClosure lambdaBody)

The position for the block

Class Methods

decode

BuildLambdaInstr decode ( IRReaderDecoder d )
Java: decode(org.jruby.ir.persistence.IRReaderDecoder d)

Instance Methods

clone

Instr clone ( CloneInfo ii )
Java: clone(org.jruby.ir.transformations.inlining.CloneInfo ii)

closure_arg

Operand closure_arg ( )
Java: getClosureArg() · also: get_closure_arg

compute_scope_flags

boolean compute_scope_flags ( IRScope scope, EnumSet<IRFlags> flags )
Java: computeScopeFlags(org.jruby.ir.IRScope scope, EnumSet<org.jruby.ir.IRFlags> flags)

has_literal_closure?

boolean has_literal_closure? ( )
Java: hasLiteralClosure() · also: has_literal_closure

interpret

Object interpret ( ThreadContext context, StaticScope curr_scope, DynamicScope curr_dyn_scope, IRubyObject self, Object[] temp )
Java: interpret(org.jruby.runtime.ThreadContext context, org.jruby.parser.StaticScope currScope, org.jruby.runtime.DynamicScope currDynScope, org.jruby.runtime.builtin.IRubyObject self, Object[] temp)

lambda_body

WrappedIRClosure lambda_body ( )
Java: getLambdaBody() · also: get_lambda_body

visit

visit ( IRVisitor visitor )
Java: visit(org.jruby.ir.IRVisitor visitor)

Inherited

from Instr

fieldtypenote
EMPTY_OPERANDS Operand[]

can_be_deleted_from_scope

boolean can_be_deleted_from_scope ( FullInterpreterContext fic )
Java: canBeDeletedFromScope(org.jruby.ir.interpreter.FullInterpreterContext fic)

can_raise_exception

boolean can_raise_exception ( )
Java: canRaiseException()

clone_operands

Operand[] clone_operands ( CloneInfo info )
Java: cloneOperands(org.jruby.ir.transformations.inlining.CloneInfo info)

dead?

boolean dead? ( )
Java: isDead() · also: is_dead

deletable?

boolean deletable? ( )
Java: isDeletable() · also: is_deletable

Can this instruction be deleted? LVA will preserve instructions based on whether operands (variables) are living but even if there are no living variables then the instruction itself may not be able to be removed during DCE for other reasons (like if it unconditionally has a side-effect)

dumpable_fields

Field[] dumpable_fields ( )
Java: dumpableFields()

has_side_effects?

boolean has_side_effects? ( )
Java: hasSideEffects() · also: has_side_effects

interpret_and_get_new_ipc

int interpret_and_get_new_ipc ( ThreadContext context, DynamicScope curr_dyn_scope, StaticScope curr_scope, IRubyObject self, Object[] temp, int ipc )
Java: interpretAndGetNewIPC(org.jruby.runtime.ThreadContext context, org.jruby.runtime.DynamicScope currDynScope, org.jruby.parser.StaticScope currScope, org.jruby.runtime.builtin.IRubyObject self, Object[] temp, int ipc)

mark_dead

mark_dead ( )
Java: markDead()

operation

Operation operation ( )
Java: getOperation() · also: get_operation

rename_vars

rename_vars ( Map<Operand,Operand> rename_map )
Java: renameVars(Map<org.jruby.ir.operands.Operand,org.jruby.ir.operands.Operand> renameMap)

simplify_instr

Instr simplify_instr ( IRManager manager )
Java: simplifyInstr(org.jruby.ir.IRManager manager)

simplify_operands

Operand simplify_operands ( IRScope scope, Map<Operand,Operand> value_map )
Java: simplifyOperands(org.jruby.ir.IRScope scope, Map<org.jruby.ir.operands.Operand,org.jruby.ir.operands.Operand> valueMap)

This method takes as input a map of operands to their values, and outputs the result of this instruction. If the value map provides a value for any of the instruction's operands the expectation is that the operand will be replaced with the simplified value. It is not required that it do so -- code correctness is not compromised by failure to simplify.

nametypedescription
scopeorg.jruby.ir.IRScopewhere this instr exists
value_mapMap<org.jruby.ir.operands.Operand,org.jruby.ir.operands.Operand>Mapping from operands to their simplified values

Returns: simplified result / output of this instruction

to_string

String to_string ( )
Java: toString()

Instructions are meant to be in a machine-readable format so offline tooling can parse the debugging output. The format is: (result_op '=')? instr '(' (operand ',' )* operand? ';' (extra_arg ',')* extra_arg? ')' extra_arg can either be plain value or in a key: value format.

Returns: a String

to_string_non_operand_args

String[] to_string_non_operand_args ( )
Java: toStringNonOperandArgs()

transfers_control

boolean transfers_control ( )
Java: transfersControl()

used_variables

List<Variable> used_variables ( )
Java: getUsedVariables() · also: get_used_variables

from ResultBaseInstr

result

Variable result ( )
Java: getResult() · also: get_result

update_result

update_result ( Variable result )
Java: updateResult(org.jruby.ir.operands.Variable result)

from OneOperandResultBaseInstr

encode

encode ( IRWriterEncoder e )
Java: encode(org.jruby.ir.persistence.IRWriterEncoder e)

operand1

Operand operand1 ( )
Java: getOperand1() · also: get_operand1

operand1=

operand1= ( Operand operand1 )
Java: setOperand1(org.jruby.ir.operands.Operand operand1) · also: set_operand1

operands

Operand[] operands ( )
Java: getOperands() · also: get_operands

set_operand

set_operand ( int i, Operand operand )
Java: setOperand(int i, org.jruby.ir.operands.Operand operand)