[PATCH] D32040: [LV] Remove implicit single basic block assumption

Gil Rapaport via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 14 00:43:11 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL300310: [LV] Remove implicit single basic block assumption (authored by gilr).

Changed prior to commit:
  https://reviews.llvm.org/D32040?vs=95275&id=95277#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D32040

Files:
  llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp


Index: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
===================================================================
--- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -4200,7 +4200,7 @@
     cast<PHINode>(VecRdxPhi[part])
       ->addIncoming(StartVal, LoopVectorPreHeader);
     cast<PHINode>(VecRdxPhi[part])
-      ->addIncoming(Val[part], LoopVectorBody);
+      ->addIncoming(Val[part], LI->getLoopFor(LoopVectorBody)->getLoopLatch());
   }
 
   // Before each round, move the insertion point right between
@@ -5059,11 +5059,10 @@
   assert(DT->properlyDominates(LoopBypassBlocks.front(), LoopExitBlock) &&
          "Entry does not dominate exit.");
 
-  // We don't predicate stores by this point, so the vector body should be a
-  // single loop.
-  DT->addNewBlock(LoopVectorBody, LoopVectorPreHeader);
-
-  DT->addNewBlock(LoopMiddleBlock, LoopVectorBody);
+  DT->addNewBlock(LI->getLoopFor(LoopVectorBody)->getHeader(),
+                  LoopVectorPreHeader);
+  DT->addNewBlock(LoopMiddleBlock,
+                  LI->getLoopFor(LoopVectorBody)->getLoopLatch());
   DT->addNewBlock(LoopScalarPreHeader, LoopBypassBlocks[0]);
   DT->changeImmediateDominator(LoopScalarBody, LoopScalarPreHeader);
   DT->changeImmediateDominator(LoopExitBlock, LoopBypassBlocks[0]);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32040.95277.patch
Type: text/x-patch
Size: 1358 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170414/b9320a7a/attachment.bin>


More information about the llvm-commits mailing list