summaryrefslogtreecommitdiff
path: root/skills/chapter25-codex-notes.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-07 11:18:47 -0700
committerCliff Click <cliffc@acm.org>2026-10-07 11:18:47 -0700
commitdf5efaa0d05b3583eb6ca3b5f67df83827889e42 (patch)
tree439bfa2dec84d05ce55f0d492f4192230c06506c /skills/chapter25-codex-notes.md
parent8a20d5238855de5479d84e7fd8e84561844e2dc4 (diff)
downloadSimple-df5efaa0d05b3583eb6ca3b5f67df83827889e42.tar.gz
Simple-df5efaa0d05b3583eb6ca3b5f67df83827889e42.zip
Make RA deterministic
Diffstat (limited to 'skills/chapter25-codex-notes.md')
-rw-r--r--skills/chapter25-codex-notes.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/skills/chapter25-codex-notes.md b/skills/chapter25-codex-notes.md
index 2f2f299c..7c33d608 100644
--- a/skills/chapter25-codex-notes.md
+++ b/skills/chapter25-codex-notes.md
@@ -331,6 +331,18 @@ For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.m
## Register allocation review
+- Phi self-conflict splitting must isolate inputs shared with another Phi,
+ not only the entry input and result. Two loop Phis sharing a backedge value
+ otherwise stay in one conflicting LRG across every round. The correction
+ starts in 20; 24-25 retain their first cold-only attempt.
+- Chapter 25's cloned-call relinking must visit old nodes in node-ID order.
+ Iterating the clone IdentityHashMap changed call edges and optimizer worklist
+ order across JVMs. The SystemV sys build reproduced on Windows with
+ `-XX:+UnlockExperimentalVMOptions -XX:hashCode=2`; WSL was not essential.
+ When investigating reproducibility, compare phase dumps before blaming the
+ allocator or target ABI. Even diagnostic identity maps can perturb JVM hash
+ assignment and expose an existing dependence on identity iteration order.
+
- Allocation starts in 20; native encoding in 21. Backport legality and
no-progress fixes to the first applicable chapter, but introduce spill-quality
heuristics gradually. Do not import the complete Chapter 25 allocator into 20.