From bd0ef17d0f9563ed9579fe060b785211e8378006 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Thu, 1 Oct 2026 15:47:15 -0700 Subject: Restore missing anti-dependence walk --- skills/chapter25-codex-notes.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'skills/chapter25-codex-notes.md') diff --git a/skills/chapter25-codex-notes.md b/skills/chapter25-codex-notes.md index 208494e7..c409cd55 100644 --- a/skills/chapter25-codex-notes.md +++ b/skills/chapter25-codex-notes.md @@ -260,7 +260,10 @@ For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.m - Keep anti-dependence marks in a pass-local array, not CFGNode. In 11-20 the evaluator independently reschedules nodes, so retain the full store placement range when constraining loads; using only GCM's final store block breaks - `SchedulerTest.testStoreInIf2`. From 21, the chosen store block suffices. + `SchedulerTest.testStoreInIf2`. Retain the dominator walk from 21 onward too: + a conditional Store can precede a Load's late block without dominating it. + Its exact block need not be marked, but an ancestor intersects the Load's + placement range. `Chapter21Test.testReadBeforeConditionalStore` checks this. Preserve each chapter's alias/tuple memory representation when finding stores. - Changes in node order can expose encoding bugs. Chapter 21's empty-block scan mistook entry to a nested loop for a backedge; require the same loop-tree node, -- cgit v1.2.3