| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Minor arm encoding fix.
|
| | |
|
| |
|
|
|
|
|
| |
Includes all bug fixes from later chapters, so its at least correct.
Skips a lot of improvement heuristics, these get added in later chapters.
Includes spill-stats, to more easily track improvements.
Includes targeted tests.
|
| | |
|
| |
|
|
|
|
| |
Remove the _anti field.
Remove the isPinned() call.
Add a copyEmpty call.
|
| |
|
|
| |
Unify dominator caching.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
add deps on dominance crawls
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Lest an int-only op, having lifted result types to int, get a zero-fold (e.g. X^0) to their mode-not-set input and have types fall.
Handle idepth-cache overflow
|
| |
|
|
|
| |
Fix keep/unkeep balance.
Always fuzz small.
|
| | |
|
| |
|
|
|
|
| |
Missing Arith mode picks high or low according to pre/post Opto
FunPtr improves sig return based on Opto return type.
Minus with missing mode is optimistic, same as Arith
|
| |
|
|
|
|
|
| |
IterPeeps cnt does not reset.
Faster schedulableIses, reuses ID Map.
Test in Iter work if not GVN table
ScheduableUses peeks through folding/dead Call/Fun
|
| |
|
|
|
|
|
|
| |
Robust assert about all data ops are schedulable.
Utiltiies for several places domionator-like stuff is used.
Removing a Phi with matching null/not-null values is now more robust; removes a major source if scheduling misalignment.
Big comments about what gets covered by a null check, or not.
Permanent list of fuzzer seeds that used to fail
|
| | |
|
| |
|
|
| |
Allowed only if the replacement does not fall, will be lifted by OR to an TypeInteger
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
FunNodes never GVN.
|
| | |
|
| |
|
|
| |
A lot of tests become asserts; general cleanup in MemOps and PhiOps
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The node recap tables in chapters 4 and 5 classify `Proj` as "Data", but
`ProjNode.isCFG()` has returned true for control projections since chapter 4:
ch4: return _idx==0;
ch5+: return _idx==0 || ctrl() instanceof IfNode;
So `Proj#0` off `Start` is a control node, and from chapter 5 both projections
off an `If` are too -- which is exactly why the dominator walk in
`IfNode.compute()` can step through them.
Change the Type column to "Data / Control" and add a note under each table
pointing at `isCFG()`. Table alignment is unchanged: "Data / Control" is the
same width as "Abstract class".
Docs-only change.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The three comment lines above `AddNode.phiCon(this, ...)` in BoolNode were
copy-pasted from MulNode and never adapted: they use `*` as the operator and
describe the rotated shape `(x * (phi cons)) * con`.
For BoolNode neither is right. The operator is a compare, and in chapters
6-9 `rotate` is hard-coded `false`, so the rotated shape is never matched;
the shapes actually handled are `(phi cons) cmp con` and
`(phi cons) cmp (phi cons)`.
Reword the comment accordingly, and in chapters 6-9 add a line noting why
rotate is off. Chapters 10-25 pass `this instanceof EQ`, so no such claim is
made there.
Comment-only change; no code is touched.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The add canonicalization builds a left-leaning chain of AddNodes -- the
"spine" -- with off-spine operands hanging off each in(2). The comparator
and its comments were spelled "spline" (a curve / mechanical part), which
was already inconsistent with the goal comment in the same method:
// Goal: a left-spine set of adds, with constants on the rhs
Chapters 9 and later already use "spine" / "spine_cmp"; this brings the
earlier chapters in line.
Comment and private-method-name only, no behavior change.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
|
| |/ |
|
| | |
|
| | |
|
| |
|
|
| |
Clarify several TODO's as "Should not reach here"
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit a00bfc643e834498b020eb47ee37da4a17cf6e39
Author: Cliff Click <cliffc@acm.org>
Date: Thu Aug 20 12:27:52 2026 -0700
Add a emacs Simple.el mode
commit b5b399e16038d20ba6928aa329268b229b90e2f7
Author: Cliff Click <cliffc@acm.org>
Date: Thu Aug 20 11:37:17 2026 -0700
Tone down expensive asserts
Put the expensive asserts on a log-scale flag, run them only once every 2^N attempts
|