[pull] master from ruby:master#1190
Merged
Merged
Conversation
The `num_returns` field is dead code leftover from when the inliner disqualified candidates for inlining based on the number of return paths it had.
When the inliner translates a callee with optional parameters, the callee body is preceded by a chain of JIT-entry blocks, one per opt-table entry. Entry index k is where execution begins when the call site fills k optionals: it runs the default-init code for the remaining optionals and falls through into the post-default body. Since each inlined callee is integrated into the caller and the call site argument count is fixed, we know exactly which JIT entry block we need. Previously, we translated all JIT entry blocks and the inliner picked which one entry it needed, allowing the others to be cleaned up as dead code. Handling just the one case we need avoids passing those known-dead blocks through the rest of the optimization pipeline and cleans up `AddIseqResult`, simplifying the handling of standalone vs inlined method compilation.
We have a reasonable default of `BasicObject` so don't bloat by another 8 bytes with `Option`.
Shrink `Insn` from 88 to 80 bytes. <details> ``` print-type-size type: `hir::Insn`: 80 bytes, alignment: 8 bytes print-type-size variant `CondBranch`: 80 bytes print-type-size padding: 8 bytes print-type-size field `.if_true`: 32 bytes, alignment: 8 bytes print-type-size field `.if_false`: 32 bytes print-type-size field `.val`: 8 bytes print-type-size variant `Send`: 80 bytes print-type-size padding: 8 bytes print-type-size field `.block`: 16 bytes, alignment: 8 bytes print-type-size field `.args`: 24 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `PushInlineFrame`: 80 bytes print-type-size padding: 8 bytes print-type-size field `.blockiseq`: 16 bytes, alignment: 8 bytes print-type-size field `.args`: 24 bytes print-type-size field `.iseq`: 8 bytes print-type-size field `.cme`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `CCall`: 73 bytes print-type-size field `.args`: 24 bytes print-type-size field `.cfunc`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.name`: 8 bytes print-type-size field `.owner`: 8 bytes print-type-size field `.return_type`: 16 bytes print-type-size field `.elidable`: 1 bytes print-type-size variant `InvokeBuiltin`: 73 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.bf`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.return_type`: 16 bytes print-type-size field `.leaf`: 1 bytes print-type-size variant `SendForward`: 72 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.blockiseq`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `InvokeSuper`: 72 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.blockiseq`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `InvokeSuperForward`: 72 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.blockiseq`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GuardAnyBitSet`: 65 bytes print-type-size padding: 8 bytes print-type-size field `.mask_name`: 16 bytes, alignment: 8 bytes print-type-size field `.mask`: 16 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.recompile`: 1 bytes print-type-size variant `ArrayPackBuffer`: 64 bytes print-type-size padding: 8 bytes print-type-size field `.buffer`: 16 bytes, alignment: 8 bytes print-type-size field `.elements`: 24 bytes print-type-size field `.fmt`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GuardNoBitsSet`: 64 bytes print-type-size padding: 8 bytes print-type-size field `.mask_name`: 16 bytes, alignment: 8 bytes print-type-size field `.mask`: 16 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `InvokeBlock`: 56 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `InvokeBlockIfunc`: 56 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.block_handler`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `Defined`: 52 bytes print-type-size padding: 8 bytes print-type-size field `.op_type`: 8 bytes, alignment: 8 bytes print-type-size field `.obj`: 8 bytes print-type-size field `.pushval`: 8 bytes print-type-size field `.v`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.lep_level`: 4 bytes print-type-size variant `LoadField`: 52 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 16 bytes, alignment: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.return_type`: 16 bytes print-type-size field `.offset`: 4 bytes print-type-size variant `InvokeProc`: 49 bytes print-type-size padding: 8 bytes print-type-size field `.args`: 24 bytes, alignment: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.kw_splat`: 1 bytes print-type-size variant `GuardBitEquals`: 49 bytes print-type-size padding: 8 bytes print-type-size field `.expected`: 16 bytes, alignment: 8 bytes print-type-size field `.reason`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.recompile`: 1 bytes print-type-size variant `ToRegexp`: 48 bytes print-type-size padding: 8 bytes print-type-size field `.values`: 24 bytes, alignment: 8 bytes print-type-size field `.opt`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayInclude`: 48 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.target`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `SetIvar`: 48 bytes print-type-size padding: 8 bytes print-type-size field `.self_val`: 8 bytes, alignment: 8 bytes print-type-size field `.id`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.ic`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `PatchPoint`: 48 bytes print-type-size padding: 8 bytes print-type-size field `.invariant`: 32 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `LoadArg`: 44 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 16 bytes, alignment: 8 bytes print-type-size field `.val_type`: 16 bytes print-type-size field `.idx`: 4 bytes print-type-size variant `StoreField`: 44 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 16 bytes, alignment: 8 bytes print-type-size field `.recv`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.offset`: 4 bytes print-type-size variant `GuardType`: 41 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.guard_type`: 16 bytes print-type-size field `.state`: 8 bytes print-type-size field `.recompile`: 1 bytes print-type-size variant `StringConcat`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.strings`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `NewArray`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `NewHash`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayHash`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayMax`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayMin`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.elements`: 24 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `HashAset`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.hash`: 8 bytes, alignment: 8 bytes print-type-size field `.key`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `IsMethodCfunc`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.cd`: 8 bytes print-type-size field `.cfunc`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GetConstant`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.klass`: 8 bytes, alignment: 8 bytes print-type-size field `.id`: 8 bytes print-type-size field `.allow_nil`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GetIvar`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.self_val`: 8 bytes, alignment: 8 bytes print-type-size field `.id`: 8 bytes print-type-size field `.ic`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `DefinedIvar`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.self_val`: 8 bytes, alignment: 8 bytes print-type-size field `.id`: 8 bytes print-type-size field `.pushval`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `SetClassVar`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 8 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.ic`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `Jump`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.0`: 32 bytes, alignment: 8 bytes print-type-size variant `GuardGreaterEq`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.reason`: 8 bytes, alignment: 8 bytes print-type-size field `.left`: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GuardLess`: 40 bytes print-type-size padding: 8 bytes print-type-size field `.reason`: 8 bytes, alignment: 8 bytes print-type-size field `.left`: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `CheckMatch`: 36 bytes print-type-size padding: 8 bytes print-type-size field `.target`: 8 bytes, alignment: 8 bytes print-type-size field `.pattern`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.flag`: 4 bytes print-type-size variant `NewRange`: 33 bytes print-type-size padding: 8 bytes print-type-size field `.low`: 8 bytes, alignment: 8 bytes print-type-size field `.high`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.flag`: 1 bytes print-type-size variant `NewRangeFixnum`: 33 bytes print-type-size padding: 8 bytes print-type-size field `.low`: 8 bytes, alignment: 8 bytes print-type-size field `.high`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.flag`: 1 bytes print-type-size variant `Comment`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.message`: 24 bytes, alignment: 8 bytes print-type-size variant `Entries`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.targets`: 24 bytes, alignment: 8 bytes print-type-size variant `StringSetbyteFixnum`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.string`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 8 bytes print-type-size field `.value`: 8 bytes print-type-size variant `StringAppend`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `StringAppendCodepoint`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `DupArrayInclude`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.ary`: 8 bytes, alignment: 8 bytes print-type-size field `.target`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayExtend`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayPush`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.array`: 8 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayAset`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.array`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 8 bytes print-type-size field `.val`: 8 bytes print-type-size variant `HashAref`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.hash`: 8 bytes, alignment: 8 bytes print-type-size field `.key`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `SetGlobal`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 8 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `GetClassVar`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 8 bytes, alignment: 8 bytes print-type-size field `.ic`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `PopInlineFrame`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.iseq`: 8 bytes, alignment: 8 bytes print-type-size field `.argc`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumAdd`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumSub`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumMult`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumDiv`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumMod`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumLShift`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FloatAdd`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FloatSub`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FloatMul`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FloatDiv`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.other`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `AnyToString`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.str`: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `RefineType`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.new_type`: 16 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size variant `HasType`: 32 bytes print-type-size padding: 8 bytes print-type-size field `.expected`: 16 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size variant `Throw`: 28 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.throw_state`: 4 bytes print-type-size variant `StringCopy`: 25 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.chilled`: 1 bytes print-type-size variant `SideExit`: 25 bytes print-type-size padding: 8 bytes print-type-size field `.reason`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size field `.recompile`: 1 bytes print-type-size variant `Const`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 16 bytes, alignment: 8 bytes print-type-size variant `StringIntern`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `StringGetbyte`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.string`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 8 bytes print-type-size variant `StringEqual`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `ToArray`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ToNewArray`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayDup`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ArrayAref`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.array`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 8 bytes print-type-size variant `ArrayPop`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.array`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `AdjustBounds`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.index`: 8 bytes, alignment: 8 bytes print-type-size field `.length`: 8 bytes print-type-size variant `HashDup`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ObjectAlloc`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `ObjectAllocClass`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.class`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `IsBitEqual`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `IsBitNotEqual`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `BoxFixnum`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `FixnumAref`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 8 bytes print-type-size variant `GetConstantPath`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.ic`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `IsA`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.class`: 8 bytes print-type-size variant `GetGlobal`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.id`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `WriteBarrier`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.val`: 8 bytes print-type-size variant `GetBlockParam`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.state`: 8 bytes, alignment: 8 bytes print-type-size field `.level`: 4 bytes print-type-size field `.ep_offset`: 4 bytes print-type-size variant `SetLocal`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.level`: 4 bytes print-type-size field `.ep_offset`: 4 bytes print-type-size variant `GetSpecialNumber`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.nth`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `EntryPoint`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.jit_entry_idx`: 16 bytes, alignment: 8 bytes print-type-size variant `FixnumEq`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumNeq`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumLt`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumLe`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumGt`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumGe`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumAnd`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumOr`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumXor`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `IntAnd`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `IntOr`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FixnumRShift`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.left`: 8 bytes, alignment: 8 bytes print-type-size field `.right`: 8 bytes print-type-size variant `FloatToInt`: 24 bytes print-type-size padding: 8 bytes print-type-size field `.recv`: 8 bytes, alignment: 8 bytes print-type-size field `.state`: 8 bytes print-type-size variant `PutSpecialObject`: 17 bytes print-type-size padding: 8 bytes print-type-size field `.state`: 8 bytes, alignment: 8 bytes print-type-size field `.value_type`: 1 bytes print-type-size variant `FixnumBitCheck`: 17 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size field `.index`: 1 bytes print-type-size variant `GetSpecialSymbol`: 17 bytes print-type-size padding: 8 bytes print-type-size field `.state`: 8 bytes, alignment: 8 bytes print-type-size field `.symbol_type`: 1 bytes print-type-size variant `ArrayLength`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.array`: 8 bytes, alignment: 8 bytes print-type-size variant `Test`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size variant `BoxBool`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size variant `UnboxFixnum`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size variant `IsBlockGiven`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.lep`: 8 bytes, alignment: 8 bytes print-type-size variant `IsBlockParamModified`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.flags`: 8 bytes, alignment: 8 bytes print-type-size variant `Snapshot`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.state`: 8 bytes, alignment: 8 bytes print-type-size variant `CCallWithFrame`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.0`: 8 bytes, alignment: 8 bytes print-type-size variant `CCallVariadic`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.0`: 8 bytes, alignment: 8 bytes print-type-size variant `SendDirect`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.0`: 8 bytes, alignment: 8 bytes print-type-size variant `Return`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.val`: 8 bytes, alignment: 8 bytes print-type-size variant `IncrCounterPtr`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.counter_ptr`: 8 bytes, alignment: 8 bytes print-type-size variant `CheckInterrupts`: 16 bytes print-type-size padding: 8 bytes print-type-size field `.state`: 8 bytes, alignment: 8 bytes print-type-size variant `GetEP`: 12 bytes print-type-size padding: 8 bytes print-type-size field `.level`: 4 bytes, alignment: 4 bytes print-type-size variant `IncrCounter`: 10 bytes print-type-size padding: 8 bytes print-type-size field `.0`: 2 bytes, alignment: 2 bytes print-type-size variant `Param`: 0 bytes print-type-size variant `LoadPC`: 0 bytes print-type-size variant `LoadEC`: 0 bytes print-type-size variant `LoadSP`: 0 bytes print-type-size variant `LoadSelf`: 0 bytes print-type-size variant `BreakPoint`: 0 bytes print-type-size variant `Unreachable`: 0 bytes ``` </details>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )