mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-27 22:45:39 -04:00
d4dc533f54
T51's payoff. The invocation is IDENTICAL to the T49/T50 runs; the only variable is T51's decl scoping. T49/T50 (pre-T51) 4 banked / 133 gate-fail (and all 4 were SC07 — a different cause) T52 sample (8) 8 BANKED / 8 52s T52 rest (124) 124 BANKED / 124 13m04s TOTAL 132 / 132, ZERO failures So the 133 "gate-fails" were never a codegen wall — they were one file-scope declaration per sibling TU. Fifth time this phase a wall has resolved to tooling/plumbing. GATES (from a genuinely clean tree): R22 clean-fleet `make clean && extract-all && check-all` -> 140 passed, 0 failed of 140. `make tools-health` OK — corpus 0 PHANTOM + 0 TRUNCATED, cdecl, audit-binaries, report/lint/dedup 1886 validated / 0 failed (C1 239604/239604). 0 NON_MATCHING (G4). METRICS (reconciled against make report, not asserted): instr-weighted 85.5% -> 85.7% 11240111 -> 11258063 = +17,952 ins distinct-code 76.1% -> 76.4% 67687 -> 67812 unique fns (+125) fn-count 90.62% -> 90.65% 320524 -> 320656 = +132 functions INCLUDE_ASM stubs 33189 -> 33057 = -132 +17,952 templated instructions against T50's ~18,000 estimate. distinct-code gains 125 not 132 because seven siblings are byte-identical to code already counted unique. ALSO SETTLED: - item 3 is now byte-confirmed, not just inspected: [gather_externs] warned "func_80135D20 ... the sibling will not compile" on ALL 132, and all 132 BANKED. A 100% false-alarm rate on this family, actively masking real causes. cdecl._mask is the fix (T51 used exactly that). - the T51 pre-pass is now worth folding into jtbl_family_bank; T51 withheld that pending a measured payoff, and 4/137 -> 137/137 is it. Next task. config/ (per-overlay splat.*.yaml + overlays.mk, written by the carve) is staged alongside src/ — the `git add -A src/` omission this phase already recorded once.