llvm-project
b666a28a - [AArch64][SME] Avoid ZA save state changes in loops in MachineSMEABIPass

Commit
18 days ago
[AArch64][SME] Avoid ZA save state changes in loops in MachineSMEABIPass This patch uses the MachineLoopInfo to give blocks within loops a higher weight when choosing the bundle ZA state. MachineLoopInfo does not find loop trip counts, so this uses an arbitrary weight (default 10), which can be configured with the `-aarch64-sme-abi-loop-edge-weight` flag. This makes the MachineSMEABIPass pass more likely to pick a bundle state that matches the loop's entry/exit state, which avoids state changes in the loop (which we assume will happen more than once). This does require some extra analysis, so this is only enabled at -O1 and above. Change-Id: If318c809d2f7cc1fca144fbe424ba2a2ca7fb19f
Author
Committer
Parents
Loading