Part of the meld→loom→synth 0.70× (beat-LLVM) roadmap (gale benches/gust/optimization/BEAT-LLVM-0.7x.md (PR pulseengine/gale#119)). After meld fuses the components into one merged-memory core, the whole-program call graph and value flow are known (and memory is bounded, 0 memory.grow) — information no per-TU compiler (LLVM) has.
Ask: emit, as metadata on the fused module for loom/synth to consume, the facts fusion makes available — cross-component value ranges, constant call-site arguments, dead parameters, and the bounded-memory guarantee. These become optimization premises enabling cross-component specialization (constant-arg propagation, dead-arm elimination, range-driven check elision) that LLVM can't do across translation units. Pairs with the loom issue (carries the facts in IR) and the synth issue (consumes them to specialize). The payoff is dissolved code faster than native LLVM because fusion + proof expose facts the native build never sees.
Part of the meld→loom→synth 0.70× (beat-LLVM) roadmap (gale benches/gust/optimization/BEAT-LLVM-0.7x.md (PR pulseengine/gale#119)). After meld fuses the components into one merged-memory core, the whole-program call graph and value flow are known (and memory is bounded, 0
memory.grow) — information no per-TU compiler (LLVM) has.Ask: emit, as metadata on the fused module for loom/synth to consume, the facts fusion makes available — cross-component value ranges, constant call-site arguments, dead parameters, and the bounded-memory guarantee. These become optimization premises enabling cross-component specialization (constant-arg propagation, dead-arm elimination, range-driven check elision) that LLVM can't do across translation units. Pairs with the loom issue (carries the facts in IR) and the synth issue (consumes them to specialize). The payoff is dissolved code faster than native LLVM because fusion + proof expose facts the native build never sees.