mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
2a0808e3dc
The third fable escalation did NOT close its function (main/func_8001BC6C, 33 -> 28 over ~45 measured compiles), so the checkpoint's '2 for 2' is corrected to 2 closed of 3. The failure is banked because a negative result that tells future agents when to STOP is worth its tokens. THE BOUND: sched.c schedule_select ALWAYS fronts a ready load over an equal-priority ALU leaf (potential_hazard), so no C spelling can emit an ALU chain before loads that are simultaneously-ready same-priority leaves. If a target shows that order, look for reorg slot-steals, hard-reg dependency walls, or late in-block consumers BEFORE burning compiles on statement permutations. Also banked: the reorg fill_simple_delay_slots slot-steal diagnostic and its split-tree precondition (the accumulator must live outside the $v0-heavy tail to be eligible), three supporting levers, and three REFUTED ones with measurements -- a dead-init boost-kill is a no-op because cse delete_dead_from_cse removes it before the final reg_scan, dense-block re-ties cost +4 to +9 because each re-tie re-anchors its own load, and the -fno-schedule-insns oracle does not discriminate when the residual is a multi-pass composition. This run applied §361 CORRECTLY -- it removed the prior agent's pin first and exonerated it for the head -- which is why its four-pass diagnosis can be trusted where the previous single-tie claim could not.