[llvm-branch-commits] [llvm-branch] r223535 - Merging r223171:
Michael Zolotukhin
mzolotukhin at apple.com
Fri Dec 5 14:31:29 PST 2014
Author: mzolotukhin
Date: Fri Dec 5 16:31:29 2014
New Revision: 223535
URL: http://llvm.org/viewvc/llvm-project?rev=223535&view=rev
Log:
Merging r223171:
PR21302. Vectorize only bottom-tested loops.
rdar://problem/18886083
Added:
llvm/branches/release_35/test/Transforms/LoopVectorize/loop-form.ll
- copied unchanged from r223171, llvm/trunk/test/Transforms/LoopVectorize/loop-form.ll
Modified:
llvm/branches/release_35/ (props changed)
llvm/branches/release_35/lib/Transforms/Vectorize/LoopVectorize.cpp
Propchange: llvm/branches/release_35/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 5 16:31:29 2014
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,213653,213665,213726,213749,213773,213793,213798-213799,213815,213847,213880,213883-213884,213894-213896,213899,213915,213966,213999,214060,214129,214180,214287,214331,214423,214429,214519,214670,214674,214679,215685,215711,215806,216064,216262,216531,216920,217257,218745,221009,221408,221453,223163,223170
+/llvm/trunk:155241,213653,213665,213726,213749,213773,213793,213798-213799,213815,213847,213880,213883-213884,213894-213896,213899,213915,213966,213999,214060,214129,214180,214287,214331,214423,214429,214519,214670,214674,214679,215685,215711,215806,216064,216262,216531,216920,217257,218745,221009,221408,221453,223163,223170-223171
Modified: llvm/branches/release_35/lib/Transforms/Vectorize/LoopVectorize.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_35/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=223535&r1=223534&r2=223535&view=diff
==============================================================================
--- llvm/branches/release_35/lib/Transforms/Vectorize/LoopVectorize.cpp (original)
+++ llvm/branches/release_35/lib/Transforms/Vectorize/LoopVectorize.cpp Fri Dec 5 16:31:29 2014
@@ -3466,6 +3466,15 @@ bool LoopVectorizationLegality::canVecto
return false;
}
+ // We only handle bottom-tested loops, i.e. loop in which the condition is
+ // checked at the end of each iteration. With that we can assume that all
+ // instructions in the loop are executed the same number of times.
+ if (TheLoop->getExitingBlock() != TheLoop->getLoopLatch()) {
+ emitAnalysis(
+ Report() << "loop control flow is not understood by vectorizer");
+ return false;
+ }
+
// We need to have a loop header.
DEBUG(dbgs() << "LV: Found a loop: " <<
TheLoop->getHeader()->getName() << '\n');
More information about the llvm-branch-commits
mailing list