1. 13 Nov, 2019 1 commit
  2. 13 Sep, 2019 1 commit
  3. 30 Jul, 2019 1 commit
  4. 29 Jul, 2019 2 commits
  5. 25 Jul, 2019 2 commits
  6. 16 Jul, 2019 2 commits
    • Thibaud Michaud's avatar
      Revert "reland [wasm] Compile JS to WASM wrappers asynchronously" · fac5898d
      Thibaud Michaud authored
      This reverts commit 117ddc8f.
      
      Reason for revert: The isolate is needed for accessing builtins, and can die during async compilation.
      
      Original change's description:
      > reland [wasm] Compile JS to WASM wrappers asynchronously
      > 
      > The context was not set during streaming compilation.
      > The initial upload is the original CL and patch set 1 is the fix.
      > 
      > Original CL:
      > 
      > > [wasm] Compile JS to WASM wrappers asynchronously
      > >
      > > R=mstarzinger@chromium.org, ahaas@chromium.org
      > >
      > > Bug: v8:9231
      > > Change-Id: I9e18073bbe25bf8c9c5f9ace102316e6209d0459
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1669699
      > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#62672}
      > 
      > R=​mstarzinger@chromium.org, ahaas@chromium.org
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
      > Bug: v8:9231
      > Change-Id: I61fc11a6de54cc6e93f3600487a89fa5d2350f0e
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701850
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Auto-Submit: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62721}
      
      TBR=mstarzinger@chromium.org,ahaas@chromium.org,thibaudm@chromium.org
      
      Change-Id: Ie258317f04a944e8e08993dbffb524f722cceddc
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9231
      Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1704094Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62741}
      fac5898d
    • Simon Zünd's avatar
      [wasm] Fix alloc/dealloc size mismatch for WasmInstructionBuffer · 8ae4143a
      Simon Zünd authored
      On newer compilers the {operator delete} with explicit {size_t}
      argument would be instantiated for {WasmInstructionBuffer} and used
      in the destructor of {std::unique_ptr<WasmInstructionBuffer>}. The
      {size_t} argument is wrong though, since the pointer actually points
      to a {WasmInstructionBufferImpl} object.
      The solution is to explicitly provide a {operator delete}, preventing
      an implicitly generated {size_t} operator.
      
      R=clemensh@chromium.org
      
      Change-Id: I2cc22078d03a523121309bae94f5b612cb98e112
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702613Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62737}
      8ae4143a
  7. 15 Jul, 2019 1 commit
  8. 12 Jul, 2019 2 commits
  9. 18 Jun, 2019 1 commit
  10. 05 Jun, 2019 1 commit
    • Thibaud Michaud's avatar
      [wasm] Early compilation of import wrappers · b15b2c91
      Thibaud Michaud authored
      Compile import wrappers during module compilation by introducing import
      wrapper compilation units, the goal being to reduce instantiation time.
      
      For each wrapper, we assume the imported function is going to be a
      kJSFunctionArityMatchSloppy at instantiation time, which should be the
      most common case. If the function turns out to have a different kind the
      wrapper is going to be recompiled with the correct kind during instantiation.
      
      R=ahaas@chromium.org, clemensh@chromium.org
      CC=titzer@chromium.org
      
      Bug: v8:9231
      Change-Id: Ieb050b09d1c19f2a5a3e59132a1864dadb06775d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1630685
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61993}
      b15b2c91
  11. 22 May, 2019 3 commits
    • Clemens Hammacher's avatar
      Reland "[wasm] Compile big functions first" · 5d0b4ad6
      Clemens Hammacher authored
      This is a reland of 2ce5da9a
      
      Original change's description:
      > [wasm] Compile big functions first
      >
      > Add a special queue to {CompilationUnitQueues} to handle big functions
      > specially. They are organized in a priority queue (ordered by their
      > body size), and all threads check this queue first, before executing
      > the tasks from their own queue. In some benchmarks, this shortens
      > overall compilation time by 10-20 percent.
      >
      > R=ahaas@chromium.org
      >
      > Bug: v8:8916, chromium:950493
      > Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61746}
      
      Bug: v8:8916, chromium:950493
      No-Presubmit: true
      Change-Id: I26c949ce6a0f5efee684561dc0b4eba44921cddf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624799
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61755}
      5d0b4ad6
    • Clemens Hammacher's avatar
      Revert "[wasm] Compile big functions first" · a69be08a
      Clemens Hammacher authored
      This reverts commit 2ce5da9a.
      
      Reason for revert: Fails on several bots, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/26607
      
      Original change's description:
      > [wasm] Compile big functions first
      > 
      > Add a special queue to {CompilationUnitQueues} to handle big functions
      > specially. They are organized in a priority queue (ordered by their
      > body size), and all threads check this queue first, before executing
      > the tasks from their own queue. In some benchmarks, this shortens
      > overall compilation time by 10-20 percent.
      > 
      > R=​ahaas@chromium.org
      > 
      > Bug: v8:8916, chromium:950493
      > Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61746}
      
      TBR=ahaas@chromium.org,clemensh@chromium.org
      
      Change-Id: Ib47b23ff878d4a561df1993d532e5eeafea64ff6
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8916, chromium:950493
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624797Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61749}
      a69be08a
    • Clemens Hammacher's avatar
      [wasm] Compile big functions first · 2ce5da9a
      Clemens Hammacher authored
      Add a special queue to {CompilationUnitQueues} to handle big functions
      specially. They are organized in a priority queue (ordered by their
      body size), and all threads check this queue first, before executing
      the tasks from their own queue. In some benchmarks, this shortens
      overall compilation time by 10-20 percent.
      
      R=ahaas@chromium.org
      
      Bug: v8:8916, chromium:950493
      Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61746}
      2ce5da9a
  12. 21 May, 2019 1 commit
  13. 30 Apr, 2019 1 commit
  14. 29 Apr, 2019 3 commits
  15. 10 Apr, 2019 1 commit
  16. 02 Apr, 2019 1 commit
  17. 01 Apr, 2019 2 commits
  18. 27 Mar, 2019 1 commit
  19. 19 Mar, 2019 1 commit
  20. 14 Mar, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Make error messages deterministic · eb1d2d70
      Clemens Hammacher authored
      Compilation only stores whether an error has been found, but not the
      exact error or it's location. This is generated by running a validation
      pass once all wire bytes have been received.
      This unifies error messages by removing one more location where we
      generate compilation error messages, and makes it deterministic because
      a) we always report the error in the first failing function, and
      b) if names are present, the error message will always contain the
         function name.
      
      R=titzer@chromium.org
      
      Bug: chromium:926311, v8:8814
      Change-Id: I79551b8bb73dcee503484de343a3ada60a6add4f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521112
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60242}
      eb1d2d70
  21. 12 Mar, 2019 1 commit
  22. 04 Feb, 2019 1 commit
  23. 30 Jan, 2019 1 commit
  24. 29 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Distinguish requested tier and executed tier · 185922de
      Clemens Hammacher authored
      During execution, the tier can be switch from Liftoff to TurboFan. We
      already handle this in some locations by getting the tier before
      execution, so that we later know which was the requested tier for that
      unit.
      In the case of the --wasm-tier-mask-for-testing flag, this accounting
      was not right because the tier was already switched in the constructor.
      This CL changes the compilation units to store both the requested and
      the executed tier explicitly, so we know which counter to decrement
      when the unit finishes.
      
      R=ahaas@chromium.org
      
      Bug: chromium:925671
      Change-Id: I673463135e9b3ab17e40cfdfd5d3a526ad5a9b79
      Reviewed-on: https://chromium-review.googlesource.com/c/1442639Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59168}
      185922de
  25. 25 Jan, 2019 1 commit
    • Andreas Haas's avatar
      [wasm][anyref] Support anyref stack parameters · 258371bd
      Andreas Haas authored
      Anyref parameters can exist across GC runs. Therefore the GC has to
      know where anyref parameters are on the stack so that it can mark them
      in its marking phase, and update them in the compaction phase.
      
      Already in a previous CL we grouped all anyref parameters so that they
      can be found more easily in a stack frame, see
      https://crrev.com/c/1371827. In this CL we implement the stack scanning
      itself.
      
      Note that anyref parameters are not scanned while iterating over the
      caller's frame (to which they actually belong), but while iterating
      over the callee's frame. The reason is that with tail-calls, only the
      callee knows how many tagged stack parameters (aka anyref parameters)
      there are.
      
      R=mstarzinger@chromium.org
      also-by=mstarzinger@chromium.org
      
      Bug: v8:7581
      Change-Id: I7a41ce11d06c0d420146fdb0bb8d5606f28824d7
      Reviewed-on: https://chromium-review.googlesource.com/c/1424955
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59099}
      258371bd
  26. 24 Jan, 2019 1 commit
  27. 21 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      Reland "[wasm] Split compilation in three stages" · 6c2e35b9
      Clemens Hammacher authored
      This is a reland of 4e1d7c87.
      Failure on arm and arm64 is fixed by https://crrev.com/c/1411885.
      
      Original change's description:
      > [wasm] Split compilation in three stages
      >
      > In order to refactor ownership between objects in wasm compilation, the
      > compilation (executed by background tasks) is split in three stages:
      > getting a compilation unit (while holding a mutex), executing the work
      > (without any mutex and without keeping the NativeModule alive), and
      > submitting the work (with a mutex again).
      >
      > This CL prepares this design by splitting compilation from submission.
      > Both steps are still executed right after each other. This will be
      > changed in a follow-up CL.
      >
      > R=titzer@chromium.org
      > CC=mstarzinger@chromium.org
      >
      > Bug: v8:8689
      > Change-Id: I2f92aee8e2f2d45470d8c63314ed026341630902
      > Reviewed-on: https://chromium-review.googlesource.com/c/1414920
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58929}
      
      TBR=titzer@chromium.org
      
      Bug: v8:8689
      Change-Id: I58ff07d0e0ac8df0f6ee23c416f992954f4673d2
      Reviewed-on: https://chromium-review.googlesource.com/c/1422748Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58959}
      6c2e35b9
  28. 18 Jan, 2019 3 commits
    • Michael Achenbach's avatar
      Revert "[wasm] Split compilation in three stages" · b7cc4f7a
      Michael Achenbach authored
      This reverts commit 4e1d7c87.
      
      Reason for revert:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/14986
      
      Original change's description:
      > [wasm] Split compilation in three stages
      > 
      > In order to refactor ownership between objects in wasm compilation, the
      > compilation (executed by background tasks) is split in three stages:
      > getting a compilation unit (while holding a mutex), executing the work
      > (without any mutex and without keeping the NativeModule alive), and
      > submitting the work (with a mutex again).
      > 
      > This CL prepares this design by splitting compilation from submission.
      > Both steps are still executed right after each other. This will be
      > changed in a follow-up CL.
      > 
      > R=​titzer@chromium.org
      > CC=​mstarzinger@chromium.org
      > 
      > Bug: v8:8689
      > Change-Id: I2f92aee8e2f2d45470d8c63314ed026341630902
      > Reviewed-on: https://chromium-review.googlesource.com/c/1414920
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58929}
      
      TBR=titzer@chromium.org,clemensh@chromium.org
      
      Change-Id: Ic3d0287b354ef5f834b76bc2cdc096d2231f4477
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8689
      Reviewed-on: https://chromium-review.googlesource.com/c/1422917Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58932}
      b7cc4f7a
    • Clemens Hammacher's avatar
      [wasm] Split compilation in three stages · 4e1d7c87
      Clemens Hammacher authored
      In order to refactor ownership between objects in wasm compilation, the
      compilation (executed by background tasks) is split in three stages:
      getting a compilation unit (while holding a mutex), executing the work
      (without any mutex and without keeping the NativeModule alive), and
      submitting the work (with a mutex again).
      
      This CL prepares this design by splitting compilation from submission.
      Both steps are still executed right after each other. This will be
      changed in a follow-up CL.
      
      R=titzer@chromium.org
      CC=mstarzinger@chromium.org
      
      Bug: v8:8689
      Change-Id: I2f92aee8e2f2d45470d8c63314ed026341630902
      Reviewed-on: https://chromium-review.googlesource.com/c/1414920Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58929}
      4e1d7c87
    • Clemens Hammacher's avatar
      [wasm] Remove redundant GetSharedWireBytesStorage · babdc422
      Clemens Hammacher authored
      It does exactly the same as GetWireBytesStorage.
      Also change the WasmCompilationUnit::ExecuteCompilation method to
      receive a reference to the shared_ptr, since it does not take (shared)
      ownership. This saves one ref count increment and decrement.
      
      R=titzer@chromium.org
      
      Bug: v8:8689
      Change-Id: I03c3ec5f907c738c73e0dc16646d78ecac3f3717
      Reviewed-on: https://chromium-review.googlesource.com/c/1417632
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58908}
      babdc422
  29. 14 Jan, 2019 1 commit