code wiki / _hdl_build / nx_js_floatfuse_probe.nx

nx_js_floatfuse_probe.nx

buildroot/runtime/_hdl_build/nx_js_floatfuse_probe.nx

3833 B52 linesdepth 8pulls 24 transitivereach 0 importersview sourcekind probetopic js
docsdependenciesstructsconstsfunctions

about

nx_js_floatfuse_probe.nx -- SELF-ASSERTING perf-regression GATE for the const-fusion float fallback. `s=s+1` with `s` a FLOAT is the `float +/- int-literal` pattern: it fuses (PUSH 1 is an int const) but the LHS is float at runtime -> the fast path misses -> fallback. The fallback MUST use jit_binop's inline SSE (addsd), NOT the ~10x-slower jit_slow_binop sovereign slow-helper call. This gate catches that regression AUTOMATICALLY (the correctness suite can't -- it's bit-exact, not timed): the SSE fallback puts the FLOAT loop within ~1.2x of the pure-INT control (both are ~1 mem-round-trip/iter); the broken sovereign-slow-helper made it ~10x. Assert float < 4x int (clean separation, robust to the machine's +-25% load noise). This is the gate that would have caught the 2026-07-14 10x regression. expect_exit: 0 license_tier: ORIGINAL

dependencies 1 imports · 0 importers

nx_js_vm.nx nx_js_floatfuse_probe.nx

imports: nx_js_vm.nx

imported by: nobody (leaf or entry point)

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

main pw timed sys_now_us sys_mmap sys_clock_gettime_mono compile_run cr_core jp_parse_source js_lex js_skip_trivia js_lex_one jp_parse_program jp_tok_kind jp_cur jp_err jp_parse_stmt jp_child_commit jp_new_node jp_pst ev_set c_scope_push c_program c_predecl jp_nkind jp_na jp_nb jp_child_at c_newslot ev_tok_start ev_tok_len c_predecl ↻ jp_nextra c_rootslot jp_nc ev_for_body ev_try_finally jp_nb ↻ jp_child_at ↻ jp_nkind ↻

structs

none

consts

none

functions

10func pw(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 2: timedmain
11func pn(v: i64) -> i64
called by 2: timedmain
20func timed(src: *u8, name: *u8) -> i64
35func main(argc: i64, argv: *i64) -> i64
calls 3: pwtimedpn