Fix a debug info dependency in jump threading.
authorDale Johannesen <dalej@apple.com>
Tue, 17 Mar 2009 00:38:24 +0000 (00:38 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 17 Mar 2009 00:38:24 +0000 (00:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67064 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/JumpThreading.cpp

index f96fc208ae1901f64fb75dc31a1e3e45499b66a3..69d17993b53f65ceeb91e370a10c777af0b30102 100644 (file)
@@ -432,10 +432,13 @@ bool JumpThreading::ProcessSwitchOnDuplicateCond(BasicBlock *PredBB,
   
   // If DESTBB *just* contains the switch, then we can forward edges from PREDBB
   // directly to their destination.  This does not introduce *any* code size
-  // growth.
+  // growth.  Skip debug info first.
+  BasicBlock::iterator BBI = DestBB->begin();
+  while (isa<DbgInfoIntrinsic>(BBI))
+    BBI++;
   
   // FIXME: Thread if it just contains a PHI.
-  if (isa<SwitchInst>(DestBB->begin())) {
+  if (isa<SwitchInst>(BBI)) {
     bool MadeChange = false;
     // Ignore the default edge for now.
     for (unsigned i = 1, e = DestSI->getNumSuccessors(); i != e; ++i) {