-
- // If we found no dead instructions, we haven't changed the function...
- if (DeadInsts.empty()) return false;
-
- // Otherwise, loop over the program, removing and deleting the instructions...
- for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I)
- for (BasicBlock::iterator BI = I->begin(); BI != I->end(); )
- if (DeadInsts.count(BI)) { // Is this instruction dead?
- BI = I->getInstList().erase(BI); // Yup, remove and delete inst
- ++DCEEliminated;
- } else { // This instruction is not dead
- ++BI; // Continue on to the next one...
- }
-
- return true;