mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-07 16:42:07 +00:00
Do not delete the entry block to a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18795 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
56c5d7369b
commit
864737bf9e
@ -1178,7 +1178,6 @@ bool IPSCCP::runOnModule(Module &M) {
|
||||
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 @@ bool IPSCCP::runOnModule(Module &M) {
|
||||
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++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user