diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 24bb63bb60a5f8108bb1006db1715dfea44a7214..1c62559739f9bd34c7e5b73fe36510cdd3f561ce 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/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/llvm/test/Transforms/SimplifyCFG/lifetime.ll b/llvm/test/Transforms/SimplifyCFG/lifetime.ll index b79422172530ed65afe88585fce53f8bf01827f4..7c66be5295007daa64cae3715a31fe3514d3b8fd 100644 --- a/llvm/test/Transforms/SimplifyCFG/lifetime.ll +++ b/llvm/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: