1. 25 Oct, 2018 1 commit
  2. 24 Oct, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Fix streaming instantiation with no code section · ecbf6296
      Clemens Hammacher authored
      Because of ordering issues we didn't set the wire bytes on the
      {NativeModule} during {OnFinishedStream}. We then failed during
      instantiation when trying to read the import names from the wire bytes.
      
      This CL fixes this locally without much code churn. I plan to clean up
      the interaction between {AsyncCompileJob} and {AsyncStreamingProcessor}
      in a follow-up CL.
      
      R=ahaas@chromium.org
      
      Bug: chromium:898310
      Change-Id: I06337a04ba380f87b803f325323208298d363f41
      Reviewed-on: https://chromium-review.googlesource.com/c/1296467Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56938}
      ecbf6296
  3. 22 Oct, 2018 1 commit
  4. 19 Oct, 2018 2 commits
  5. 18 Oct, 2018 1 commit
  6. 17 Oct, 2018 2 commits
  7. 15 Oct, 2018 3 commits
  8. 11 Oct, 2018 2 commits
  9. 10 Oct, 2018 2 commits
    • Ben Smith's avatar
      [wasm] Cleanup wasm-module-builder.js · bf3c8b8f
      Ben Smith authored
      Use naming similar to the spec: "table" instead of "function table",
      "element segment" instead of "function table init".
      
      Change-Id: Ib1b6cdfa566f8bd00017ccedf9440084204f10ff
      Reviewed-on: https://chromium-review.googlesource.com/c/1273612
      Commit-Queue: Ben Smith <binji@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56545}
      bf3c8b8f
    • Ben L. Titzer's avatar
      [wasm] Use a tuple as the instance for JS imports · a2b34806
      Ben L. Titzer authored
      This CL refactors the implementation of WASM->JS import wrappers in order
      to make the wrapper code shareable. Instead of specializing to the import
      index, we use a tuple as the object ref in the both the import and indirect
      tables. The tuple allows the wrapper code to load both the calling
      instance and the target callable, rather than relying on code specialization.
      
      This requires some tricky codegen machinery, because WASM call descriptors
      expect an instance argument in a given register, yet the wrappers receive
      a tuple, the code generator must generate a prologue that loads the
      instance (and the callable), since it is not possible to express this at
      the graph level.
      
      R=mstarzinger@chromium.org
      CC=clemensh@chromium.org
      
      Change-Id: Id67e307f7f5089e776f5439a53b5aee4b76934b6
      Reviewed-on: https://chromium-review.googlesource.com/c/1268237
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56520}
      a2b34806
  10. 09 Oct, 2018 3 commits
    • Michael Starzinger's avatar
      [wasm] Fix corner cases with catch-all handling. · 73250d9c
      Michael Starzinger authored
      This fixes handling of two corner cases with catch-all blocks:
      1) The catch-all blocks are conceptually outside the corresponding try.
      2) Reachability of catch-all is determined by parent reachability.
      
      R=clemensh@chromium.org
      TEST=mjsunit/wasm/exceptions-catchall
      BUG=v8:8091
      
      Change-Id: Idfd8310bc232f3ce389763023c5a33f1ef90e0b5
      Reviewed-on: https://chromium-review.googlesource.com/c/1270816Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56486}
      73250d9c
    • Michael Starzinger's avatar
      [wasm] Add support for multiple catch blocks. · 2e007737
      Michael Starzinger authored
      This adds support for multiple catch blocks being attached to a single
      try block. The implemented semantics are that type checks are performed
      in order from top to bottom.
      
      Note that multiple catch blocks of the same type are not prohibited and
      will be accepted, making the second such block essentially unreachable.
      The current proposal neither explicitly allows nor prohibits it.
      
      R=clemensh@chromium.org
      TEST=mjsunit/wasm/exceptions
      BUG=v8:8091
      
      Change-Id: I31e7a07a7cffdd909a58342e00f05e52ed1a3182
      Reviewed-on: https://chromium-review.googlesource.com/c/1270591Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56478}
      2e007737
    • Michael Starzinger's avatar
      [wasm] Initial catch-all control flow wiring. · d56e29d1
      Michael Starzinger authored
      This adds support to wire control flow of catch-all expressions into an
      existing try-catch cascade. Note that multiple typed catch blocks are
      not yet supported, only one typed catch block followed by one catch-all
      block is supported.
      
      In case the explicit catch-all block is missing, we emulate the correct
      semantics by internally always emitting a catch-all containing a simple
      rethrow instruction.
      
      R=clemensh@chromium.org
      TEST=mjsunit/wasm/exceptions-catchall
      BUG=v8:8091
      
      Change-Id: I6b29a98c4f1a558fabe6012f4ba6c7b7d43529bb
      Reviewed-on: https://chromium-review.googlesource.com/c/1270585Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56476}
      d56e29d1
  11. 27 Sep, 2018 2 commits
  12. 20 Sep, 2018 1 commit
  13. 19 Sep, 2018 3 commits
    • Clemens Hammacher's avatar
      Reland "[wasm] Introduce a soft limit on reserved memory" · 5e94b208
      Clemens Hammacher authored
      This is a reland of 3bb5cb63
      
      Original change's description:
      > [wasm] Introduce a soft limit on reserved memory
      > 
      > Currently, wasm memory and wasm code use a shared limit for the total
      > size of reservations. This can cause wasm code reservations to fail
      > because wasm memories used all available reservation space.
      > This CL introduces a soft limit which is used when allocating wasm
      > memory with full guards. If this limit is reached and the respective
      > flag is set, we fall back to allocation without full guards and check
      > against the hard limit. Code reservations always check against the hard
      > limit.
      > 
      > R=ahaas@chromium.org
      > 
      > Bug: v8:8196
      > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d
      > Reviewed-on: https://chromium-review.googlesource.com/1233614
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56028}
      
      Bug: v8:8196
      Change-Id: If8baf429b02e23b344346f7335bc911b99ae5579
      Reviewed-on: https://chromium-review.googlesource.com/1233756Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56044}
      5e94b208
    • Leszek Swirski's avatar
      Revert "[wasm] Introduce a soft limit on reserved memory" · 196874aa
      Leszek Swirski authored
      This reverts commit 3bb5cb63.
      
      Reason for revert: Breaks Win64 bot https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/26418
      
      Original change's description:
      > [wasm] Introduce a soft limit on reserved memory
      > 
      > Currently, wasm memory and wasm code use a shared limit for the total
      > size of reservations. This can cause wasm code reservations to fail
      > because wasm memories used all available reservation space.
      > This CL introduces a soft limit which is used when allocating wasm
      > memory with full guards. If this limit is reached and the respective
      > flag is set, we fall back to allocation without full guards and check
      > against the hard limit. Code reservations always check against the hard
      > limit.
      > 
      > R=​ahaas@chromium.org
      > 
      > Bug: v8:8196
      > Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d
      > Reviewed-on: https://chromium-review.googlesource.com/1233614
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56028}
      
      TBR=ahaas@chromium.org,clemensh@chromium.org
      
      Change-Id: If645e738b4a5800eceabd993738ac2285f4a63bc
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8196
      Reviewed-on: https://chromium-review.googlesource.com/1233834Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56031}
      196874aa
    • Clemens Hammacher's avatar
      [wasm] Introduce a soft limit on reserved memory · 3bb5cb63
      Clemens Hammacher authored
      Currently, wasm memory and wasm code use a shared limit for the total
      size of reservations. This can cause wasm code reservations to fail
      because wasm memories used all available reservation space.
      This CL introduces a soft limit which is used when allocating wasm
      memory with full guards. If this limit is reached and the respective
      flag is set, we fall back to allocation without full guards and check
      against the hard limit. Code reservations always check against the hard
      limit.
      
      R=ahaas@chromium.org
      
      Bug: v8:8196
      Change-Id: I3fcbaeaa6f72c972d408d291af5d6b788d43151d
      Reviewed-on: https://chromium-review.googlesource.com/1233614Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56028}
      3bb5cb63
  14. 17 Sep, 2018 4 commits
  15. 14 Sep, 2018 1 commit
  16. 12 Sep, 2018 1 commit
  17. 11 Sep, 2018 4 commits
  18. 10 Sep, 2018 1 commit
  19. 07 Sep, 2018 1 commit
  20. 06 Sep, 2018 1 commit
    • Michael Starzinger's avatar
      [wasm] Add preliminary support for exported exceptions. · c0a9f50c
      Michael Starzinger authored
      This adds the ability to add exception types to the export section of a
      module and reference them via the local exception index. Currently the
      export object then just contains the local index as a number, which is
      only temporary until we have proper export wrappers for exceptions.
      
      Also note that this tightens the restriction for the modules exception
      section to be located in between the import and the export section.
      
      R=clemensh@chromium.org
      TEST=mjsunit/wasm/exceptions-export
      BUG=v8:8091
      
      Change-Id: Ie26081c3f94e71cb576057db7e45ec5bd0e112f9
      Reviewed-on: https://chromium-review.googlesource.com/1206873
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55679}
      c0a9f50c
  21. 05 Sep, 2018 1 commit
  22. 04 Sep, 2018 2 commits