Files
BFM-decomp/docs/lever-progress.tsv
T
Drew T 9c5ca46a2a phase-36: T7 agent a2 — func_80168828 at score 0 with the constant-holder pin deleted (125 bodies; 29,697 → 29,572 sites, R22 218/218)
- two moves: delete `register s32 c40 __asm__("$3")` and its `c40 = 0x40;`, writing the literal at its four uses (byte-neutral
  on its own — the pin was never doing the work); then swap the adjacent `f1e = 0x40;` and `f1a = 0x10;` so the 0x10 store
  splits the run of 0x40 stores.
- the residual reads like cse/sched and the decision is local-alloc's. Dumps of the real TU in both orderings differ on one
  .lreg line — `Register 76 used 5 times across 10 insns` -> `across 14 insns`, `Register 76 in 2.` -> `in 3.` — which is
  find_free_reg's live-range scan at local-alloc.c:2109-2110: unswapped the two constants' ranges are disjoint and share $v0,
  swapped they overlap and the first takes $v1.
- the $4 pin STAYS, and not as a lever: src/shared/ov/func_801687CC.h declares extern void func_80168828(void), so the
  target's `move s1,a0` has no C source. An uninitialised local, a pointer-typed one, a split declaration and deleting it
  outright all give the identical score-25 residual; both parameter forms are hard cc1 errors against that header. This is
  the first measured pin that only a declaration fix can remove — one of the 51 conflicts P35 ledgered for the types phase.
  The engine's score-1 text is a coincidence (its andi truncates garbage in $s1 and never reads $a0); not proposed.
- instrument fixed in the same change: --propagate refused all 124 siblings because the reshape deliberately keeps a lever.
  The allowance is now derived from the exemplar's own banked text (its surviving !FAKE markers), and a sibling whose remap
  would carry more levers than the exemplar is refused by name.
  delever --propagate: 124 of 124 sibling(s) banked, 0 refused
- check-all: 218 passed, 0 failed of 218
  lever_census --check: 29,572 pin/asm sites, 29,572 marked !FAKE, 0 UNMARKED — OK
- snapshot row 12; delever --selftest OK. The toolify (R16, the constant-run split) follows.
2026-09-10 01:23:22 -06:00

2.1 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