diff options
author | Florian Hahn <flo@fhahn.com> | 2025-01-27 21:20:04 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-27 21:20:04 +0000 |
commit | ad9da92cf6f735747ef04fd56937e1d76819e503 (patch) | |
tree | a4a125b517dbf7c835609b59f84107146ca6fee4 /llvm/lib/Transforms/Utils/LoopUnroll.cpp | |
parent | 804b81d39f2d50743fd2090aed72dad29f5fb388 (diff) | |
download | llvm-ad9da92cf6f735747ef04fd56937e1d76819e503.zip llvm-ad9da92cf6f735747ef04fd56937e1d76819e503.tar.gz llvm-ad9da92cf6f735747ef04fd56937e1d76819e503.tar.bz2 |
[LoopUnroll] Add RuntimeUnrollMultiExit to loop unroll options (NFC) (#124462)
Add an extra knob to RuntimeUnrollMultiExit to let backends control
whether to allow multi-exit unrolling on a per-loop basis.
This gives backends more fine-grained control on deciding if multi-exit
unrolling is profitable for a given loop and uarch. Similar to
4226e0a0c75.
PR: https://github.com/llvm/llvm-project/pull/124462
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnroll.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUnroll.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUnroll.cpp b/llvm/lib/Transforms/Utils/LoopUnroll.cpp index b11d928..af6f9c2 100644 --- a/llvm/lib/Transforms/Utils/LoopUnroll.cpp +++ b/llvm/lib/Transforms/Utils/LoopUnroll.cpp @@ -590,10 +590,11 @@ llvm::UnrollLoop(Loop *L, UnrollLoopOptions ULO, LoopInfo *LI, : isEpilogProfitable(L); if (ULO.Runtime && - !UnrollRuntimeLoopRemainder( - L, ULO.Count, ULO.AllowExpensiveTripCount, EpilogProfitability, - ULO.UnrollRemainder, ULO.ForgetAllSCEV, LI, SE, DT, AC, TTI, - PreserveLCSSA, ULO.SCEVExpansionBudget, RemainderLoop)) { + !UnrollRuntimeLoopRemainder(L, ULO.Count, ULO.AllowExpensiveTripCount, + EpilogProfitability, ULO.UnrollRemainder, + ULO.ForgetAllSCEV, LI, SE, DT, AC, TTI, + PreserveLCSSA, ULO.SCEVExpansionBudget, + ULO.RuntimeUnrollMultiExit, RemainderLoop)) { if (ULO.Force) ULO.Runtime = false; else { |