summaryrefslogtreecommitdiff
path: root/chapter16/src/test/java
Commit message (Collapse)AuthorAgeFilesLines
* Minor README comment changesCliff Click2024-10-211-0/+3
|
* ch 16 READMECliff Click2024-10-211-0/+20
|
* review comment fixesCliff Click2024-10-211-1/+1
| | | | | TODO for GraphViz Remove dead code
* Remove unneeded cutout testCliff Click2024-10-211-3/+3
|
* Parsing dead field expressionsCliff Click2024-10-211-6/+5
| | | | | | | `null` is a constant; "if(null)" will collapse. Phi w/mem keep mem even when dead. Load handles dead mem. static class Var
* Bunch of fuzzer fixesCliff Click2024-10-214-4/+43
| | | | | | Mostly minor progress. Lost? shl/shr/sar high-type fixes. Turn off some printing crept back in
* fuzzer bug fixesCliff Click2024-10-215-21/+136
| | | | | | | ignore temps made during constructing and/or/xor honor TypeInteger.TOP; TypeInteger.nonZero works with zero NotNode keeps precision. Scope lazy phis of narrow ints auto-widen
* Missing init-store-after-new optCliff Click2024-10-211-1/+2
|
* Constructors workingCliff Click2024-10-2115-93/+111
| | | | | | | | | Replace ArrayList with Ary, because no "setLength" in ArrayList and "size" is private so I cannot even override. Replace Utils.find with Ary.find. Split Scope into Scope and ScopeMin (bad name). Memory edges go in ScopeMin, and it is pointed at from Scope.mem(). This lets us lazily add memory edges without interleaving them through other non-memory aliases, which was breaking all sorts of parser invariants. ScopeMin aliases are added lazily. Scope & ScopeMin now use an array-of-Var structs instead of a struct-of-arrays.
* ConstructorsCliff Click2024-10-216-38/+64
| | | | | | | | Missing arrays yet. Allow constructor syntax in 2 parts; the type description and at the New. must-init fields (final and not-null) have to be initialized in at least one of the two places; finals must be initialized exactly once. Any code is allowed in the constructors.
* final fields and multi defsCliff Click2024-10-215-61/+121
| | | | | | `int x,y;` works `int !x = 3;` works Structs defs are statements, require a trailing `;`
* Add a first test to code toCliff Click2024-10-211-0/+39
|
* First pushCliff Click2024-10-2125-0/+6013