From 92942735cb52b1f23f22ce4c06c9c8b4c35406a7 Mon Sep 17 00:00:00 2001 From: clc5q <clc5q@git.zephyr-software.com> Date: Tue, 8 Apr 2008 21:32:22 +0000 Subject: [PATCH] Remove instructions when removing unreachable blocks. --- SMPFunction.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SMPFunction.cpp b/SMPFunction.cpp index e6d0a1bb..4212f05c 100644 --- a/SMPFunction.cpp +++ b/SMPFunction.cpp @@ -1423,6 +1423,11 @@ void SMPFunction::SetLinks(void) { for (SuccIter = CurrBlock->GetFirstSucc(); SuccIter != CurrBlock->GetLastSucc(); ++SuccIter) { (*SuccIter)->ErasePred(TempAddr); } + // Remove the unreachable instructions from the function inst list. + list<list<SMPInstr>::iterator>::iterator InstIter; + for (InstIter = CurrBlock->GetFirstInstr(); InstIter != CurrBlock->GetLastInstr(); ++InstIter) { + list<SMPInstr>::iterator DummyIter = this->Instrs.erase(*InstIter); + } // Finally, remove the block from the blocks list. CurrBlock = this->Blocks.erase(CurrBlock); this->BlockCount -= 1; -- GitLab