summaryrefslogtreecommitdiff
path: root/chapter25/src
Commit message (Collapse)AuthorAgeFilesLines
* Graph cleanupCliff Click2026-09-222-2/+4
| | | | Phis stay with regions, stop sinks to bottom,
* Tidy up scope displayCliff Click2026-09-221-1/+1
|
* Add shared graph viewer to all chaptersCliff Click2026-09-2229-386/+26
|
* Graph viewer on ch4 and25Cliff Click2026-09-224-370/+18
|
* Switch over to the new ELK driverCliff Click2026-09-216-74/+170
| | | | Interact between compiler & browser now hooks several nbew places.
* Switch over to the ELK rendererCliff Click2026-09-211-337/+4
|
* Change protocol between compiler and browserCliff Click2026-09-212-20/+34
|
* Define a new graph interaction APICliff Click2026-09-211-0/+74
|
* move the graph visualizer into shared codeCliff Click2026-09-212-50/+122
|
* Final reg-alloc across chapters cleanupCliff Click2026-09-2081-30/+1417
|
* Split self-conflict phis once at a loop headCliff Click2026-09-203-1/+31
| | | | if this works, saves a copy-per-loop. If it fails, next round split as normal
* Popular use grouping for RegAllocCliff Click2026-09-208-66/+210
| | | | Fix arm BL encodings; ADD/SUB with reversed sign.
* Forward-port allocator bug fixes and test support through ch25Cliff Click2026-09-2013-31/+268
| | | | Improved spilling
* Add back copy coaleascing in ch21Cliff Click2026-09-203-3/+34
| | | | Minor arm encoding fix.
* Backport TypeFunPtr normalizationCliff Click2026-09-201-0/+8
|
* Unify GCM across chaptersCliff Click2026-09-2010-186/+117
| | | | | | Remove the _anti field. Remove the isPinned() call. Add a copyEmpty call.
* Unify mixed-return checking and resultsCliff Click2026-09-1915-50/+92
| | | | Unify dominator caching.
* Use isDead() instead of checking null inputsCliff Click2026-09-191-8/+8
|
* Fixed st8 on arm/risc evalsCliff Click2026-09-193-2/+30
|
* debug printers no longer call self-optimizing accessorsCliff Click2026-09-1920-25/+272
|
* Handle r/w <clinit> sectionsCliff Click2026-09-197-32/+144
|
* Tighter recursive-struct testCliff Click2026-09-191-0/+21
|
* Handle double-negation preserving not-null knowledgeCliff Click2026-09-192-2/+68
|
* Backport string escapes and many op-assignCliff Click2026-09-172-7/+113
|
* Fix phi wideningCliff Click2026-09-172-6/+4
|
* up timeoutsCliff Click2026-09-166-5/+8
| | | | add deps on dominance crawls
* Update FuzzerWrap.javaCliff Click2026-09-141-1/+1
|
* Handle dying escapenodeCliff Click2026-09-141-1/+3
|
* Update FuzzerWrap.javaCliff Click2026-09-141-1/+1
|
* Update FuzzerWrap.javaCliff Click2026-09-141-1/+2
|
* Fix parser lifetime bugCliff Click2026-09-142-9/+5
|
* int-only ops force inputs to be int-onlyCliff Click2026-09-1411-19/+52
| | | | | 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
* Refinement on guard removalCliff Click2026-09-143-8/+17
| | | | | Fix keep/unkeep balance. Always fuzz small.
* Do BulkMemPhi splits one by oneCliff Click2026-09-133-113/+41
|
* Resolve numeric needs more OptoCliff Click2026-09-139-16/+32
| | | | | | 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
* A few missing addDepsCliff Click2026-09-1312-75/+160
| | | | | | | 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
* Major bugfix around unscheduable graphsCliff Click2026-09-127-29/+268
| | | | | | | | 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
* More robust on broken inputsCliff Click2026-09-117-7/+37
|
* Fix OR of 0Cliff Click2026-09-111-1/+1
| | | | Allowed only if the replacement does not fall, will be lifted by OR to an TypeInteger
* Removing a phi-of-guard, remove nested guardsCliff Click2026-09-112-3/+9
|
* Update LoadNode.javaCliff Click2026-09-111-2/+1
|
* typoCliff Click2026-09-111-1/+1
|
* Optional reset Types so Fuzzer can work.Cliff Click2026-09-1110-41/+47
| | | | FunNodes never GVN.
* More code coverage cleanupCliff Click2026-09-104-99/+62
|
* Cleanup coverage issuesCliff Click2026-09-1010-254/+158
| | | | A lot of tests become asserts; general cleanup in MemOps and PhiOps
* Merge branch 'main' of https://github.com/SeaOfNodes/SimpleCliff Click2026-09-091-3/+3
|\
| * Fix stale copy-pasted comment on BoolNode's phiCon call (#249)Symious2026-09-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Remove a bunch of dead or unused codeCliff Click2026-09-0912-162/+35
|/
* Fix some lattice bugsCliff Click2026-09-093-22/+37
|
* Add some Type test casesCliff Click2026-08-212-2/+16
|