summaryrefslogtreecommitdiff
path: root/chapter12/src/main/java
Commit message (Collapse)AuthorAgeFilesLines
* Slides for 2026 REBASEreadmeCliff Click11 days1-1/+1
|
* Chapter renumber, and split ch 17Cliff Click12 days46-1165/+293
| | | | | | 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
* Move debug printing into shared spaceCliff Click2026-10-0133-532/+148
| | | | Same as the graph viewer, moves a lot of code out of all Nodes
* Forward port mem to ch16Cliff Click2026-09-291-0/+1
|
* Bring forward the lazy mem aliasCliff Click2026-09-2914-117/+522
| | | | Integrate with ch15 NewNode creating aliases
* Remove -disablePeepholeCliff Click2026-09-271-8/+0
|
* 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-252-2/+12
|
* Keyboard shortcutsCliff Click2026-09-233-1/+13
| | | | | Fast forward/reverse, pick-a-frame. Shorter type names.
* int fallbacks for int opsCliff Click2026-09-226-15/+33
| | | | all chapters, a little sharper for int ops
* Graph cleanupCliff Click2026-09-222-1/+3
| | | | 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-2224-349/+141
|
* Unify GCM across chaptersCliff Click2026-09-207-73/+87
| | | | | | Remove the _anti field. Remove the isPinned() call. Add a copyEmpty call.
* Unify mixed-return checking and resultsCliff Click2026-09-195-16/+22
| | | | Unify dominator caching.
* Use isDead() instead of checking null inputsCliff Click2026-09-191-2/+2
|
* debug printers no longer call self-optimizing accessorsCliff Click2026-09-191-5/+27
|
* Handle double-negation preserving not-null knowledgeCliff Click2026-09-191-0/+7
|
* 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>
* Backport renaming of `Type::_print()` in Chapter13 to earlier chapters (#244)Hsiang-Ying Fu2026-07-039-17/+17
|
* Move `addUse()` return statement to `keep()` (#243)Hsiang-Ying Fu2026-07-031-6/+3
|
* Cleanup (#162)RobertObkircher2025-02-163-7/+6
| | | | | | | | | * remove unused method lazyFRef * remove unused method copyF(Node, Node) * make TypeMemPtr constants final * make ConstantNode value final
* New evaluator, more Compiler Driver cleanupCliff Click2025-01-151-1/+1
| | | | | | | | | | More compiler driver cleanup: Stop only has Return inputs, never an expr. Drop extra lexical scope. Linker table moves to CodeGen. Replace evaluator with a simpler design; I was unable to get the current design to work with the other changes. Updates to old eval; proper idoms; forced type checks; extensions for Fun, Return, Call, CallEnd. Accessor find next control to execute. Accessor for deciding when its ok to optimize a Function/Return, Call/CallEnd, Stop, ScopeMin (merge) Add local scheduling pass. IRPrinter uses SB instead of StringBuilder Spelling SubF comment
* Fix commentCliff Click2025-01-151-1/+1
|
* remove peephole from ProjNode::idealize that is already handled by computeRobert Obkircher2024-09-161-10/+7
|
* move x-x check up frontCliff Click2024-09-131-3/+4
|
* x-x==0Cliff Click2024-09-132-5/+10
| | | | | | Move x-x==0 to compute. Add x/1 ==> x All chapters
* Fix GCM of CSE storesCliff Click2024-09-124-11/+7
| | | | | Stop CSE of stores. Backports to ch11,12,13,14
* Backport empty statement fixCliff Click2024-09-071-0/+1
| | | | | Split Ch13 tests from Chapter12Test.java Handle forward refs never defined.
* Unify type parsingCliff Click2024-08-051-48/+22
|
* Fuzzer nit picksCliff Click2024-08-052-1/+2
|
* auto-widen on assignCliff Click2024-08-051-5/+5
|
* missing null checkCliff Click2024-08-051-1/+1
|
* A series of minor fuzzer bugsCliff Click2024-08-054-14/+25
|
* Better filter on Load cloneCliff Click2024-08-051-3/+7
|
* Float bugsCliff Click2024-08-0515-22/+76
| | | | | | | | Fix bug infinite loop finding. Fix inf loops before printing graph. Missing float unary negate . Generator makes float exprs Fix missing dep in LCA finding
* Clean up floatsCliff Click2024-08-057-53/+48
| | | | Better pattern in the compiler.
* a little FP cleanupCliff Click2024-08-052-7/+6
|
* more fp bugfixesCliff Click2024-08-052-3/+3
|
* minor FP bugsCliff Click2024-08-055-17/+12
| | | | | Fix bug AddF+0, SubF+0 Fix bug flipping EQ sides.
* Add Float supportCliff Click2024-08-0510-37/+421
| | | | Parsing float constants; float +-*/, auto-widening float expressions.
* #92 chapter 12 start from chapter 11dibyendumajumdar2024-08-0542-0/+5232