aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/HashRecognize.cpp
diff options
context:
space:
mode:
authorBenjamin Maxwell <benjamin.maxwell@arm.com>2025-09-05 12:15:28 +0000
committerBenjamin Maxwell <benjamin.maxwell@arm.com>2025-09-12 11:21:41 +0000
commitb666a28a0581e3a1f7838eca5f241d2550c05e4b (patch)
tree41473d9785a63148661490cb95234d4d6f304258 /llvm/lib/Analysis/HashRecognize.cpp
parent77596b78e5664fff8d272599c0420fc9b87e2c2d (diff)
downloadllvm-users/MacDue/sme-loops.zip
llvm-users/MacDue/sme-loops.tar.gz
llvm-users/MacDue/sme-loops.tar.bz2
[AArch64][SME] Avoid ZA save state changes in loops in MachineSMEABIPassusers/MacDue/sme-loops
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
Diffstat (limited to 'llvm/lib/Analysis/HashRecognize.cpp')
0 files changed, 0 insertions, 0 deletions