llvm/lib/Transforms
Max Kazantsev db6b21de41 [LoopPeeling] Fix condition for phi-eliminating peeling
When peeling loops basing on phis becoming invariants, we make a wrong loop size check.
UP.Threshold should be compared against the total numbers of instructions after the transformation,
which is equal to 2 * LoopSize in case of peeling one iteration.
We should also check that the maximum allowed number of peeled iterations is not zero.

Reviewers: sanjoy, anna, reames, mkuper

Reviewed By: mkuper

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31753


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300441 91177308-0d34-0410-b5e6-96231b3b80d8
2017-04-17 05:38:28 +00:00
..
Coroutines [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
InstCombine [InstCombine] Simplify 1/X for vectors. 2017-04-17 03:41:47 +00:00
Instrumentation [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
IPO [IR] Make paramHasAttr to use arg indices instead of attr indices 2017-04-14 20:19:02 +00:00
ObjCARC [ObjCArc] Do not dereference an invalidated iterator. 2017-04-05 03:44:09 +00:00
Scalar [IR] Make paramHasAttr to use arg indices instead of attr indices 2017-04-14 20:19:02 +00:00
Utils [LoopPeeling] Fix condition for phi-eliminating peeling 2017-04-17 05:38:28 +00:00
Vectorize [LV] Remove implicit single basic block assumption 2017-04-14 07:30:23 +00:00
CMakeLists.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00
LLVMBuild.txt [coroutines] Part 3 of N: Adding Boilerplate for Coroutine Passes 2016-07-28 21:04:31 +00:00