| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Constructors working | Cliff Click | 2024-10-21 | 32 | -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. | |||||
| * | Constructors | Cliff Click | 2024-10-21 | 12 | -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 defs | Cliff Click | 2024-10-21 | 14 | -210/+326 | |
| | | | | | | | `int x,y;` works `int !x = 3;` works Structs defs are statements, require a trailing `;` | |||||
| * | Add a first test to code to | Cliff Click | 2024-10-21 | 1 | -0/+39 | |
| | | ||||||
| * | First push | Cliff Click | 2024-10-21 | 87 | -7/+12980 | |
| | | ||||||
| * | Set authenticated remote in workflow | Thalia Archibald | 2024-10-14 | 1 | -0/+1 | |
| | | ||||||
| * | fix lifetime issues with GVN gone wild | Cliff Click | 2024-10-14 | 3 | -8/+27 | |
| | | ||||||
| * | missed comment | Cliff Click | 2024-10-13 | 1 | -1/+1 | |
| | | ||||||
| * | more grammar cleanup | Cliff Click | 2024-10-13 | 6 | -167/+115 | |
| | | ||||||
| * | update grammar files | Cliff Click | 2024-10-13 | 4 | -21/+30 | |
| | | | | | no idea if these are right, but seem closer to the mark | |||||
| * | Fix a null-check bug | Cliff Click | 2024-10-12 | 6 | -5/+59 | |
| | | ||||||
| * | Turn off all printing during test runs | Cliff Click | 2024-10-12 | 100 | -1169/+1022 | |
| | | | | | was making 10000 lines of ignored output | |||||
| * | Grant push permission to workflow | Thalia Archibald | 2024-10-12 | 2 | -2/+4 | |
| | | ||||||
| * | Automatically linearize chapter history | Thalia Archibald | 2024-10-11 | 2 | -0/+127 | |
| | | ||||||
| * | Fix test | XmiliaH | 2024-10-11 | 1 | -1/+1 | |
| | | ||||||
| * | Initialize int and flt field in NewNode | XmiliaH | 2024-10-11 | 2 | -3/+32 | |
| | | ||||||
| * | Update DCE comments | Cliff Click | 2024-10-06 | 1 | -5/+10 | |
| | | ||||||
| * | add appendix section, dce | Tamas Hadhazy | 2024-10-06 | 2 | -139/+171 | |
| | | ||||||
| * | add example 2 | Tamas Hadhazy | 2024-10-06 | 1 | -1/+15 | |
| | | ||||||
| * | fix typos, better graph position | Tamas Hadhazy | 2024-10-06 | 1 | -2/+3 | |
| | | ||||||
| * | ch4 extend DCE | Tamas Hadhazy | 2024-10-06 | 3 | -4/+265 | |
| | | ||||||
| * | dce init | Hels15 | 2024-10-06 | 2 | -0/+143 | |
| | | ||||||
| * | fix parsing nested structs | Robert Obkircher | 2024-10-06 | 2 | -0/+16 | |
| | | ||||||
| * | Clean up del code | Cliff Click | 2024-10-06 | 3 | -13/+7 | |
| | | ||||||
| * | Update evaluator toString for arrays | XmiliaH | 2024-10-06 | 3 | -48/+148 | |
| | | ||||||
| * | Fix brainfuck! | Cliff Click | 2024-10-06 | 1 | -1/+1 | |
| | | ||||||
| * | Force arrays to have a safety check | Cliff Click | 2024-10-06 | 4 | -7/+35 | |
| | | | | | Improves BrainFuck | |||||
| * | Fix broken dead-diamond peep | Cliff Click | 2024-10-06 | 1 | -3/+2 | |
| | | ||||||
| * | Optimize Loads bypassing trivial unrelated array stores. | Cliff Click | 2024-10-06 | 9 | -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 11 | Cliff Click | 2024-10-06 | 1 | -1/+1 | |
| | | ||||||
| * | Add Brainfuck test | XmiliaH | 2024-10-06 | 1 | -0/+84 | |
| | | ||||||
| * | Sharpen null checks | Cliff Click | 2024-10-06 | 5 | -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 again | Cliff Click | 2024-10-06 | 2 | -36/+49 | |
| | | | | | | | `new u8[]?[4]` Always need a `?` since inner arrays can be null. Length given for the outermost array. | |||||
| * | minor spelling | Cliff Click | 2024-10-06 | 2 | -3/+3 | |
| | | ||||||
| * | Fix parsing forward ref arrays | Cliff Click | 2024-10-06 | 5 | -43/+85 | |
| | | ||||||
| * | Fix graph viz | Cliff Click | 2024-10-06 | 4 | -4/+13 | |
| | | ||||||
| * | Unindent code blocks and mention # in intro | Thalia Archibald | 2024-10-06 | 2 | -37/+38 | |
| | | ||||||
| * | store-store opt checks offset | Cliff Click | 2024-10-06 | 2 | -0/+15 | |
| | | ||||||
| * | Update README.md | Cliff Click | 2024-10-06 | 1 | -6/+9 | |
| | | ||||||
| * | Lots of README | Cliff Click | 2024-10-06 | 3 | -7/+173 | |
| | | ||||||
| * | Update README.md | Cliff Click | 2024-10-06 | 1 | -67/+12 | |
| | | ||||||
| * | Sieve of Eratosthenes | Cliff Click | 2024-10-06 | 1 | -0/+49 | |
| | | | | | Really badly needs `i++` and a `for` loop | |||||
| * | Tests for negative array size and runtime OOB | Cliff Click | 2024-10-06 | 4 | -2/+35 | |
| | | ||||||
| * | Fix 2 test cases | Cliff Click | 2024-10-06 | 2 | -0/+30 | |
| | | ||||||
| * | Address math folding | Cliff Click | 2024-10-06 | 3 | -7/+15 | |
| | | ||||||
| * | arrays with loads and stores | Cliff Click | 2024-10-06 | 8 | -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 math | Cliff Click | 2024-10-06 | 19 | -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 layouts | Cliff Click | 2024-10-06 | 6 | -59/+62 | |
| | | ||||||
| * | sub same moves to compute | Cliff Click | 2024-10-06 | 1 | -4/+4 | |
| | | ||||||
| * | Scope renames _scopes and _types as _idxs and _decls. | Cliff Click | 2024-10-06 | 7 | -74/+66 | |
| | | | | | Drop isCFG and use instanceof instead | |||||
