diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-07 21:31:18 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-07 21:31:18 -0700 |
| commit | 87a75c83b75480e65147a4d425fddd14a05df4d9 (patch) | |
| tree | f486050aa3a13e218ad17ab57efaccbe35336483 /chapter21/README.md | |
| parent | 2eba63966bdc3d9cfdf41ee085f35cbb6d529bbc (diff) | |
| download | Simple-87a75c83b75480e65147a4d425fddd14a05df4d9.tar.gz Simple-87a75c83b75480e65147a4d425fddd14a05df4d9.zip | |
More test case vs RA cleanup
Missing a few risc/arm encodings.
Make private many tests, so they don't escape and the escaped fcn inflate x86 spill numbers
Diffstat (limited to 'chapter21/README.md')
| -rw-r--r-- | chapter21/README.md | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/chapter21/README.md b/chapter21/README.md index 63b02ae9..80304c1a 100644 --- a/chapter21/README.md +++ b/chapter21/README.md @@ -147,22 +147,24 @@ its two-address operand. For example, `mov rpc=s8; st1 [rpc+4],s1` becomes Phi and control-flow users are excluded. This local cleanup leaves spill selection unchanged; it complements coalescing without another CFG analysis. -For looking at allocator progress, we will keep a table of weighted spill costs +For looking at allocator progress, we will keep a table of execution and allocation costs a chapters' tests - and use the later chapter compiler and register allocator on them. The later chapters also modify the graph (sometimes adding boiler plate graph) so its not really a 100% fair comparison of how well this *heuristic* does, but it does give us some idea that we're not losing ground. -Rows are fixed test cohorts; columns are the compiler/allocator chapters. Each -cell is the sum of `_spillScaled`: retained split moves, including register -copies, weighted by loopDepth. Lower is better. **# tests counts -compilations** (program/CPU/ABI cases), including zero-spill cases, rather than -JUnit methods. The count and membership of each row stay fixed across columns. +Rows are fixed test cohorts; columns are compiler chapters. Each cell gives +**Ops / RA / X**: executed ARM+RISC-V instructions, the subset emitted for +allocator copies/rematerializations, and x86's loop-weighted split-move estimate. +**Cases D / X** counts measured dynamic program/target cases and x86 compilations; +membership and inputs stay fixed across columns. Native-library work is excluded. +Chapter 20 has no encoder, hence no dynamic counts. Lower is better within each +metric; see the [measurement details](../docs/regalloc-spills.md) for coverage. <!-- spill-matrix:start --> -| Test cohort | # tests | Ch 20 | Ch 21 | +| Test cohort | Cases D / X | Ch 20: Ops / RA / X | Ch 21: Ops / RA / X | |---|---:|---:|---:| -| Ch 20 | 39 | 360 | 576 | -| Ch 21 | 52 | | 1,072 | +| Ch 20 | 22 / 13 | — / — / 161 | 55,173 / 5,407 / 174 | +| Ch 21 | 20 / 18 | | 6,207 / 261 / 461 | <!-- spill-matrix:end --> |
