summaryrefslogtreecommitdiff
path: root/chapter15/src/main/java
Commit message (Collapse)AuthorAgeFilesLines
* Fix graph vizCliff Click2024-10-064-4/+13
|
* Unindent code blocks and mention # in introThalia Archibald2024-10-061-1/+2
|
* store-store opt checks offsetCliff Click2024-10-061-0/+1
|
* Lots of READMECliff Click2024-10-062-5/+4
|
* Tests for negative array size and runtime OOBCliff Click2024-10-062-1/+4
|
* Fix 2 test casesCliff Click2024-10-061-0/+8
|
* Address math foldingCliff Click2024-10-062-6/+13
|
* arrays with loads and storesCliff Click2024-10-065-73/+82
| | | | | | | 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-0611-181/+316
| | | | | | | | | | | | | 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-066-62/+54
| | | | 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.
* Adding TypeArrayCliff Click2024-10-063-0/+73
|
* Ch15 initial pushCliff Click2024-10-0656-0/+6287