Jonas Schievink
5728834448
Fix rebase fallout
2020-09-18 21:23:01 +02:00
Jonas Schievink
484db5b08a
Properly inherit conflicts when merging locals
2020-09-18 21:23:01 +02:00
Jonas Schievink
934634eacc
More logging
2020-09-18 21:23:01 +02:00
Jonas Schievink
88538adf9a
Record intra-statement/terminator conflicts
...
Some MIR statements and terminators have an (undocumented...) invariant
that some of their input and outputs must not overlap. This records
conflicts between locals used in these positions.
2020-09-18 21:23:01 +02:00
Jonas Schievink
ddd6930b54
perf: bail out when there's >500 candidate locals
2020-09-18 21:23:01 +02:00
Jonas Schievink
ab26fb140c
perf: only calculate conflicts for candidates
2020-09-18 21:23:01 +02:00
Jonas Schievink
402f863d8a
perf: walk liveness backwards in Conflicts::build
2020-09-18 21:23:00 +02:00
Jonas Schievink
812d4bbc8d
Fix dataflow assert errors
2020-09-18 21:23:00 +02:00
Jonas Schievink
78ff69ba10
Implement a destination propagation pass
2020-09-18 21:23:00 +02:00