• 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
..
arguments-inl.h Loading commit data...
arguments.h Loading commit data...
code-cache-inl.h Loading commit data...
code-cache.h Loading commit data...
compilation-cache-inl.h Loading commit data...
compilation-cache.h Loading commit data...
debug-objects-inl.h Loading commit data...
debug-objects.cc Loading commit data...
debug-objects.h Loading commit data...
descriptor-array.h Loading commit data...
dictionary.h Loading commit data...
frame-array-inl.h Loading commit data...
frame-array.h Loading commit data...
hash-table-inl.h Loading commit data...
hash-table.h Loading commit data...
intl-objects.cc Loading commit data...
intl-objects.h Loading commit data...
literal-objects.cc Loading commit data...
literal-objects.h Loading commit data...
map-inl.h Loading commit data...
map.h Loading commit data...
module-info.h Loading commit data...
name-inl.h Loading commit data...
name.h Loading commit data...
object-macros-undef.h Loading commit data...
object-macros.h Loading commit data...
regexp-match-info.h Loading commit data...
scope-info.cc Loading commit data...
scope-info.h Loading commit data...
script-inl.h Loading commit data...
script.h Loading commit data...
shared-function-info-inl.h Loading commit data...
shared-function-info.h Loading commit data...
string-inl.h Loading commit data...
string-table.h Loading commit data...
string.h Loading commit data...