Do not insert anything after terminator.
authorDevang Patel <dpatel@apple.com>
Thu, 26 May 2011 23:16:48 +0000 (23:16 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 26 May 2011 23:16:48 +0000 (23:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132164 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/CodeGenPrepare.cpp

index da6bf316f31f30844965b014292c54d77d87706e..dbf0e08607c3bdf7bd030818c48b10d52e1dc8ba 100644 (file)
@@ -554,7 +554,8 @@ bool CodeGenPrepare::OptimizeCallInst(CallInst *CI) {
   // find a node corresponding to the value.
   if (DbgValueInst *DVI = dyn_cast<DbgValueInst>(CI))
     if (Instruction *VI = dyn_cast_or_null<Instruction>(DVI->getValue()))
-      if (DVI->getParent() != VI->getParent() || DT->dominates(DVI, VI)) {
+      if (!VI->isTerminator() && 
+          DVI->getParent() != VI->getParent() || DT->dominates(DVI, VI)) {
         DEBUG(dbgs() << "Moving Debug Value before :\n" << *DVI << ' ' << *VI);
         DVI->removeFromParent();
         if (isa<PHINode>(VI))