aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ReachingDefAnalysis.cpp
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2020-01-23 15:55:32 +0300
committerFedor Sergeev <fedor.sergeev@azul.com>2020-01-23 15:56:24 +0300
commit2f6987ba61cc31c16c64f511e5cbc76b52dc67b3 (patch)
treeb639b27517ba7a733099486445969f030031874d /llvm/lib/CodeGen/ReachingDefAnalysis.cpp
parent279fa8e0064e3d0bd1646b8efdb94045585dd924 (diff)
downloadllvm-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