diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 24bb63bb60a..1c62559739f 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -4008,7 +4008,7 @@ bool SimplifyCFGOpt::SimplifyUncondBranch(BranchInst *BI, IRBuilder<> &Builder){ return true; // If the Terminator is the only non-phi instruction, simplify the block. - BasicBlock::iterator I = BB->getFirstNonPHIOrDbgOrLifetime(); + BasicBlock::iterator I = BB->getFirstNonPHIOrDbg(); if (I->isTerminator() && BB != &BB->getParent()->getEntryBlock() && TryToSimplifyUncondBranchFromEmptyBlock(BB)) return true; diff --git a/test/Transforms/SimplifyCFG/lifetime.ll b/test/Transforms/SimplifyCFG/lifetime.ll index b7942217253..7c66be52950 100644 --- a/test/Transforms/SimplifyCFG/lifetime.ll +++ b/test/Transforms/SimplifyCFG/lifetime.ll @@ -1,11 +1,11 @@ ; RUN: opt < %s -simplifycfg -S | FileCheck %s -; Test that a lifetime intrinsic doesn't prevent us from simplifying this. +; Test that a lifetime intrinsic isn't removed because that would change semantics ; CHECK: foo ; CHECK: entry: -; CHECK-NOT: bb0: -; CHECK-NOT: bb1: +; CHECK: bb0: +; CHECK: bb1: ; CHECK: ret define void @foo(i1 %x) { entry: