• Jaroslav Sevcik's avatar
    Initial optimization of Map.prototype.(get|has) in Turbofan. · aba708a1
    Jaroslav Sevcik authored
    This introduces a new builtin (MapLookupHashIndex) and uses it
    in Turbofan to compute Map.p.get and Map.p.has.
    
    I have also refactored the existing CSA builtins for Map.p.get and 
    Map.p.has to use the new builtin under the hood.
    
    The code for the lookup has been also improved.
    - Specialized lookups for smis, strings, heap numbers and everything else.
      - the advantage is that we can use fast equalities for the lookup.
      - strings can likely be optimized further if we care about the 
        internalized string fast case.
    - Instead of a call to runtime to get the hash code, we now call C directly.
    
    In the Turbofan implementation itself, there are no special optimizations yet.
    The next step is to teach load elimination to reuse the indexes from
    previous calls of MapLookupHashIndex. 
    
    BUG=v8:6410
    
    Change-Id: I0b1a70493eb031d444e51002f6b2cc1f30ea2b68
    Reviewed-on: https://chromium-review.googlesource.com/560169Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46510}
    aba708a1
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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 Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm 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...
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...