summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2013-09-27 15:30:25 +0000
committerJustin Bogner <mail@justinbogner.com>2013-09-27 15:30:25 +0000
commitca9bd8fac15cff2cceba47d97a114cd6db7b44e3 (patch)
tree82c04e0f3423ce28611a555aba7787d97022da04 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent067817ee05b0faebb301f8201ad327af3c0f5333 (diff)
downloadbcm5719-llvm-ca9bd8fac15cff2cceba47d97a114cd6db7b44e3.tar.gz
bcm5719-llvm-ca9bd8fac15cff2cceba47d97a114cd6db7b44e3.zip
Transforms: Use getFirstNonPHI to set the insertion point for PHIs
We were previously using getFirstInsertionPt to insert PHI instructions when vectorizing, but getFirstInsertionPt also skips past landingpads, causing this to generate invalid IR. We can avoid this issue by using getFirstNonPHI instead. llvm-svn: 191526
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index acb15603af4..7649fffa9ed 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -1201,7 +1201,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
switch (Opcode) {
case Instruction::PHI: {
PHINode *PH = dyn_cast<PHINode>(VL0);
- Builder.SetInsertPoint(PH->getParent()->getFirstInsertionPt());
+ Builder.SetInsertPoint(PH->getParent()->getFirstNonPHI());
Builder.SetCurrentDebugLocation(PH->getDebugLoc());
PHINode *NewPhi = Builder.CreatePHI(VecTy, PH->getNumIncomingValues());
E->VectorizedValue = NewPhi;
OpenPOWER on IntegriCloud