canBeDeletedFromScope(org.jruby.ir.interpreter.FullInterpreterContext fic)interpret(org.jruby.runtime.ThreadContext context, org.jruby.parser.StaticScope currScope, org.jruby.runtime.DynamicScope currDynScope, org.jruby.runtime.builtin.IRubyObject self, Object[] temp)| field | type | note |
|---|---|---|
| EMPTY_OPERANDS | Operand[] |
canRaiseException()computeScopeFlags(org.jruby.ir.IRScope scope, EnumSet<org.jruby.ir.IRFlags> flags)Does this instruction do anything the scope is interested in?
Returns: true if it modified the scope or set any flags.
isDead() · also: is_deadisDeletable() · also: is_deletableCan 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)
dumpableFields()hasSideEffects() · also: has_side_effectsinterpretAndGetNewIPC(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)markDead()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
toStringNonOperandArgs()transfersControl()setOperand1(org.jruby.ir.operands.Operand operand1) · also: set_operand1setOperand(int i, org.jruby.ir.operands.Operand operand)