nx_dom_oracle_gate.nx
buildroot/runtime/nx_dom_oracle_gate.nx
about
nx_dom_oracle_gate.nx -- BRUTE-FORCE DOMINANCE ORACLE for dom_fn.nx.
The banked LICM awakening rung (nx_opt.nx DORMANT-COMPAT, 2026-06-10):
"Awakening rung = dominance brute-force oracle FIRST, then this load."
This gate IS that oracle. Definition-level ground truth: D dominates B iff
removing D makes B unreachable from entry. Compares that, pairwise, against
dom_compute_fn's idom chains over EVERY function of the FULL self-host
compiler source (the exact merge-heavy CFGs that broke the 06-10 awakening),
on the post-parse CFG AND the post-opt_run CFG (the shapes LICM actually
sees inside the fixpoint).
Skips (reported, never silent): functions with any block n_preds > 3 (the
pred-truncation class -- opt_licm DECLINES these, so they are outside the
awakening's blast zone) and functions with n_blocks > DOR_MAX_B (brute cost).
NEGATIVE CONTROL: a deliberately corrupted idom entry must produce
mismatches -- proves the comparator can see a lie.
Verdict GREEN iff mismatches == 0 AND negctl fired. license_tier: ORIGINAL
dependencies 11 imports · 0 importers
diagram shows first 10 each side; +1 more imports, +0 more importers in the complete lists below.
imports: nx_syscalls.nxnx_types.nxnx_lex_kinds.nxnx_outbuf.nxnx_ir.nxnx_tokenizer.nxnx_parse.nxnx_opt.nxnx_ir_validate.nxnx_import.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 30 | const DOR_MAX_B: i64 = 256 |
| 31 | const DOR_EXPAND_CAP: i64 = 4194304 |
functions
| 33 | func dor_w(s: *u8) -> i64 |
| 39 | func dor_wn(v: i64) -> i64 |
| 57 | func dor_bidx(f: *Function, bb: *BasicBlock) -> i64 |
| 68 | func dor_reach(f: *Function, skip: i64, reach: *u8, wl: *i64) -> i64 |
| 107 | func dor_chain_dom(idom_idx: *i64, n: i64, d: i64, b: i64) -> i64 called by 1: dor_check_fn |
| 124 | func dor_check_fn(f: *Function, fname: *u8, cnt: *i64, negctl: i64) -> i64 |
| 213 | func main(argc: i64, argv: *i64) -> i64 |