• Benedikt Meurer's avatar
    [ic] Support negative indices for typed array OOB accesses. · 317fad95
    Benedikt Meurer authored
    Extend the current OOB support for typed arrays to also handle the
    negative integer indices in the fast-path. This is safe because in
    ECMAScript we never look up integer indexed properties (including
    negative indices) on typed arrays in the prototype chain.
    
    This reduces the performance cliff shown in the benchmark on the
    relevant bug from
    
      console.timeEnd: Runtime deopt, 596.185000
      console.timeEnd: Runtime deopt, 1444.289000
      console.timeEnd: Runtime deopt, 1445.191000
      console.timeEnd: Runtime deopt, 1443.008000
    
    to
    
      console.timeEnd: Runtime deopt, 590.017000
      console.timeEnd: Runtime deopt, 784.899000
      console.timeEnd: Runtime deopt, 792.428000
      console.timeEnd: Runtime deopt, 786.740000
    
    which corresponds to a 2x improvement overall. It's not for free,
    especially not in this benchmark, but the cliff isn't as bad as
    it was previously.
    
    Bug: v8:7027
    Change-Id: Icf8a7ee87bb7ebc54f82c1b9166fc5e78c12bc0e
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
    Reviewed-on: https://chromium-review.googlesource.com/911574Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#51222}
    317fad95
ic.cc 94.2 KB