diff options
author | Marek Sedláček <mar3k.sedlacek@gmail.com> | 2025-10-08 17:06:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-08 15:06:32 +0000 |
commit | 6ccb487392e6c6d16bc1f302d5215d5b87da0937 (patch) | |
tree | afc65d8cf268122bd8012d6b73ee0ed4f089f8c8 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | caacfffc71931797c85d8176ba7eb78195d4072f (diff) | |
download | llvm-6ccb487392e6c6d16bc1f302d5215d5b87da0937.zip llvm-6ccb487392e6c6d16bc1f302d5215d5b87da0937.tar.gz llvm-6ccb487392e6c6d16bc1f302d5215d5b87da0937.tar.bz2 |
[LoopRotate] Remove canRotateDeoptimizingLatchExit and multi-rotate (#162482)
This patch removes canRotateDeoptimizingLatchExit check from loop roate
and connected multi rotation option for loop roate (-loop-rotate-multi
option).
The heuristic in canRotateDeoptimizingLatchExit returns true if any of
the loop exits are non-deoptimizing. This means if the loop has multiple
deopt exits, then without multi-rotate, we may still end up having deopt
exit at the latch. This multi-rotate option is introduced but it is off
by default.
We have not seen any improvements downstream as well, where
we have frequent number of deoptimizations in IR. Since the original
heuristic without the multi-rotate effectively ends up being "rotate
under some conditions", but the loop may still not be in the form we
want, we should remove the heuristic and multi-rotate framework entirely
Note that the diff is big, but it's just removal of while loop and
indentation change.
After this patch I would like to continue here and propose adding a
computability check for exit count, but that will be in a separate PR.
Requests for review: @annamthomas @fhahn @davemgreen
Co-authored-by: Marek Sedlacek <msedlacek@azul.com>
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions