• mbrandy's avatar
    PPC: [ic] Also collect known map for relational comparison. · 394f3cf3
    mbrandy authored
    Port e56f265f
    
    Original commit message:
        Previously we only collected the known map for equality comparisons. But
        if we also collect it for relational comparisons, we can inline a fast
        path of ToPrimitive on the objects, which is especially interesting
        since both sides have the same map.
    
        For now we only inline a very limited subset of ToPrimitive in
        Crankshaft, which is when the receiver map (and its prototype chain)
        doesn't have @@toPrimitive, and both valueOf and toString are the
        default versions on the %ObjectPrototype%. In this case the relational
        comparison would reduce to a string comparison of "[object CLASS]" with
        itself and so we can reduce that to a boolean constant plus map checks
        on both left and right hand side, plus code dependencies on the
        prototype chain. This repairs the regression on box2d.
    
    R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
    BUG=chromium:534200
    LOG=n
    
    Review URL: https://codereview.chromium.org/1358063005
    
    Cr-Commit-Position: refs/heads/master@{#30869}
    394f3cf3
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.ycm_extra_conf.py 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...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...