summaryrefslogtreecommitdiff
path: root/docs/roadmap.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-27 14:50:02 -0700
committerCliff Click <cliffc@acm.org>2026-10-27 14:50:02 -0700
commit01f87c30c97c12237cc7b63d620e204a5fc79d41 (patch)
tree533399d6c3a475d5beca84b9f93f19306cb94acb /docs/roadmap.md
parentf78d97c60047627164012fb10053c75ccf0ca7dd (diff)
downloadSimple-01f87c30c97c12237cc7b63d620e204a5fc79d41.tar.gz
Simple-01f87c30c97c12237cc7b63d620e204a5fc79d41.zip
Remove several instances of extra whole-graph walks
Diffstat (limited to 'docs/roadmap.md')
-rw-r--r--docs/roadmap.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/docs/roadmap.md b/docs/roadmap.md
index 29bc77de..14cf563f 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -32,6 +32,30 @@ signed and unsigned fields and compare ideal evaluation with generated code.
## Compilation and optimization
+### Phase ordering and incremental analysis
+
+Import loading now repairs the new graph's types and propagates changed bounds
+through affected callers before resuming peepholes. It no longer restarts Iter
+and Opto over the combined graph. Unknown calls retain conservative effects
+and escaping callbacks. Entry initializers seed reachability; live calls,
+including CLInit and the callees recorded in summaries, discover other targets.
+
+Smaller follow-ups:
+
+- Try queuing only nodes whose types changed during Opto, plus affected
+ neighbors and nodes whose edges or numeric modes changed, for IterPostOpto.
+- Remove the deserializer's temporary `Parse` phase. Node construction should
+ express its needs without changing the driver's progress marker.
+- Have Eval2 require checked input in a supported phase. Prepare each newly
+ loaded graph once, without changing the running program's phase. Remove
+ scheduling scratch costs proportional to all previously allocated node IDs.
+- Keep field-offset cleanup on the worklist. Repeated peepholes are fine when
+ driven by changes; avoid repeating global finalization bookkeeping.
+
+Whole-program TypeCheck is acceptable for now; incremental checking is an
+optional later improvement. Expensive assertion walks are outside this
+performance work. Review the encoding fallback inside Export separately.
+
### Reliable incremental builds
Chapter 28b now checks the reachable source-backed inputs before reusing saved