1. 01 May, 2019 1 commit
  2. 30 Apr, 2019 36 commits
  3. 29 Apr, 2019 3 commits
    • Milad Farazmand's avatar
      PPC/s390: [cleanup] Use Vector::begin instead of Vector::start · 08756826
      Milad Farazmand authored
      Port 4b0f9c85
      
      Original Commit Message:
      
          Our {Vector} template provides both {start} and {begin} methods. They
          return exactly the same value. Since the {begin} method is needed for
          iteration, and is also what standard containers provide, this CL
          switches all uses of the {start} method to use {begin} instead.
      
          Patchset 1 was auto-generated by using this clang AST matcher:
              callExpr(
                  callee(
                    cxxMethodDecl(
                      hasName("start"),
                      ofClass(hasName("v8::internal::Vector")))
                  ),
                  argumentCountIs(0))
      
          Patchset 2 was created by running clang-format. Patchset 3 then
          removes the now unused {Vector::start} method.
      
      R=clemensh@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I119532691af31a3db1107c47de8b6f0c84697b5c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588226Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#61102}
      08756826
    • Jakob Kummerow's avatar
      [ubsan] Fix overflow in AdjustAmountOfExternalAllocatedMemory · 4349e32d
      Jakob Kummerow authored
      Similar issue as crbug.com/933103, so the fix follows the same
      pattern too.
      
      No regression test, because it will OOM anyway.
      
      Bug: chromium:957015
      Change-Id: Ic5b67d84aa1c44609e6c96485974af9ecab2ed0e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585854
      Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61101}
      4349e32d
    • 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