diff options
author | Justin Bogner <mail@justinbogner.com> | 2013-09-27 15:30:25 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2013-09-27 15:30:25 +0000 |
commit | ca9bd8fac15cff2cceba47d97a114cd6db7b44e3 (patch) | |
tree | 82c04e0f3423ce28611a555aba7787d97022da04 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | |
parent | 067817ee05b0faebb301f8201ad327af3c0f5333 (diff) | |
download | bcm5719-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.cpp | 2 |
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; |