[llvm-commits] CVS: llvm/lib/Transforms/Scalar/SCCP.cpp

Chris Lattner lattner at cs.uiuc.edu
Fri Dec 10 21:32:34 PST 2004



Changes in directory llvm/lib/Transforms/Scalar:

SCCP.cpp updated: 1.116 -> 1.117
---
Log message:

Do not delete the entry block to a function.


---
Diffs of the changes:  (+5 -1)

Index: llvm/lib/Transforms/Scalar/SCCP.cpp
diff -u llvm/lib/Transforms/Scalar/SCCP.cpp:1.116 llvm/lib/Transforms/Scalar/SCCP.cpp:1.117
--- llvm/lib/Transforms/Scalar/SCCP.cpp:1.116	Fri Dec 10 23:15:59 2004
+++ llvm/lib/Transforms/Scalar/SCCP.cpp	Fri Dec 10 23:32:19 2004
@@ -1178,7 +1178,6 @@
       if (!ExecutableBBs.count(BB)) {
         DEBUG(std::cerr << "  BasicBlock Dead:" << *BB);
         ++IPNumDeadBlocks;
-        BlocksToErase.push_back(BB);
 
         // Delete the instructions backwards, as it has a reduced likelihood of
         // having to update as many def-use and use-def chains.
@@ -1206,6 +1205,11 @@
           TI->replaceAllUsesWith(UndefValue::get(TI->getType()));
         BB->getInstList().erase(TI);
 
+        if (&*BB != &F->front())
+          BlocksToErase.push_back(BB);
+        else
+          new UnreachableInst(BB);
+
       } else {
         for (BasicBlock::iterator BI = BB->begin(), E = BB->end(); BI != E; ) {
           Instruction *Inst = BI++;






More information about the llvm-commits mailing list