Files
BFM-decomp/docs/cookbook-index.md
T
Drew T 68481253de fix(phase-31): §201-A — decl_prior's DEF row was address-keyed and wrong in the overlay window
Wave Y's harvest found a defect in the card field shipped EARLIER THE SAME SESSION (§196). Overlay
functions are named by VRAM address and 134 overlays load at the same window, so build()'s bare
defs[name] counter mixed N unrelated functions -- and §196 ranked that row ABOVE the destination TU.

Measured over the tree: 3,911 of 9,861 symbols with a definition are defined in >1 binary; 1,219
disagree on ARITY, 1,204 of them in the overlay window; 818 of the disagreements were a top-two TIE
that Counter.most_common broke by sorted-file order, so the lowest-numbered defining overlay
silently won. On wave Y's five binaries, 26 of 65 overlay-window DEF rows (40%) named another
overlay's function. Byte-proven cost: applying one row's arity to func_8017E83C took it from
MATCH (114 ins) to 113 ins / 83 mismatched.

Fix: defs are keyed by BINARY; a DEF row is emitted only from the target's own binary for
overlay-window symbols, and otherwise withheld with a stated reason ('N other binaries define this
address; none is yours') rather than silently omitted. Resident/shared/main symbols are fleet-unique
and were always correct (0 of 43 wrong). build_wave_atlas passes the target binary through.

Wave Z was ALREADY STAGED with 24 poisoned rows across its 292; redrawn with the fixed tool -> 0
poisoned, 24 withheld with a reason. This is the fourth same-session self-correction (§194-E ->
§193-A, §199-A -> §189-A, §197-A -> §136-9, §201-A -> §196), and the first one caught before the
bad data reached agents.
2026-08-18 12:29:34 -06:00

230 KiB
Raw Blame History

Cookbook index — find the entry by the SYMPTOM you are looking at

Generated by tools/cookbook_index.py — do not hand-edit (R33). Regenerate after adding a cookbook section.

docs/matching-cookbook.md is ~716 KB / 651 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. Start here, then read the section. A section appears under every symptom it addresses.

How to use: name what you SEE in the diff (a stolen delay slot, an extra la, a swapped register pair, a conflicting types error), find that symptom below, read those sections first. If nothing fits, THEN grind — and add a section when you win.

Start here — the symptoms that come up most, with the section that fixes them

Hand-curated from what agents actually hit and, in several cases, RE-DERIVED because keyword matching alone did not surface the entry (P30 wave-2 feedback). If your symptom is here, read the named section before anything else.

  • wrong branch sense / arms swapped / beq where the target has bne (match_one prints this class as BRANCH-POLARITY) → §3-T4 (invert the source condition) + §32.2; for a trailing return 0 vs an early return see the shared-ret0 note (cookbook L1344)
  • conflicting types on YOUR OWN function's definition, where the fleet canon is (void) → §73 (the PARAMS axis) + §42 — keep the (void) signature and read the incoming arg via register s32 a0v __asm__("$4"); §42 is otherwise indexed only under regalloc
  • a shared global declared at a conflicting type (u8 vs s32, signedness) blocking your draft → §37 asm-label alias extern T X __asm__("D_x") — beats *(T*)&X, whose address-of perturbs regalloc. Works for FUNCTION definitions too (P30 wave 2)
  • target reuses ONE address register across two different offsets of the same global → §20 (the pointer-var-to-the-global bullet, cookbook L1907-1918) — take T *p = &D_x; and index off p, never the bare symbol twice
  • an extra la / the address hoisted into a callee-saved register across calls → §20 + gcc-2.7.2-map/cse_expr.md §H — *(T*)&sym force_regs the address; the asm-label alias (§37) keeps the direct %lo mem form
  • andi $x,0xFF folded away in your output but present in the target → §1/I2 + §12 name the family; if the prescribed & 0xff at the use folds, hold the masked byte in a u16 local so only a QI->HI extend survives (P30 wave 2, byte-tested)
  • slti where the target has sltiu (or vice versa) → §35 — a separate SIGNED int copy of an unsigned load keeps slti; chained bounds get range-folded, so write each bound as its own if/goto (§21)
  • you are about to hand-derive a body that some overlay already matched → §71 — grep the callees/globals for an already-matched SIBLING first; in wave 2 this alone produced iteration-1 MATCHes on 4 of 19 targets
  • gcc stole an instruction into a branch delay slot that the target leaves as nop → §5a + the zero-byte __asm__("") fence (§34 toolkit) — reorg.c stop_search_p halts the eager filler on an asm insn
  • void vs s32 return — is promoting it byte-neutral? → NO, not always: §41d (byte-proven; a void body with no return gains an instruction). P30 adds a second mechanism: an s32 return keeps $v0 live-out and blocks dbr from filling a loop-back delay slot
  • match_one says SIZE-MISMATCH/short and the target has a frame-pointer prologue (addu $fp,$sp,$zero / 21F0A003) → The target is -O0. Pass --o0 to match_one/rtu_match — nothing else will ever match (§116: opt level is a property of the FILE). Known -O0 regions: boot, ov_SC01_077_o0*, the whale _o0b, and 0x8013B568..0x8013C98C — a target outside all four still needs checking
  • same instruction multiset, one contiguous window, loads/registers ROTATED inside it → pure sched1 statement-order (gcc-2.7.2-map/sched.md §S1/§S4). Cheapest lever: brute-force it — N independent statements, script all N! orders through match_one (24 runs ≈ 2 min) instead of reasoning about rank_for_schedule
  • a two-constant if/else or ?: result lands in $v1 where the target reuses the condition's $v0 → §76 — fold the condition into a NAMED local and overwrite that SAME variable with the two constants (an s16 temp, a fresh temp, an inner scope, and both ternary polarities all stay $v1; only reusing one s32 local coalesces onto $v0). §76 reads as behemoth-only; it is not
  • a load HOISTED above a store (match_one may call it a WIDTH class) → usually §76 regalloc, not a width bug: a missing WAR dependency lets sched2 hoist it. Same fix — one variable for the compare temp and the result
  • ori $v0,0xffd8 in yours vs addiu $v0,-0x28 in the target → a NEGATIVE constant stored into an unsigned narrow local materialises via zero-extended ori; make the local signed to get addiu. It does NOT cost you the lhu on readback — gcc-2.7.2 emits lhu for any plain HImode load feeding an sh (P30 wave 4, byte-tested)
  • LENGTH-DRIFT −1 and the missing instruction is a reg-to-reg COPY in a jal delay slot → a narrow prototyped param (plain ANSI s16 arg3) — §43 is indexed as the K&R-definition lever, but the ANSI form is the fix as often
  • your narrow load lost its load-delay nop right after an inline block move → an lwl/lwr+swl/swr pair is a delay-slot SPONGE for the following load — the inverse of the §5a/§34 fence case. Align-1 4×u8 struct assign emits the inline form (§38 covers only the -O0 memcpy-call form)
  • your e = param_1 copy VANISHED (target addresses every field off a copy at a join block) → cse.c make_regs_eqv keeps a param copy only when the new pseudo's live range escapes the cse block AND outlives the param's last mention — reach that by REUSING the same variable in a later block. Copy-in-the-arms gets hoisted into the delay slot; copy-assigned-in-an-arm goes global allocno → callee-saved + 2 prologue insns
  • ⚠️ the .run/ghidra_c/<fn>.c seed looks like a DIFFERENT function entirely → it may be — overlays share VAs, so a seed can be decompiled from another overlay mapped at the same address. Trust the target .s, not the seed (P30 wave 4)

By symptom

delay slots & branches (21)

  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §5a — Cross-jump tail-merge — gcc collapses two byte-identical blocks the original kept separate (FIX FOUND) L211
  • §3-D. — THE CROSS-JUMP RATCHET (the sharpest new trap — func_80131340 L-C) L3508
  • §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10068
  • §162 — CROSS-JUMP DIRECTION: the surviving copy is always the LATER one, so a BACKWARD j into a sibling arm is a source goto (P30 S48) L11266
  • §162 — The cross-jump "CALL veto" is a COUNT law, not a CALL law (BOUNDS §88a; P30 S48, func_80189540) L11302
  • §177 — 🔴 THE EPILOGUE RETURN-DELAY SLOT IS DECIDED BY YOUR SAVED-REGISTER SET, NOT BY SCHEDULING L17159
  • §176-A — "SCHEDULE / DELAY-SLOT / LENGTH-DRIFT ±1" ⇒ check STATEMENT ORDER around the call first L17616
  • §186 — CROSS-JUMPING RUNS AFTER SCHEDULING, SO NO C-LEVEL BARRIER CAN STEER IT L18063
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §194-M — A STORE in a CONDITIONAL branch's delay slot proves its C statement DOMINATES the branch — reorg can never pull a store out of either thread (gcc-2.7.2, -mips1) L19541
  • §195-D — §195 — masked_diff.mask_for returns 0 for EVERY j/jal word, so an internal j destination is invisible to match_one, the permuter scorer AND every similarity tier: a control-flow semantic error (which calls execute) surfaces as a 1-instruction residual mislabelled DELAY-SLOT / profile=schedule, or as an outright false MATCH L19852
  • §195-E — A 0/1 materialised at a JOIN immediately before the controlling beqz/bnez proves the source NAMED the condition — a truth expression in an if's controlling position reaches do_jump, which has no value path L19920
  • §195-F — fold-const.c:4825 canonicalises a ?: whose THEN arm is zero (or constant against a non-constant ELSE) by inverting the condition and swapping the arms — so a ternary's written arm order is byte-inert there, and c ? 0 : X is unspellable: it always compiles as !c ? X : 0 L19978
  • §195-G — §NEW — TWO ARMS CALLING THE SAME CALLEE MERGE INTO ONE jal UNLESS EACH ARM'S OWN CODE CONSUMES THE RESULT: the C dial that keeps two call sites apart is WHERE the consumer test lives, and the branch SENSE you spell it with is byte-inert (jump.c:1737 canonicalises it) L20030
  • §195-J — GTE / PsyQ op CALL-vs-INLINE is a PER-SITE SOURCE FACT, not a TU style — both forms coexist in one TU (measured in 2 TUs), and the tell is the target's own opcodes (lwc2/sqr/swc2 vs jal), not the sibling. Costs -8 ins on func_8018505C. Corollary: the game's inline sqr macro emits TWO hazard nops, the SDK's Square0 body emits ONE — so the inline form is provably not Square0 inlined (a second instance of §187's SDK-vs-game GTE nop divergence). L20190
  • §195-N — In a call-bearing chain of N≥2 if (f(...)) return 1; tests closed by return 0;, the LAST test must stay in STATEMENT form — the value form (return f() != 0; / ? 1 : 0 / !!f()) costs +1 j and empties the other N−1 delay slots. The cause is REORG block placement, not jump.c's delete_jump. L20382
  • §197-B — A REPEATED COMPARE OF ONE VALUE AGAINST ONE CONSTANT IS DELETED BY cse's qty_comparison_code CHANNEL (the non-EQ complement of §165-03) — and a front-end-opaque mask on EITHER compare is a pure-C dial that keeps the target's second branch L20582
  • §199-F — §164-36b — THE TARGET-HEAD FENCE IS A DELAY-SLOT THREAD SELECTOR, AND IT ONLY FIRES WHEN mostly_true_jump > 0 (amendment to §164-36; its "−1 instruction" tell is falsified) L20942
  • §199-G — At TWO case nodes the switch-vs-if oracle is not blind — but the tell is ALL tests positive + a trailing j default, NOT the first test's polarity L20996
  • §201-C — §X — A CALL'S OWN DELAY SLOT AND THE UPSTREAM CONDITIONAL BRANCH'S SLOT COMPETE FOR ONE INSN (the call's argument copy), AND ONE STATEMENT'S POSITION RELATIVE TO THE CALL DECIDES BOTH — the residual is visible at the BRANCH, not at the call L21233

instruction scheduling (36)

  • §3-T2 — Source statement order drives instruction scheduling L78
  • §3 — When a diff is pure scheduling → decomp-permuter (harness built, Phase 6) L107
  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2144
  • §3-The — genuine scheduler — rank_for_schedule (sched.c), for when it IS scheduling L2160
  • §3-The — genuine schedule WALLS (do NOT re-grind — stub) L2169
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2422
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2454
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2471
  • §3-A4 — SINK THE CONSUMER CALL INTO THE ARMS (the inverse of A1; func_8016AB6C, byte-proven) L3444
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3527
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5491
  • §3-The — attribution primitive (use this before calling anything a scheduling residual) L6057
  • §3-The — scheduling rules (refining §135-2 and §135-4) L8912
  • Consequence — for the family (a real scheduling decision) L10095
  • §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the ?: clamp that folds to MIN_EXPR (P30 S42, func_8017C6F4, 947 ins) L10145
  • §3-A. — move_movables hoists iff threshold × savings × lifetime ≥ insn_count — and you can read it L10151
  • §16Z — SHARPENS (sharpens §37 "the /s-DEP LATTICE", §136-13, §136-14, §16Xy, §162q, gcc-2.7.2-map/sched.md §64) L14340
  • §175 — A CALLER-SAVED REGISTER PIN CAN BE A CORRECTNESS BUG, NOT JUST A SCHEDULING CHOICE (P31 wave H, 2026-08-15) L16712
  • §177 — 🔴 THE EPILOGUE RETURN-DELAY SLOT IS DECIDED BY YOUR SAVED-REGISTER SET, NOT BY SCHEDULING L17159
  • §3-B. — A return <const> IS A PRIORITY-1 HARD-REG SET THE SCHEDULER PLACES FIRST (func_8001BE30, 92 ins) L17244
  • §176-A — "SCHEDULE / DELAY-SLOT / LENGTH-DRIFT ±1" ⇒ check STATEMENT ORDER around the call first L17616
  • §176-C — 🔴 WALL REFUTATION: a hard-register pin CANNOT schedule around a call, because of a genuine gcc-2.7.2 bug L17680
  • §186 — CROSS-JUMPING RUNS AFTER SCHEDULING, SO NO C-LEVEL BARRIER CAN STEER IT L18063
  • §193-C — gcc-2.7.2 cross_jump merges the SCHEDULED common SUFFIX only — there is no prefix/head merge, so §8/§48-A1's "duplicate into both arms and cross_jump refunds it" is a TAIL-only lever L18518
  • §193-D — A COMPILER-GENERATED ARGUMENT COPY IS A optimize_reg_copy_1 TRIGGER: when the pointer's LAST use in a block precedes a call that takes the pointer as a register, sched1 hoists the implicit move $aN,$sN to the block top and local-alloc re-bases the WHOLE block's memory operands onto $aN. The only C dial is a label (the §165-24 goto-join) between the block and the call. L18552
  • §193-F — §148-A2 — The threshold -= 3 STAIRCASE: move_movables admits a COUNT of invariants, not a boolean — two identical merged constants split hoisted/not-hoisted by LIST ORDER, and insn_count picks the rank cutoff L18653
  • §194-A — A zero-byte scheduling fence goes AFTER the defining statement to make that computation emit FIRST in its block — and the barrier predicate is volatile-or-colon-less, not the "memory" clobber (COMPLEMENTS §165-40; does not refute it) L18921
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §194-K — Blind sched1's alias oracle with a second SET of a pointer pseudo — the first zero-byte, non-volatile, dependence-CREATING lever (corrects §167-05's "volatile is the only door"; fourth consumer of reg_n_sets) L19415
  • §194-N — §193-D's C dial is misstated: the lever is a SURVIVING CODE_LABEL (a label with a real incoming edge), not "a label between the block and the call" — a bare label, or a goto L; L: pair whose target is the next active insn, is deleted by jump1 (jump.c:663-669 → delete_insn → jump.c:3458-3461, and jump.c:243 for the bare case) long before sched1/local-alloc, and costs exactly zero bytes L19596
  • §195-D — §195 — masked_diff.mask_for returns 0 for EVERY j/jal word, so an internal j destination is invisible to match_one, the permuter scorer AND every similarity tier: a control-flow semantic error (which calls execute) surfaces as a 1-instruction residual mislabelled DELAY-SLOT / profile=schedule, or as an outright false MATCH L19852
  • §199-A — §189-A's asm→source inference is byte-FALSE: an interloper between a split constant's lui/ori is a SCHEDULE fact, not a source fact — and the separator is the BIRTHING BOOST, not a "priority floor" (§189-A's split-timing half survives; its "no statement order / no pin" absolute and the candidate's own forward-scheduler narrative both fall) L20681
  • §199-F — §164-36b — THE TARGET-HEAD FENCE IS A DELAY-SLOT THREAD SELECTOR, AND IT ONLY FIRES WHEN mostly_true_jump > 0 (amendment to §164-36; its "−1 instruction" tell is falsified) L20942

register allocation & pins (68)

  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • Residual — A — commutative |/&/+ result lands in the wrong source-operand register L856
  • Register-allocation — ORDER (call-crossing $s0/$s1 swap) → FORCE it with register pins (byte-proven) L1384
  • §3-The — LOOSE-TYPING wall is real for narrow params (Phase 16, reconfirmed) L1428
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • §22 — DEF-side loose-typing recovery + grinder blacklist (Phase 21) L2005
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2900
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3195
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3298
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3365
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3405
  • §3-A. — ALLOCNO-PRICING DIALS — move a value into the register you want, byte-neutrally L3413
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3913
  • §52a — The regalloc sibling wave: new levers + two new wall classes (cheap-Opus applying §52, 2026-07-15) L3959
  • §52b — Sibling wave 2: more de-pin levers, a third wall class, and the match_one→whole-binary gap at scale (2026-07-15) L3997
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5280
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5619
  • §71 — Before mapping a giant, look for an already-matched SIBLING beside it (Phase 29 SESSION-18, func_8017D960, 3,338 ins) L5660
  • §72 — A register __asm__ pin is a PREFERENCE, not a reservation (Phase 29 SESSION-18, func_8017F510) L5726
  • §74 — Auditing a pinned draft: the §72 hazard is CALLER-SAVED pins spanning a call, and only the disassembly can tell you (Phase 29 SESSION-19, func_8017D960 b2, 5 pins) L5822
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6028
  • §78 — A LENGTH drift can be a register grant in disguise; and fold never leaves a literal first in an | chain (Phase 29 SESSION-19, behemoth #2 func_8017D960 3,338 ins, 1806 → 0, pin-free) L6174
  • §76 — confirmed at scale, and a pin nuance L6251
  • §80 — A do-not-re-buy entry is scoped to its BASE, not to the function; and the pin's hidden cost is an unconditional qty_phys_sugg (Phase 29 SESSION-19, func_8017BF14 45 → 0) L6270
  • §3-The — pin's hidden cost, with the citation L6291
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6412
  • §83c — TRAP: a "dead local" in a prior draft may be gcc's OWN spill area L6445
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6589
  • §3-Two — further notes worth keeping L8248
  • §137 — REGALLOC-PERM is a TWO-COMPILE ARITHMETIC PROBLEM, not a permuter job L9344
  • §3-The — same swallow, twice more, in the integration spine L9709
  • §3-B. — A ?: on MEMORY operands costs ~16 bytes of invisible frame; on REGISTER operands, zero L10057
  • §3-D. — A lone $t8/$t9 in the target is RELOAD SCRATCH — reproduce the spill, don't pin the register L10073
  • §3-C. — A zero-byte ALLOCNO-PRIORITY slider L10184
  • §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43, func_8017C6F4, 947 ins ×4) L10312
  • §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10418
  • §155 — hi/lo literal scanning MUST track base registers (S45) L10558
  • §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3, func_8017CE58, 733 ins) L10712
  • Bonus — facts worth keeping L10757
  • §156 — THE PREFERENCE-DONOR MERGE: cross-region variable reuse is what fills a0-a3, and a call-arg use in ONE region steers the fill in ALL of them (P30 S46 tier-3, func_80186E24, 611 ins: 236-off "S11 regalloc-order" → MATCH, zero new pins) L10772
  • §175 — A CALLER-SAVED REGISTER PIN CAN BE A CORRECTNESS BUG, NOT JUST A SCHEDULING CHOICE (P31 wave H, 2026-08-15) L16712
  • §176j — STOPPING A WAVE MID-FLIGHT COSTS THE IN-FLIGHT TAIL (and how much is recoverable) L17096
  • §177 — 🔴 THE EPILOGUE RETURN-DELAY SLOT IS DECIDED BY YOUR SAVED-REGISTER SET, NOT BY SCHEDULING L17159
  • §179-A — 🔴 A LOOP-WALKED POINTER PARAMETER HANDS ITS ARGUMENT REGISTER TO THE GIV (9 byte-proofs) L17313
  • §179-F — PINNING A LOOP-WALKED POINTER IS A TOTAL OFF-SWITCH FOR STRENGTH REDUCTION L17509
  • §179-G — 🟡 A PIN CAN CREATE A COMBINE LOG_LINK AND DELETE AN andi (sixth RC-5 channel, n=1) L17532
  • §176 — SEVEN LEVERS FROM THE P31 OVERNIGHT WAVES (2026-08-15): statement order, false regalloc, and the pin that fights back L17610
  • §176-B — "REGALLOC-PERM, 1-4 instructions off" ⇒ it is usually NOT register allocation L17640
  • §176-C — 🔴 WALL REFUTATION: a hard-register pin CANNOT schedule around a call, because of a genuine gcc-2.7.2 bug L17680
  • §3-18 — of 20 reconciled while keeping the match. The two that did not are mechanism, not effort. L17933
  • §186 — CROSS-JUMPING RUNS AFTER SCHEDULING, SO NO C-LEVEL BARRIER CAN STEER IT L18063
  • §186c — WHERE A VALUE IS LOADED DECIDES WHICH ALLOCATOR OWNS IT, AND THEREFORE ITS REGISTER L18092
  • §193-B — A NARROW CAST OF A WIDE PARAMETER COSTS ONE EXTRA INSTRUCTION WHEN ITS STATEMENT SITS AFTER AN INTERVENING jal — AND THE DECIDER IS combine.c:929's CROSS-CALL GUARD, NOT REGISTER ALLOCATION L18480
  • §193-D — A COMPILER-GENERATED ARGUMENT COPY IS A optimize_reg_copy_1 TRIGGER: when the pointer's LAST use in a block precedes a call that takes the pointer as a register, sched1 hoists the implicit move $aN,$sN to the block top and local-alloc re-bases the WHOLE block's memory operands onto $aN. The only C dial is a label (the §165-24 goto-join) between the block and the call. L18552
  • §194-B — A addu $rA,$rB,$zero copy feeding ≥2 sh stores is a SECOND, 16-BIT-DECLARED local — the width, not the clamp or the join liveness, is what keeps the copy (and func_80183094's pin + "memory" clobber are both provably inert) L18987
  • §194-C — A CALLER-SAVED loop counter proves its live range crosses ZERO calls — so it cannot share a pseudo with any value LIVE ACROSS a call (but it may freely share one with values that merely sit between calls) L19025
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §194-G — Reading the integer half of a 16.16 stack aggregate: REGISTER-LIVENESS, not the C spelling, decides sra vs lhu — and the break is count-neutral L19239
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §194-N — §193-D's C dial is misstated: the lever is a SURVIVING CODE_LABEL (a label with a real incoming edge), not "a label between the block and the call" — a bare label, or a goto L; L: pair whose target is the next active insn, is deleted by jump1 (jump.c:663-669 → delete_insn → jump.c:3458-3461, and jump.c:243 for the bare case) long before sched1/local-alloc, and costs exactly zero bytes L19596
  • §195-B — A CALL_INSN does not start a basic block in gcc-2.7.2 — so a call-crossing temp can be a LOCAL-alloc quantity (the missing precondition under §48-A2 / §52 / regalloc.md K8) L19762
  • §195-F — fold-const.c:4825 canonicalises a ?: whose THEN arm is zero (or constant against a non-constant ELSE) by inverting the condition and swapping the arms — so a ternary's written arm order is byte-inert there, and c ? 0 : X is unspellable: it always compiles as !c ? X : 0 L19978
  • §197-C — Fix A1 (operand order) cannot move a commutative destination whose .greg conflict set already contains BOTH operand hard registers — split the accumulate so the destination IS the load's pseudo L20610
  • §199-A — §189-A's asm→source inference is byte-FALSE: an interloper between a split constant's lui/ori is a SCHEDULE fact, not a source fact — and the separator is the BIRTHING BOOST, not a "priority floor" (§189-A's split-timing half survives; its "no statement order / no pin" absolute and the candidate's own forward-scheduler narrative both fall) L20681
  • §199-B — A permutation sweep that holds ANY statement fixed is not a sweep: the statement an agent pins as "obviously load-bearing" is the one carrying the signal, and the partial sweep returns a FLAT residual that reads as proof of order-invariance L20730
  • §199-E — §189-A BOUNDED AND CORRECTED — the discriminator is INSN_PRIORITY, not "is the interloper a constant": an insn between a lui/ori pair proves NOTHING about the source spelling unless it TIES the ori on priority, and on the pinned -mcpu=3000 triple a dependent load never does L20883

CSE / redundancy / rematerialization (17)

  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3313
  • §83d — CSE's quantity budget is WHOLE-FUNCTION, so a local rewrite cannot fix a local symptom L6452
  • §153 — THE ADDRESS-REMATERIALISATION LAUNDER: a third zero-emission asm lever (P30 S43, func_8018D98C, 710 ins) L10466
  • §176-D — CSE-class levers used in reverse (two sharpenings of §153 and cse_expr §2) L17706
  • §193-E — A varying-address (pointer) load is re-emitted once per CSE-LIVE INTERVAL, and naming it in a C local is the only C-level lever over that count — no store SPELLING has any reach L18623
  • §193-F — §148-A2 — The threshold -= 3 STAIRCASE: move_movables admits a COUNT of invariants, not a boolean — two identical merged constants split hoisted/not-hoisted by LIST ORDER, and insn_count picks the rank cutoff L18653
  • §193-H — A pointer-derived base load *(s32*)(p+K) is uncacheable across ANY memory write or call (cse's third kill disjunct) — so the target emits one lw per store-separated RUN of spellings, and a run of stores sharing one lw is a C local you must declare L18778
  • §194-A — A zero-byte scheduling fence goes AFTER the defining statement to make that computation emit FIRST in its block — and the barrier predicate is volatile-or-colon-less, not the "memory" clobber (COMPLEMENTS §165-40; does not refute it) L18921
  • §194-J — Back-to-back identical stores: flow.c's last_mem_set deletes the first, and only volatile saves it L19363
  • §194-K — Blind sched1's alias oracle with a second SET of a pointer pseudo — the first zero-byte, non-volatile, dependence-CREATING lever (corrects §167-05's "volatile is the only door"; fourth consumer of reg_n_sets) L19415
  • §195-H — §165-27g — ON A FIXED-SYMBOL GLOBAL, extern T D[]; + D[0] IS THE CSE RELOAD DIAL, AT ZERO ADDRESSING COST, AND THE ELEMENT COUNT IS INERT (§165-27's T v[2] CAVEAT IS A LOCAL-FRAME FACT AND DOES NOT TRANSFER) L20078
  • §195-I — §145(b) AMENDED — the pointer-bump addiu is saved by cse, not combine: ANY second SET of a pseudo in the address's equivalence chain (in-place p += K, §145(b)'s p = r; copy, or an asm re-tie) kills the fold; the pass is cse and the gate is invalidate's reg_tick++ L20125
  • §195-L — The cse store-re-seed does not cross a JOIN LABEL: per-arm stores + a join read keep the reload that one join store deletes (bounds §193-E BOUND 1/BOUND 3 with §48-B's EBB boundary) L20286
  • §197-A — A NARROW SIGNED MEMORY READ FEEDING A CONSTANT >> LOSES ITS lh, AND THE CURE IS AN ASM RE-TIE (attribution CONTESTED: cse vs combine) L20544
  • §197-B — A REPEATED COMPARE OF ONE VALUE AGAINST ONE CONSTANT IS DELETED BY cse's qty_comparison_code CHANNEL (the non-EQ complement of §165-03) — and a front-end-opaque mask on EITHER compare is a pure-C dial that keeps the target's second branch L20582
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §201-E — §194-J-2 — The last_mem_set deletion window is measured in SOURCE/expand order, not in the printed stream; a foreign store moved between the pair in C source is a real lever, and volatile is not always the better one L21331

loops & induction variables (14)

  • §3-T1 — Loop pointer: top-of-body for addu induction, not constant-folded addiu L71
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2454
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2471
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3313
  • §66d — The permuter⇄reader loop: alternate a random search with a byte-verified idiom, and let residual_class decide whose turn it is (Phase 29 SESSION-17) L5245
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5280
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5619
  • §145 — Three loop/combine levers from the S40 wave-2 drafters (16/16 match_one) L9927
  • §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the ?: clamp that folds to MIN_EXPR (P30 S42, func_8017C6F4, 947 ins) L10145
  • §171a — THE MECHANICAL A-PROP DRAFT (P30 S50): 256 members banked with no agent in the loop L16420
  • §179-A — 🔴 A LOOP-WALKED POINTER PARAMETER HANDS ITS ARGUMENT REGISTER TO THE GIV (9 byte-proofs) L17313
  • §179-E — A >2*MAX_MOVE_BYTES BLOCK COPY IS A STRUCT ASSIGNMENT, NOT A HAND LOOP L17483
  • §179-F — PINNING A LOOP-WALKED POINTER IS A TOTAL OFF-SWITCH FOR STRENGTH REDUCTION L17509
  • §194-C — A CALLER-SAVED loop counter proves its live range crosses ZERO calls — so it cannot share a pseudo with any value LIVE ACROSS a call (but it may freely share one with values that merely sit between calls) L19025

structs, block moves & memcpy (51)

  • §3-T2 — Source statement order drives instruction scheduling L78
  • §5 — Known hard-residual classes (instruction-identical, one byte-exact blocker) L199
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • §15 — Struct-heavy shared-core pipeline (Phase 16) — empirical determinations (S0) L1313
  • §16 — Guided hand-matching the struct-heavy core (Phase 17 — beats the §15 brute-force) L1335
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2144
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2325
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2357
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2382
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2422
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2527
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2553
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2710
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2953
  • §44 — The Phase-25 cheap-Opus giant batch: 5 structural levers + the §43 extension (2026-07-11, 6 crackers over the frontier giants) L3242
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3313
  • §3-Why — 0/8 was structural, and predictable from two words L4045
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4163
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4232
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5030
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5491
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6412
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6472
  • §3-The — construct L6477
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6842
  • §3-The — three-hypothesis trail, because two of them were wrong and the wrongness is instructive L6871
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8437
  • §129a — the target instruction count is INFLATED after a carve L8441
  • §3-The — DEFINITION-side alias is the only escape when the fleet canon disagrees on a promoting param L9473
  • §3-Two — errors of mine, both instructive L10009
  • §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10893
  • §16Xy — SHARPENS (sharpens §136d-3, §37 /s-DEP LATTICE, §135-2, §136-13, §162q) L12300
  • §3-The — /s drop clause is in ALL THREE dependence predicates, so the FIXED-ADDRESS STORE is what floats (P30 S48, func_8017CA18, ov_MAIN_012) L12302
  • §16Z — SHARPENS (sharpens §37 "the /s-DEP LATTICE", §136-13, §136-14, §16Xy, §162q, gcc-2.7.2-map/sched.md §64) L14340
  • §3-The — ADDRESS-CLASS TABLE: which load/store pairs even REACH the /s clause (P30 S48 wave 4, func_80185B44, ov_SC03_014) L14342
  • §176g — SIZE A WAVE BY INSTRUCTIONS, NOT BY CARDS (P31 S52 — the adopted doctrine) L16930
  • §3-F. — MEM_IN_STRUCT_P ASYMMETRY IN true_dependence (func_80037144, 124 ins) L17281
  • §179-E — A >2*MAX_MOVE_BYTES BLOCK COPY IS A STRUCT ASSIGNMENT, NOT A HAND LOOP L17483
  • §176-B — "REGALLOC-PERM, 1-4 instructions off" ⇒ it is usually NOT register allocation L17640
  • §189 — FIVE COMPILER LAWS MINED FROM THE WAVE R/S JOURNALS (P31 S53), each source-cited and re-derived by a second agent L18197
  • §193-A — The wave card ships only OPEN-set pointers and discards the atlas's BANKED one — exemplar/sibs are stubs 100% by construction (tools/atlas.py:96/657), while seed.ref (matched pool, atlas.py:505-536) is dropped at build_wave_atlas.py:143 L18413
  • §193-B — A NARROW CAST OF A WIDE PARAMETER COSTS ONE EXTRA INSTRUCTION WHEN ITS STATEMENT SITS AFTER AN INTERVENING jal — AND THE DECIDER IS combine.c:929's CROSS-CALL GUARD, NOT REGISTER ALLOCATION L18480
  • §193-I — A DECLARED AGGREGATE LOCAL HAS AN 8-BYTE FRAME STRIDE — CEIL(size,8), NOT size. N ARRAYS THEREFORE COST 8·k MORE THAN ONE HAND-LAID STRUCT (k = how many of them have size mod 8 ≠ 0), AND THE TELL IS IDENTICAL INSTRUCTION COUNT WITH EVERY $sp DISPLACEMENT SHIFTED BY THE SAME CONSTANT. L18818
  • §194-E — The wave card's exemplar is the TARGET ITSELF on 42/73 wave-U and 36/71 wave-T cards — a construction consequence of atlas.py:657 (exemplar = max-nins OPEN member) meeting build_wave_atlas.py:166 (one card per gid); and the shipped §193-A seed_ref is same-binary on 0/51, so no card field can ever name a destination-TU sibling L19129
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §195-D — §195 — masked_diff.mask_for returns 0 for EVERY j/jal word, so an internal j destination is invisible to match_one, the permuter scorer AND every similarity tier: a control-flow semantic error (which calls execute) surfaces as a 1-instruction residual mislabelled DELAY-SLOT / profile=schedule, or as an outright false MATCH L19852
  • §195-F — fold-const.c:4825 canonicalises a ?: whose THEN arm is zero (or constant against a non-constant ELSE) by inverting the condition and swapping the arms — so a ternary's written arm order is byte-inert there, and c ? 0 : X is unspellable: it always compiles as !c ? X : 0 L19978
  • §195-G — §NEW — TWO ARMS CALLING THE SAME CALLEE MERGE INTO ONE jal UNLESS EACH ARM'S OWN CODE CONSUMES THE RESULT: the C dial that keeps two call sites apart is WHERE the consumer test lives, and the branch SENSE you spell it with is byte-inert (jump.c:1737 canonicalises it) L20030
  • §195-K — At -O2 the §18 array-of-struct lever is a FRAME lever, not a length lever — but only when the N reads carry DISTINCT index expressions; with a SHARED index §18's +2-instruction residual is still alive at -O2 (the submitted "memory-loaded narrow index" precondition and unconditional length-neutrality are both falsified) L20234
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §199-F — §164-36b — THE TARGET-HEAD FENCE IS A DELAY-SLOT THREAD SELECTOR, AND IT ONLY FIRES WHEN mostly_true_jump > 0 (amendment to §164-36; its "−1 instruction" tell is falsified) L20942

types, signedness & load/store width (49)

  • §3-I1 — Unsigned range check: (x - lo) < (hi-lo) → addiu+sltiu L41
  • §3-I2 — Byte mask forces andi even after lbu L47
  • §3-T3 — Types L85
  • §7 — PsyQ SDK types & symbols (the library-call prerequisite) L303
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2357
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2434
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2601
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2710
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2878
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2994
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3195
  • §3-C. — TYPE- AND SHAPE-DRIVEN CODEGEN (the C type literally selects the addressing mode) L3484
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4232
  • §64 — The §20 type-lift's three laws: fold the tagged typedef, check VISIBILITY, and strip only what is TEXTUALLY IDENTICAL (lift_types.py, Phase 29 SESSION-14, 2026-07-23) L4908
  • §64a — VARIANT types: UNIQUIFY the camps, do not reconcile them (uniquify_type.py, Phase 29 SESSION-14) L4957
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5139
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5524
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5783
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5997
  • §3-The — defect this exposed: a shared type that is present but invisible L6354
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6891
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6947
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7216
  • §120 — Uniquify draft-defined TYPE names; and check which of N staging sites you actually patched (Phase 29 T93) L8026
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8037
  • §3-The — type-form rules L8879
  • §143 — cast_call_sites read a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9834
  • Then — propagation returned 0/137 TWICE — both times a missing TYPE L10000
  • §154 — Reading a disc payload: the module-id word, static base derivation, and "type 1 = uncompressed overlay" (P30 S44) L10522
  • §3-C. — PAC type 1 = the same payload class as type 4, just NOT compressed L10548
  • §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10587
  • §3-B. — Typedef handling — the only strategy that survives contact L16994
  • §3-D. — A NARROW TYPE BLOCKS COPY ELISION (func_8001D3FC — new idiom) L17265
  • §185 — EDIT THE SIDE THAT IS CHEAP TO VERIFY, AND CHECK A TU RETYPE AT ITS USE SITES L18031
  • §186b — A NO-SAVE 16-BYTE FRAME IN A LEAF FUNCTION MEANS s16 LOCALS, NOT A HIDDEN CALL L18084
  • §193-B — A NARROW CAST OF A WIDE PARAMETER COSTS ONE EXTRA INSTRUCTION WHEN ITS STATEMENT SITS AFTER AN INTERVENING jal — AND THE DECIDER IS combine.c:929's CROSS-CALL GUARD, NOT REGISTER ALLOCATION L18480
  • §193-G — §164-54's "scope to ≥4 arms" bound is byte-wrong — the dispatch-topology oracle goes live at THREE case nodes (balance_case_nodes splits at i > 2), but only for a signed-after-promotion index L18717
  • §193-H — A pointer-derived base load *(s32*)(p+K) is uncacheable across ANY memory write or call (cse's third kill disjunct) — so the target emits one lw per store-separated RUN of spellings, and a run of stores sharing one lw is a C local you must declare L18778
  • §194-B — A addu $rA,$rB,$zero copy feeding ≥2 sh stores is a SECOND, 16-BIT-DECLARED local — the width, not the clamp or the join liveness, is what keeps the copy (and func_80183094's pin + "memory" clobber are both provably inert) L18987
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §194-G — Reading the integer half of a 16.16 stack aggregate: REGISTER-LIVENESS, not the C spelling, decides sra vs lhu — and the break is count-neutral L19239
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §194-I — §16N+2's magic-per-odd-part ladder has exactly one broken row — read the divisor arithmetically instead: d = round(2^(32 + post_shift) / magic_read_as_unsigned) L19320
  • §197-A — A NARROW SIGNED MEMORY READ FEEDING A CONSTANT >> LOSES ITS lh, AND THE CURE IS AN ASM RE-TIE (attribution CONTESTED: cse vs combine) L20544
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §201-D — THE SIGNEDNESS OF A div/mod MAGIC IS DECIDED BY THE STATIC TYPE OF THE DIVIDEND TREE AFTER get_narrower STRIPS WIDENING CONVERSIONS — NEVER BY A PROVABLE RANGE. AN & 0xFF IS NOT A CONVERSION, SO IT NEVER FLIPS THE MAGIC; A DECLARED-UNSIGNED LOCAL OR A NARROWING CAST WRITTEN AT THE DIVIDE BOTH DO. L21284

declarations, prototypes & K&R (75)

  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2189
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2325
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2366
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2434
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2601
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2710
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2858
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2878
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3195
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3769
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4163
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4187
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4232
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4256
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4545
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4877
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L5000
  • §65c — rtu_match MATCH → bank held 13/13 on self-decl, but broke on the FIRST callee-decl case L5081
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5139
  • §66a — The widest write in a pipeline is the one most likely to be UNDECLARED L5181
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5524
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5783
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5866
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5948
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5997
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6028
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6220
  • §3-NEW — LEVER — the frame layout reads back the original declaration order L6240
  • §3-1. — The inlined-helper signature L6375
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6891
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6983
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7018
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7113
  • §99 — The narrow-param wall is a DEF-side problem with a ZERO-blast-radius fix: convert the definition to K&R (Phase 29 SESSION-22, func_80175AB8 + func_80175DA8) L7167
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7272
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7307
  • §104 — Two silent-skip defects in one scan: match on MASKED text, emit from the ORIGINAL (Phase 29 T53, gather_externs) L7395
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7730
  • §113 — An ARITY blocker only exists if the macro CALLS the function; an address-taken use has no call site (Phase 29 T72) L7776
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7808
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8037
  • §121 — Synthesise externs for macro-DEFINED callees from the macro's own definition head (Phase 29 T95) L8061
  • §3-The — declaration surface (integration, not codegen) L8941
  • §136f — Two declaration sub-cases the reconcile lane surfaced (lane now 15/15 lifetime) L9186
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9415
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9565
  • §141 — The §134 class is CLOSED: every line-shape decision now routes through cdecl._mask (P30 S39) L9740
  • §143 — cast_call_sites read a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9834
  • §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10068
  • §159 — THE DECLARATION AXIS: conform to byte-truth, and make every guard state its COVERAGE (P30 S47; ~10,930 sites across 8 axes, fleet byte-identical) L10828
  • §168 — THE COUSIN TIER (P30 S49, 2026-08-12): h_seq's exact-hash brittleness, measured — and the similarity map above it L16211
  • §176f — THE DECLARATION FORM IS A MATCHING LEVER, SO RECONCILE TOWARD THE FORM THE MATCH NEEDS (P31 S52) L16899
  • §183 — THE DECLARATION-RECONCILIATION PLAYBOOK (P31 S53, measured on 20 byte-verified drafts) L17932
  • §193-H — A pointer-derived base load *(s32*)(p+K) is uncacheable across ANY memory write or call (cse's third kill disjunct) — so the target emits one lw per store-separated RUN of spellings, and a run of stores sharing one lw is a C local you must declare L18778
  • §193-I — A DECLARED AGGREGATE LOCAL HAS AN 8-BYTE FRAME STRIDE — CEIL(size,8), NOT size. N ARRAYS THEREFORE COST 8·k MORE THAN ONE HAND-LAID STRUCT (k = how many of them have size mod 8 ≠ 0), AND THE TELL IS IDENTICAL INSTRUCTION COUNT WITH EVERY $sp DISPLACEMENT SHIFTED BY THE SAME CONSTANT. L18818
  • §194-B — A addu $rA,$rB,$zero copy feeding ≥2 sh stores is a SECOND, 16-BIT-DECLARED local — the width, not the clamp or the join liveness, is what keeps the copy (and func_80183094's pin + "memory" clobber are both provably inert) L18987
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §195-A — §167-08's "an $aN READ before the jal is scratch" has a byte-proven FALSE-NEGATIVE class: an argument that DIES at the call is allocated straight into $aN, so its only def is a plain load far above the jal and every intervening use reads $aN — there is no positive tell in either direction, only the two-arity A/B L19691
  • §195-C — A call-argument %hi/%lo pair sitting at the block head, far above its jal, is a load-delay-gap filler chosen by SOURCE STATEMENT ORDER — swap the two independent statements nearest the call; a single-use void *p = &SYM; call-arg temp is OUTPUT-inert against it (but NOT expand-stream-inert) L19804
  • §195-D — §195 — masked_diff.mask_for returns 0 for EVERY j/jal word, so an internal j destination is invisible to match_one, the permuter scorer AND every similarity tier: a control-flow semantic error (which calls execute) surfaces as a 1-instruction residual mislabelled DELAY-SLOT / profile=schedule, or as an outright false MATCH L19852
  • §195-F — fold-const.c:4825 canonicalises a ?: whose THEN arm is zero (or constant against a non-constant ELSE) by inverting the condition and swapping the arms — so a ternary's written arm order is byte-inert there, and c ? 0 : X is unspellable: it always compiles as !c ? X : 0 L19978
  • §195-G — §NEW — TWO ARMS CALLING THE SAME CALLEE MERGE INTO ONE jal UNLESS EACH ARM'S OWN CODE CONSUMES THE RESULT: the C dial that keeps two call sites apart is WHERE the consumer test lives, and the branch SENSE you spell it with is byte-inert (jump.c:1737 canonicalises it) L20030
  • §195-H — §165-27g — ON A FIXED-SYMBOL GLOBAL, extern T D[]; + D[0] IS THE CSE RELOAD DIAL, AT ZERO ADDRESSING COST, AND THE ELEMENT COUNT IS INERT (§165-27's T v[2] CAVEAT IS A LOCAL-FRAME FACT AND DOES NOT TRANSFER) L20078
  • §196 — PUT ON THE CARD WHAT THE TREE ALREADY KNOWS: the fleet's declaration consensus (P31 S54) L20475
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §199-G — At TWO case nodes the switch-vs-if oracle is not blind — but the tell is ALL tests positive + a trailing j default, NOT the first test's polarity L20996
  • §200 — THE ALIAS IS THE UNIVERSAL DECLARATION ESCAPE: stop negotiating with the TU's spelling (P31 S55) L21062
  • §201-A — §150-B applies to decl_prior's DEF row: for an overlay-window symbol the banked "definition" is usually another overlay's function, and the card ranks it ABOVE the destination TU L21121
  • §201-D — THE SIGNEDNESS OF A div/mod MAGIC IS DECIDED BY THE STATIC TYPE OF THE DIVIDEND TREE AFTER get_narrower STRIPS WIDENING CONVERSIONS — NEVER BY A PROVABLE RANGE. AN & 0xFF IS NOT A CONVERSION, SO IT NEVER FLIPS THE MAGIC; A DECLARED-UNSIGNED LOCAL OR A NARROWING CAST WRITTEN AT THE DIVIDE BOTH DO. L21284

jump tables & switches (31)

  • §8 — rodata island (compiler jump tables) — the .data→.rodata→.data sandwich (Phase 7) L320
  • §8a — rodata island in a flat OVERLAY — the tail sandwich, per matched jr-function (Phase 26 — PoC PROVEN) L342
  • §8a-pad — a trailing .word 0x00000000 under a jtbl dlabel is .align PAD, not an entry (Phase 26 session 6, byte-proven) L380
  • §8b — MULTI-jtbl per overlay — the ld_interleave --order sandwich + the same-subseg cases (Phase 26 session 4) L404
  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2809
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3405
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4028
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4658
  • §61c — The jtbl bank is INCREMENTALLY valid and CLEAN-INVALID (Phase 29, 2026-07-21) — the blocking finding L4713
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4833
  • §81 — Banking a jr (jump-table) function: the 3-step carve chain, and why match_one cannot see the problem (Phase 29 SESSION-19, func_8017C954) L6323
  • §88d — BANKING ORDER: run the §81 carve chain BEFORE banking, never after L6701
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7066
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7431
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8206
  • §126 — The carve-within-a-carve: an ADDRESS RANGE is not an OPTIMIZATION REGION (P30 T2, byte-proven end-to-end) L8264
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8437
  • §129a — the target instruction count is INFLATED after a carve L8441
  • §129b — never commit a carve whose owner is still a stub (it strands the carve) L8462
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8486
  • §131 — The jtbl OVER-SPAN: sltiu N is ground truth in BOTH directions, and the zero-word rule only guards one (P30 S28, func_80191C50) L8533
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8570
  • §132b — When the span's already-matched owner is ITSELF multi-switch: --span-rel (P30 S1, func_8014032C) L8660
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9594
  • §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10969
  • §179-F — PINNING A LOOP-WALKED POINTER IS A TOTAL OFF-SWITCH FOR STRENGTH REDUCTION L17509
  • §188 — 🔴 THE jr $ra + addiu $sp TAIL IS AN ASSEMBLER ARTIFACT, NOT A FRAME SHAPE L18147
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §199-G — At TWO case nodes the switch-vs-if oracle is not blind — but the tell is ALL tests positive + a trailing j default, NOT the first test's polarity L20996

optimisation level (-O0/-O2) (13)

  • §6 — Per-module optimization mixing — the -O0 boot module (Phase 7) L246
  • Detecting — the opt level (do this first) L254
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §18 — Per-file -O0 split inside an overlay/blob (Phase 19 T1) L1519
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2527
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2537
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7877
  • §3-The — finding: opt level is per FILE, so the file's contents must be opt-HOMOGENEOUS L8279
  • §127 — The -O0 regime: the CONSTANT-OFFSET FOLD, and why -O0 needs its own idiom set (P30 T3 wave, 15 targets) L8349
  • §3-The — rest of the -O0 regime (write PLAIN C, and mean it) L8367
  • §127a — §71 (sibling-first) is the strongest -O0 lever, and it beats the index L8377
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8570
  • §195-K — At -O2 the §18 array-of-struct lever is a FRAME lever, not a length lever — but only when the N reads carry DISTINCT index expressions; with a SHARED index §18's +2-instruction residual is still alive at -O2 (the submitted "memory-loaded narrow index" precondition and unconditional length-neutrality are both falsified) L20234

family propagation & sweeps (91)

  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §11 — Cross-binary dedup & code-sharing (Phase 11 — "one match unlocks many") L908
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • §3-The — flat-blob overlay config (what the template encodes) L1071
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2177
  • Where — this leaves the reach-134 tail (cont.6 option-3, now CONFIRMED byte-backed) L2233
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2325
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2352
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2357
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2366
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2382
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2454
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2527
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2537
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2553
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2601
  • §40b — The reloc-tracker blind spot: the indexed-global idiom that hid the "reach-1 tail" (Phase 26 Task 1, 2026-07-11, byte-verified V0/V1) L2634
  • §40c — The h_seq per-sibling reconcile: templating a reconcile-class crack ×134 (Phase 26 Task 8, 2026-07-12, byte-proven) L2676
  • §41c — T7-M2: the ×134 def-side-wall sweep via per-sibling RE-reconcile (Phase 25, 2026-07-10; 4,389 banks, ~0 agent tokens) L2839
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2900
  • §42e — propagating a CRACK ×134: the def-finder bug + the byte-drift residual (the "remap-fail" misdiagnosis) L3121
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3195
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3298
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3313
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3365
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3527
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3913
  • §3-The — 6 levers (the "walker-family skeleton" — apply to the 12 siblings; levers 1-5 retire ~half the residual) L3924
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4028
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4141
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4163
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4187
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4232
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4256
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4303
  • §59 — Three h_seq sweep-residual classes match_one/the-exemplar-bank don't reveal (Phase 29 crack-wave close, 2026-07-18) L4377
  • §3-Two — corollaries worth remembering L4450
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5030
  • §3-Giv — record order (the §70 family) L5760
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5866
  • §75a — The exclusion classes, enumerated with named causes (Phase 29 SESSION-19, the 134-binary dedup_extend sweep) L5925
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5948
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6028
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6084
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6472
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6589
  • §3-THE — LAW: all-or-nothing PER FAMILY L6600
  • §3-Why — the two live families differ from the three dead ones — the open question L6627
  • §3-The — cheap discriminator, before spending a sweep L6666
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6745
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6842
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6947
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7431
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7513
  • §108 — Diagnosing a family 0/N: the four causes, and the third opt-in lever (Phase 29 T59) L7551
  • §111 — The distinct-code metric is not noisy: a family pays it only if its members are byte-VARIANT (Phase 29 T66) L7681
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7877
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8116
  • §124 — A "not matched" verdict can mean the definition is there under a DIFFERENT C NAME: the asm-label alias blind spot (P30 SESSION-28, func_8016191C ×137) L8153
  • §124a — a family sweep's 0 matched-exemplar families may be a FILTER, not a wall L8198
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8711
  • §136c — SIBLING-FIRST is a DERIVATION shortcut, not just a conflict fix (the fastest route in a family wave) L9069
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9415
  • §142 — An open stub whose h_exact class is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9778
  • §143 — cast_call_sites read a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9834
  • Then — propagation returned 0/137 TWICE — both times a missing TYPE L10000
  • §3-A. — The frame has THREE strata, and stratum 3 is unreachable from C L10041
  • §3-E. — A qty_compare TIE is not spelling-reachable — recognise it and stop L10083
  • Consequence — for the family (a real scheduling decision) L10095
  • §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43, func_8017C6F4, 947 ins ×4) L10312
  • §151 — THE GHOST WEDGE: when a load-before-store transposition is unreachable by ANY statement order (P30 S43, func_8017EF68, 969 ins) L10367
  • When — to reach for it L10407
  • §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10418
  • §156 — an ORPHANED reconcile poisons the fleet: dedup_propagate's kept edit (S45 p6/p7) L10640
  • §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10893
  • §162 — S48 WAVE-1 HARVEST (P30, 2026-08-11): the reach-ordered sibling campaign's first 12 targets L11014
  • §163z — THE UNVETTED REMAINDER (do not cite as law; each needs a dedupe pass) L11828
  • §3-The — ADDRESS-CLASS TABLE: which load/store pairs even REACH the /s clause (P30 S48 wave 4, func_80185B44, ov_SC03_014) L14342
  • §168 — THE COUSIN TIER (P30 S49, 2026-08-12): h_seq's exact-hash brittleness, measured — and the similarity map above it L16211
  • §171a — THE MECHANICAL A-PROP DRAFT (P30 S50): 256 members banked with no agent in the loop L16420
  • §171b — THREE CARRIES THE MECHANICAL DRAFT NEEDS (P30 S50, banking the top-reach families) L16470
  • §3-G. — TWO MODELLING TRAPS THAT COST THESE AGENTS SWEEPS OF HUNDREDS OF COMPILES L17287
  • §193-E — A varying-address (pointer) load is re-emitted once per CSE-LIVE INTERVAL, and naming it in a C local is the only C-level lever over that count — no store SPELLING has any reach L18623
  • §194-E — The wave card's exemplar is the TARGET ITSELF on 42/73 wave-U and 36/71 wave-T cards — a construction consequence of atlas.py:657 (exemplar = max-nins OPEN member) meeting build_wave_atlas.py:166 (one card per gid); and the shipped §193-A seed_ref is same-binary on 0/51, so no card field can ever name a destination-TU sibling L19129
  • §195-E — A 0/1 materialised at a JOIN immediately before the controlling beqz/bnez proves the source NAMED the condition — a truth expression in an if's controlling position reaches do_jump, which has no value path L19920
  • §199-B — A permutation sweep that holds ANY statement fixed is not a sweep: the statement an agent pins as "obviously load-bearing" is the one carrying the signal, and the partial sweep returns a FLAT residual that reads as proof of order-invariance L20730

integration / TU plumbing (48)

  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.4 — Integrating a SECOND library (libgs block 6 after libcd) — multi-library gotchas L712
  • §9.5 — Integrating a WHOLE multi-block library in one call (full libgs — Phase 7 session G) L740
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2366
  • §30a — §30 generalizes to the FULL near-miss backlog (via STANDARD Opus agents, not just Fable5) + 2 more steer levers + the mechanical-integration throughput unlock (Phase 23 (a)) L2394
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2601
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2953
  • §42c — addendum — wave 3 (Max orchestrator + CORRECTED Ultracode fan-out, 2026-07-10c): the real-TU-faithful parallel harness (rtu_match) + 7/9 crack, ZERO iso-drift L3033
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4187
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4545
  • §61a — The Task-5 wave: 11/12 MATCH, 0 banked — three DISTINCT integration walls, each now named (Phase 29, 2026-07-21) L4606
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4877
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L5000
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5015
  • §65b — The escape: de-macroize the instantiation, don't touch the shared header L5045
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5118
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5139
  • §85 — The RETURN-axis fleet widen is ALL-OR-NOTHING: widening the shared header alone guarantees a conflict in the source overlay (Phase 29 SESSION-20, func_8012CC88 / func_8014D12C) L6539
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6983
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7018
  • §3-Two — reconcile_tu bugs found underneath, one introduced while fixing the other L7190
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7216
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7272
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7307
  • §109 — Conforming a definition to a shared header: fix the NAMES, then check the RETURN precondition (Phase 29 T60) L7600
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7730
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7808
  • §3-The — integration idioms (these decide whether a byte-correct draft BANKS) L8804
  • §3-The — declaration surface (integration, not codegen) L8941
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9565
  • §3-The — same swallow, twice more, in the integration spine L9709
  • §3-A. — Payload word0 is a global MODULE ID; code starts after the header L10527
  • §162 — THE LICM PAIR: what makes an address a movable AT ALL, and why the preheader order is the body order (P30 S47, ov_MAIN_012) L11143
  • §166 — THE DESTINATION-TU ORACLE (P30 S48): the seven-attempt bug that was never codegen L14902
  • §173 — THE STORED-PLUMBING RECOVERY RECIPE (P31 T6): symfix-first, per-group isolation, and where the verdicts have no drafts L16606
  • §176d — THE CONFLICT TABLE MUST BE SEEDED FROM THE TU, AND KEYED PER FILE (P31 S52, 2026-08-15) L16803
  • §180b — WHAT THE PRE-GATE LADDER ACTUALLY FINDS IN A COLD PILE (the shape of integration debt) L17813
  • §185 — EDIT THE SIDE THAT IS CHEAP TO VERIFY, AND CHECK A TU RETYPE AT ITS USE SITES L18031
  • §194-E — The wave card's exemplar is the TARGET ITSELF on 42/73 wave-U and 36/71 wave-T cards — a construction consequence of atlas.py:657 (exemplar = max-nins OPEN member) meeting build_wave_atlas.py:166 (one card per gid); and the shipped §193-A seed_ref is same-binary on 0/51, so no card field can ever name a destination-TU sibling L19129
  • §195-J — GTE / PsyQ op CALL-vs-INLINE is a PER-SITE SOURCE FACT, not a TU style — both forms coexist in one TU (measured in 2 TUs), and the tell is the target's own opcodes (lwc2/sqr/swc2 vs jal), not the sibling. Costs -8 ins on func_8018505C. Corollary: the game's inline sqr macro emits TWO hazard nops, the SDK's Square0 body emits ONE — so the inline form is provably not Square0 inlined (a second instance of §187's SDK-vs-game GTE nop divergence). L20190
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §200 — THE ALIAS IS THE UNIVERSAL DECLARATION ESCAPE: stop negotiating with the TU's spelling (P31 S55) L21062
  • §201-A — §150-B applies to decl_prior's DEF row: for an overlay-window symbol the banked "definition" is usually another overlay's function, and the card ranks it ABOVE the destination TU L21121

build graph, splat & the harness (145)

  • §4 — Flag/toolchain gotchas L190
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §9 — Link real PsyQ library objects byte-exact (Phase 7 — GO proven) L613
  • §9.1 — Generalised per-object linker — tools/psyq_link.py (+ psyq_link_lib.py), 18/18 libcd byte-exact L642
  • §9.2 — Wire a library region into the build with NOLOAD — no data carving (tools/psyq_link_region.py) L666
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.6 — Scaling library linking to the whole EXE (Phase 8 — 8 libs linked, 20%→50% byte-identical) L766
  • §9.7 — Binary-agnostic toolchain refactor (Phase 9) — the reusable pattern for Gen2 L802
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §12 — Ultracode harvest — parallel-draft + byte-gate at scale (Phase 12, resident: 1.4%→71.7% in one session) L964
  • One-command — onboarding — tools/new_overlay.sh <SCxx> <FILE_nnn> L1062
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • Fleet — build — make build-all / make check-all L1120
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §14b — Harvesting the UNMATCHED shared core — the match_one wall (Phase 15) L1192
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §17 — The compiler-quirk wall — the matching TOOLKIT (Phase 18; gcc-2.7.2 source + byte-gated) L1376
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §20 — The wave-at-scale GATE CAP + residual-class verdicts (Phase 20) L1632
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2189
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2325
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2352
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2366
  • §29 — Reasoning-model (GLM5.2) DEF-side reconciliation idioms + the wall's hard limit (Phase 23 T10.7, tools/glm_reconcile.py) L2374
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2434
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2454
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2471
  • §37 — The T7 §G giant endgame: 6/8 cracked, meta-laws + transferable levers (Phase 24, 2026-07-07; FULL byte-verified detail + gcc-2.7.2 line cites in docs/gcc-2.7.2-map/t7g-giant-harvest.md) L2506
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2537
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2710
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2754
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2809
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2878
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2994
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3298
  • §51 — TOOLING INTEGRITY: the silent skip, and how to hunt it L3630
  • §51b — Why the byte-gate cannot save you L3652
  • §51f — Checklist for any new corpus-scanning tool L3755
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3769
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4028
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4093
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4122
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4141
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4163
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4256
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4545
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4658
  • §61d — The undo was eating the tree: two tools, one defect, invisible to the byte-gate (Phase 29, 2026-07-22) L4779
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4833
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5015
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5091
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5101
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5118
  • §66b — A metric parsed out of another tool's prose goes NULL silently when the label changes L5200
  • §67a — Run the symbol-set guard BEFORE you pay for a gate (tools/symcheck.py, Phase 29 SESSION-18) L5405
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6084
  • §3-The — CANDIDATE gate and the REAL gate need DIFFERENT preambles — keep the difference out of the bank L6124
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6220
  • §82 — Two source-shape oracles from behemoth #6: a duplicated addiu $aN,$sp,K across a jal means the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19, func_8017C730 1,061 ins) L6370
  • §3-2. — Scalar vs aggregate decides when the slot is allocated L6389
  • §3-Why — it survived every candidate gate L6495
  • §3-THE — FIX IS MECHANICAL — the tool already holds the answer L6510
  • §87 — match_one COMPILES but never LINKS, so an unresolvable data symbol reads as MATCH; and stored drafts go STALE against the tree (Phase 29 SESSION-20) L6633
  • §88f — the missing rung: a RELOCATION gate between match_one and the binary L6718
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6732
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6745
  • §90 — Five tool-integrity laws from one session, each of which changed an answer (Phase 29 SESSION-21, 2026-07-27) L6766
  • §90a — A comparison tool MUST share its reference oracle's index space, exactly L6772
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6891
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7066
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7431
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7513
  • ��3-Why — it survived so long: a MASKED oracle will MATCH a wrong symbol L7953
  • §122 — GATE RAW BEFORE TRANSFORMING; the undo belongs to the WRITER, as a per-edit journal (P30 T0a, 2026-07-30) L8084
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8116
  • §126a — a bare except: continue around a coverage-asserting oracle re-creates the silent skip (P30 S28) L8317
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8486
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8570
  • §133 — The DEFAULT-FILTER class: three times in one session, a tool silently answered a narrower question than the one asked (P30 S1–S3) L8685
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8711
  • §3-The — splitting/merging rules (each closed a residual, byte-gated) L8853
  • §137a — A gate verdict has a TIMESTAMP; re-check it against the draft's mtime L9386
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9415
  • §134 — again, in a second tool — and the waiter rule corrected L9526
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9565
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9594
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9660
  • §142 — An open stub whose h_exact class is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9778
  • §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9790
  • §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10587
  • §156 — an ORPHANED reconcile poisons the fleet: dedup_propagate's kept edit (S45 p6/p7) L10640
  • §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3, func_8017CE58, 733 ins) L10712
  • §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10893
  • §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10969
  • §162 — S48 WAVE-1 HARVEST (P30, 2026-08-11): the reach-ordered sibling campaign's first 12 targets L11014
  • §163 — S48 WAVES 2-3 HARVEST (P30, 2026-08-11/12): the five that were byte-probed and are actionable L11760
  • §165 — S48 WAVE-4 HARVEST (P30, 2026-08-12): banked the same day the wave landed L13689
  • §166 — THE DESTINATION-TU ORACLE (P30 S48): the seven-attempt bug that was never codegen L14902
  • §167 — S48 WAVE-5/6 HARVEST (P30, 2026-08-12): the saturation point L14958
  • §176e — SYMBOL IDENTITY IS COMPUTABLE OFFLINE (P31 S52): tools/reloc_identity.py L16842
  • §3-A. — The seven under-reporting holes (all in gate_main, all the same shape) L16976
  • §3-C2. — RECONCILE BEFORE THE FIRST GATE — a parked draft gets HARDER to bank, not easier L17023
  • §3-D. — The measured cost shape, and what to build next L17046
  • §176i — WHAT A STATIC PRE-GATE CHECK CAN AND CANNOT PROVE (P31 S52, wave Q) L17064
  • §179 — IDIOMS MINED FROM THE WAVE P/Q JOURNALS (P31 S52, harvest pass) L17303
  • §179-G — 🟡 A PIN CAN CREATE A COMBINE LOG_LINK AND DELETE AN andi (sixth RC-5 channel, n=1) L17532
  • §176c — MAIN (SLUS_007.26) CANNOT BE GATED INCREMENTALLY L17599
  • §180 — THE LEFTOVER-DRAFT HARVEST: RE-VERIFY WHAT YOU ALREADY HAVE BEFORE DRAFTING ANYTHING NEW L17784
  • §180b — WHAT THE PRE-GATE LADDER ACTUALLY FINDS IN A COLD PILE (the shape of integration debt) L17813
  • §181 — WHAT A WAVE'S GATE ACTUALLY REJECTS (P31 S53, measured on wave R's 45-draft main pile) L17850
  • §184 — COMMENT-BLINDNESS IS A DEFECT CLASS, NOT A BUG (P31 S53: three tools, one root cause, one session) L18003
  • §187 — 🔴 "SAME SOURCE" IS NOT "SAME OBJECT": THE SDK BUILD AND THE GAME BUILD DISAGREE ON GTE NOPS L18109
  • §190 — THREE PRESCRIPTIONS FROM THE SAME HARVEST (weaker evidence than §189, honestly labelled) L18272
  • §191 — WHAT THIS HARVEST DID NOT BANK (4 rejected, 4 narrowed) — recorded so it is not re-derived L18309
  • §192 — THE PRE-GATE LADDER WAS MAIN-ONLY, AND NOBODY COULD SEE IT (P31 S54) L18331
  • §193 — THE WAVE-T HARVEST (P31 S54): 71 index_gap reports -> 9 laws, 5 rejected, 61 already-covered L18396
  • §193-A — The wave card ships only OPEN-set pointers and discards the atlas's BANKED one — exemplar/sibs are stubs 100% by construction (tools/atlas.py:96/657), while seed.ref (matched pool, atlas.py:505-536) is dropped at build_wave_atlas.py:143 L18413
  • §193-G — §164-54's "scope to ≥4 arms" bound is byte-wrong — the dispatch-topology oracle goes live at THREE case nodes (balance_case_nodes splits at i > 2), but only for a signed-after-promotion index L18717
  • §193-I — A DECLARED AGGREGATE LOCAL HAS AN 8-BYTE FRAME STRIDE — CEIL(size,8), NOT size. N ARRAYS THEREFORE COST 8·k MORE THAN ONE HAND-LAID STRUCT (k = how many of them have size mod 8 ≠ 0), AND THE TELL IS IDENTICAL INSTRUCTION COUNT WITH EVERY $sp DISPLACEMENT SHIFTED BY THE SAME CONSTANT. L18818
  • §193-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L18877
  • §194 — THE WAVE-U HARVEST (P31 S54): 64 index_gap reports -> 14 laws, 5 rejected, 44 already-covered L18904
  • §194-E — The wave card's exemplar is the TARGET ITSELF on 42/73 wave-U and 36/71 wave-T cards — a construction consequence of atlas.py:657 (exemplar = max-nins OPEN member) meeting build_wave_atlas.py:166 (one card per gid); and the shipped §193-A seed_ref is same-binary on 0/51, so no card field can ever name a destination-TU sibling L19129
  • §194-G — Reading the integer half of a 16.16 stack aggregate: REGISTER-LIVENESS, not the C spelling, decides sra vs lhu — and the break is count-neutral L19239
  • §194-K — Blind sched1's alias oracle with a second SET of a pointer pseudo — the first zero-byte, non-volatile, dependence-CREATING lever (corrects §167-05's "volatile is the only door"; fourth consumer of reg_n_sets) L19415
  • §194-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L19656
  • §195 — THE WAVE-V HARVEST (P31 S54): 67 index_gap reports -> 14 laws, 9 rejected, 76 already-covered L19677
  • §195-I — §145(b) AMENDED — the pointer-bump addiu is saved by cse, not combine: ANY second SET of a pseudo in the address's equivalence chain (in-place p += K, §145(b)'s p = r; copy, or an asm re-tie) kills the fold; the pass is cse and the gate is invalidate's reg_tick++ L20125
  • §195-M — Frame vars is a SEQUENTIAL bump-allocation, not a flat sum: §193-I's CEIL(aggregate,8) term and §165-03/§167-06's 8×orphan term are the SAME frame_offset walk at two different compiler stages, and each stage re-CEILs frame_offset to 8 before it allocates L20333
  • §195-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L20429
  • §197 — THE WAVE-W HARVEST (P31 S54): 68 index_gap reports -> 4 laws, 3 rejected, 41 already-covered L20530
  • §199 — THE WAVE-X HARVEST (P31 S54/S55): 63 index_gap reports -> 7 laws, 2 rejected, 56 already-covered L20670
  • §199-C — A NEGATIVE CONSTANT MULTIPLY ALWAYS TAKES expmed's negate_variant — but whether you ever SEE the neg is decided by COMBINE, and for an EVEN |K| it never disappears L20775
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §199-G — At TWO case nodes the switch-vs-if oracle is not blind — but the tell is ALL tests positive + a trailing j default, NOT the first test's polarity L20996
  • §201 — THE WAVE-Y HARVEST (P31 S55): 67 gap reports -> 5 laws, 8 rejected, 53 already-covered L21111

process, measurement & doctrine (89)

  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2177
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2352
  • §31-triage — R17 applies to CODEGEN residuals, never to a compile ERROR (Phase 26 session 7, Drew asked) L2693
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2754
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2809
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2858
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4028
  • §3-The — meta-lesson (R35, and why this one is expensive) L4078
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4093
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4122
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4303
  • §58 — match_one MATCH ≠ BANK: the four blind spots + the crack-wave reconcile-before-bank law (Phase 29 crack-wave, 2026-07-18) L4343
  • §60 — Classify the residual, don't rank it: the deterministic residual→class classifier and what it measured about the backlog (Phase 29 Task-13A, 2026-07-21) L4407
  • What — it measured — the whole open backlog, byte-grounded L4431
  • §3-The — parallel-probe race this surfaced L4463
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4658
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4833
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L5000
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5015
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5030
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5091
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5101
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5118
  • §66c — Before a wave, verify the FUEL exists; an "already attempted" set built from the wrong directory lies in BOTH directions L5217
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5491
  • §3-The — honest fix was source-level and cheap L5750
  • §3-The — residual, and the honest read L6260
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6412
  • Scope — , measured (do not over-generalise — §80) L6518
  • §3-Two — ladder lessons banked with it L6528
  • §3-Do — the WHOLE axis in one edit, then R22 once L6567
  • §3-THE — LAW: all-or-nothing PER FAMILY L6600
  • §88b — the slti literal-position law (extends §78 to comparisons) L6686
  • §88e — a wrong diagnosis, refuted properly (the model for how to treat an inherited lever) L6708
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6732
  • §90d — Do not measure a live wave's drafts (§87 in real time) L6810
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7113
  • §106 — Persist the MEASUREMENT, derive the POLICY: a stored route let a stale file out-vote the live table (Phase 29 T54, residual_class._ROUTE) L7470
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8206
  • §3-The — meta-lesson L8257
  • Wave — economics (measured, for the next batch's sizing) L8953
  • §136b — A prior wave's "genuine byte-DIFF" verdict is NOT reliable evidence (4 of 4 refuted) L9033
  • §136g — When the index points at the WRONG lever: two byte-refuted routings (func_801863B4) L9211
  • §136h — CORRECTION: the zero-crack pool does NOT "refill with cheap work" (my error, byte-measured) L9240
  • §136j — The failure MIX flips with function size (measured across four bands, one session) L9302
  • Rank — the lane by measured concentration, not by class count L9481
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9660
  • §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9790
  • §3-And — the report-vs-bytes lesson attached to it L9822
  • §146 — RE-MEASURE A WALL BEFORE YOU RESPECT IT. Both "permanent" giants fell to drafts already on disk. (P30 S6, +50,094 ins) L9977
  • §147 — The three-stratum FRAME LAW, and four "stop searching" verdicts (P30 S42, func_8017C294, serial run) L10036
  • §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10068
  • §3-D. — "Cheap fuel" that was never probed: 0 of 31 templatable L10293
  • §3-Two — corrections to the record L10345
  • §3-The — two fallouts, and how to close them (both measured, in order) L10395
  • What — does NOT work (14 byte-measured probes) L10486
  • §157 — the cheap-tier size cliff, measured (S45 p6) L10687
  • §162 — The cross-jump "CALL veto" is a COUNT law, not a CALL law (BOUNDS §88a; P30 S48, func_80189540) L11302
  • §3-The — law L11549
  • DIAGNOSTIC — TELL — two faces, one law L11591
  • §163 — S48 WAVES 2-3 HARVEST (P30, 2026-08-11/12): the five that were byte-probed and are actionable L11760
  • §163z — THE UNVETTED REMAINDER (do not cite as law; each needs a dedupe pass) L11828
  • §164z — REFUTED CLAIMS: do NOT re-derive these L13623
  • §165z — REFUTED THIS WAVE: do NOT re-derive L14858
  • §167z — REFUTED IN WAVES 5/6: do NOT re-derive L16154
  • §168 — THE COUSIN TIER (P30 S49, 2026-08-12): h_seq's exact-hash brittleness, measured — and the similarity map above it L16211
  • §176g — SIZE A WAVE BY INSTRUCTIONS, NOT BY CARDS (P31 S52 — the adopted doctrine) L16930
  • §176h — THE BATCH-SUBSTITUTION HAZARD MAP (P31 S52): seven holes, three wrong fixes, one law L16968
  • §3-D. — The measured cost shape, and what to build next L17046
  • §176j-2 — THE REPAIR PASS, MEASURED (do this instead of resuming) L17122
  • §176-C — 🔴 WALL REFUTATION: a hard-register pin CANNOT schedule around a call, because of a genuine gcc-2.7.2 bug L17680
  • §176-E — Two cheap source spellings, both cc1-probed L17732
  • §180 — THE LEFTOVER-DRAFT HARVEST: RE-VERIFY WHAT YOU ALREADY HAVE BEFORE DRAFTING ANYTHING NEW L17784
  • §181 — WHAT A WAVE'S GATE ACTUALLY REJECTS (P31 S53, measured on wave R's 45-draft main pile) L17850
  • §182 — §177's HONEST NEGATIVE: the epilogue lever cracked 4 of 16, and the 800c3 cluster held L17906
  • §183 — THE DECLARATION-RECONCILIATION PLAYBOOK (P31 S53, measured on 20 byte-verified drafts) L17932
  • §185 — EDIT THE SIDE THAT IS CHEAP TO VERIFY, AND CHECK A TU RETYPE AT ITS USE SITES L18031
  • §190 — THREE PRESCRIPTIONS FROM THE SAME HARVEST (weaker evidence than §189, honestly labelled) L18272
  • §194-A — A zero-byte scheduling fence goes AFTER the defining statement to make that computation emit FIRST in its block — and the barrier predicate is volatile-or-colon-less, not the "memory" clobber (COMPLEMENTS §165-40; does not refute it) L18921
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §195-J — GTE / PsyQ op CALL-vs-INLINE is a PER-SITE SOURCE FACT, not a TU style — both forms coexist in one TU (measured in 2 TUs), and the tell is the target's own opcodes (lwc2/sqr/swc2 vs jal), not the sibling. Costs -8 ins on func_8018505C. Corollary: the game's inline sqr macro emits TWO hazard nops, the SDK's Square0 body emits ONE — so the inline form is provably not Square0 inlined (a second instance of §187's SDK-vs-game GTE nop divergence). L20190
  • §201-E — §194-J-2 — The last_mem_set deletion window is measured in SOURCE/expand order, not in the printed stream; a foreign store moved between the pair in C source is a real lever, and volatile is not always the better one L21331

(unbucketed — title matched no symptom vocabulary) (198)

  • §3-How — to use this L30
  • §1 — Idiom catalog (asm pattern → C that produces it) L39
  • §3-I3 — Division by a constant → magic multiply L54
  • §3-I4 — Runtime (variable) division → divu + zero-check break (NEEDS --expand-div) L60
  • §2 — Writing matching C (what makes gcc emit X) L69
  • §3a — Escalation TIER above the permuter — web-research the compiler internals (HIGH VALUE, proven) L128
  • §3b — §31-directed permuter mutation — bias the search over the class's levers (Phase 24 T5) L147
  • Residual — B — a return <const> materialised late / merged instead of distributed per-site L867
  • §3-The — A→B→C per-overlay workflow L1091
  • Dedup-credit — (§11) for overlays — two shapes L1108
  • §14a — The fleet bulk run (Phase 15 — --auto-from, 947 REAL → 74,527; 3.82% → 22.14% in one pass) L1169
  • §14d — Deterministic recovery beats agent waves on the hard tail (Phase 15, the final-session finding) L1269
  • §14e — Two hard-tail dead-ends (Phase 15 — documented so they aren't re-attempted) L1298
  • §3-The — STEERABLE idioms (byte-confirmed this phase) L1404
  • Strategic — conclusion — the match-% lever post-research L1435
  • §3-NEW — / CONFIRMED residual classes (this session) L1660
  • Operational — gotchas (cost real time) L1681
  • What — WORKED — the Phase-20 reusable wins L1689
  • §21 — wave-distilled idioms (Phase 21) L1752
  • §26 — The cheap close=0 recovery lever is EXHAUSTED; idiom_loop --assess was DOUBLY inflated (Phase 21, cont.7) L2199
  • §3-The — _a close=0 recovery banks 0/20 — same def-side wall as MAIN (0/40) L2205
  • §27 — Giant matching recipe (Phase 21 cont.7b — validated on func_80176D94, 152 ins) L2259
  • §28a — decomp.wiki GCC patterns worth trying on BFM giants (decomp.wiki/compilers/GCC, raw at decompals/decompedia; PS1-applicable subset) L2345
  • §31 — THE gcc-2.7.2 CODEGEN MAP: pass → residual → C-lever catalog (Phase 23; 4 Fable5 agents read the compiler source) L2402
  • §36 — Fable5 giant-crack levers (Phase 24 T7 Fable5 batch; accumulates as each lands — full RTL dumps in .run/t7/fable/) L2487
  • §42d — addendum — wave 4 (rtu_match fan-out over the mapped frontier, 2026-07-10c): 24/26 MATCH, +5 durable levers L3082
  • §3-B. — THE EBB RULE — the general form of §46-L2 L3468
  • §3-E. — Meta L3518
  • §50 — Refinements that BOUND §47/§48 (from the func_80135EB0 wall, 21→6; Phase 26 session 8) L3576
  • §51a — The bug class L3636
  • §51c — THE METHOD (do not audit by reading the regex) L3662
  • §51d — THE LAWS L3677
  • §51e — The false-wall pipeline (why this is not just hygiene) L3739
  • §3-Why — the wall is (probably) intrinsic L3945
  • §3-The — case L4033
  • §3-The — rule L4062
  • §55a — New byte-proven levers (each from a banked or near draft) L4098
  • §60a — What the first DIRECTED grinder run exposed (Phase 29 Task-13B, 2026-07-21) L4472
  • §60b — The plateau autopsy's verdict: a partial drift is a WRONG DRAFT, not a missing transform (Phase 29 Task-13B close, 2026-07-21) L4510
  • §66 — Exercise a banking driver's SUCCESS path before pointing it at a wave: the free re-bank test (Phase 29 SESSION-17, 2026-07-24) L5159
  • §66d-2 — Two operational sharp edges L5289
  • §66d-3 — Read the ILS per-cycle SERIES, not its final best: a repeated score and a still-falling one look identical in a summary line and mean opposite things L5300
  • §67 — The arg-copy PLACEMENT lever: launder a parameter into a fresh pseudo AT the statement where the target's copy lands (Phase 29 SESSION-18, func_8014D820 25 → 16) L5315
  • §66d-4 — "ILS converged" means converged FOR THAT WEIGHT PROFILE, not a floor (amends §66d-3; Phase 29 SESSION-18) L5438
  • §69 — How to attack a behemoth: map it, don't draft it (Phase 29 SESSION-18, func_80183814, 5,122 ins) L5569
  • What — is left, and what is byte-recorded as SPENT L5766
  • §3-The — mechanism, with citations L6037
  • §3-Two — diagnosis traps this function proved L6064
  • Practice — Practice L6074
  • §3-The — drift was an allocation decision, not missing code L6180
  • §3-The — economics L6211
  • §71 — has a blind spot, and this is it L6226
  • §3-The — flagged "#1 move" LOST — and why the failure is informative L6302
  • §78 — 's attribution primitive, run and reproduced L6312
  • Cold-start — economics, now complete L6318
  • Also — reproduced on this function L6401
  • §3-And — the banking footnote (§75a class A, one line) L6405
  • §83a — READ THE HEADLINE NUMBER CORRECTLY: a LENGTH drift makes match_one's count meaningless L6419
  • §83b — THE LEVER: find the parameterised REPEAT before decoding case-by-case L6427
  • §83e — §80 vindicated again, on the same day it was written L6466
  • §3-The — conflict L6544
  • §3-THE — FAILURE MODE — widening only engine_core.h is worse than not starting L6552
  • §3-The — precondition, and how to check it in one grep L6559
  • Reading — , for the next person L6576
  • §3-The — guard refuses a class that largely works L6591
  • §3-The — blindness ladder, now complete — FOUR classes match_one cannot see L6649
  • Consequence — for the backlog ledger L6659
  • §88 — cross_jump will not merge a common suffix containing a CALL; and §78 is scoped to ORDERED comparisons only (Phase 29 SESSION-20, the behemoth close-out) L6674
  • §88a — repeated CALL-shaped blocks are left UNMERGED; call-free tails are merged for you L6679
  • §89 — Two throughput rules the project already had written down and was not following (Phase 29 SESSION-20) L6726
  • §3-The — standing sequence L6758
  • §90b — "Byte-neutral" is not "wanted": undo on the SUCCESS path too L6789
  • §90c — A library-callable function must FAIL CLOSED on an unconfigured module L6799
  • §90e — An agent's CONCLUSION and its EVIDENCE fail independently — re-derive the premise, not the fix L6818
  • §93 — set -o pipefail attributes a pipeline failure to the LAST stage, not the failing one (Phase 29 SESSION-21, func_8014D820) L6922
  • §101 — The STALE DEFAULT class: a guard whose cause was removed is a silent skip wearing a safety label (Phase 29 SESSION-22, three instances in one session) L7245
  • §110 — A unit must define exactly ONE function, and "ends in ;" does not tell you which line defines it (Phase 29 T65) L7640
  • §115 — A func_XXXXXXXX predicate rots by design: the same name-form assumption in THREE places (Phase 29 T78) L7850
  • §3-The — fix moves the DEFINITION, not the stub — and here is why the obvious shortcut fails L7895
  • §117 — Spell the sibling's symbol from the SIBLING's address, not the exemplar's kind (Phase 29 T82) L7926
  • §118 — Ordinal (positional) immediate resolution: compare C tokens to the DIFFERING asm uses (Phase 29 T87) L7963
  • §119 — Two levers on the SAME axis, opposite directions: test the off-diagonal (Phase 29 T89) L7997
  • §3-The — wiring trap that cost two attempts L8043
  • §3-The — method (keep this) L8213
  • §3-The — instrument rules that make its answer trustworthy (this is where I failed) L8223
  • §3-The — corrected results (each SHA-verified, from a clean tree, restore re-verified) L8238
  • §3-The — instrument trap that hid it (and it is §124's shape again) L8290
  • §3-The — mechanics L8299
  • §3-The — idiom they kept re-deriving: the constant-offset fold L8356
  • §127b — the knowledge was in a SOURCE COMMENT, not the cookbook L8386
  • §128 — A raw NUL in C source makes grep SILENTLY SKIP the file (P30 S28, 137 files) L8393
  • §128a — a negative control must corrupt a SCRATCH COPY, never the tracked file L8425
  • §3-The — real blocker underneath, for the record L8477
  • §3-The — diagnostic ladder that finally located it (reusable) L8523
  • Defect — 1 — a pre-§8e MERGED DOUBLE is not a single-table predecessor L8579
  • Defect — 2 — as writes a corpse and nothing deletes it L8597
  • §3-The — fingerprint, and the 30-second ladder that found it L8607
  • §3-The — transferable rule L8628
  • §132a — --like is for a sibling with NO record; against one that HAS a record it over-derives (P30 S29, ov_SC07_010) L8635
  • §135 — Six byte-verified gcc-2.7.2 idioms from the P30 S6f-h waves (and the two-lane wave shape that found them) L8765
  • §3-The — codegen idioms L8770
  • §3-The — wave shape that produced these L8819
  • §136 — The LOCAL-VARIABLE lever: how many C locals, at what scope (P30 wave 4a, 25 byte-verified banks) L8837
  • §136a — Blocker capture: classify on the OUTPUT, never on the exit status L8976
  • §136d — Four gcc-2.7.2 levers the redraft lane found (each closed a residual no other lever moved) L9094
  • §136e — §136c's PRECONDITION, and two more symptom keys (wave 4b batch 3) L9138
  • §136i — The drafter model LADDER: Haiku → Sonnet → Opus → Fable5 (Drew, 2026-08-03) L9270
  • §3-The — triage, cheapest first L9421
  • THREE — carry variants hide in one "CARRY-FIXABLE" bucket — and they need different fixes L9490
  • STEP — 0 of sibling-first: grep src/ for a distinctive LITERAL from the .s L9546
  • §3-The — generalisation — three corollaries worth more than the bug L9626
  • §3-And — the inverse-lookup trap, same session L9643
  • §3-The — three-line proof (do this before diagnosing any metric movement) L9680
  • §3-The — two instrument defects it exposed L9689
  • §3-Two — wrong mechanisms I chased first, and why they were wrong L9720
  • §3-The — trap that hid it — SAME FUNCTION, TWO ROUTES, ONLY ONE IS FREE L9805
  • Route — selection (why --addr sometimes says "nothing changed") L9814
  • §144 — THE LITERAL'S SPELLING PICKS THE IMMEDIATE ENCODING (P30 S40 wave 1, func_801822E0) L9888
  • §3-Why — a correct draft can read as an intrinsic wall L9988
  • §3-The — rule L10023
  • §3-B. — (v < 0x40) ? v : 0x3F is folded to MIN_EXPR and expands to the WRONG SHAPE L10170
  • §3-D. — Reproduce the original's BUGS verbatim L10194
  • §149 — Four instrument defects in one session, and the two questions they were hiding (P30 S43) L10243
  • §3-A. — A prep step that returns its input on failure is indistinguishable from a search that found nothing L10249
  • §3-B. — Same address + same name ≠ same body — and the ledger keys on address L10267
  • §3-C. — make: *** [...] Error N is a summary, never a diagnosis L10283
  • §3-The — fix L10319
  • §3-The — method that found it (this is the transferable part) L10329
  • Diagnostic — order (adopt this) L10356
  • §3-The — mechanism (read from cc1's own -dR trace, not inferred) L10372
  • §3-The — lever — a zero-emission insn that absorbs the blocked tick L10387
  • §3-The — finding L10423
  • §3-The — key L10432
  • §3-Two — cautions that must travel with this technique L10443
  • §3-The — companion defect (open) L10454
  • Symptom — Symptom L10474
  • Mechanism — (gcc source + RTL dumps, not inferred) L10479
  • §3-The — cure — a fresh launder per site, each in its own block L10492
  • Companion — levers from the same function L10502
  • §3-B. — Two static base-derivation methods that must AGREE (use both) L10536
  • §155a — the same failure class, one level up: SHAPE-blind table scanning (S45 p5) L10567
  • §155c — the ZERO-REFERENCE trap: gcc splits a global-array address across the lui and the LOAD (S46) L10610
  • Symptom — Symptom L10721
  • §3-Why — the fork is chained (gcc source, validated insn-by-insn against -dS/-dR dumps) L10727
  • §3-The — method (dump-arithmetic first, then place — no probing) L10740
  • §162a — SHARPENS (sharpens §161a, §131, §8a-pad, §129a) L11041
  • §162b — SHARPENS (sharpens §48-A3, §156, §150, §76) L11070
  • §162d — SHARPENS (sharpens §31, §21, §30, §55a) L11099
  • §162e — NEW L11141
  • §162f — SHARPENS (sharpens §42d, §41d, §73, §10) L11209
  • §162g — NEW L11264
  • §162h — SHARPENS (sharpens §88, §88a, §50-B, §8) L11300
  • §162i — SHARPENS (sharpens §135, §21, §42, §32) L11368
  • §162j — SHARPENS (sharpens §25, §136d-1, §48-B, §46-L2) L11393
  • §162k — SHARPENS (sharpens §1-I2, §12, §160d, §21) L11422
  • §162l — SHARPENS (sharpens §48-B, §48-C1, §20, §21) L11485
  • §162m — SHARPENS (sharpens §36, §158, §148, §153) L11540
  • §158a — THE FIFTH LEVER IS NOT AN ASM: do { } while (0) is a REGION ref-multiplier you MINT (P30 S48, func_8017CBC8, ov_MAIN_012 / jr_801789AC, 188 ins → MATCH) L11542
  • Size — it before you write it (§158 step 1-2, applied) L11560
  • §3-The — wrap BOUNDARY is the dial — and it is indiscriminate L11581
  • §3-Not — a pure dial L11587
  • §162n — NEW L11613
  • §162o — SHARPENS (sharpens §158, §136-1, §136-6, §79) L11646
  • §162p — SHARPENS (sharpens §48-B, §46-L2, §156, §136d-1) L11705
  • §162q — SHARPENS (sharpens §30, §30a, §135-2, §136-13) L11722
  • §164 — S48 §163z SKEPTIC PASS (P30, 2026-08-12): 190 claims vetted, 82 banked L11848
  • §169 — THE MICRO-ADAPT LANE (P30 S49): edit a proven body, don't crack a new one L16263
  • §170 — THE A-PROP WORD-DIFF CARD (P30 S49): the lane that had no owner L16310
  • §171 — THE STALE SEED SYMBOL (P30 S50, 2026-08-13): why §170's 91%→57% was never codegen L16354
  • §172 — THE ORPHAN-SLOT MECHANISM v2 (P30 S50-Max): the complete frame-residue model for gcc-2.7.2 MIPS L16503
  • §172a — TWO DECOMPILATION TELLS FROM THE SAME DIG (P30 S50-Max) L16557
  • §172b — THREE MORE TELLS FROM THE GCC READ (P30 S50-Max, banked on Drew's ask) L16573
  • §174 — THE ADAPT-CARD WAVE RECIPE (P31 waves A/B, 2026-08-14): prevention beats recovery L16642
  • §176a — THE VERIFICATION-LAYER LAWS (P31 overnight, 2026-08-15). What each check can and cannot prove. L16737
  • §176b — BATCH-GATING MECHANICS (P31): what changes when N drafts land in ONE .c L16777
  • §3-C. — The limit that remains (recorded, not solved) L17016
  • §176k — TWO SELECTOR BUGS THAT SILENTLY SHRINK A WAVE L17142
  • §178 — SIX LEVERS MINED FROM THE WAVE-P JOURNALS (P31 S52), each byte-proven and source-cited L17216
  • §3-A. — THE $0-ADD OPAQUE COPY defeats make_regs_eqv (func_80033398, 93 ins) L17228
  • §3-C. — SINGLE-SET TEMPS GET THE BIRTHING BOOST (func_8001D3FC, 196 ins) L17257
  • §3-E. — THE ZERO-OFFSET ALIAS HOLE (func_80037028, 71 ins) L17272
  • §179-B — 🔴 THE HAND-WRITTEN-ASM TRANSCRIPTION CHECKLIST (maspsx + masked_diff; 10 byte-proofs) L17362
  • §179-C — 🔴 A FUNCTION WITH NO EPILOGUE (falls into a sibling's shared tail) MUST BE FILE-SCOPE __asm__ L17412
  • §179-D — gte_stflg MUST CLOBBER "$12" OR THE WHOLE TEMP FILE ROTATES BY ONE L17463
  • §179-H — A MID-BODY .global LABEL PAIR SLICES A BYTE-COMPARABLE FRAGMENT OUT OF A LARGER ROUTINE L17559
  • Considered — and NOT banked L17582
  • §176-F — Misdiagnosis triage: four residual verdicts that were lying L17754
  • What — is NOT banked here L17771
  • §180c — WHEN A BINARY'S MASS BAND IS SPENT, THE FLEET-WIDE DRAW IS STRICTLY BETTER L17832
  • Only — ONE of 27 blocked drafts was wrong. The other 26 were correct and unbankable. L17851
  • §180d — THE pgrep BRACKET TRICK PROTECTS THE PATTERN, NOT THE COMMAND LINE L17920
  • Three — defects in one call path; the overlay slates that carry most of the wave work were being waved through L18332
  • §194-F — if ((*p = v = f()) == 0) is an expand-time pseudo SPLITTER (store_expr's want_value && MEM path), not a fold — it partitions one value between local_alloc and global_alloc. BOUNDS §21's L1872 bullet, whose stated direction is byte-wrong on 3 of 4 instances, and CLOSES the control §167-37 asked for. L19166
  • §194-L — §88b and §189-E are BOTH half-wrong, but not the way the candidate says: the compare-constant shape is a 2-D lookup (cmp_info ROW × constant-in-window), and naming matters on OPPOSITE sides of the window for the GE/LT rows vs the GT/LE rows L19493
  • §197-REJECTED — §197-REJECTED L20655
  • §199-REJECTED — §199-REJECTED L21051
  • §201-B — In a narrowed PLUS/MINUS/AND/IOR/XOR expression the destination pointee is INERT — the sign of the materialized constant is decided by an OR over the UNWIDENED operands (convert.c trunc1), which bounds §1841 to direct constant stores L21153
  • §201-REJECTED — eight, the session's highest L21387

All sections, in order

  • §3-How — to use this L30
  • §1 — Idiom catalog (asm pattern → C that produces it) L39
  • §3-I1 — Unsigned range check: (x - lo) < (hi-lo) → addiu+sltiu L41
  • §3-I2 — Byte mask forces andi even after lbu L47
  • §3-I3 — Division by a constant → magic multiply L54
  • §3-I4 — Runtime (variable) division → divu + zero-check break (NEEDS --expand-div) L60
  • §2 — Writing matching C (what makes gcc emit X) L69
  • §3-T1 — Loop pointer: top-of-body for addu induction, not constant-folded addiu L71
  • §3-T2 — Source statement order drives instruction scheduling L78
  • §3-T3 — Types L85
  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §3 — When a diff is pure scheduling → decomp-permuter (harness built, Phase 6) L107
  • §3a — Escalation TIER above the permuter — web-research the compiler internals (HIGH VALUE, proven) L128
  • §3b — §31-directed permuter mutation — bias the search over the class's levers (Phase 24 T5) L147
  • §4 — Flag/toolchain gotchas L190
  • §5 — Known hard-residual classes (instruction-identical, one byte-exact blocker) L199
  • §5a — Cross-jump tail-merge — gcc collapses two byte-identical blocks the original kept separate (FIX FOUND) L211
  • §6 — Per-module optimization mixing — the -O0 boot module (Phase 7) L246
  • Detecting — the opt level (do this first) L254
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §7 — PsyQ SDK types & symbols (the library-call prerequisite) L303
  • §8 — rodata island (compiler jump tables) — the .data→.rodata→.data sandwich (Phase 7) L320
  • §8a — rodata island in a flat OVERLAY — the tail sandwich, per matched jr-function (Phase 26 — PoC PROVEN) L342
  • §8a-pad — a trailing .word 0x00000000 under a jtbl dlabel is .align PAD, not an entry (Phase 26 session 6, byte-proven) L380
  • §8b — MULTI-jtbl per overlay — the ld_interleave --order sandwich + the same-subseg cases (Phase 26 session 4) L404
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §9 — Link real PsyQ library objects byte-exact (Phase 7 — GO proven) L613
  • §9.1 — Generalised per-object linker — tools/psyq_link.py (+ psyq_link_lib.py), 18/18 libcd byte-exact L642
  • §9.2 — Wire a library region into the build with NOLOAD — no data carving (tools/psyq_link_region.py) L666
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.4 — Integrating a SECOND library (libgs block 6 after libcd) — multi-library gotchas L712
  • §9.5 — Integrating a WHOLE multi-block library in one call (full libgs — Phase 7 session G) L740
  • §9.6 — Scaling library linking to the whole EXE (Phase 8 — 8 libs linked, 20%→50% byte-identical) L766
  • §9.7 — Binary-agnostic toolchain refactor (Phase 9) — the reusable pattern for Gen2 L802
  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • Residual — A — commutative |/&/+ result lands in the wrong source-operand register L856
  • Residual — B — a return <const> materialised late / merged instead of distributed per-site L867
  • §11 — Cross-binary dedup & code-sharing (Phase 11 — "one match unlocks many") L908
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §12 — Ultracode harvest — parallel-draft + byte-gate at scale (Phase 12, resident: 1.4%→71.7% in one session) L964
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • One-command — onboarding — tools/new_overlay.sh <SCxx> <FILE_nnn> L1062
  • §3-The — flat-blob overlay config (what the template encodes) L1071
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • §3-The — A→B→C per-overlay workflow L1091
  • Dedup-credit — (§11) for overlays — two shapes L1108
  • Fleet — build — make build-all / make check-all L1120
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §14a — The fleet bulk run (Phase 15 — --auto-from, 947 REAL → 74,527; 3.82% → 22.14% in one pass) L1169
  • §14b — Harvesting the UNMATCHED shared core — the match_one wall (Phase 15) L1192
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §14d — Deterministic recovery beats agent waves on the hard tail (Phase 15, the final-session finding) L1269
  • §14e — Two hard-tail dead-ends (Phase 15 — documented so they aren't re-attempted) L1298
  • §15 — Struct-heavy shared-core pipeline (Phase 16) — empirical determinations (S0) L1313
  • §16 — Guided hand-matching the struct-heavy core (Phase 17 — beats the §15 brute-force) L1335
  • §17 — The compiler-quirk wall — the matching TOOLKIT (Phase 18; gcc-2.7.2 source + byte-gated) L1376
  • Register-allocation — ORDER (call-crossing $s0/$s1 swap) → FORCE it with register pins (byte-proven) L1384
  • §3-The — STEERABLE idioms (byte-confirmed this phase) L1404
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §3-The — LOOSE-TYPING wall is real for narrow params (Phase 16, reconfirmed) L1428
  • Strategic — conclusion — the match-% lever post-research L1435
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §18 — Per-file -O0 split inside an overlay/blob (Phase 19 T1) L1519
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §20 — The wave-at-scale GATE CAP + residual-class verdicts (Phase 20) L1632
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • §3-NEW — / CONFIRMED residual classes (this session) L1660
  • Operational — gotchas (cost real time) L1681
  • What — WORKED — the Phase-20 reusable wins L1689
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §21 — wave-distilled idioms (Phase 21) L1752
  • §22 — DEF-side loose-typing recovery + grinder blacklist (Phase 21) L2005
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2144
  • §3-The — genuine scheduler — rank_for_schedule (sched.c), for when it IS scheduling L2160
  • §3-The — genuine schedule WALLS (do NOT re-grind — stub) L2169
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2177
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2189
  • §26 — The cheap close=0 recovery lever is EXHAUSTED; idiom_loop --assess was DOUBLY inflated (Phase 21, cont.7) L2199
  • §3-The — _a close=0 recovery banks 0/20 — same def-side wall as MAIN (0/40) L2205
  • Where — this leaves the reach-134 tail (cont.6 option-3, now CONFIRMED byte-backed) L2233
  • §27 — Giant matching recipe (Phase 21 cont.7b — validated on func_80176D94, 152 ins) L2259
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2325
  • §28a — decomp.wiki GCC patterns worth trying on BFM giants (decomp.wiki/compilers/GCC, raw at decompals/decompedia; PS1-applicable subset) L2345
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2352
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2357
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2366
  • §29 — Reasoning-model (GLM5.2) DEF-side reconciliation idioms + the wall's hard limit (Phase 23 T10.7, tools/glm_reconcile.py) L2374
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2382
  • §30a — §30 generalizes to the FULL near-miss backlog (via STANDARD Opus agents, not just Fable5) + 2 more steer levers + the mechanical-integration throughput unlock (Phase 23 (a)) L2394
  • §31 — THE gcc-2.7.2 CODEGEN MAP: pass → residual → C-lever catalog (Phase 23; 4 Fable5 agents read the compiler source) L2402
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2422
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2434
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2454
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2471
  • §36 — Fable5 giant-crack levers (Phase 24 T7 Fable5 batch; accumulates as each lands — full RTL dumps in .run/t7/fable/) L2487
  • §37 — The T7 §G giant endgame: 6/8 cracked, meta-laws + transferable levers (Phase 24, 2026-07-07; FULL byte-verified detail + gcc-2.7.2 line cites in docs/gcc-2.7.2-map/t7g-giant-harvest.md) L2506
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2527
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2537
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2553
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2601
  • §40b — The reloc-tracker blind spot: the indexed-global idiom that hid the "reach-1 tail" (Phase 26 Task 1, 2026-07-11, byte-verified V0/V1) L2634
  • §40c — The h_seq per-sibling reconcile: templating a reconcile-class crack ×134 (Phase 26 Task 8, 2026-07-12, byte-proven) L2676
  • §31-triage — R17 applies to CODEGEN residuals, never to a compile ERROR (Phase 26 session 7, Drew asked) L2693
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2710
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2754
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2809
  • §41c — T7-M2: the ×134 def-side-wall sweep via per-sibling RE-reconcile (Phase 25, 2026-07-10; 4,389 banks, ~0 agent tokens) L2839
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2858
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2878
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2900
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2953
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2994
  • §42c — addendum — wave 3 (Max orchestrator + CORRECTED Ultracode fan-out, 2026-07-10c): the real-TU-faithful parallel harness (rtu_match) + 7/9 crack, ZERO iso-drift L3033
  • §42d — addendum — wave 4 (rtu_match fan-out over the mapped frontier, 2026-07-10c): 24/26 MATCH, +5 durable levers L3082
  • §42e — propagating a CRACK ×134: the def-finder bug + the byte-drift residual (the "remap-fail" misdiagnosis) L3121
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3195
  • §44 — The Phase-25 cheap-Opus giant batch: 5 structural levers + the §43 extension (2026-07-11, 6 crackers over the frontier giants) L3242
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3298
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3313
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3365
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3405
  • §3-A. — ALLOCNO-PRICING DIALS — move a value into the register you want, byte-neutrally L3413
  • §3-A4 — SINK THE CONSUMER CALL INTO THE ARMS (the inverse of A1; func_8016AB6C, byte-proven) L3444
  • §3-B. — THE EBB RULE — the general form of §46-L2 L3468
  • §3-C. — TYPE- AND SHAPE-DRIVEN CODEGEN (the C type literally selects the addressing mode) L3484
  • §3-D. — THE CROSS-JUMP RATCHET (the sharpest new trap — func_80131340 L-C) L3508
  • §3-E. — Meta L3518
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3527
  • §50 — Refinements that BOUND §47/§48 (from the func_80135EB0 wall, 21→6; Phase 26 session 8) L3576
  • §51 — TOOLING INTEGRITY: the silent skip, and how to hunt it L3630
  • §51a — The bug class L3636
  • §51b — Why the byte-gate cannot save you L3652
  • §51c — THE METHOD (do not audit by reading the regex) L3662
  • §51d — THE LAWS L3677
  • §51e — The false-wall pipeline (why this is not just hygiene) L3739
  • §51f — Checklist for any new corpus-scanning tool L3755
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3769
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3913
  • §3-The — 6 levers (the "walker-family skeleton" — apply to the 12 siblings; levers 1-5 retire ~half the residual) L3924
  • §3-Why — the wall is (probably) intrinsic L3945
  • §52a — The regalloc sibling wave: new levers + two new wall classes (cheap-Opus applying §52, 2026-07-15) L3959
  • §52b — Sibling wave 2: more de-pin levers, a third wall class, and the match_one→whole-binary gap at scale (2026-07-15) L3997
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4028
  • §3-The — case L4033
  • §3-Why — 0/8 was structural, and predictable from two words L4045
  • §3-The — rule L4062
  • §3-The — meta-lesson (R35, and why this one is expensive) L4078
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4093
  • §55a — New byte-proven levers (each from a banked or near draft) L4098
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4122
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4141
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4163
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4187
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4232
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4256
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4303
  • §58 — match_one MATCH ≠ BANK: the four blind spots + the crack-wave reconcile-before-bank law (Phase 29 crack-wave, 2026-07-18) L4343
  • §59 — Three h_seq sweep-residual classes match_one/the-exemplar-bank don't reveal (Phase 29 crack-wave close, 2026-07-18) L4377
  • §60 — Classify the residual, don't rank it: the deterministic residual→class classifier and what it measured about the backlog (Phase 29 Task-13A, 2026-07-21) L4407
  • What — it measured — the whole open backlog, byte-grounded L4431
  • §3-Two — corollaries worth remembering L4450
  • §3-The — parallel-probe race this surfaced L4463
  • §60a — What the first DIRECTED grinder run exposed (Phase 29 Task-13B, 2026-07-21) L4472
  • §60b — The plateau autopsy's verdict: a partial drift is a WRONG DRAFT, not a missing transform (Phase 29 Task-13B close, 2026-07-21) L4510
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4545
  • §61a — The Task-5 wave: 11/12 MATCH, 0 banked — three DISTINCT integration walls, each now named (Phase 29, 2026-07-21) L4606
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4658
  • §61c — The jtbl bank is INCREMENTALLY valid and CLEAN-INVALID (Phase 29, 2026-07-21) — the blocking finding L4713
  • §61d — The undo was eating the tree: two tools, one defect, invisible to the byte-gate (Phase 29, 2026-07-22) L4779
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4833
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4877
  • §64 — The §20 type-lift's three laws: fold the tagged typedef, check VISIBILITY, and strip only what is TEXTUALLY IDENTICAL (lift_types.py, Phase 29 SESSION-14, 2026-07-23) L4908
  • §64a — VARIANT types: UNIQUIFY the camps, do not reconcile them (uniquify_type.py, Phase 29 SESSION-14) L4957
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L5000
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5015
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5030
  • §65b — The escape: de-macroize the instantiation, don't touch the shared header L5045
  • §65c — rtu_match MATCH → bank held 13/13 on self-decl, but broke on the FIRST callee-decl case L5081
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5091
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5101
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5118
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5139
  • §66 — Exercise a banking driver's SUCCESS path before pointing it at a wave: the free re-bank test (Phase 29 SESSION-17, 2026-07-24) L5159
  • §66a — The widest write in a pipeline is the one most likely to be UNDECLARED L5181
  • §66b — A metric parsed out of another tool's prose goes NULL silently when the label changes L5200
  • §66c — Before a wave, verify the FUEL exists; an "already attempted" set built from the wrong directory lies in BOTH directions L5217
  • §66d — The permuter⇄reader loop: alternate a random search with a byte-verified idiom, and let residual_class decide whose turn it is (Phase 29 SESSION-17) L5245
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5280
  • §66d-2 — Two operational sharp edges L5289
  • §66d-3 — Read the ILS per-cycle SERIES, not its final best: a repeated score and a still-falling one look identical in a summary line and mean opposite things L5300
  • §67 — The arg-copy PLACEMENT lever: launder a parameter into a fresh pseudo AT the statement where the target's copy lands (Phase 29 SESSION-18, func_8014D820 25 → 16) L5315
  • §67a — Run the symbol-set guard BEFORE you pay for a gate (tools/symcheck.py, Phase 29 SESSION-18) L5405
  • §66d-4 — "ILS converged" means converged FOR THAT WEIGHT PROFILE, not a floor (amends §66d-3; Phase 29 SESSION-18) L5438
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5491
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5524
  • §69 — How to attack a behemoth: map it, don't draft it (Phase 29 SESSION-18, func_80183814, 5,122 ins) L5569
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5619
  • §71 — Before mapping a giant, look for an already-matched SIBLING beside it (Phase 29 SESSION-18, func_8017D960, 3,338 ins) L5660
  • §72 — A register __asm__ pin is a PREFERENCE, not a reservation (Phase 29 SESSION-18, func_8017F510) L5726
  • §3-The — honest fix was source-level and cheap L5750
  • §3-Giv — record order (the §70 family) L5760
  • What — is left, and what is byte-recorded as SPENT L5766
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5783
  • §74 — Auditing a pinned draft: the §72 hazard is CALLER-SAVED pins spanning a call, and only the disassembly can tell you (Phase 29 SESSION-19, func_8017D960 b2, 5 pins) L5822
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5866
  • §75a — The exclusion classes, enumerated with named causes (Phase 29 SESSION-19, the 134-binary dedup_extend sweep) L5925
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5948
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5997
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6028
  • §3-The — mechanism, with citations L6037
  • §3-The — attribution primitive (use this before calling anything a scheduling residual) L6057
  • §3-Two — diagnosis traps this function proved L6064
  • Practice — Practice L6074
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6084
  • §3-The — CANDIDATE gate and the REAL gate need DIFFERENT preambles — keep the difference out of the bank L6124
  • §78 — A LENGTH drift can be a register grant in disguise; and fold never leaves a literal first in an | chain (Phase 29 SESSION-19, behemoth #2 func_8017D960 3,338 ins, 1806 → 0, pin-free) L6174
  • §3-The — drift was an allocation decision, not missing code L6180
  • §3-The — economics L6211
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6220
  • §71 — has a blind spot, and this is it L6226
  • §3-NEW — LEVER — the frame layout reads back the original declaration order L6240
  • §76 — confirmed at scale, and a pin nuance L6251
  • §3-The — residual, and the honest read L6260
  • §80 — A do-not-re-buy entry is scoped to its BASE, not to the function; and the pin's hidden cost is an unconditional qty_phys_sugg (Phase 29 SESSION-19, func_8017BF14 45 → 0) L6270
  • §3-The — pin's hidden cost, with the citation L6291
  • §3-The — flagged "#1 move" LOST — and why the failure is informative L6302
  • §78 — 's attribution primitive, run and reproduced L6312
  • Cold-start — economics, now complete L6318
  • §81 — Banking a jr (jump-table) function: the 3-step carve chain, and why match_one cannot see the problem (Phase 29 SESSION-19, func_8017C954) L6323
  • §3-The — defect this exposed: a shared type that is present but invisible L6354
  • §82 — Two source-shape oracles from behemoth #6: a duplicated addiu $aN,$sp,K across a jal means the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19, func_8017C730 1,061 ins) L6370
  • §3-1. — The inlined-helper signature L6375
  • §3-2. — Scalar vs aggregate decides when the slot is allocated L6389
  • Also — reproduced on this function L6401
  • §3-And — the banking footnote (§75a class A, one line) L6405
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6412
  • §83a — READ THE HEADLINE NUMBER CORRECTLY: a LENGTH drift makes match_one's count meaningless L6419
  • §83b — THE LEVER: find the parameterised REPEAT before decoding case-by-case L6427
  • §83c — TRAP: a "dead local" in a prior draft may be gcc's OWN spill area L6445
  • §83d — CSE's quantity budget is WHOLE-FUNCTION, so a local rewrite cannot fix a local symptom L6452
  • §83e — §80 vindicated again, on the same day it was written L6466
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6472
  • §3-The — construct L6477
  • §3-Why — it survived every candidate gate L6495
  • §3-THE — FIX IS MECHANICAL — the tool already holds the answer L6510
  • Scope — , measured (do not over-generalise — §80) L6518
  • §3-Two — ladder lessons banked with it L6528
  • §85 — The RETURN-axis fleet widen is ALL-OR-NOTHING: widening the shared header alone guarantees a conflict in the source overlay (Phase 29 SESSION-20, func_8012CC88 / func_8014D12C) L6539
  • §3-The — conflict L6544
  • §3-THE — FAILURE MODE — widening only engine_core.h is worse than not starting L6552
  • §3-The — precondition, and how to check it in one grep L6559
  • §3-Do — the WHOLE axis in one edit, then R22 once L6567
  • Reading — , for the next person L6576
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6589
  • §3-The — guard refuses a class that largely works L6591
  • §3-THE — LAW: all-or-nothing PER FAMILY L6600
  • §3-Why — the two live families differ from the three dead ones — the open question L6627
  • §87 — match_one COMPILES but never LINKS, so an unresolvable data symbol reads as MATCH; and stored drafts go STALE against the tree (Phase 29 SESSION-20) L6633
  • §3-The — blindness ladder, now complete — FOUR classes match_one cannot see L6649
  • Consequence — for the backlog ledger L6659
  • §3-The — cheap discriminator, before spending a sweep L6666
  • §88 — cross_jump will not merge a common suffix containing a CALL; and §78 is scoped to ORDERED comparisons only (Phase 29 SESSION-20, the behemoth close-out) L6674
  • §88a — repeated CALL-shaped blocks are left UNMERGED; call-free tails are merged for you L6679
  • §88b — the slti literal-position law (extends §78 to comparisons) L6686
  • §88d — BANKING ORDER: run the §81 carve chain BEFORE banking, never after L6701
  • §88e — a wrong diagnosis, refuted properly (the model for how to treat an inherited lever) L6708
  • §88f — the missing rung: a RELOCATION gate between match_one and the binary L6718
  • §89 — Two throughput rules the project already had written down and was not following (Phase 29 SESSION-20) L6726
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6732
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6745
  • §3-The — standing sequence L6758
  • §90 — Five tool-integrity laws from one session, each of which changed an answer (Phase 29 SESSION-21, 2026-07-27) L6766
  • §90a — A comparison tool MUST share its reference oracle's index space, exactly L6772
  • §90b — "Byte-neutral" is not "wanted": undo on the SUCCESS path too L6789
  • §90c — A library-callable function must FAIL CLOSED on an unconfigured module L6799
  • §90d — Do not measure a live wave's drafts (§87 in real time) L6810
  • §90e — An agent's CONCLUSION and its EVIDENCE fail independently — re-derive the premise, not the fix L6818
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6842
  • §3-The — three-hypothesis trail, because two of them were wrong and the wrongness is instructive L6871
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6891
  • §93 — set -o pipefail attributes a pipeline failure to the LAST stage, not the failing one (Phase 29 SESSION-21, func_8014D820) L6922
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6947
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6983
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7018
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7066
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7113
  • §99 — The narrow-param wall is a DEF-side problem with a ZERO-blast-radius fix: convert the definition to K&R (Phase 29 SESSION-22, func_80175AB8 + func_80175DA8) L7167
  • §3-Two — reconcile_tu bugs found underneath, one introduced while fixing the other L7190
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7216
  • §101 — The STALE DEFAULT class: a guard whose cause was removed is a silent skip wearing a safety label (Phase 29 SESSION-22, three instances in one session) L7245
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7272
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7307
  • §104 — Two silent-skip defects in one scan: match on MASKED text, emit from the ORIGINAL (Phase 29 T53, gather_externs) L7395
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7431
  • §106 — Persist the MEASUREMENT, derive the POLICY: a stored route let a stale file out-vote the live table (Phase 29 T54, residual_class._ROUTE) L7470
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7513
  • §108 — Diagnosing a family 0/N: the four causes, and the third opt-in lever (Phase 29 T59) L7551
  • §109 — Conforming a definition to a shared header: fix the NAMES, then check the RETURN precondition (Phase 29 T60) L7600
  • §110 — A unit must define exactly ONE function, and "ends in ;" does not tell you which line defines it (Phase 29 T65) L7640
  • §111 — The distinct-code metric is not noisy: a family pays it only if its members are byte-VARIANT (Phase 29 T66) L7681
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7730
  • §113 — An ARITY blocker only exists if the macro CALLS the function; an address-taken use has no call site (Phase 29 T72) L7776
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7808
  • §115 — A func_XXXXXXXX predicate rots by design: the same name-form assumption in THREE places (Phase 29 T78) L7850
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7877
  • §3-The — fix moves the DEFINITION, not the stub — and here is why the obvious shortcut fails L7895
  • §117 — Spell the sibling's symbol from the SIBLING's address, not the exemplar's kind (Phase 29 T82) L7926
  • §3-Why — it survived so long: a MASKED oracle will MATCH a wrong symbol L7953
  • §118 — Ordinal (positional) immediate resolution: compare C tokens to the DIFFERING asm uses (Phase 29 T87) L7963
  • §119 — Two levers on the SAME axis, opposite directions: test the off-diagonal (Phase 29 T89) L7997
  • §120 — Uniquify draft-defined TYPE names; and check which of N staging sites you actually patched (Phase 29 T93) L8026
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8037
  • §3-The — wiring trap that cost two attempts L8043
  • §121 — Synthesise externs for macro-DEFINED callees from the macro's own definition head (Phase 29 T95) L8061
  • §122 — GATE RAW BEFORE TRANSFORMING; the undo belongs to the WRITER, as a per-edit journal (P30 T0a, 2026-07-30) L8084
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8116
  • §124 — A "not matched" verdict can mean the definition is there under a DIFFERENT C NAME: the asm-label alias blind spot (P30 SESSION-28, func_8016191C ×137) L8153
  • §124a — a family sweep's 0 matched-exemplar families may be a FILTER, not a wall L8198
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8206
  • §3-The — method (keep this) L8213
  • §3-The — instrument rules that make its answer trustworthy (this is where I failed) L8223
  • §3-The — corrected results (each SHA-verified, from a clean tree, restore re-verified) L8238
  • §3-Two — further notes worth keeping L8248
  • §3-The — meta-lesson L8257
  • §126 — The carve-within-a-carve: an ADDRESS RANGE is not an OPTIMIZATION REGION (P30 T2, byte-proven end-to-end) L8264
  • §3-The — finding: opt level is per FILE, so the file's contents must be opt-HOMOGENEOUS L8279
  • §3-The — instrument trap that hid it (and it is §124's shape again) L8290
  • §3-The — mechanics L8299
  • §126a — a bare except: continue around a coverage-asserting oracle re-creates the silent skip (P30 S28) L8317
  • §127 — The -O0 regime: the CONSTANT-OFFSET FOLD, and why -O0 needs its own idiom set (P30 T3 wave, 15 targets) L8349
  • §3-The — idiom they kept re-deriving: the constant-offset fold L8356
  • §3-The — rest of the -O0 regime (write PLAIN C, and mean it) L8367
  • §127a — §71 (sibling-first) is the strongest -O0 lever, and it beats the index L8377
  • §127b — the knowledge was in a SOURCE COMMENT, not the cookbook L8386
  • §128 — A raw NUL in C source makes grep SILENTLY SKIP the file (P30 S28, 137 files) L8393
  • §128a — a negative control must corrupt a SCRATCH COPY, never the tracked file L8425
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8437
  • §129a — the target instruction count is INFLATED after a carve L8441
  • §129b — never commit a carve whose owner is still a stub (it strands the carve) L8462
  • §3-The — real blocker underneath, for the record L8477
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8486
  • §3-The — diagnostic ladder that finally located it (reusable) L8523
  • §131 — The jtbl OVER-SPAN: sltiu N is ground truth in BOTH directions, and the zero-word rule only guards one (P30 S28, func_80191C50) L8533
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8570
  • Defect — 1 — a pre-§8e MERGED DOUBLE is not a single-table predecessor L8579
  • Defect — 2 — as writes a corpse and nothing deletes it L8597
  • §3-The — fingerprint, and the 30-second ladder that found it L8607
  • §3-The — transferable rule L8628
  • §132a — --like is for a sibling with NO record; against one that HAS a record it over-derives (P30 S29, ov_SC07_010) L8635
  • §132b — When the span's already-matched owner is ITSELF multi-switch: --span-rel (P30 S1, func_8014032C) L8660
  • §133 — The DEFAULT-FILTER class: three times in one session, a tool silently answered a narrower question than the one asked (P30 S1–S3) L8685
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8711
  • §135 — Six byte-verified gcc-2.7.2 idioms from the P30 S6f-h waves (and the two-lane wave shape that found them) L8765
  • §3-The — codegen idioms L8770
  • §3-The — integration idioms (these decide whether a byte-correct draft BANKS) L8804
  • §3-The — wave shape that produced these L8819
  • §136 — The LOCAL-VARIABLE lever: how many C locals, at what scope (P30 wave 4a, 25 byte-verified banks) L8837
  • §3-The — splitting/merging rules (each closed a residual, byte-gated) L8853
  • §3-The — type-form rules L8879
  • §3-The — scheduling rules (refining §135-2 and §135-4) L8912
  • §3-The — declaration surface (integration, not codegen) L8941
  • Wave — economics (measured, for the next batch's sizing) L8953
  • §136a — Blocker capture: classify on the OUTPUT, never on the exit status L8976
  • §136b — A prior wave's "genuine byte-DIFF" verdict is NOT reliable evidence (4 of 4 refuted) L9033
  • §136c — SIBLING-FIRST is a DERIVATION shortcut, not just a conflict fix (the fastest route in a family wave) L9069
  • §136d — Four gcc-2.7.2 levers the redraft lane found (each closed a residual no other lever moved) L9094
  • §136e — §136c's PRECONDITION, and two more symptom keys (wave 4b batch 3) L9138
  • §136f — Two declaration sub-cases the reconcile lane surfaced (lane now 15/15 lifetime) L9186
  • §136g — When the index points at the WRONG lever: two byte-refuted routings (func_801863B4) L9211
  • §136h — CORRECTION: the zero-crack pool does NOT "refill with cheap work" (my error, byte-measured) L9240
  • §136i — The drafter model LADDER: Haiku → Sonnet → Opus → Fable5 (Drew, 2026-08-03) L9270
  • §136j — The failure MIX flips with function size (measured across four bands, one session) L9302
  • §137 — REGALLOC-PERM is a TWO-COMPILE ARITHMETIC PROBLEM, not a permuter job L9344
  • §137a — A gate verdict has a TIMESTAMP; re-check it against the draft's mtime L9386
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9415
  • §3-The — triage, cheapest first L9421
  • §3-The — DEFINITION-side alias is the only escape when the fleet canon disagrees on a promoting param L9473
  • Rank — the lane by measured concentration, not by class count L9481
  • THREE — carry variants hide in one "CARRY-FIXABLE" bucket — and they need different fixes L9490
  • §134 — again, in a second tool — and the waiter rule corrected L9526
  • STEP — 0 of sibling-first: grep src/ for a distinctive LITERAL from the .s L9546
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9565
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9594
  • §3-The — generalisation — three corollaries worth more than the bug L9626
  • §3-And — the inverse-lookup trap, same session L9643
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9660
  • §3-The — three-line proof (do this before diagnosing any metric movement) L9680
  • §3-The — two instrument defects it exposed L9689
  • §3-The — same swallow, twice more, in the integration spine L9709
  • §3-Two — wrong mechanisms I chased first, and why they were wrong L9720
  • §141 — The §134 class is CLOSED: every line-shape decision now routes through cdecl._mask (P30 S39) L9740
  • §142 — An open stub whose h_exact class is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9778
  • §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9790
  • §3-The — trap that hid it — SAME FUNCTION, TWO ROUTES, ONLY ONE IS FREE L9805
  • Route — selection (why --addr sometimes says "nothing changed") L9814
  • §3-And — the report-vs-bytes lesson attached to it L9822
  • §143 — cast_call_sites read a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9834
  • §144 — THE LITERAL'S SPELLING PICKS THE IMMEDIATE ENCODING (P30 S40 wave 1, func_801822E0) L9888
  • §145 — Three loop/combine levers from the S40 wave-2 drafters (16/16 match_one) L9927
  • §146 — RE-MEASURE A WALL BEFORE YOU RESPECT IT. Both "permanent" giants fell to drafts already on disk. (P30 S6, +50,094 ins) L9977
  • §3-Why — a correct draft can read as an intrinsic wall L9988
  • Then — propagation returned 0/137 TWICE — both times a missing TYPE L10000
  • §3-Two — errors of mine, both instructive L10009
  • §3-The — rule L10023
  • §147 — The three-stratum FRAME LAW, and four "stop searching" verdicts (P30 S42, func_8017C294, serial run) L10036
  • §3-A. — The frame has THREE strata, and stratum 3 is unreachable from C L10041
  • §3-B. — A ?: on MEMORY operands costs ~16 bytes of invisible frame; on REGISTER operands, zero L10057
  • §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10068
  • §3-D. — A lone $t8/$t9 in the target is RELOAD SCRATCH — reproduce the spill, don't pin the register L10073
  • §3-E. — A qty_compare TIE is not spelling-reachable — recognise it and stop L10083
  • Consequence — for the family (a real scheduling decision) L10095
  • §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the ?: clamp that folds to MIN_EXPR (P30 S42, func_8017C6F4, 947 ins) L10145
  • §3-A. — move_movables hoists iff threshold × savings × lifetime ≥ insn_count — and you can read it L10151
  • §3-B. — (v < 0x40) ? v : 0x3F is folded to MIN_EXPR and expands to the WRONG SHAPE L10170
  • §3-C. — A zero-byte ALLOCNO-PRIORITY slider L10184
  • §3-D. — Reproduce the original's BUGS verbatim L10194
  • §149 — Four instrument defects in one session, and the two questions they were hiding (P30 S43) L10243
  • §3-A. — A prep step that returns its input on failure is indistinguishable from a search that found nothing L10249
  • §3-B. — Same address + same name ≠ same body — and the ledger keys on address L10267
  • §3-C. — make: *** [...] Error N is a summary, never a diagnosis L10283
  • §3-D. — "Cheap fuel" that was never probed: 0 of 31 templatable L10293
  • §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43, func_8017C6F4, 947 ins ×4) L10312
  • §3-The — fix L10319
  • §3-The — method that found it (this is the transferable part) L10329
  • §3-Two — corrections to the record L10345
  • Diagnostic — order (adopt this) L10356
  • §151 — THE GHOST WEDGE: when a load-before-store transposition is unreachable by ANY statement order (P30 S43, func_8017EF68, 969 ins) L10367
  • §3-The — mechanism (read from cc1's own -dR trace, not inferred) L10372
  • §3-The — lever — a zero-emission insn that absorbs the blocked tick L10387
  • §3-The — two fallouts, and how to close them (both measured, in order) L10395
  • When — to reach for it L10407
  • §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10418
  • §3-The — finding L10423
  • §3-The — key L10432
  • §3-Two — cautions that must travel with this technique L10443
  • §3-The — companion defect (open) L10454
  • §153 — THE ADDRESS-REMATERIALISATION LAUNDER: a third zero-emission asm lever (P30 S43, func_8018D98C, 710 ins) L10466
  • Symptom — Symptom L10474
  • Mechanism — (gcc source + RTL dumps, not inferred) L10479
  • What — does NOT work (14 byte-measured probes) L10486
  • §3-The — cure — a fresh launder per site, each in its own block L10492
  • Companion — levers from the same function L10502
  • §154 — Reading a disc payload: the module-id word, static base derivation, and "type 1 = uncompressed overlay" (P30 S44) L10522
  • §3-A. — Payload word0 is a global MODULE ID; code starts after the header L10527
  • §3-B. — Two static base-derivation methods that must AGREE (use both) L10536
  • §3-C. — PAC type 1 = the same payload class as type 4, just NOT compressed L10548
  • §155 — hi/lo literal scanning MUST track base registers (S45) L10558
  • §155a — the same failure class, one level up: SHAPE-blind table scanning (S45 p5) L10567
  • §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10587
  • §155c — the ZERO-REFERENCE trap: gcc splits a global-array address across the lui and the LOAD (S46) L10610
  • §156 — an ORPHANED reconcile poisons the fleet: dedup_propagate's kept edit (S45 p6/p7) L10640
  • §157 — the cheap-tier size cliff, measured (S45 p6) L10687
  • §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3, func_8017CE58, 733 ins) L10712
  • Symptom — Symptom L10721
  • §3-Why — the fork is chained (gcc source, validated insn-by-insn against -dS/-dR dumps) L10727
  • §3-The — method (dump-arithmetic first, then place — no probing) L10740
  • Bonus — facts worth keeping L10757
  • §156 — THE PREFERENCE-DONOR MERGE: cross-region variable reuse is what fills a0-a3, and a call-arg use in ONE region steers the fill in ALL of them (P30 S46 tier-3, func_80186E24, 611 ins: 236-off "S11 regalloc-order" → MATCH, zero new pins) L10772
  • §159 — THE DECLARATION AXIS: conform to byte-truth, and make every guard state its COVERAGE (P30 S47; ~10,930 sites across 8 axes, fleet byte-identical) L10828
  • §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10893
  • §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10969
  • §162 — S48 WAVE-1 HARVEST (P30, 2026-08-11): the reach-ordered sibling campaign's first 12 targets L11014
  • §162a — SHARPENS (sharpens §161a, §131, §8a-pad, §129a) L11041
  • §162b — SHARPENS (sharpens §48-A3, §156, §150, §76) L11070
  • §162d — SHARPENS (sharpens §31, §21, §30, §55a) L11099
  • §162e — NEW L11141
  • §162 — THE LICM PAIR: what makes an address a movable AT ALL, and why the preheader order is the body order (P30 S47, ov_MAIN_012) L11143
  • §162f — SHARPENS (sharpens §42d, §41d, §73, §10) L11209
  • §162g — NEW L11264
  • §162 — CROSS-JUMP DIRECTION: the surviving copy is always the LATER one, so a BACKWARD j into a sibling arm is a source goto (P30 S48) L11266
  • §162h — SHARPENS (sharpens §88, §88a, §50-B, §8) L11300
  • §162 — The cross-jump "CALL veto" is a COUNT law, not a CALL law (BOUNDS §88a; P30 S48, func_80189540) L11302
  • §162i — SHARPENS (sharpens §135, §21, §42, §32) L11368
  • §162j — SHARPENS (sharpens §25, §136d-1, §48-B, §46-L2) L11393
  • §162k — SHARPENS (sharpens §1-I2, §12, §160d, §21) L11422
  • §162l — SHARPENS (sharpens §48-B, §48-C1, §20, §21) L11485
  • §162m — SHARPENS (sharpens §36, §158, §148, §153) L11540
  • §158a — THE FIFTH LEVER IS NOT AN ASM: do { } while (0) is a REGION ref-multiplier you MINT (P30 S48, func_8017CBC8, ov_MAIN_012 / jr_801789AC, 188 ins → MATCH) L11542
  • §3-The — law L11549
  • Size — it before you write it (§158 step 1-2, applied) L11560
  • §3-The — wrap BOUNDARY is the dial — and it is indiscriminate L11581
  • §3-Not — a pure dial L11587
  • DIAGNOSTIC — TELL — two faces, one law L11591
  • §162n — NEW L11613
  • §162o — SHARPENS (sharpens §158, §136-1, §136-6, §79) L11646
  • §162p — SHARPENS (sharpens §48-B, §46-L2, §156, §136d-1) L11705
  • §162q — SHARPENS (sharpens §30, §30a, §135-2, §136-13) L11722
  • §163 — S48 WAVES 2-3 HARVEST (P30, 2026-08-11/12): the five that were byte-probed and are actionable L11760
  • §163z — THE UNVETTED REMAINDER (do not cite as law; each needs a dedupe pass) L11828
  • §164 — S48 §163z SKEPTIC PASS (P30, 2026-08-12): 190 claims vetted, 82 banked L11848
  • §16Xy — SHARPENS (sharpens §136d-3, §37 /s-DEP LATTICE, §135-2, §136-13, §162q) L12300
  • §3-The — /s drop clause is in ALL THREE dependence predicates, so the FIXED-ADDRESS STORE is what floats (P30 S48, func_8017CA18, ov_MAIN_012) L12302
  • §164z — REFUTED CLAIMS: do NOT re-derive these L13623
  • §165 — S48 WAVE-4 HARVEST (P30, 2026-08-12): banked the same day the wave landed L13689
  • §16Z — SHARPENS (sharpens §37 "the /s-DEP LATTICE", §136-13, §136-14, §16Xy, §162q, gcc-2.7.2-map/sched.md §64) L14340
  • §3-The — ADDRESS-CLASS TABLE: which load/store pairs even REACH the /s clause (P30 S48 wave 4, func_80185B44, ov_SC03_014) L14342
  • §165z — REFUTED THIS WAVE: do NOT re-derive L14858
  • §166 — THE DESTINATION-TU ORACLE (P30 S48): the seven-attempt bug that was never codegen L14902
  • §167 — S48 WAVE-5/6 HARVEST (P30, 2026-08-12): the saturation point L14958
  • §167z — REFUTED IN WAVES 5/6: do NOT re-derive L16154
  • §168 — THE COUSIN TIER (P30 S49, 2026-08-12): h_seq's exact-hash brittleness, measured — and the similarity map above it L16211
  • §169 — THE MICRO-ADAPT LANE (P30 S49): edit a proven body, don't crack a new one L16263
  • §170 — THE A-PROP WORD-DIFF CARD (P30 S49): the lane that had no owner L16310
  • §171 — THE STALE SEED SYMBOL (P30 S50, 2026-08-13): why §170's 91%→57% was never codegen L16354
  • §171a — THE MECHANICAL A-PROP DRAFT (P30 S50): 256 members banked with no agent in the loop L16420
  • §171b — THREE CARRIES THE MECHANICAL DRAFT NEEDS (P30 S50, banking the top-reach families) L16470
  • §172 — THE ORPHAN-SLOT MECHANISM v2 (P30 S50-Max): the complete frame-residue model for gcc-2.7.2 MIPS L16503
  • §172a — TWO DECOMPILATION TELLS FROM THE SAME DIG (P30 S50-Max) L16557
  • §172b — THREE MORE TELLS FROM THE GCC READ (P30 S50-Max, banked on Drew's ask) L16573
  • §173 — THE STORED-PLUMBING RECOVERY RECIPE (P31 T6): symfix-first, per-group isolation, and where the verdicts have no drafts L16606
  • §174 — THE ADAPT-CARD WAVE RECIPE (P31 waves A/B, 2026-08-14): prevention beats recovery L16642
  • §175 — A CALLER-SAVED REGISTER PIN CAN BE A CORRECTNESS BUG, NOT JUST A SCHEDULING CHOICE (P31 wave H, 2026-08-15) L16712
  • §176a — THE VERIFICATION-LAYER LAWS (P31 overnight, 2026-08-15). What each check can and cannot prove. L16737
  • §176b — BATCH-GATING MECHANICS (P31): what changes when N drafts land in ONE .c L16777
  • §176d — THE CONFLICT TABLE MUST BE SEEDED FROM THE TU, AND KEYED PER FILE (P31 S52, 2026-08-15) L16803
  • §176e — SYMBOL IDENTITY IS COMPUTABLE OFFLINE (P31 S52): tools/reloc_identity.py L16842
  • §176f — THE DECLARATION FORM IS A MATCHING LEVER, SO RECONCILE TOWARD THE FORM THE MATCH NEEDS (P31 S52) L16899
  • §176g — SIZE A WAVE BY INSTRUCTIONS, NOT BY CARDS (P31 S52 — the adopted doctrine) L16930
  • §176h — THE BATCH-SUBSTITUTION HAZARD MAP (P31 S52): seven holes, three wrong fixes, one law L16968
  • §3-A. — The seven under-reporting holes (all in gate_main, all the same shape) L16976
  • §3-B. — Typedef handling — the only strategy that survives contact L16994
  • §3-C. — The limit that remains (recorded, not solved) L17016
  • §3-C2. — RECONCILE BEFORE THE FIRST GATE — a parked draft gets HARDER to bank, not easier L17023
  • §3-D. — The measured cost shape, and what to build next L17046
  • §176i — WHAT A STATIC PRE-GATE CHECK CAN AND CANNOT PROVE (P31 S52, wave Q) L17064
  • §176j — STOPPING A WAVE MID-FLIGHT COSTS THE IN-FLIGHT TAIL (and how much is recoverable) L17096
  • §176j-2 — THE REPAIR PASS, MEASURED (do this instead of resuming) L17122
  • §176k — TWO SELECTOR BUGS THAT SILENTLY SHRINK A WAVE L17142
  • §177 — 🔴 THE EPILOGUE RETURN-DELAY SLOT IS DECIDED BY YOUR SAVED-REGISTER SET, NOT BY SCHEDULING L17159
  • §178 — SIX LEVERS MINED FROM THE WAVE-P JOURNALS (P31 S52), each byte-proven and source-cited L17216
  • §3-A. — THE $0-ADD OPAQUE COPY defeats make_regs_eqv (func_80033398, 93 ins) L17228
  • §3-B. — A return <const> IS A PRIORITY-1 HARD-REG SET THE SCHEDULER PLACES FIRST (func_8001BE30, 92 ins) L17244
  • §3-C. — SINGLE-SET TEMPS GET THE BIRTHING BOOST (func_8001D3FC, 196 ins) L17257
  • §3-D. — A NARROW TYPE BLOCKS COPY ELISION (func_8001D3FC — new idiom) L17265
  • §3-E. — THE ZERO-OFFSET ALIAS HOLE (func_80037028, 71 ins) L17272
  • §3-F. — MEM_IN_STRUCT_P ASYMMETRY IN true_dependence (func_80037144, 124 ins) L17281
  • §3-G. — TWO MODELLING TRAPS THAT COST THESE AGENTS SWEEPS OF HUNDREDS OF COMPILES L17287
  • §179 — IDIOMS MINED FROM THE WAVE P/Q JOURNALS (P31 S52, harvest pass) L17303
  • §179-A — 🔴 A LOOP-WALKED POINTER PARAMETER HANDS ITS ARGUMENT REGISTER TO THE GIV (9 byte-proofs) L17313
  • §179-B — 🔴 THE HAND-WRITTEN-ASM TRANSCRIPTION CHECKLIST (maspsx + masked_diff; 10 byte-proofs) L17362
  • §179-C — 🔴 A FUNCTION WITH NO EPILOGUE (falls into a sibling's shared tail) MUST BE FILE-SCOPE __asm__ L17412
  • §179-D — gte_stflg MUST CLOBBER "$12" OR THE WHOLE TEMP FILE ROTATES BY ONE L17463
  • §179-E — A >2*MAX_MOVE_BYTES BLOCK COPY IS A STRUCT ASSIGNMENT, NOT A HAND LOOP L17483
  • §179-F — PINNING A LOOP-WALKED POINTER IS A TOTAL OFF-SWITCH FOR STRENGTH REDUCTION L17509
  • §179-G — 🟡 A PIN CAN CREATE A COMBINE LOG_LINK AND DELETE AN andi (sixth RC-5 channel, n=1) L17532
  • §179-H — A MID-BODY .global LABEL PAIR SLICES A BYTE-COMPARABLE FRAGMENT OUT OF A LARGER ROUTINE L17559
  • Considered — and NOT banked L17582
  • §176c — MAIN (SLUS_007.26) CANNOT BE GATED INCREMENTALLY L17599
  • §176 — SEVEN LEVERS FROM THE P31 OVERNIGHT WAVES (2026-08-15): statement order, false regalloc, and the pin that fights back L17610
  • §176-A — "SCHEDULE / DELAY-SLOT / LENGTH-DRIFT ±1" ⇒ check STATEMENT ORDER around the call first L17616
  • §176-B — "REGALLOC-PERM, 1-4 instructions off" ⇒ it is usually NOT register allocation L17640
  • §176-C — 🔴 WALL REFUTATION: a hard-register pin CANNOT schedule around a call, because of a genuine gcc-2.7.2 bug L17680
  • §176-D — CSE-class levers used in reverse (two sharpenings of §153 and cse_expr §2) L17706
  • §176-E — Two cheap source spellings, both cc1-probed L17732
  • §176-F — Misdiagnosis triage: four residual verdicts that were lying L17754
  • What — is NOT banked here L17771
  • §180 — THE LEFTOVER-DRAFT HARVEST: RE-VERIFY WHAT YOU ALREADY HAVE BEFORE DRAFTING ANYTHING NEW L17784
  • §180b — WHAT THE PRE-GATE LADDER ACTUALLY FINDS IN A COLD PILE (the shape of integration debt) L17813
  • §180c — WHEN A BINARY'S MASS BAND IS SPENT, THE FLEET-WIDE DRAW IS STRICTLY BETTER L17832
  • §181 — WHAT A WAVE'S GATE ACTUALLY REJECTS (P31 S53, measured on wave R's 45-draft main pile) L17850
  • Only — ONE of 27 blocked drafts was wrong. The other 26 were correct and unbankable. L17851
  • §182 — §177's HONEST NEGATIVE: the epilogue lever cracked 4 of 16, and the 800c3 cluster held L17906
  • §180d — THE pgrep BRACKET TRICK PROTECTS THE PATTERN, NOT THE COMMAND LINE L17920
  • §183 — THE DECLARATION-RECONCILIATION PLAYBOOK (P31 S53, measured on 20 byte-verified drafts) L17932
  • §3-18 — of 20 reconciled while keeping the match. The two that did not are mechanism, not effort. L17933
  • §184 — COMMENT-BLINDNESS IS A DEFECT CLASS, NOT A BUG (P31 S53: three tools, one root cause, one session) L18003
  • §185 — EDIT THE SIDE THAT IS CHEAP TO VERIFY, AND CHECK A TU RETYPE AT ITS USE SITES L18031
  • §186 — CROSS-JUMPING RUNS AFTER SCHEDULING, SO NO C-LEVEL BARRIER CAN STEER IT L18063
  • §186b — A NO-SAVE 16-BYTE FRAME IN A LEAF FUNCTION MEANS s16 LOCALS, NOT A HIDDEN CALL L18084
  • §186c — WHERE A VALUE IS LOADED DECIDES WHICH ALLOCATOR OWNS IT, AND THEREFORE ITS REGISTER L18092
  • §187 — 🔴 "SAME SOURCE" IS NOT "SAME OBJECT": THE SDK BUILD AND THE GAME BUILD DISAGREE ON GTE NOPS L18109
  • §188 — 🔴 THE jr $ra + addiu $sp TAIL IS AN ASSEMBLER ARTIFACT, NOT A FRAME SHAPE L18147
  • §189 — FIVE COMPILER LAWS MINED FROM THE WAVE R/S JOURNALS (P31 S53), each source-cited and re-derived by a second agent L18197
  • §190 — THREE PRESCRIPTIONS FROM THE SAME HARVEST (weaker evidence than §189, honestly labelled) L18272
  • §191 — WHAT THIS HARVEST DID NOT BANK (4 rejected, 4 narrowed) — recorded so it is not re-derived L18309
  • §192 — THE PRE-GATE LADDER WAS MAIN-ONLY, AND NOBODY COULD SEE IT (P31 S54) L18331
  • Three — defects in one call path; the overlay slates that carry most of the wave work were being waved through L18332
  • §193 — THE WAVE-T HARVEST (P31 S54): 71 index_gap reports -> 9 laws, 5 rejected, 61 already-covered L18396
  • §193-A — The wave card ships only OPEN-set pointers and discards the atlas's BANKED one — exemplar/sibs are stubs 100% by construction (tools/atlas.py:96/657), while seed.ref (matched pool, atlas.py:505-536) is dropped at build_wave_atlas.py:143 L18413
  • §193-B — A NARROW CAST OF A WIDE PARAMETER COSTS ONE EXTRA INSTRUCTION WHEN ITS STATEMENT SITS AFTER AN INTERVENING jal — AND THE DECIDER IS combine.c:929's CROSS-CALL GUARD, NOT REGISTER ALLOCATION L18480
  • §193-C — gcc-2.7.2 cross_jump merges the SCHEDULED common SUFFIX only — there is no prefix/head merge, so §8/§48-A1's "duplicate into both arms and cross_jump refunds it" is a TAIL-only lever L18518
  • §193-D — A COMPILER-GENERATED ARGUMENT COPY IS A optimize_reg_copy_1 TRIGGER: when the pointer's LAST use in a block precedes a call that takes the pointer as a register, sched1 hoists the implicit move $aN,$sN to the block top and local-alloc re-bases the WHOLE block's memory operands onto $aN. The only C dial is a label (the §165-24 goto-join) between the block and the call. L18552
  • §193-E — A varying-address (pointer) load is re-emitted once per CSE-LIVE INTERVAL, and naming it in a C local is the only C-level lever over that count — no store SPELLING has any reach L18623
  • §193-F — §148-A2 — The threshold -= 3 STAIRCASE: move_movables admits a COUNT of invariants, not a boolean — two identical merged constants split hoisted/not-hoisted by LIST ORDER, and insn_count picks the rank cutoff L18653
  • §193-G — §164-54's "scope to ≥4 arms" bound is byte-wrong — the dispatch-topology oracle goes live at THREE case nodes (balance_case_nodes splits at i > 2), but only for a signed-after-promotion index L18717
  • §193-H — A pointer-derived base load *(s32*)(p+K) is uncacheable across ANY memory write or call (cse's third kill disjunct) — so the target emits one lw per store-separated RUN of spellings, and a run of stores sharing one lw is a C local you must declare L18778
  • §193-I — A DECLARED AGGREGATE LOCAL HAS AN 8-BYTE FRAME STRIDE — CEIL(size,8), NOT size. N ARRAYS THEREFORE COST 8·k MORE THAN ONE HAND-LAID STRUCT (k = how many of them have size mod 8 ≠ 0), AND THE TELL IS IDENTICAL INSTRUCTION COUNT WITH EVERY $sp DISPLACEMENT SHIFTED BY THE SAME CONSTANT. L18818
  • §193-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L18877
  • §194 — THE WAVE-U HARVEST (P31 S54): 64 index_gap reports -> 14 laws, 5 rejected, 44 already-covered L18904
  • §194-A — A zero-byte scheduling fence goes AFTER the defining statement to make that computation emit FIRST in its block — and the barrier predicate is volatile-or-colon-less, not the "memory" clobber (COMPLEMENTS §165-40; does not refute it) L18921
  • §194-B — A addu $rA,$rB,$zero copy feeding ≥2 sh stores is a SECOND, 16-BIT-DECLARED local — the width, not the clamp or the join liveness, is what keeps the copy (and func_80183094's pin + "memory" clobber are both provably inert) L18987
  • §194-C — A CALLER-SAVED loop counter proves its live range crosses ZERO calls — so it cannot share a pseudo with any value LIVE ACROSS a call (but it may freely share one with values that merely sit between calls) L19025
  • §194-D — Declared width of a computed-value local is a sched1 dial (count-neutral) — a replication + attribution correction of §165-17, NOT a new argument-register law L19088
  • §194-E — The wave card's exemplar is the TARGET ITSELF on 42/73 wave-U and 36/71 wave-T cards — a construction consequence of atlas.py:657 (exemplar = max-nins OPEN member) meeting build_wave_atlas.py:166 (one card per gid); and the shipped §193-A seed_ref is same-binary on 0/51, so no card field can ever name a destination-TU sibling L19129
  • §194-F — if ((*p = v = f()) == 0) is an expand-time pseudo SPLITTER (store_expr's want_value && MEM path), not a fold — it partitions one value between local_alloc and global_alloc. BOUNDS §21's L1872 bullet, whose stated direction is byte-wrong on 3 of 4 instances, and CLOSES the control §167-37 asked for. L19166
  • §194-G — Reading the integer half of a 16.16 stack aggregate: REGISTER-LIVENESS, not the C spelling, decides sra vs lhu — and the break is count-neutral L19239
  • §194-H — §164-29's WAR fence runs again at SCHED2 ON HARD REGISTERS: an in-place v &= K before a branch fences the store that reads v, and when TWO independent stores compete for the one delay slot the fence picks the winner at ZERO length drift (a WIDTH/sh!=sw swap, not a nop). Corrects §167-42's reconstruction (pseudo arm → hard-reg arm) and supplies its first re-runnable A/B. L19282
  • §194-I — §16N+2's magic-per-odd-part ladder has exactly one broken row — read the divisor arithmetically instead: d = round(2^(32 + post_shift) / magic_read_as_unsigned) L19320
  • §194-J — Back-to-back identical stores: flow.c's last_mem_set deletes the first, and only volatile saves it L19363
  • §194-K — Blind sched1's alias oracle with a second SET of a pointer pseudo — the first zero-byte, non-volatile, dependence-CREATING lever (corrects §167-05's "volatile is the only door"; fourth consumer of reg_n_sets) L19415
  • §194-L — §88b and §189-E are BOTH half-wrong, but not the way the candidate says: the compare-constant shape is a 2-D lookup (cmp_info ROW × constant-in-window), and naming matters on OPPOSITE sides of the window for the GE/LT rows vs the GT/LE rows L19493
  • §194-M — A STORE in a CONDITIONAL branch's delay slot proves its C statement DOMINATES the branch — reorg can never pull a store out of either thread (gcc-2.7.2, -mips1) L19541
  • §194-N — §193-D's C dial is misstated: the lever is a SURVIVING CODE_LABEL (a label with a real incoming edge), not "a label between the block and the call" — a bare label, or a goto L; L: pair whose target is the next active insn, is deleted by jump1 (jump.c:663-669 → delete_insn → jump.c:3458-3461, and jump.c:243 for the bare case) long before sched1/local-alloc, and costs exactly zero bytes L19596
  • §194-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L19656
  • §195 — THE WAVE-V HARVEST (P31 S54): 67 index_gap reports -> 14 laws, 9 rejected, 76 already-covered L19677
  • §195-A — §167-08's "an $aN READ before the jal is scratch" has a byte-proven FALSE-NEGATIVE class: an argument that DIES at the call is allocated straight into $aN, so its only def is a plain load far above the jal and every intervening use reads $aN — there is no positive tell in either direction, only the two-arity A/B L19691
  • §195-B — A CALL_INSN does not start a basic block in gcc-2.7.2 — so a call-crossing temp can be a LOCAL-alloc quantity (the missing precondition under §48-A2 / §52 / regalloc.md K8) L19762
  • §195-C — A call-argument %hi/%lo pair sitting at the block head, far above its jal, is a load-delay-gap filler chosen by SOURCE STATEMENT ORDER — swap the two independent statements nearest the call; a single-use void *p = &SYM; call-arg temp is OUTPUT-inert against it (but NOT expand-stream-inert) L19804
  • §195-D — §195 — masked_diff.mask_for returns 0 for EVERY j/jal word, so an internal j destination is invisible to match_one, the permuter scorer AND every similarity tier: a control-flow semantic error (which calls execute) surfaces as a 1-instruction residual mislabelled DELAY-SLOT / profile=schedule, or as an outright false MATCH L19852
  • §195-E — A 0/1 materialised at a JOIN immediately before the controlling beqz/bnez proves the source NAMED the condition — a truth expression in an if's controlling position reaches do_jump, which has no value path L19920
  • §195-F — fold-const.c:4825 canonicalises a ?: whose THEN arm is zero (or constant against a non-constant ELSE) by inverting the condition and swapping the arms — so a ternary's written arm order is byte-inert there, and c ? 0 : X is unspellable: it always compiles as !c ? X : 0 L19978
  • §195-G — §NEW — TWO ARMS CALLING THE SAME CALLEE MERGE INTO ONE jal UNLESS EACH ARM'S OWN CODE CONSUMES THE RESULT: the C dial that keeps two call sites apart is WHERE the consumer test lives, and the branch SENSE you spell it with is byte-inert (jump.c:1737 canonicalises it) L20030
  • §195-H — §165-27g — ON A FIXED-SYMBOL GLOBAL, extern T D[]; + D[0] IS THE CSE RELOAD DIAL, AT ZERO ADDRESSING COST, AND THE ELEMENT COUNT IS INERT (§165-27's T v[2] CAVEAT IS A LOCAL-FRAME FACT AND DOES NOT TRANSFER) L20078
  • §195-I — §145(b) AMENDED — the pointer-bump addiu is saved by cse, not combine: ANY second SET of a pseudo in the address's equivalence chain (in-place p += K, §145(b)'s p = r; copy, or an asm re-tie) kills the fold; the pass is cse and the gate is invalidate's reg_tick++ L20125
  • §195-J — GTE / PsyQ op CALL-vs-INLINE is a PER-SITE SOURCE FACT, not a TU style — both forms coexist in one TU (measured in 2 TUs), and the tell is the target's own opcodes (lwc2/sqr/swc2 vs jal), not the sibling. Costs -8 ins on func_8018505C. Corollary: the game's inline sqr macro emits TWO hazard nops, the SDK's Square0 body emits ONE — so the inline form is provably not Square0 inlined (a second instance of §187's SDK-vs-game GTE nop divergence). L20190
  • §195-K — At -O2 the §18 array-of-struct lever is a FRAME lever, not a length lever — but only when the N reads carry DISTINCT index expressions; with a SHARED index §18's +2-instruction residual is still alive at -O2 (the submitted "memory-loaded narrow index" precondition and unconditional length-neutrality are both falsified) L20234
  • §195-L — The cse store-re-seed does not cross a JOIN LABEL: per-arm stores + a join read keep the reload that one join store deletes (bounds §193-E BOUND 1/BOUND 3 with §48-B's EBB boundary) L20286
  • §195-M — Frame vars is a SEQUENTIAL bump-allocation, not a flat sum: §193-I's CEIL(aggregate,8) term and §165-03/§167-06's 8×orphan term are the SAME frame_offset walk at two different compiler stages, and each stage re-CEILs frame_offset to 8 before it allocates L20333
  • §195-N — In a call-bearing chain of N≥2 if (f(...)) return 1; tests closed by return 0;, the LAST test must stay in STATEMENT form — the value form (return f() != 0; / ? 1 : 0 / !!f()) costs +1 j and empties the other N−1 delay slots. The cause is REORG block placement, not jump.c's delete_jump. L20382
  • §195-REJECTED — what this harvest did NOT bank (recorded so it is not re-derived) L20429
  • §196 — PUT ON THE CARD WHAT THE TREE ALREADY KNOWS: the fleet's declaration consensus (P31 S54) L20475
  • §197 — THE WAVE-W HARVEST (P31 S54): 68 index_gap reports -> 4 laws, 3 rejected, 41 already-covered L20530
  • §197-A — A NARROW SIGNED MEMORY READ FEEDING A CONSTANT >> LOSES ITS lh, AND THE CURE IS AN ASM RE-TIE (attribution CONTESTED: cse vs combine) L20544
  • §197-B — A REPEATED COMPARE OF ONE VALUE AGAINST ONE CONSTANT IS DELETED BY cse's qty_comparison_code CHANNEL (the non-EQ complement of §165-03) — and a front-end-opaque mask on EITHER compare is a pure-C dial that keeps the target's second branch L20582
  • §197-C — Fix A1 (operand order) cannot move a commutative destination whose .greg conflict set already contains BOTH operand hard registers — split the accumulate so the destination IS the load's pseudo L20610
  • §197-REJECTED — §197-REJECTED L20655
  • §199 — THE WAVE-X HARVEST (P31 S54/S55): 63 index_gap reports -> 7 laws, 2 rejected, 56 already-covered L20670
  • §199-A — §189-A's asm→source inference is byte-FALSE: an interloper between a split constant's lui/ori is a SCHEDULE fact, not a source fact — and the separator is the BIRTHING BOOST, not a "priority floor" (§189-A's split-timing half survives; its "no statement order / no pin" absolute and the candidate's own forward-scheduler narrative both fall) L20681
  • §199-B — A permutation sweep that holds ANY statement fixed is not a sweep: the statement an agent pins as "obviously load-bearing" is the one carrying the signal, and the partial sweep returns a FLAT residual that reads as proof of order-invariance L20730
  • §199-C — A NEGATIVE CONSTANT MULTIPLY ALWAYS TAKES expmed's negate_variant — but whether you ever SEE the neg is decided by COMBINE, and for an EVEN |K| it never disappears L20775
  • §199-D — A narrow UNSIGNED value compared in an ordered if emits sltiu/sltu; the only dial is the WIDTH of a real object, and a widening (s32) cast is inert — AMENDS §35 (whose stated "only CSE-reuse canonicalizes" mechanism is byte-wrong) and does NOT apply inside a switch L20823
  • §199-E — §189-A BOUNDED AND CORRECTED — the discriminator is INSN_PRIORITY, not "is the interloper a constant": an insn between a lui/ori pair proves NOTHING about the source spelling unless it TIES the ori on priority, and on the pinned -mcpu=3000 triple a dependent load never does L20883
  • §199-F — §164-36b — THE TARGET-HEAD FENCE IS A DELAY-SLOT THREAD SELECTOR, AND IT ONLY FIRES WHEN mostly_true_jump > 0 (amendment to §164-36; its "−1 instruction" tell is falsified) L20942
  • §199-G — At TWO case nodes the switch-vs-if oracle is not blind — but the tell is ALL tests positive + a trailing j default, NOT the first test's polarity L20996
  • §199-REJECTED — §199-REJECTED L21051
  • §200 — THE ALIAS IS THE UNIVERSAL DECLARATION ESCAPE: stop negotiating with the TU's spelling (P31 S55) L21062
  • §201 — THE WAVE-Y HARVEST (P31 S55): 67 gap reports -> 5 laws, 8 rejected, 53 already-covered L21111
  • §201-A — §150-B applies to decl_prior's DEF row: for an overlay-window symbol the banked "definition" is usually another overlay's function, and the card ranks it ABOVE the destination TU L21121
  • §201-B — In a narrowed PLUS/MINUS/AND/IOR/XOR expression the destination pointee is INERT — the sign of the materialized constant is decided by an OR over the UNWIDENED operands (convert.c trunc1), which bounds §1841 to direct constant stores L21153
  • §201-C — §X — A CALL'S OWN DELAY SLOT AND THE UPSTREAM CONDITIONAL BRANCH'S SLOT COMPETE FOR ONE INSN (the call's argument copy), AND ONE STATEMENT'S POSITION RELATIVE TO THE CALL DECIDES BOTH — the residual is visible at the BRANCH, not at the call L21233
  • §201-D — THE SIGNEDNESS OF A div/mod MAGIC IS DECIDED BY THE STATIC TYPE OF THE DIVIDEND TREE AFTER get_narrower STRIPS WIDENING CONVERSIONS — NEVER BY A PROVABLE RANGE. AN & 0xFF IS NOT A CONVERSION, SO IT NEVER FLIPS THE MAGIC; A DECLARED-UNSIGNED LOCAL OR A NARROWING CAST WRITTEN AT THE DIVIDE BOTH DO. L21284
  • §201-E — §194-J-2 — The last_mem_set deletion window is measured in SOURCE/expand order, not in the printed stream; a foreign store moved between the pair in C source is a real lever, and volatile is not always the better one L21331
  • §201-REJECTED — eight, the session's highest L21387