From 6f84a5feee5c7322a5145992bd4704225987909c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 10 Nov 2009 21:45:09 +0000 Subject: [PATCH] improve comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86723 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/JumpThreading.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/Scalar/JumpThreading.cpp b/lib/Transforms/Scalar/JumpThreading.cpp index 1d89399e741..2d8309d5202 100644 --- a/lib/Transforms/Scalar/JumpThreading.cpp +++ b/lib/Transforms/Scalar/JumpThreading.cpp @@ -142,11 +142,14 @@ bool JumpThreading::runOnFunction(Function &F) { ++BBI; // If the terminator is the only non-phi instruction, try to nuke it. if (BBI->isTerminator()) { - bool Erased = LoopHeaders.erase(BB); + // Since TryToSimplifyUncondBranchFromEmptyBlock may delete the + // block, we have to make sure it isn't in the LoopHeaders set. We + // reinsert afterward in the rare case when the block isn't deleted. + bool ErasedFromLoopHeaders = LoopHeaders.erase(BB); if (TryToSimplifyUncondBranchFromEmptyBlock(BB)) Changed = true; - else if (Erased) + else if (ErasedFromLoopHeaders) LoopHeaders.insert(BB); } }