f0f60262cd
Previously we were only looking for congruent phis. But we can also include all operations that allow CSE and have no dependencies (e.g. arithmetic) into the congruency check. This allows in the code like var idx = 0; for (var el in src) dst[idx++] = el; see the congruency between Phi introduced for idx and Phi that LoadOptimizer emits for iterator's _index field. As the result we are able to optimize this code to use a single iteration variable instead of two. R=fschneider@google.com BUG= Review URL: https://codereview.chromium.org//537963002 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39864 260f80e4-7a28-3924-810f-c04153c831b5