Skip interleaved debug info when fast-forwarding through
authorDale Johannesen <dalej@apple.com>
Wed, 11 Mar 2009 22:19:43 +0000 (22:19 +0000)
committerDale Johannesen <dalej@apple.com>
Wed, 11 Mar 2009 22:19:43 +0000 (22:19 +0000)
allocations.  Apparently the assumption is there is an
instruction (terminator?) following the allocation so I
am allowing the same assumption.

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

lib/Transforms/Scalar/InstructionCombining.cpp

index 2bf87c0045d8dc81212810338a2fb00663823b1e..b2a6864194075dc74e5a5b4f0dfab9b7a9d7f0ed 100644 (file)
@@ -10954,10 +10954,10 @@ Instruction *InstCombiner::visitAllocationInst(AllocationInst &AI) {
       InsertNewInstBefore(New, AI);
 
       // Scan to the end of the allocation instructions, to skip over a block of
-      // allocas if possible...
+      // allocas if possible...also skip interleaved debug info
       //
       BasicBlock::iterator It = New;
-      while (isa<AllocationInst>(*It)) ++It;
+      while (isa<AllocationInst>(*It) || isa<DbgInfoIntrinsic>(*It)) ++It;
 
       // Now that I is pointing to the first non-allocation-inst in the block,
       // insert our getelementptr instruction...