This patch changes the saved IRBuilder insert point from BasicBlock::iterator to...
authorNadav Rotem <nrotem@apple.com>
Mon, 8 Jul 2013 23:31:13 +0000 (23:31 +0000)
committerNadav Rotem <nrotem@apple.com>
Mon, 8 Jul 2013 23:31:13 +0000 (23:31 +0000)
Commit 185883 fixes a bug in the IRBuilder that should fix the ASan bot. AssertingVH can help in exposing some RAUW problems.

Thanks Ben and Alexey!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185886 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/SLPVectorizer.cpp

index 136eaffb6031d9fdbb4a259a6b7f0fbad3414c0d..cfb5be77a4a31f58c845a6f2f4cd47bde0482dac 100644 (file)
@@ -66,7 +66,7 @@ private:
   BuilderLocGuard(const BuilderLocGuard &);
   BuilderLocGuard &operator=(const BuilderLocGuard &);
   IRBuilder<> &Builder;
-  BasicBlock::iterator Loc;
+  AssertingVH<Instruction> Loc;
 };
 
 /// A helper class for numbering instructions in multible blocks.
@@ -1217,6 +1217,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
 }
 
 void BoUpSLP::vectorizeTree() {
+  Builder.SetInsertPoint(&F->getEntryBlock());
   vectorizeTree(&VectorizableTree[0]);
 
   // For each vectorized value: