code wiki / _hdl_build / nx_regalloc_absorb_governed_test.nx

nx_regalloc_absorb_governed_test.nx

buildroot/runtime/_hdl_build/nx_regalloc_absorb_governed_test.nx

5606 B113 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind gate/prooftopic regalloc
docsdependenciesstructsconstsfunctions

about

nx_regalloc_absorb_governed_test.nx -- the LOOP governs absorbing the allocator into codegen. Absorption is the risky step (the prior g1 attempt miscompiled), so it goes through the crew council (3->2->1) with the REAL gates as the Engineer's evidence: ENGINEER = the allocator is sound (ra_validate) AND execution-equivalent to the reference (ri_interp_ref == ri_interp_alloc) AND fits (0 spills). GENEALOGIST = novel (a new codegen path, not a duplicate). WARDEN = additive-safe (a NEW path; the known-good compiler is untouched). Only then does the Conductor ACT (absorb). A MISCOMPILING allocator (Engineer evidence fails) must be DENIED/ESCALATED -- governance blocks the g1 regression. Known answer: proven allocator -> council ACT (absorb); miscompiling allocator -> council NOT ACT (blocked). exit 0.

dependencies 2 imports · 0 importers

nx_crew_council.nx nx_regalloc_interp.nx nx_regalloc_absorb_governed_te

imports: nx_crew_council.nxnx_regalloc_interp.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main ab_puts ab_build_ir ra_compute_last_use ra_linscan sys_mmap ab_engineer_ok ra_validate sys_mmap ↻ ab_rng ri_interp_ref ri_op_eval ri_interp_alloc ri_get ri_op_eval ↻ cc_set cc_council cc_verdict_name

structs

none

consts

20const AB_N: i64 = 11
21const AB_NREG: i64 = 8
22const AB_K: i64 = 6364136223846793005
23const AB_A: i64 = 1442695040888963407
24const AB_M: i64 = 65535
25const AB_KK: i64 = 1000000

functions

18func ab_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
called by 1: main
27func ab_rng(s: i64) -> i64 { return s * 6364136223846793005 + 1442695040888963407 }
called by 1: ab_engineer_ok
30func ab_build_ir(op: *i64, u0: *i64, u1: *i64, imm: *i64) -> i64
called by 1: main
47func ab_engineer_ok(op: *i64, u0: *i64, u1: *i64, imm: *i64, last_use: *i64, alloc: *i64) -> i64
64func main() -> i64