diff options
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.cc')
-rw-r--r-- | compiler/optimizing/dead_code_elimination.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/optimizing/dead_code_elimination.cc b/compiler/optimizing/dead_code_elimination.cc index 5784b93670..5b420db5be 100644 --- a/compiler/optimizing/dead_code_elimination.cc +++ b/compiler/optimizing/dead_code_elimination.cc @@ -919,6 +919,16 @@ void HDeadCodeElimination::RemoveDeadInstructions() { MaybeRecordStat(stats_, MethodCompilationStat::kRemovedDeadInstruction); } } + + // Same for Phis. + for (HBackwardInstructionIterator phi_it(block->GetPhis()); !phi_it.Done(); phi_it.Advance()) { + DCHECK(phi_it.Current()->IsPhi()); + HPhi* phi = phi_it.Current()->AsPhi(); + if (phi->IsDeadAndRemovable()) { + block->RemovePhi(phi); + MaybeRecordStat(stats_, MethodCompilationStat::kRemovedDeadPhi); + } + } } } |