diff options
author | Fedor Sergeev <fedor.sergeev@azul.com> | 2020-01-23 15:55:32 +0300 |
---|---|---|
committer | Fedor Sergeev <fedor.sergeev@azul.com> | 2020-01-23 15:56:24 +0300 |
commit | 2f6987ba61cc31c16c64f511e5cbc76b52dc67b3 (patch) | |
tree | b639b27517ba7a733099486445969f030031874d /llvm/lib/CodeGen/ReachingDefAnalysis.cpp | |
parent | 279fa8e0064e3d0bd1646b8efdb94045585dd924 (diff) | |
download | llvm-2f6987ba61cc31c16c64f511e5cbc76b52dc67b3.zip llvm-2f6987ba61cc31c16c64f511e5cbc76b52dc67b3.tar.gz llvm-2f6987ba61cc31c16c64f511e5cbc76b52dc67b3.tar.bz2 |
[LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found
In case of loops with multiple exit where all-but-one exit are deoptimizing
it might happen that the first rotation will end up with latch having a deoptimizing
exit. This makes the loop unsuitable for trip-count analysis (say, getLoopEstimatedTripCount)
as well as for loop transformations that know how to handle multple deoptimizing exits.
It pretty much means that canonical form in multple-deoptimizing-exits case should be
with non-deoptimizing exit at latch.
Teach loop-rotation to reach this canonical form by repeating rotation.
-loop-rotate-multi option introduced to control this behavior, currently disabled by default.
Reviewers: skatkov, asbirlea, reames, fhahn
Reviewed By: skatkov
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73058
Diffstat (limited to 'llvm/lib/CodeGen/ReachingDefAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions