Skip to content

[pull] master from ruby:master#1165

Merged
pull[bot] merged 8 commits into
turkdevops:masterfrom
ruby:master
Jun 30, 2026
Merged

[pull] master from ruby:master#1165
pull[bot] merged 8 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jun 30, 2026

Copy link
Copy Markdown

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 : )

tekknolagi and others added 8 commits June 29, 2026 19:31
This was an accidental copy/paste error that caused optcarrot to have
uncached getivar fallbacks in optcarrot, completely regressing it.
We want to make sure these don't get any bigger and also ratchet down if we shrink them.
Shrink `Insn` from 120 to 104 bytes.

Before:

<details>

```
print-type-size type: `hir::Insn`: 120 bytes, alignment: 8 bytes
print-type-size     variant `CCallWithFrame`: 113 bytes
print-type-size         field `.block`: 16 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cfunc`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.name`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elidable`: 1 bytes
print-type-size     variant `CCallVariadic`: 113 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.block`: 16 bytes, alignment: 8 bytes
print-type-size         field `.return_type`: 24 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 `.cme`: 8 bytes
print-type-size         field `.name`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elidable`: 1 bytes
print-type-size     variant `Snapshot`: 104 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 96 bytes, alignment: 8 bytes
print-type-size     variant `InvokeBuiltin`: 97 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.return_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.bf`: 24 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.leaf`: 1 bytes
print-type-size     variant `SendDirect`: 92 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 `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.iseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.kw_bits`: 4 bytes
print-type-size     variant `CCall`: 89 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.return_type`: 24 bytes, alignment: 8 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 `.elidable`: 1 bytes
print-type-size     variant `GuardAnyBitSet`: 89 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask`: 16 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 `GuardNoBitsSet`: 88 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 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 `GuardBitEquals`: 73 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 bytes, alignment: 8 bytes
print-type-size         field `.expected`: 16 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 `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 `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 `GuardGreaterEq`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 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`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 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 `LoadField`: 60 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.return_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.offset`: 4 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 `LoadArg`: 52 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.idx`: 4 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 `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 `GuardType`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.guard_type`: 24 bytes, alignment: 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 `SideExit`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 bytes, alignment: 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 `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 `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 `RefineType`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.new_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `HasType`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.expected`: 24 bytes, alignment: 8 bytes
print-type-size         field `.val`: 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 `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 `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 `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
print-type-size     end padding: 7 bytes
```

</details>

After:

<details>

```
print-type-size type: `hir::Insn`: 104 bytes, alignment: 8 bytes
print-type-size     discriminant: 1 bytes
print-type-size     variant `Snapshot`: 103 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 96 bytes, alignment: 8 bytes
print-type-size     variant `InvokeBuiltin`: 95 bytes
print-type-size         field `.leaf`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.bf`: 24 bytes, alignment: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `CCall`: 87 bytes
print-type-size         field `.elidable`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.cfunc`: 8 bytes, alignment: 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 `.args`: 24 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `SendDirect`: 87 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.kw_bits`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.iseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.block`: 16 bytes
print-type-size     variant `GuardAnyBitSet`: 87 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask_name`: 16 bytes
print-type-size     variant `GuardNoBitsSet`: 87 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask_name`: 16 bytes
print-type-size     variant `CondBranch`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.if_true`: 32 bytes
print-type-size         field `.if_false`: 32 bytes
print-type-size     variant `Send`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.block`: 16 bytes
print-type-size     variant `PushInlineFrame`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.iseq`: 8 bytes, alignment: 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         field `.args`: 24 bytes
print-type-size         field `.blockiseq`: 16 bytes
print-type-size     variant `SendForward`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeSuper`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeSuperForward`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `GuardBitEquals`: 71 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.expected`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size     variant `ArrayPackBuffer`: 63 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.fmt`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size         field `.buffer`: 16 bytes
print-type-size     variant `GuardGreaterEq`: 63 bytes
print-type-size         padding: 7 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         field `.reason`: 32 bytes
print-type-size     variant `GuardLess`: 63 bytes
print-type-size         padding: 7 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         field `.reason`: 32 bytes
print-type-size     variant `LoadField`: 55 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.offset`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `InvokeBlock`: 55 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.cd`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeBlockIfunc`: 55 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.cd`: 8 bytes, alignment: 8 bytes
print-type-size         field `.block_handler`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `LoadArg`: 47 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.idx`: 4 bytes, alignment: 4 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.val_type`: 24 bytes
print-type-size     variant `ToRegexp`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.opt`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.values`: 24 bytes
print-type-size     variant `ArrayInclude`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.target`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `Defined`: 47 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.lep_level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.op_type`: 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     variant `SetIvar`: 47 bytes
print-type-size         padding: 7 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 `InvokeProc`: 47 bytes
print-type-size         field `.kw_splat`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `GuardType`: 47 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.guard_type`: 24 bytes
print-type-size     variant `PatchPoint`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.invariant`: 32 bytes
print-type-size     variant `SideExit`: 47 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size     variant `StringConcat`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.strings`: 24 bytes
print-type-size     variant `NewArray`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `NewHash`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayHash`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayMax`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayMin`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `HashAset`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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 `StoreField`: 39 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.offset`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size     variant `SetClassVar`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 32 bytes, alignment: 8 bytes
print-type-size     variant `RefineType`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.new_type`: 24 bytes
print-type-size     variant `HasType`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.expected`: 24 bytes
print-type-size     variant `Comment`: 31 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.message`: 24 bytes, alignment: 8 bytes
print-type-size     variant `Entries`: 31 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.targets`: 24 bytes, alignment: 8 bytes
print-type-size     variant `StringSetbyteFixnum`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `NewRange`: 31 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size         padding: 6 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     variant `NewRangeFixnum`: 31 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size         padding: 6 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     variant `DupArrayInclude`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `CheckMatch`: 31 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.flag`: 4 bytes, alignment: 4 bytes
print-type-size         field `.target`: 8 bytes
print-type-size         field `.pattern`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `SetGlobal`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `Const`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 16 bytes, alignment: 8 bytes
print-type-size     variant `StringCopy`: 23 bytes
print-type-size         field `.chilled`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringIntern`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringGetbyte`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.string`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `StringEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `ToArray`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ToNewArray`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayDup`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayAref`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `ArrayPop`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `AdjustBounds`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.index`: 8 bytes, alignment: 8 bytes
print-type-size         field `.length`: 8 bytes
print-type-size     variant `HashDup`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAlloc`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAllocClass`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.class`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsBitEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IsBitNotEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `BoxFixnum`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumAref`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `GetConstantPath`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.ic`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsA`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.class`: 8 bytes
print-type-size     variant `GetGlobal`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `WriteBarrier`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `GetBlockParam`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size         padding: 4 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `SetLocal`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size         padding: 4 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetSpecialNumber`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.nth`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `EntryPoint`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.jit_entry_idx`: 16 bytes, alignment: 8 bytes
print-type-size     variant `Throw`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.throw_state`: 4 bytes, alignment: 4 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumEq`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumNeq`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLe`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGe`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumAnd`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumOr`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumXor`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntAnd`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntOr`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumRShift`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FloatToInt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PutSpecialObject`: 15 bytes
print-type-size         field `.value_type`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `ArrayLength`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Test`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `BoxBool`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `UnboxFixnum`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockGiven`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.lep`: 8 bytes, alignment: 8 bytes
print-type-size     variant `FixnumBitCheck`: 15 bytes
print-type-size         field `.index`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockParamModified`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.flags`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetSpecialSymbol`: 15 bytes
print-type-size         field `.symbol_type`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallWithFrame`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallVariadic`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Return`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IncrCounterPtr`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.counter_ptr`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CheckInterrupts`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetEP`: 7 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size     variant `IncrCounter`: 3 bytes
print-type-size         padding: 1 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>
Shrink `Insn` from 104 to 96 bytes.

<details>

```
print-type-size type: `hir::Insn`: 96 bytes, alignment: 8 bytes
print-type-size     variant `SendDirect`: 92 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 `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.iseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.kw_bits`: 4 bytes
print-type-size     variant `CCall`: 89 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.return_type`: 24 bytes, alignment: 8 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 `.elidable`: 1 bytes
print-type-size     variant `InvokeBuiltin`: 89 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.bf`: 24 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.leaf`: 1 bytes
print-type-size     variant `GuardAnyBitSet`: 89 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask`: 16 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 `GuardNoBitsSet`: 88 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 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 `GuardBitEquals`: 73 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 bytes, alignment: 8 bytes
print-type-size         field `.expected`: 16 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 `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 `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 `GuardGreaterEq`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 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`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 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 `LoadField`: 60 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.return_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.offset`: 4 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 `LoadArg`: 52 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.idx`: 4 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 `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 `GuardType`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.guard_type`: 24 bytes, alignment: 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 `SideExit`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 32 bytes, alignment: 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 `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 `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 `RefineType`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.new_type`: 24 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `HasType`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.expected`: 24 bytes, alignment: 8 bytes
print-type-size         field `.val`: 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 `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 `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 `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
print-type-size     end padding: 4 bytes
```

</details>
Don't store the whole struct, just a pointer to it. Shrink the
`InvokeBuiltin` enum case and reduce padding required for `Insn`.

Shrink `Insn` from 96 to 88 bytes.

<details>

```
print-type-size type: `hir::Insn`: 88 bytes, alignment: 8 bytes
print-type-size     discriminant: 1 bytes
print-type-size     variant `CCall`: 87 bytes
print-type-size         field `.elidable`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.cfunc`: 8 bytes, alignment: 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 `.args`: 24 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `SendDirect`: 87 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.kw_bits`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.iseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.block`: 16 bytes
print-type-size     variant `GuardAnyBitSet`: 87 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask_name`: 16 bytes
print-type-size     variant `GuardNoBitsSet`: 87 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size         field `.mask_name`: 16 bytes
print-type-size     variant `CondBranch`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.if_true`: 32 bytes
print-type-size         field `.if_false`: 32 bytes
print-type-size     variant `Send`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.block`: 16 bytes
print-type-size     variant `PushInlineFrame`: 79 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.iseq`: 8 bytes, alignment: 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         field `.args`: 24 bytes
print-type-size         field `.blockiseq`: 16 bytes
print-type-size     variant `InvokeBuiltin`: 79 bytes
print-type-size         field `.leaf`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.bf`: 8 bytes, alignment: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `SendForward`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeSuper`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeSuperForward`: 71 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 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         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `GuardBitEquals`: 71 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.expected`: 16 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size     variant `ArrayPackBuffer`: 63 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.fmt`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size         field `.buffer`: 16 bytes
print-type-size     variant `GuardGreaterEq`: 63 bytes
print-type-size         padding: 7 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         field `.reason`: 32 bytes
print-type-size     variant `GuardLess`: 63 bytes
print-type-size         padding: 7 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         field `.reason`: 32 bytes
print-type-size     variant `LoadField`: 55 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.offset`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.return_type`: 24 bytes
print-type-size     variant `InvokeBlock`: 55 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.cd`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `InvokeBlockIfunc`: 55 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.cd`: 8 bytes, alignment: 8 bytes
print-type-size         field `.block_handler`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `LoadArg`: 47 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.idx`: 4 bytes, alignment: 4 bytes
print-type-size         field `.id`: 16 bytes
print-type-size         field `.val_type`: 24 bytes
print-type-size     variant `ToRegexp`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.opt`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.values`: 24 bytes
print-type-size     variant `ArrayInclude`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.target`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `Defined`: 47 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.lep_level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.op_type`: 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     variant `SetIvar`: 47 bytes
print-type-size         padding: 7 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 `InvokeProc`: 47 bytes
print-type-size         field `.kw_splat`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size     variant `GuardType`: 47 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.guard_type`: 24 bytes
print-type-size     variant `PatchPoint`: 47 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.invariant`: 32 bytes
print-type-size     variant `SideExit`: 47 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 32 bytes
print-type-size     variant `StringConcat`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.strings`: 24 bytes
print-type-size     variant `NewArray`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `NewHash`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayHash`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayMax`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `ArrayMin`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size     variant `HashAset`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 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 `StoreField`: 39 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.offset`: 4 bytes, alignment: 4 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.id`: 16 bytes
print-type-size     variant `SetClassVar`: 39 bytes
print-type-size         padding: 7 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`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 32 bytes, alignment: 8 bytes
print-type-size     variant `RefineType`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.new_type`: 24 bytes
print-type-size     variant `HasType`: 39 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.expected`: 24 bytes
print-type-size     variant `Comment`: 31 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.message`: 24 bytes, alignment: 8 bytes
print-type-size     variant `Entries`: 31 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.targets`: 24 bytes, alignment: 8 bytes
print-type-size     variant `StringSetbyteFixnum`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `NewRange`: 31 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size         padding: 6 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     variant `NewRangeFixnum`: 31 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size         padding: 6 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     variant `DupArrayInclude`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `CheckMatch`: 31 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.flag`: 4 bytes, alignment: 4 bytes
print-type-size         field `.target`: 8 bytes
print-type-size         field `.pattern`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `SetGlobal`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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`: 31 bytes
print-type-size         padding: 7 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 `Const`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 16 bytes, alignment: 8 bytes
print-type-size     variant `StringCopy`: 23 bytes
print-type-size         field `.chilled`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringIntern`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringGetbyte`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.string`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `StringEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `ToArray`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ToNewArray`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayDup`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayAref`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `ArrayPop`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `AdjustBounds`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.index`: 8 bytes, alignment: 8 bytes
print-type-size         field `.length`: 8 bytes
print-type-size     variant `HashDup`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAlloc`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAllocClass`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.class`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsBitEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IsBitNotEqual`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `BoxFixnum`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumAref`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `GetConstantPath`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.ic`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsA`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.class`: 8 bytes
print-type-size     variant `GetGlobal`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `WriteBarrier`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `GetBlockParam`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size         padding: 4 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `SetLocal`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size         padding: 4 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetSpecialNumber`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.nth`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `EntryPoint`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.jit_entry_idx`: 16 bytes, alignment: 8 bytes
print-type-size     variant `Throw`: 23 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.throw_state`: 4 bytes, alignment: 4 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumEq`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumNeq`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLe`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGe`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumAnd`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumOr`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumXor`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntAnd`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntOr`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumRShift`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FloatToInt`: 23 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PutSpecialObject`: 15 bytes
print-type-size         field `.value_type`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `ArrayLength`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Test`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `BoxBool`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `UnboxFixnum`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockGiven`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.lep`: 8 bytes, alignment: 8 bytes
print-type-size     variant `FixnumBitCheck`: 15 bytes
print-type-size         field `.index`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockParamModified`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.flags`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetSpecialSymbol`: 15 bytes
print-type-size         field `.symbol_type`: 1 bytes
print-type-size         padding: 6 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Snapshot`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallWithFrame`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallVariadic`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Return`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IncrCounterPtr`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.counter_ptr`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CheckInterrupts`: 15 bytes
print-type-size         padding: 7 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetEP`: 7 bytes
print-type-size         padding: 3 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size     variant `IncrCounter`: 3 bytes
print-type-size         padding: 1 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>
Shrink `Type` from 24 bytes to 16 bytes.
@pull pull Bot locked and limited conversation to collaborators Jun 30, 2026
@pull pull Bot added the ⤵️ pull label Jun 30, 2026
@pull pull Bot merged commit 07abf0b into turkdevops:master Jun 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants