summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Address math foldingCliff Click2024-10-063-7/+15
|
* arrays with loads and storesCliff Click2024-10-068-79/+150
| | | | | | | No range-checking yet. Length is "ary#" TypeStruct with special "[]" field is an array Fix some eager push-load-thru phi
* Redo address mathCliff Click2024-10-0619-227/+381
| | | | | | | | | | | | | Loads and Stores take a field offset instead of a field name; the name remains for debugging. NewNode takes a size and produces a pre-initialized chunk of memory with updated memory aliases for all fields. Field picks up an alias; TypeStruct loses one. TypeArray is a subclass of TypeStruct for now. TypeMem tracks a conservative value for its alias. TypeStruct computes field layouts. Now ProjNodes can have non-CFG input 0 - NewNode does, but so would a combined ModRem op from a divide, or a CAS producing both a success boolean and the old value. This impacts all the schedulers (IRPrinter, GCM, Scheduler) which previously believe slot 0 only held control nows, or could be modified to a control now. Aliases are now computed in the Parser instead of Start; Parser gets new Field math.
* Type picks up a log_size for doing struct layoutsCliff Click2024-10-066-59/+62
|
* sub same moves to computeCliff Click2024-10-061-4/+4
|
* Scope renames _scopes and _types as _idxs and _decls.Cliff Click2024-10-067-74/+66
| | | | Drop isCFG and use instanceof instead
* Div-by-1 peepCliff Click2024-10-061-1/+6
|
* Fix IRPrinterCliff Click2024-10-061-21/+40
| | | | IRPrint was using a HashTable with Node keys, which calls hashCode, which sets the flag claiming the Node is locked in the GVN table. If this is not true, you later trigger the locked-but-not-in-table assert. Which means calling toString from stopping in the debugger can trigger a later assert.