| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | 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 | |||||
| * | Div-by-1 peep | Cliff Click | 2024-10-06 | 1 | -1/+6 | |
| | | ||||||
| * | Fix IRPrinter | Cliff Click | 2024-10-06 | 1 | -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. | |||||
| * | Adding TypeArray | Cliff Click | 2024-10-06 | 4 | -1/+75 | |
| | | ||||||
| * | Ch15 initial push | Cliff Click | 2024-10-06 | 87 | -6/+12148 | |
| | | ||||||
| * | Cleanup on ch5 README | Cliff Click | 2024-09-29 | 1 | -100/+116 | |
| | | ||||||
| * | A bunch of rewording to get better flow | Cliff Click | 2024-09-29 | 1 | -89/+92 | |
| | | | | | Fix a bunch of indent bugs. | |||||
| * | c will die when the scope dies. | Tamas Hadhazy | 2024-09-29 | 1 | -1/+3 | |
| | | ||||||
| * | add graph and explanation | Tamas Hadhazy | 2024-09-29 | 2 | -4/+246 | |
| | | ||||||
| * | add missing ToString | Tamas Hadhazy | 2024-09-26 | 1 | -0/+4 | |
| | | ||||||
| * | update readme | Hels15 | 2024-09-25 | 1 | -15/+17 | |
| | | ||||||
| * | replace constant fold version to arg | Hels15 | 2024-09-25 | 1 | -6/+6 | |
| | | ||||||
| * | extend opt and projnode docs | Hels15 | 2024-09-25 | 3 | -1/+286 | |
| | | ||||||
| * | extend chapter 2 peephole section (#118) | Tamás Hadházy | 2024-09-21 | 4 | -1/+351 | |
| | | | | | | | | * extend peephole section * fix bad indentatitons * Update README.md | |||||
| * | remove peephole from ProjNode::idealize that is already handled by compute | Robert Obkircher | 2024-09-16 | 9 | -74/+43 | |
| | | ||||||
| * | Folding loads before phis needs more work (#116) | Cliff Click | 2024-09-15 | 13 | -37/+173 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Folding loads before phis needs more work Have to check load alias & offset/field match. Could work for stores as well, will need to check more inputs * Preserve SAR/SHL sharpness with variant shifts * phi-node cloning honors unrelated argument types * bool can never do phiCon * dont fold shifts outside the range 0-63 * Now allowed to fold Loads in Phi Because honors glb() of inputs * Correct shr of mixed sign * yank load merge again needs an anti-dep check * Stop phi-merge if it loses precision * wrap bug | |||||
| * | sigh | Cliff Click | 2024-09-15 | 1 | -1/+1 | |
| | | ||||||
| * | fix Minus wrapping MIN_LONG | Cliff Click | 2024-09-15 | 2 | -2/+20 | |
| | | ||||||
