diff --git a/src/hydrogen.cc b/src/hydrogen.cc index 01046bf9bf..237352cd1e 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -1675,7 +1675,9 @@ void HInferRepresentation::Analyze() { bool change = true; while (change) { change = false; - for (int i = 0; i < phi_count; ++i) { + // We normally have far more "forward edges" than "backward edges", + // so we terminate faster when we walk backwards. + for (int i = phi_count - 1; i >= 0; --i) { HPhi* phi = phi_list->at(i); for (HUseIterator it(phi->uses()); !it.Done(); it.Advance()) { HValue* use = it.value();