mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-26 21:36:06 -04:00
279037ece6
Wave O: six drafts in one TU referenced D_80078D88, three declaring it scalar and three as an array. One draft's own comment explained why the array form is load-bearing: with a scalar decl the global load is a plain symbol_ref and sched1 HOISTS the lui/lw above a store; declaring it as an array makes gcc-2.7.2 alias.c treat the access as possibly-aliasing and the hoist stops. So §176b/§176d's 'pick one form and cast at the use site' is wrong for a scalar/array clash. Array is the STRONGER form -- scalar users adopt it for free by indexing [0] (byte-verified on all three) -- while forcing an array user to scalar can re-enable the hoist and break the match. Reconciling toward the array form took the slate from 42 -> 37 compatible (5 dropped) to 42/42, every converted draft re-verified MATCH. Waves J/K/L each lost 5-10 drafts to the greedy keep-first rule.