summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Transforms/Utils/BasicBlockUtils.h7
-rw-r--r--lib/Transforms/Utils/BasicBlockUtils.cpp13
-rw-r--r--lib/Transforms/Utils/SimplifyCFG.cpp2
3 files changed, 8 insertions, 14 deletions
diff --git a/include/llvm/Transforms/Utils/BasicBlockUtils.h b/include/llvm/Transforms/Utils/BasicBlockUtils.h
index 881bcffc12..d6140ae2a5 100644
--- a/include/llvm/Transforms/Utils/BasicBlockUtils.h
+++ b/include/llvm/Transforms/Utils/BasicBlockUtils.h
@@ -26,10 +26,9 @@ class Instruction;
class Pass;
class AliasAnalysis;
-/// DeleteBlockIfDead - If the specified basic block is trivially dead (has no
-/// predecessors and not the entry block), delete it and return true. Otherwise
-/// return false.
-bool DeleteBlockIfDead(BasicBlock *BB);
+/// DeleteDeadBlock - Delete the specified block, which must have no
+/// predecessors.
+void DeleteDeadBlock(BasicBlock *BB);
/// MergeBlockIntoPredecessor - Attempts to merge a block into its predecessor,
/// if possible. The return value indicates success or failure.
diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp
index bfcf375f51..9452e6e877 100644
--- a/lib/Transforms/Utils/BasicBlockUtils.cpp
+++ b/lib/Transforms/Utils/BasicBlockUtils.cpp
@@ -24,14 +24,10 @@
#include <algorithm>
using namespace llvm;
-/// DeleteBlockIfDead - If the specified basic block is trivially dead (has no
-/// predecessors and not the entry block), delete it and return true. Otherwise
-/// return false.
-bool llvm::DeleteBlockIfDead(BasicBlock *BB) {
- if (pred_begin(BB) != pred_end(BB) ||
- BB == &BB->getParent()->getEntryBlock())
- return false;
-
+/// DeleteDeadBlock - Delete the specified block, which must have no
+/// predecessors.
+void llvm::DeleteDeadBlock(BasicBlock *BB) {
+ assert(pred_begin(BB) != pred_end(BB) && "Block is not dead!");
TerminatorInst *BBTerm = BB->getTerminator();
// Loop through all of our successors and make sure they know that one
@@ -54,7 +50,6 @@ bool llvm::DeleteBlockIfDead(BasicBlock *BB) {
// Zap the block!
BB->eraseFromParent();
- return true;
}
/// MergeBlockIntoPredecessor - Attempts to merge a block into its predecessor,
diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp
index 7077436a1d..f4faeb3deb 100644
--- a/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -1681,7 +1681,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
// as a predecessor. These are unreachable.
if (pred_begin(BB) == pred_end(BB) || BB->getSinglePredecessor() == BB) {
DOUT << "Removing BB: \n" << *BB;
- DeleteBlockIfDead(BB);
+ DeleteDeadBlock(BB);
return true;
}