Commit ee1bc0a
Marek Sedlacek
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 deoptimizations significantly 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 entirely1 parent fb17bc7 commit ee1bc0a
File tree
3 files changed
+436
-903
lines changed- llvm
- lib/Transforms/Utils
- test/Transforms/LoopRotate
3 files changed
+436
-903
lines changed
0 commit comments