-
fschneider@chromium.org authored
Until now we conservatively chose a double representation if at least one use occurs in a double operation. This causes performance degradation in many cases where there are mixes uses (integer and double) e.g.: for (int i = 0; i < 10; i++) { var t = i / 3.5; a[i] = t; } where the use in i/3 requires a double, where as the keyed store requires i as an integer. For these cases we want to have i as an integer and convert it only before the double division. In order to avoid unconditional deoptimization in some rare cases, we check phis if there is any conversion that will always fail when converting a heap-number constant to int32. Review URL: http://codereview.chromium.org/6905166 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
3e94ac95