Change shrink-wrapping to try a priority list of save
positions, instead of trying the best one and giving up if it doesn't
work. This also increases coverage.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
To reiterate:
- This diff changes the way save location is handled: instead of computing and keeping a single place for a given register, store the list of potential locations.
- This is done in order to work around the issue when the single best location might be discarded down the stream, cancelling the move of a spill-fill for a given register.
- In order to support iterating over save locations, computeDomOrder needs to be updated multiple times.
As a side effect of this change, we also fix an issue where the critical edge is split for a given reg placement, but the placement is canceled.