diff --git a/lib/Transforms/Utils/SimplifyInstructions.cpp b/lib/Transforms/Utils/SimplifyInstructions.cpp index 4e0078425bf..4205622037a 100644 --- a/lib/Transforms/Utils/SimplifyInstructions.cpp +++ b/lib/Transforms/Utils/SimplifyInstructions.cpp @@ -83,13 +83,8 @@ namespace { // Finally, run over the function zapping any dead instructions. for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) - for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;) { - Instruction *I = BI++; - if (isInstructionTriviallyDead(I)) { - I->eraseFromParent(); - Changed = true; - } - } + for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;) + Changed |= RecursivelyDeleteTriviallyDeadInstructions(BI++); return Changed; }