• m.m.capewell@googlemail.com's avatar
    Remove forced type changes when they can't deopt · 649057e0
    m.m.capewell@googlemail.com authored
    Hydrogen attempts to force representation changes on certain operations in order
    to deoptimise on the change rather than the operation. However, these forced
    changes are often unnecessary on 64-bit platforms, and cause poor code
    generation, so this patch makes some of them conditional on whether it's
    possible for deoptimisation to occur in the change.
    
    On ARM64, this prevents sequences like:
                      ;;; <@46,#89> smi-tag
    0x7ff282c7f050   144  lsl x4, x4, #32
                      ;;; <@48,#90> smi-untag
    0x7ff282c7f054   148  asr x5, x4, #32
                      ;;; <@50,#31> mul-const-i-s
    0x7ff282c7f058   152  lsl w6, w5, #3
    
    BUG=
    R=jkummerow@chromium.org
    
    Review URL: https://codereview.chromium.org/303263010
    
    git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    649057e0
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.DEPS.git Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...