summaryrefslogtreecommitdiff
path: root/compiler/optimizing/dead_code_elimination.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.cc')
-rw-r--r--compiler/optimizing/dead_code_elimination.cc10
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);
+ }
+ }
}
}