summaryrefslogtreecommitdiff
path: root/chapter25/src/main
Commit message (Collapse)AuthorAgeFilesLines
* Pick up japanese transaltionpr262-doc-followupsCliff Click8 days1-5/+4
| | | | A bunch of minor README fixes, missing TOC, grammer cleanup
* Small peep to drop simple store-updates out of loopsCliff Click10 days3-1/+49
|
* Require matching types to use algebraic identiesCliff Click10 days8-9/+9
| | | | Fixes some bugs `flit x; return x ^ 0;` should give an error instead of returning the plain `x`
* Chapter renumber, and split ch 17Cliff Click12 days10-70/+125
| | | | | | Renumber chapters 10a, 10b, 11, 12, 13, 14 -> 10, 11, 13, 12, [11,14]. Split ch 17 into a 17a and 17b; shuffle around im/mutable syntax to be consistent, and present it more slowly. THe new immutable syntax is pushed through all later chapters
* Fix bug loop tree depth on inf loopsCliff Click13 days5-49/+65
|
* Restore missing anti-dependence walkCliff Click14 days1-10/+15
|
* Move much of the ISA support to shared codeCliff Click14 days124-1356/+358
| | | | The ISA shared handlers here are required for a proper compiler, but contain only trivial bit-massaging operations.
* Move debug printing into shared spaceCliff Click14 days52-905/+376
| | | | Same as the graph viewer, moves a lot of code out of all Nodes
* Finish forward-port mem ops thru ch25Cliff Click2026-09-309-187/+254
|
* Forward port mem stuff to ch21Cliff Click2026-09-301-2/+14
| | | | Also a minor reg-alloc improvement for BrainFuck, ported up to ch25
* Extend smaller-width C results to full widthCliff Click2026-09-287-0/+112
|
* Backport FunPtrCliff Click2026-09-281-2/+5
| | | | | Helps keep functions alive via ptr only (no calls). A few RISC 5 TFP encoding fixes.
* Support extern C ver direct updatesCliff Click2026-09-2818-54/+159
| | | | FIx minor RISC encodings.
* Check un-init not-null constructor fieldsCliff Click2026-09-288-51/+85
| | | | | | | | Propagate BOT inputs; Arith, Load. CallEnd inlining, the FUnPtr dies early. Load asserts when loading against uninit not-null field. Keep not-nill state for storage class. Clean up Node.peep as constant.
* bug fix widenCliff Click2026-09-266-65/+61
| | | | Failed lattice law tests mixing constants and have wide type ints; or mixing wide ints and constant arrays.
* Extend and backport SubNode peephole (#254)Hsiang-Ying Fu2026-09-251-4/+15
| | | | | | | | | | | | | | | * Extend and backport SubNode peephole * Add tests * Restrict subtraction zero peepholes to integer operands Require resolved integer mode in chapter 25 so zero subtraction preserves floating-point signed zero. Keep nonnumeric operands in the graph for subtraction diagnostics. Add signed-zero coverage from chapter 12 and null-subtraction diagnostics from chapter 22. Confirmed the regressions fail on the original PR. Full Make suites pass in chapters 4-25 (5462 tests), including fresh chapter 25 sys.o compilation. --------- Co-authored-by: Cliff Click <cliffc@acm.org>
* Bunch more animation workCliff Click2026-09-255-5/+21
|
* Bunch better layout optionsCliff Click2026-09-241-1/+3
|
* Keyboard shortcutsCliff Click2026-09-235-5/+33
| | | | | Fast forward/reverse, pick-a-frame. Shorter type names.
* 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-2228-383/+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-205-18/+15
|
* Popular use grouping for RegAllocCliff Click2026-09-204-54/+40
| | | | Fix arm BL encodings; ADD/SUB with reversed sign.
* Forward-port allocator bug fixes and test support through ch25Cliff Click2026-09-204-21/+25
| | | | Improved spilling
* Backport TypeFunPtr normalizationCliff Click2026-09-201-0/+8
|
* Unify GCM across chaptersCliff Click2026-09-209-186/+79
| | | | | | Remove the _anti field. Remove the isPinned() call. Add a copyEmpty call.
* Unify mixed-return checking and resultsCliff Click2026-09-1911-50/+38
| | | | Unify dominator caching.
* Use isDead() instead of checking null inputsCliff Click2026-09-191-8/+8
|
* debug printers no longer call self-optimizing accessorsCliff Click2026-09-1911-24/+40
|
* Handle r/w <clinit> sectionsCliff Click2026-09-194-8/+10
|
* Handle double-negation preserving not-null knowledgeCliff Click2026-09-191-2/+10
|
* Backport string escapes and many op-assignCliff Click2026-09-171-7/+19
|
* Fix phi wideningCliff Click2026-09-171-5/+3
|
* up timeoutsCliff Click2026-09-164-4/+5
| | | | add deps on dominance crawls
* Handle dying escapenodeCliff Click2026-09-141-1/+3
|
* Fix parser lifetime bugCliff Click2026-09-141-9/+4
|
* int-only ops force inputs to be int-onlyCliff Click2026-09-1410-14/+46
| | | | | 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-142-5/+10
| | | | | Fix keep/unkeep balance. Always fuzz small.
* Do BulkMemPhi splits one by oneCliff Click2026-09-131-52/+28
|
* Resolve numeric needs more OptoCliff Click2026-09-138-14/+29
| | | | | | 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-1310-65/+68
| | | | | | | 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-125-29/+242
| | | | | | | | 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-115-6/+24
|