summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* review comment fixesCliff Click2024-10-215-91/+110
| | | | | TODO for GraphViz Remove dead code
* Remove unneeded cutout testCliff Click2024-10-212-4/+3
|
* Parsing dead field expressionsCliff Click2024-10-219-39/+49
| | | | | | | `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-2111-19/+69
| | | | | | Mostly minor progress. Lost? shl/shr/sar high-type fixes. Turn off some printing crept back in
* fuzzer bug fixesCliff Click2024-10-2115-35/+163
| | | | | | | 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-214-16/+40
|
* Constructors workingCliff Click2024-10-2132-458/+826
| | | | | | | | | 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-2112-138/+279
| | | | | | | | 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-2114-210/+326
| | | | | | `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-2187-7/+12980
|
* Set authenticated remote in workflowThalia Archibald2024-10-141-0/+1
|
* fix lifetime issues with GVN gone wildCliff Click2024-10-143-8/+27
|
* missed commentCliff Click2024-10-131-1/+1
|
* more grammar cleanupCliff Click2024-10-136-167/+115
|
* update grammar filesCliff Click2024-10-134-21/+30
| | | | no idea if these are right, but seem closer to the mark
* Fix a null-check bugCliff Click2024-10-126-5/+59
|
* Turn off all printing during test runsCliff Click2024-10-12100-1169/+1022
| | | | was making 10000 lines of ignored output
* Grant push permission to workflowThalia Archibald2024-10-122-2/+4
|
* Automatically linearize chapter historyThalia Archibald2024-10-112-0/+127
|
* Fix testXmiliaH2024-10-111-1/+1
|
* Initialize int and flt field in NewNodeXmiliaH2024-10-112-3/+32
|
* Update DCE commentsCliff Click2024-10-061-5/+10
|
* add appendix section, dceTamas Hadhazy2024-10-062-139/+171
|
* add example 2Tamas Hadhazy2024-10-061-1/+15
|
* fix typos, better graph positionTamas Hadhazy2024-10-061-2/+3
|
* ch4 extend DCETamas Hadhazy2024-10-063-4/+265
|
* dce initHels152024-10-062-0/+143
|
* fix parsing nested structsRobert Obkircher2024-10-062-0/+16
|
* Clean up del codeCliff Click2024-10-063-13/+7
|
* Update evaluator toString for arraysXmiliaH2024-10-063-48/+148
|
* Fix brainfuck!Cliff Click2024-10-061-1/+1
|
* Force arrays to have a safety checkCliff Click2024-10-064-7/+35
| | | | Improves BrainFuck
* Fix broken dead-diamond peepCliff Click2024-10-061-3/+2
|
* Optimize Loads bypassing trivial unrelated array stores.Cliff Click2024-10-069-111/+161
| | | | | | Fix some graphviz display on array loads & stores Fix bug in GCM, extra code for infinite loops now handled elsewhere. Move BrainFuck out into its own test.
* fix typo ch 11Cliff Click2024-10-061-1/+1
|
* Add Brainfuck testXmiliaH2024-10-061-0/+84
|
* Sharpen null checksCliff Click2024-10-065-8/+127
| | | | | | Look for chances to sharpen checks of all kinds, especially null checks. Not terribly cheap check, probably needs a O(n^2) check Fix a bunch gold test result spelling.
* Switch array syntax againCliff Click2024-10-062-36/+49
| | | | | | `new u8[]?[4]` Always need a `?` since inner arrays can be null. Length given for the outermost array.
* minor spellingCliff Click2024-10-062-3/+3
|
* Fix parsing forward ref arraysCliff Click2024-10-065-43/+85
|
* Fix graph vizCliff Click2024-10-064-4/+13
|
* Unindent code blocks and mention # in introThalia Archibald2024-10-062-37/+38
|
* store-store opt checks offsetCliff Click2024-10-062-0/+15
|
* Update README.mdCliff Click2024-10-061-6/+9
|
* Lots of READMECliff Click2024-10-063-7/+173
|
* Update README.mdCliff Click2024-10-061-67/+12
|
* Sieve of EratosthenesCliff Click2024-10-061-0/+49
| | | | Really badly needs `i++` and a `for` loop
* Tests for negative array size and runtime OOBCliff Click2024-10-064-2/+35
|
* Fix 2 test casesCliff Click2024-10-062-0/+30
|