kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

commit cd46fd6eb67337c8e1c94cd0ac0adc42f9897d23
parent 5124ada6d86bf9fec1298bc85bc6df6ad191323d
Author: Ryan Sepassi <rsepassi@gmail.com>
Date:   Sat, 13 Jun 2026 17:21:31 -0700

doc(perf): PERF.md §6 — re-confirm callgrind distribution post-follow-ons

Linux callgrind on the integrated tree: total 1.745 B Ir (vs documented
1.75 B) with the same distribution (aa_emit_mem 1.1 -> 1.0%). The codesize
levers shrink emitted code but not codegen's compile-time Ir (per-statement
vtable dispatch + Lever 2's api_temp_dead checks), consistent with the flat
macOS -c result. Note the re-confirmation in §6.

Diffstat:
Mdoc/plan/PERF.md | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/doc/plan/PERF.md b/doc/plan/PERF.md @@ -227,8 +227,13 @@ Gotchas (each cost a round trip — do not relearn them): `scripts/perf_callgrind.sh run` on `f6aa2f2a` (after the frontend slimming on main + the `o0-codesize` track). Total **1.75 B `Ir`** (was 3.30 B before the -strtab fix, 2.04 B after). Per-function self `Ir` (callgrind's `'N` inlined -contexts merged): +strtab fix, 2.04 B after). **Re-confirmed unchanged after the `o0-codesize` +Lever 2 + single-pass follow-ons** (total 1.745 B; the same distribution, with +`aa_emit_mem` 1.1 → 1.0 %): the codesize levers shrink emitted *code* but not +codegen's *compile-time* `Ir` — that is dominated by per-statement vtable dispatch +(`nd_dst_reg`/`nd_dst_writeback`/`aa_emit_mem`), and Lever 2's `api_temp_dead` +checks add back roughly what the smaller emit removed. Per-function self `Ir` +(callgrind's `'N` inlined contexts merged): | self % | function | subsystem | |--:|---|---|