Files
BFM-decomp/docs/lever-progress.tsv
T
Drew T c6b380fcd0 phase-36: T7 burst — 503 more bodies banked, and the per-file scratch-object collision fixed at its cause
The scorer named its scratch object after the FILE (compile_obj tag="score"), so the nine burst agents sharing one
translation unit wrote and read one object. Two reported it independently without seeing the code: spurious
COMPILE-ERRORs naming an unrelated header, and one agent scoring four candidates against another agent's function. The
tag is now per function. Every landed body was re-verified after the fix and all still score 0; the banks were never at
risk, the agents' intermediate readings were.

- banked: func_801627E8 (132), func_8017A3D8 (118), func_80141874 (119 of 125), func_801345F8 (134). 28,887 -> 27,984.
  lever_census --check: 27,984 pin/asm sites, 27,984 marked !FAKE, 0 UNMARKED — OK
- THE FINDING: the biggest lever class in this phase is a WRONG DECLARATION, not codegen. Four agents independently
  reached score 0 by restoring a call's real arity, each in a different spelling — a function-pointer cast, a widened
  block-scope prototype, a call given its argument, and a definition given its two parameters. The mechanisms differ
  (combine.c:1458's added_sets_2 gate; set_preference global.c:1589 ahead of first-fit at :1001-1015, the argument copy
  becoming a self-move deleted at toplev.c:3142 so it costs zero instructions; assign_parms' parameter home copies) but
  the class is one: a truncated (void) declaration removes an instruction the pin was then hired to fake. No generator
  can reach it — every generator rewrites statements that exist, and this changes a call's arity.
- func_80157D20 does not bank body-only (gcc rejects a block-scope redeclaration), so its Path A joins func_80136824 and
  func_80168828 as the third measured case for the types phase.
- two more new classes, byte-proven: a store sinking past a load because true_dependence's exception (sched.c:837-839)
  discards the edge, fixed by declaring the global an array and storing through [0] to set MEM_IN_STRUCT_P; and a
  post-decrement queued by expand_increment until the next sequence point, fixed by splitting the statement plus a u16
  destination cse refuses to join (cse.c:1017-1019).
- correction to record: an uninitialised register __asm__("$0") is an opaque operand, not a constant holder — R16 must
  refuse it.
- snapshot row 20.
2026-09-10 10:38:24 -06:00

3.7 KiB

1datemilestoneheadsites_ABpinsasmbodies_ABdistinct_ABmarkedunmarkedgte_leversper_tu_asm_macrosclass_Cclass_Dclass_Eclass_Fclass_G
22026-09-09T6 r1 (rung R's first class)1761a3125339572051213445125781758339570462314172250742844576
32026-09-09T6 d1 (rung D's four exemplars)8fac96651339532050813445125741758339530462314172250742844576
42026-09-09T6 p1 (four classes propagated)a2da99b13334271998213445120481755334270462314172250742844576
52026-09-09S101 rung G g1 (the guided search's first run: 1 of 16 exemplars, 132 bodies)623e55340332951998213313119161754332950462314159050742844576
62026-09-09S101 rung G g2 (wider beam + R10/R12/R13/R8-cse: 1 of 16, 132 bodies)584031c71330311971813313117841753330310462314159050742844576
72026-09-09S101 rung G g3 (the next 64 classes: 13 of 64, 1,516 bodies)5ae0b5ceb310251844212583102681740310250462314159050742844576
82026-09-09S101 rung G g4s (the 13 explained names, 38 classes: 3 of 38, 133 bodies)068781ae0308921830912583101351737308920462314159050742844576
92026-09-09S101 rung G g5 (the head re-drawn wide: 5 of 70, 62 bodies)1ec67f667308061826112545100731732308060462314159050742844576
102026-09-09S101 rung G g6 + g6b (the tail: 47 + 63 of 400 small classes, 93 + 186 + 47 bodies)2f3ce92a130358179541240497471624303580462314159050742844576
112026-09-10S102 T7 a1 — func_80156044 closed by an agent (merge-point expression sunk into the if/else arms, both $2/$3 pins gone); 130 bodies banked (1 + 129 propagated)5a8bd102130098176941240496171623300980462314159050742844576
122026-09-10S102 T7 s1 — the R15 sweep of the head: 6 exemplars closed by the sink alone (267 bodies), no drafting tokens861dd065129697174271227093501617296970462314159050742844576
132026-09-10S102 T7 a2 — func_80168828: the constant-holder pin deleted and one adjacent swap closes it (125 bodies, 1 of 2 pins off; the $4 pin is forced by the header's (void) declaration)c00ffe5d429572173021227093501617295720462314159050742844576
142026-09-10S102 T7 s3 (partial, the run crashed in propagate) — the constant-holder draw: 10 bodies closed975850ff829533172661226793261594295330462314159050742844576
152026-09-10S102 T7 s3b — the constant-holder draw re-run after the propagate fix: 1 of 80, 6 bodies; 59 of 80 hit the compile budget5603a114c29527172601226793201593295270462314159050742844576
162026-09-10S102 T7 s5 — the first broad TAIL sweep with R15/R16/R17/R18: 285 of 800 bodies closed lever-free, no drafting tokens449acd8cb29204170291217590351308292040462314159050742844576
172026-09-10S102 T7 s6 — the last never-attempted exemplars: 25 of 337; the fresh pool is now empty67e91ad4d29148169961215290101283291480462314159050742844576
182026-09-10S102 T7 s7 (stopped early to restore agent cadence) — 5 of 207 judged at the wider width724c6885929140169891215190051280291400462314159050742844576
192026-09-10S102 T7 a7 — func_801287B8: a truncated local extern was faking a pin; the missing call argument restored through a function-pointer cast (127 bodies)bb0e95c7c29013168621215188781279290130462314159050742844576
202026-09-10S102 T7 a4 — func_8016C49C: one do-while on the function's LAST statement doubles a loop-note reference weight and flips allocno_compare (126 bodies)9f5b2217628887167361215187521278288870462314159050742844576
212026-09-10S102 T7 burst — a8/a12/a18/a19 banked (132+118+119+134 bodies): the call-arity class twice, a MEM_IN_STRUCT_P alias flip, and a sequence-point splitfb6c857f727984159651201982491275279840462314159050742844576