teak-llvm/llvm/unittests/Transforms/Utils
Fedor Sergeev 2f6987ba61 [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
2020-01-23 15:56:24 +03:00
..
ASanStackFrameLayoutTest.cpp
BasicBlockUtilsTest.cpp
CloningTest.cpp reland "[DebugInfo] Support to emit debugInfo for extern variables" 2019-12-22 18:28:50 -08:00
CMakeLists.txt [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found 2020-01-23 15:56:24 +03:00
CodeExtractorTest.cpp [CodeExtractor] Factor out and reuse shrinkwrap analysis 2019-10-08 17:17:51 +00:00
CodeMoverUtilsTest.cpp Revert "[SCEV] Move ScalarEvolutionExpander.cpp to Transforms/Utils (NFC)." 2020-01-04 18:44:38 +00:00
FunctionComparatorTest.cpp
IntegerDivisionTest.cpp
LocalTest.cpp [SimplifyCFG] Handle AssumptionCache being null. 2019-12-07 16:54:49 +00:00
LoopRotationUtilsTest.cpp [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found 2020-01-23 15:56:24 +03:00
LoopUtilsTest.cpp [LoopUtils] Updated deleteDeadLoop() to handle loop nest. 2019-12-18 15:59:45 +00:00
SizeOptsTest.cpp [PGO][PGSO] Distinguish queries from unit tests and explicitly enable for the existing IR passes only. NFC. 2019-12-04 09:35:50 -08:00
SSAUpdaterBulkTest.cpp
UnrollLoopTest.cpp
ValueMapperTest.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
VFABIUtils.cpp [VFABI] Remove unused variables in testcase, fix buildbot 2019-11-12 08:28:12 +01:00