| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
| | |
|
| |
|
|
|
| |
Fast forward/reverse, pick-a-frame.
Shorter type names.
|
| |
|
|
| |
all chapters, a little sharper for int ops
|
| |
|
|
| |
Phis stay with regions, stop sinks to bottom,
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Remove the _anti field.
Remove the isPinned() call.
Add a copyEmpty call.
|
| |
|
|
| |
Unify dominator caching.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 unused method lazyFRef
* remove unused method copyF(Node, Node)
* make TypeMemPtr constants final
* make ConstantNode value final
|
| | |
|
| |
|
|
| |
Parse as "arg - -2" and not "arg-- 2" which is a syntax error
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
| |
was making 10000 lines of ignored output
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Move x-x==0 to compute.
Add x/1 ==> x
All chapters
|
| |
|
|
|
| |
Stop CSE of stores.
Backports to ch11,12,13,14
|
| |
|
|
|
| |
Split Ch13 tests from Chapter12Test.java
Handle forward refs never defined.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Better pattern in the compiler.
|
| | |
|
| | |
|
| |
|
|
|
| |
Fix bug AddF+0, SubF+0
Fix bug flipping EQ sides.
|
| |
|
|
| |
Parsing float constants; float +-*/, auto-widening float expressions.
|
| | |
|
| |
|