1. 23 May, 2019 2 commits
  2. 22 May, 2019 1 commit
  3. 21 May, 2019 2 commits
  4. 20 May, 2019 1 commit
  5. 17 May, 2019 3 commits
  6. 16 May, 2019 4 commits
  7. 13 May, 2019 1 commit
  8. 10 May, 2019 2 commits
  9. 09 May, 2019 2 commits
  10. 29 Apr, 2019 1 commit
    • Benedikt Meurer's avatar
      [runtime] Optimize general object spread. · 4995c85f
      Benedikt Meurer authored
      This adds a new %_CopyDataProperties intrinsic, that reuses most of the
      existing machinery that we already have in place for Object.assign() and
      computed property names in object literals. This speeds up the general
      case for object spread (where the spread is not the first item in an
      object literal) and brings it on par with Object.assign() at least - in
      most cases it's significantly faster than Object.assign().
      
      In the test case [1] referenced from the bug, the performance goes from
      
        objectSpreadLast: 3624 ms.
        objectAssignLast: 1938 ms.
      
      to
      
        objectSpreadLast: 646 ms.
        objectAssignLast: 1944 ms.
      
      which corresponds to a **5-6x performance boost**, making object spread
      faster than Object.assign() in general.
      
      Drive-by-fix: This refactors the Object.assign() fast-path in a way that
      it can be reused appropriately for object spread, and adds another new
      builtin SetDataProperties, which does the core of the Object.assign()
      work. We can teach TurboFan to inline Object.assign() based on the new
      SetDataProperties builtin at some later point to further optimize
      Object.assign().
      
      [1]: https://gist.github.com/bmeurer/0dae4a6b0e23f43d5a22d7c91476b6c0
      
      Bug: v8:9167
      Change-Id: I57bea7a8781c4a1e8ff3d394873c3cd4c5d73834
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587376Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61100}
      4995c85f
  11. 24 Apr, 2019 1 commit
    • Jakob Gruber's avatar
      [coverage] Reduce IncBlockCounter overhead · ae6a47ba
      Jakob Gruber authored
      When collecting JS block coverage, we track block execution counts on
      so-called CoverageInfo objects. Generated bytecode and native code
      contains inlined snippets of code to increment the appropriate
      counters.
      
      These used to be implemented as calls to the IncBlockCounter runtime
      function. Each call incurred the entire CEntry overhead.
      
      This CL reduces that overhead by moving logic over into a new
      IncBlockCounter TFS builtin. The builtin is called directly from
      bytecode, and lowered to the same builtin call for optimized code.
      
      Drive-by: Tweak CoverageInfo layout to generate faster code.
      
      Tbr: jarin@chromium.org
      Bug: v8:9149, v8:6000
      Change-Id: I2d7cb0db649edf7c56b5ef5a4683d27b1c34605c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571420Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60981}
      ae6a47ba
  12. 23 Apr, 2019 1 commit
  13. 17 Apr, 2019 1 commit
  14. 12 Apr, 2019 1 commit
  15. 11 Apr, 2019 1 commit
  16. 10 Apr, 2019 3 commits
  17. 08 Apr, 2019 2 commits
  18. 04 Apr, 2019 1 commit
  19. 03 Apr, 2019 4 commits
  20. 28 Mar, 2019 1 commit
  21. 25 Mar, 2019 1 commit
    • Mythri's avatar
      [lite] Allocate feedback vectors lazily · 7629afdb
      Mythri authored
      Allocate feedback vectors lazily when the function's interrupt budget has
      reached a specified threshold. This cl introduces a new field in the
      ClosureFeedbackCellArray to track the interrupt budget for allocating
      feedback vectors. Using the interrupt budget on the bytecode array could
      cause problems when there are closures across native contexts and we may
      delay allocating feedback vectors in one of them causing unexpected
      performance cliffs. In the long term we may want to remove interrupt budget
      from bytecode array and use context specific budget for tiering up decisions
      as well.
      
      Bug: v8:8394
      Change-Id: Ia8fbb71f5e8543a92f14c44aa762973da82d445c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520719
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60450}
      7629afdb
  22. 12 Mar, 2019 2 commits
  23. 11 Mar, 2019 2 commits