Top Fields Constructors Methods
org.jruby.ir

public final Enum Operation

Additional top-level class in compilation unit: OpFlags.

extends Enum<Operation>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final Operation
ALIAS

defines

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
BINDING_LOAD

JRuby-impl instructions

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
CALL

calls

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
EQQ

Ruby operators: should all these be calls?

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
private final int
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
GET_CVAR

SSS FIXME: Document what causes this instr to raise an exception

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
GVAR_ALIAS

SSS FIXME: This can throw an exception only in tracing mode Should override canRaiseException in GVarAliasInstr to implement this maybe

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
JUMP

control-flow

public static final Operation
LABEL

marker instructions used to flag/mark places in the code and dont actually get executed

public static final Operation
public static final Operation
LEXICAL_SEARCH_CONST

constant operations

public static final Operation
LINE_NUM

debugging ops

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
MODULE_GUARD

Other JRuby internal primitives for optimizations

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public final OpClass
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
PUT_GLOBAL_VAR

value stores

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
RECV_SELF

argument receive in methods and blocks

public static final Operation
REIFY_CLOSURE

Instruction to reify an passed-in block to a Proc for def foo(&b)

public static final Operation
public static final Operation
public static final Operation
public static final Operation
RETURN

returns -- returns unwind stack, etc.

public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
public static final Operation
private static final Operation[]
public static final Operation
public static final Operation

Constructor Summary

AccessConstructor and Description
private
Operation(int flags)

Method Summary

Modifier and TypeMethod and Description
public boolean
public boolean
endsBasicBlock()

The last instruction in the BB which will exit the BB.

public static Operation
fromOrdinal(int value)

public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public String
toString()

Overrides java.lang.Enum.toString.

Returns the name of this enum constant, as contained in the declaration.

public boolean
public static Operation
public static Operation[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinalvalueOf

Field Detail

ALIASback to summary
public static final Operation ALIAS

defines

ARRAY_DEREFback to summary
public static final Operation ARRAY_DEREF
AS_FIXNUMback to summary
public static final Operation AS_FIXNUM
AS_STRINGback to summary
public static final Operation AS_STRING
ATTR_ASSIGNback to summary
public static final Operation ATTR_ASSIGN
B_FALSEback to summary
public static final Operation B_FALSE
B_INTback to summary
public static final Operation B_INT
B_NILback to summary
public static final Operation B_NIL
B_SWITCHback to summary
public static final Operation B_SWITCH
B_TRUEback to summary
public static final Operation B_TRUE
B_UNDEFback to summary
public static final Operation B_UNDEF
BINDING_LOADback to summary
public static final Operation BINDING_LOAD

JRuby-impl instructions

BINDING_STOREback to summary
public static final Operation BINDING_STORE
BLOCK_GIVENback to summary
public static final Operation BLOCK_GIVEN
BLOCK_GIVEN_CALLback to summary
public static final Operation BLOCK_GIVEN_CALL
BNEback to summary
public static final Operation BNE
BOX_BOOLEANback to summary
public static final Operation BOX_BOOLEAN
BOX_FIXNUMback to summary
public static final Operation BOX_FIXNUM
BOX_FLOATback to summary
public static final Operation BOX_FLOAT
BREAKback to summary
public static final Operation BREAK
BUILD_BACKREFback to summary
public static final Operation BUILD_BACKREF
BUILD_COMPOUND_ARRAYback to summary
public static final Operation BUILD_COMPOUND_ARRAY
BUILD_COMPOUND_STRINGback to summary
public static final Operation BUILD_COMPOUND_STRING
BUILD_DREGEXPback to summary
public static final Operation BUILD_DREGEXP
BUILD_RANGEback to summary
public static final Operation BUILD_RANGE
BUILD_SPLATback to summary
public static final Operation BUILD_SPLAT
CALLback to summary
public static final Operation CALL

calls

CALL_0Oback to summary
public static final Operation CALL_0O
CALL_1Dback to summary
public static final Operation CALL_1D
CALL_1Fback to summary
public static final Operation CALL_1F
CALL_1Oback to summary
public static final Operation CALL_1O
CALL_1OBback to summary
public static final Operation CALL_1OB
CALL_2Oback to summary
public static final Operation CALL_2O
CHECK_ARGS_ARRAY_ARITYback to summary
public static final Operation CHECK_ARGS_ARRAY_ARITY
CHECK_ARITYback to summary
public static final Operation CHECK_ARITY
CHECK_FOR_LJEback to summary
public static final Operation CHECK_FOR_LJE
CLASS_SUPERback to summary
public static final Operation CLASS_SUPER
CLASS_VAR_MODULEback to summary
public static final Operation CLASS_VAR_MODULE
COPYback to summary
public static final Operation COPY
COVERAGEback to summary
public static final Operation COVERAGE
DEF_CLASSback to summary
public static final Operation DEF_CLASS
DEF_CLASS_METHback to summary
public static final Operation DEF_CLASS_METH
DEF_INST_METHback to summary
public static final Operation DEF_INST_METH
DEF_META_CLASSback to summary
public static final Operation DEF_META_CLASS
DEF_MODULEback to summary
public static final Operation DEF_MODULE
EQQback to summary
public static final Operation EQQ

Ruby operators: should all these be calls? Implementing instrs don't inherit from CallBase.java

EXC_REGION_ENDback to summary
public static final Operation EXC_REGION_END
EXC_REGION_STARTback to summary
public static final Operation EXC_REGION_START
FADDback to summary
public static final Operation FADD
FDIVback to summary
public static final Operation FDIV
FEQback to summary
public static final Operation FEQ
FGTback to summary
public static final Operation FGT
flagsback to summary
private final int flags
FLTback to summary
public static final Operation FLT
FMULback to summary
public static final Operation FMUL
FRAME_NAME_CALLback to summary
public static final Operation FRAME_NAME_CALL
FSUBback to summary
public static final Operation FSUB
GET_CVARback to summary
public static final Operation GET_CVAR

SSS FIXME: Document what causes this instr to raise an exception

GET_ENCODINGback to summary
public static final Operation GET_ENCODING
GET_ERROR_INFOback to summary
public static final Operation GET_ERROR_INFO
GET_FIELDback to summary
public static final Operation GET_FIELD
GET_GLOBAL_VARback to summary
public static final Operation GET_GLOBAL_VAR
GVAR_ALIASback to summary
public static final Operation GVAR_ALIAS

SSS FIXME: This can throw an exception only in tracing mode Should override canRaiseException in GVarAliasInstr to implement this maybe

IADDback to summary
public static final Operation IADD
IANDback to summary
public static final Operation IAND
IDIVback to summary
public static final Operation IDIV
IEQback to summary
public static final Operation IEQ
IGTback to summary
public static final Operation IGT
ILTback to summary
public static final Operation ILT
IMULback to summary
public static final Operation IMUL
INHERITANCE_SEARCH_CONSTback to summary
public static final Operation INHERITANCE_SEARCH_CONST
INSTANCE_SUPERback to summary
public static final Operation INSTANCE_SUPER
INT_MATHback to summary
public static final Operation INT_MATH
IORback to summary
public static final Operation IOR
ISHLback to summary
public static final Operation ISHL
ISHRback to summary
public static final Operation ISHR
ISUBback to summary
public static final Operation ISUB
IXORback to summary
public static final Operation IXOR
JUMPback to summary
public static final Operation JUMP

control-flow

LABELback to summary
public static final Operation LABEL

marker instructions used to flag/mark places in the code and dont actually get executed

LAMBDAback to summary
public static final Operation LAMBDA
LEXICAL_SEARCH_CONSTback to summary
public static final Operation LEXICAL_SEARCH_CONST

constant operations

LINE_NUMback to summary
public static final Operation LINE_NUM

debugging ops

LOAD_BLOCK_IMPLICIT_CLOSUREback to summary
public static final Operation LOAD_BLOCK_IMPLICIT_CLOSURE
LOAD_FRAME_CLOSUREback to summary
public static final Operation LOAD_FRAME_CLOSURE
LOAD_IMPLICIT_CLOSUREback to summary
public static final Operation LOAD_IMPLICIT_CLOSURE
MASGN_OPTback to summary
public static final Operation MASGN_OPT
MASGN_REQDback to summary
public static final Operation MASGN_REQD
MASGN_RESTback to summary
public static final Operation MASGN_REST
MATCHback to summary
public static final Operation MATCH
MODULE_GUARDback to summary
public static final Operation MODULE_GUARD

Other JRuby internal primitives for optimizations

NONLOCAL_RETURNback to summary
public static final Operation NONLOCAL_RETURN
NOPback to summary
public static final Operation NOP
NORESULT_CALLback to summary
public static final Operation NORESULT_CALL
NORESULT_CALL_1Oback to summary
public static final Operation NORESULT_CALL_1O
opClassback to summary
public final OpClass opClass
POP_BACKREF_FRAMEback to summary
public static final Operation POP_BACKREF_FRAME
POP_BINDINGback to summary
public static final Operation POP_BINDING
POP_BLOCK_FRAMEback to summary
public static final Operation POP_BLOCK_FRAME
POP_METHOD_FRAMEback to summary
public static final Operation POP_METHOD_FRAME
PREPARE_BLOCK_ARGSback to summary
public static final Operation PREPARE_BLOCK_ARGS
PREPARE_FIXED_BLOCK_ARGSback to summary
public static final Operation PREPARE_FIXED_BLOCK_ARGS
PREPARE_NO_BLOCK_ARGSback to summary
public static final Operation PREPARE_NO_BLOCK_ARGS
PREPARE_SINGLE_BLOCK_ARGback to summary
public static final Operation PREPARE_SINGLE_BLOCK_ARG
PROCESS_MODULE_BODYback to summary
public static final Operation PROCESS_MODULE_BODY
PUSH_BACKREF_FRAMEback to summary
public static final Operation PUSH_BACKREF_FRAME
PUSH_BLOCK_BINDINGback to summary
public static final Operation PUSH_BLOCK_BINDING
PUSH_BLOCK_FRAMEback to summary
public static final Operation PUSH_BLOCK_FRAME
PUSH_METHOD_BINDINGback to summary
public static final Operation PUSH_METHOD_BINDING
PUSH_METHOD_FRAMEback to summary
public static final Operation PUSH_METHOD_FRAME
PUT_CONSTback to summary
public static final Operation PUT_CONST
PUT_CVARback to summary
public static final Operation PUT_CVAR
PUT_FIELDback to summary
public static final Operation PUT_FIELD
PUT_GLOBAL_VARback to summary
public static final Operation PUT_GLOBAL_VAR

value stores

RAISE_ARGUMENT_ERRORback to summary
public static final Operation RAISE_ARGUMENT_ERROR
RAISE_REQUIRED_KEYWORD_ARGUMENT_ERRORback to summary
public static final Operation RAISE_REQUIRED_KEYWORD_ARGUMENT_ERROR
RECORD_END_BLOCKback to summary
public static final Operation RECORD_END_BLOCK
RECV_JRUBY_EXCback to summary
public static final Operation RECV_JRUBY_EXC
RECV_KWback to summary
public static final Operation RECV_KW
RECV_KW_ARGback to summary
public static final Operation RECV_KW_ARG
RECV_KW_REST_ARGback to summary
public static final Operation RECV_KW_REST_ARG
RECV_OPT_ARGback to summary
public static final Operation RECV_OPT_ARG
RECV_POST_REQD_ARGback to summary
public static final Operation RECV_POST_REQD_ARG
RECV_PRE_REQD_ARGback to summary
public static final Operation RECV_PRE_REQD_ARG
RECV_REST_ARGback to summary
public static final Operation RECV_REST_ARG
RECV_RUBY_EXCback to summary
public static final Operation RECV_RUBY_EXC
RECV_SELFback to summary
public static final Operation RECV_SELF

argument receive in methods and blocks

REIFY_CLOSUREback to summary
public static final Operation REIFY_CLOSURE

Instruction to reify an passed-in block to a Proc for def foo(&b)

RESCUE_EQQback to summary
public static final Operation RESCUE_EQQ
RESTORE_BINDING_VIZback to summary
public static final Operation RESTORE_BINDING_VIZ
RESTORE_ERROR_INFOback to summary
public static final Operation RESTORE_ERROR_INFO
RETURNback to summary
public static final Operation RETURN

returns -- returns unwind stack, etc.

RETURN_OR_RETHROW_SAVED_EXCback to summary
public static final Operation RETURN_OR_RETHROW_SAVED_EXC
RUNTIME_HELPERback to summary
public static final Operation RUNTIME_HELPER
SAVE_BINDING_VIZback to summary
public static final Operation SAVE_BINDING_VIZ
SEARCH_CONSTback to summary
public static final Operation SEARCH_CONST
SEARCH_MODULE_FOR_CONSTback to summary
public static final Operation SEARCH_MODULE_FOR_CONST
SET_CAPTURED_VARback to summary
public static final Operation SET_CAPTURED_VAR
THREAD_POLLback to summary
public static final Operation THREAD_POLL
THROWback to summary
public static final Operation THROW
TO_ARYback to summary
public static final Operation TO_ARY
TOGGLE_BACKTRACEback to summary
public static final Operation TOGGLE_BACKTRACE
TRACEback to summary
public static final Operation TRACE
UNBOX_BOOLEANback to summary
public static final Operation UNBOX_BOOLEAN
UNBOX_FIXNUMback to summary
public static final Operation UNBOX_FIXNUM
UNBOX_FLOATback to summary
public static final Operation UNBOX_FLOAT
UNDEF_METHODback to summary
public static final Operation UNDEF_METHOD
UNRESOLVED_SUPERback to summary
public static final Operation UNRESOLVED_SUPER
UPDATE_BLOCK_STATEback to summary
public static final Operation UPDATE_BLOCK_STATE
VALUESback to summary
private static final Operation[] VALUES
YIELDback to summary
public static final Operation YIELD
ZSUPERback to summary
public static final Operation ZSUPER

Constructor Detail

Operationback to summary
private Operation(int flags)

Method Detail

canRaiseExceptionback to summary
public boolean canRaiseException()
endsBasicBlockback to summary
public boolean endsBasicBlock()

The last instruction in the BB which will exit the BB.

Note

This also means any instructions past this point in that BB are unreachable.

fromOrdinalback to summary
public static Operation fromOrdinal(int value)
hasSideEffectsback to summary
public boolean hasSideEffects()
inlineUnfriendlyback to summary
public boolean inlineUnfriendly()
isArgReceiveback to summary
public boolean isArgReceive()
isBookKeepingOpback to summary
public boolean isBookKeepingOp()
isBranchback to summary
public boolean isBranch()
isCallback to summary
public boolean isCall()
isDebugOpback to summary
public boolean isDebugOp()
isExceptionback to summary
public boolean isException()
isLoadback to summary
public boolean isLoad()
isReturnback to summary
public boolean isReturn()
isStoreback to summary
public boolean isStore()
modifiesCodeback to summary
public boolean modifiesCode()
startsBasicBlockback to summary
public boolean startsBasicBlock()
toStringback to summary
public String toString()

Overrides java.lang.Enum.toString.

Doc from java.lang.Enum.toString.

Returns the name of this enum constant, as contained in the declaration. This method may be overridden, though it typically isn't necessary or desirable. An enum class should override this method when a more "programmer-friendly" string form exists.

Returns:String

the name of this enum constant

Annotations
@Override
transfersControlback to summary
public boolean transfersControl()
valueOfback to summary
public static Operation valueOf(String name)
valuesback to summary
public static Operation[] values()