summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_checker.cc
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2015-11-30 10:17:46 -0800
committer Aart Bik <ajcbik@google.com> 2015-12-01 13:26:16 -0800
commit4a34277c55279ba57ab361f7580db846a201d9b1 (patch)
tree31d775a871a351357ecd5d6c76a3a827e20e6d07 /compiler/optimizing/graph_checker.cc
parentf4c539395244ccfc14aebaf53fdc1122287f65a6 (diff)
Dynamic BCE (based on induction range analysis)
Rationale: A rewritten dynamic BCE that uses induction variable analysis to generate the run-time tests before a loop in order to eliminate bounds-checks from its body. This CL removes now obsoleted induction related code inside the BCE module. Also, the dynamic test generation is placed more strategically, since we missed a few cases where static analysis does better. Most significant performance improvements (filtering noise) is about: Linpack +20% LU > +10% Change-Id: I03d7631857154b6a131b132f26a2dc568af1b3a1
Diffstat (limited to 'compiler/optimizing/graph_checker.cc')
-rw-r--r--compiler/optimizing/graph_checker.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/graph_checker.cc b/compiler/optimizing/graph_checker.cc
index b3b09d2155..c16b872466 100644
--- a/compiler/optimizing/graph_checker.cc
+++ b/compiler/optimizing/graph_checker.cc
@@ -739,7 +739,9 @@ void SSAChecker::VisitPhi(HPhi* phi) {
// created for constants which were untyped in DEX. Note that this test can be skipped for
// a synthetic phi (indicated by lack of a virtual register).
if (phi->GetRegNumber() != kNoRegNumber) {
- for (HInstructionIterator phi_it(phi->GetBlock()->GetPhis()); !phi_it.Done(); phi_it.Advance()) {
+ for (HInstructionIterator phi_it(phi->GetBlock()->GetPhis());
+ !phi_it.Done();
+ phi_it.Advance()) {
HPhi* other_phi = phi_it.Current()->AsPhi();
if (phi != other_phi && phi->GetRegNumber() == other_phi->GetRegNumber()) {
if (phi->GetType() == other_phi->GetType()) {