diff options
| author | Cliff Click <cliffc@acm.org> | 2024-09-23 14:42:23 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-06 08:56:22 -0700 |
| commit | a65faba96e78f1d366abb9fafbdefc3e1d4927c9 (patch) | |
| tree | 7e031b63ed0d30de03baf870649fc55298f67eb5 /chapter09/src/main/java | |
| parent | ce8b6e6a13fc6a60640b3fe84fdf20d8aa94cc3e (diff) | |
| download | Simple-a65faba96e78f1d366abb9fafbdefc3e1d4927c9.tar.gz Simple-a65faba96e78f1d366abb9fafbdefc3e1d4927c9.zip | |
Redo address math
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.
Diffstat (limited to 'chapter09/src/main/java')
0 files changed, 0 insertions, 0 deletions
