1. 12 Nov, 2018 1 commit
  2. 11 Sep, 2018 1 commit
    • Michael Starzinger's avatar
      [wasm] Add preliminary support for imported exceptions. · 8238a9b2
      Michael Starzinger authored
      This adds the ability to import exception into a module at instantiation
      time. Only a {WasmExceptionObject} that has been exported by another
      module instance can be imported, all other values are rejected.
      
      Note that currently there is no signature check being performed to make
      sure the imported exception matches the expected type. Also the identity
      of imported exceptions is not yet preserved.
      
      Furthermore the engine does not yet match thrown exception objects on a
      global level across modules. Hence imported exceptions will (wrongly)
      behave as completely new types within the module.
      
      R=clemensh@chromium.org
      TEST=mjsunit/wasm/exceptions-import,unittests/WasmModuleVerifyTest
      BUG=v8:8091
      
      Change-Id: If247762b949a1ba4a87d13bc3e790a45dbc67815
      Reviewed-on: https://chromium-review.googlesource.com/1216402
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55777}
      8238a9b2
  3. 10 Sep, 2018 1 commit
  4. 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
  5. 05 Sep, 2018 1 commit
  6. 04 Sep, 2018 1 commit
  7. 17 Aug, 2018 1 commit
  8. 02 Aug, 2018 1 commit
    • Ben L. Titzer's avatar
      [cleanup] Remove redundant wasm:: namespace prefixes · 99de47f1
      Ben L. Titzer authored
      The wasm/ directory is inconsistent in many places, often within the
      same file. For all code that exists in a v8::internal::wasm namespace,
      this CL removes any wasm:: qualifiers, which is especially helpful
      since most types are already Wasm-named, such as WasmCode, WasmModule,
      etc. Namespace qualifiers are redundant inside the wasm:: namespace and
      thus go against the main point of using namespaces. Removing the
      qualifiers for non Wasm-named classes also makes the code somewhat more
      future-proof, should we move some things that are not really WASM-specific
      (such as ErrorThrower and Decoder) into a higher namespace.
      
      R=clemensh@chromium.org,mstarzinger@chromium.org
      
      Change-Id: Ibff3e1e93c64c12dcb53c46c03d1bfb2fb0b7586
      Reviewed-on: https://chromium-review.googlesource.com/1160232
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54862}
      99de47f1
  9. 23 Jul, 2018 1 commit
  10. 10 Jul, 2018 1 commit
  11. 29 Jun, 2018 1 commit
  12. 28 Jun, 2018 1 commit
  13. 26 Jun, 2018 1 commit
  14. 25 Jun, 2018 1 commit
  15. 22 Jun, 2018 1 commit
  16. 19 Jun, 2018 1 commit
  17. 13 Jun, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Merge {WasmSharedModuleData} with {WasmModuleObject} · b9b4b879
      Clemens Hammacher authored
      The {WasmSharedModuleData} struct was introduced to hold data common to
      all wasm instances belonging to the same module. The idea was to keep
      "internal state" separate from the JS-facing {WasmModuleObject}. Since
      this objective has no real value, and we already store some internal
      data on the {WasmModuleObject}, this CL merges these two objects.
      
      R=titzer@chromium.org, mstarzinger@chromium.org
      
      Bug: v8:7754
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I04f6d07bf5d812bc4717af26f0f64231345861f9
      Reviewed-on: https://chromium-review.googlesource.com/1097491
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53698}
      b9b4b879
  18. 12 Jun, 2018 1 commit
    • Ben L. Titzer's avatar
      [wasm] Add size estimates for managed objects · 26d0d95e
      Ben L. Titzer authored
      This CL estimates the sizes of the important managed objects in WASM:
      the decoded module {WasmModule}, the native module that contains code
      {NativeModule}, and the natively-allocated indirect and import tables
      {WasmInstanceNativeAllocations}.
      
      Since Managed<T> updates the isolate's external allocated memory,
      it is no longer necessary to do so upon committing or releasing a
      native module's memory.
      
      R=mstarzinger@chromium.org
      CC=ulan@chromium.org
      
      Bug: v8:7424
      Change-Id: Iff4e07d0d328383a925febd654ccbfc95f0930e9
      Reviewed-on: https://chromium-review.googlesource.com/1079067
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53675}
      26d0d95e
  19. 23 May, 2018 1 commit
  20. 14 May, 2018 1 commit
  21. 09 May, 2018 1 commit
  22. 27 Apr, 2018 1 commit
    • Clemens Hammacher's avatar
      [wasm] Split off wasm-linkage.h · 8466b71a
      Clemens Hammacher authored
      Linkage-related methods were declared in wasm-compiler.h and
      implemented in wasm-linkage.cc. This required all users of e.g. wasm
      call descriptors to include the whole wasm compiler header. Also, some
      wasm linkage information is independent of turbofan and also used
      outside of the compiler directory.
      
      This CL splits off wasm-linkage.h (with minimal includes) and puts it
      in src/wasm. This allows to use that information without including
      compiler headers (will clean up several uses in follow-up CLs).
      
      R=mstarzinger@chromium.org, titzer@chromium.org
      
      Bug: v8:7570
      Change-Id: Ifcae70b4ea7932cda30953b325c2b87c4176c598
      Reviewed-on: https://chromium-review.googlesource.com/1013701Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52849}
      8466b71a
  23. 16 Apr, 2018 1 commit
  24. 05 Apr, 2018 2 commits
  25. 20 Mar, 2018 1 commit
  26. 19 Mar, 2018 1 commit
  27. 15 Mar, 2018 1 commit
  28. 14 Mar, 2018 1 commit
  29. 13 Mar, 2018 1 commit
    • Stephan Herhut's avatar
      [wasm] Parse function names on demand · 49a1a9a4
      Stephan Herhut authored
      Function names are optional in wasm and might not be present for most
      functions. Instead of storing an empty name with each function, this
      change loads names, if present, on first access of the name.
      
      This also fixes an inconsistency with streaming compilation. Under
      streaming compilation, functions are compiled before parsing the name
      section. Hence, they always received an empty name. With this change,
      assignment of names is typically deferred until the whole module was
      parsed.
      
      Bug: chromium:820291
      Change-Id: I86d76aa40b7c45897d152725547795c8b6b9b9ba
      Reviewed-on: https://chromium-review.googlesource.com/955647
      Commit-Queue: Stephan Herhut <herhut@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51909}
      49a1a9a4
  30. 12 Mar, 2018 1 commit
  31. 21 Feb, 2018 1 commit
  32. 18 Jan, 2018 1 commit
  33. 16 Jan, 2018 1 commit
  34. 11 Jan, 2018 1 commit
  35. 18 Dec, 2017 2 commits
    • Clemens Hammacher's avatar
      [wasm] Dehandlify WasmCompiledModule interface · a1fcd777
      Clemens Hammacher authored
      The interface of {WasmCompiledModule} currently mostly receives and
      provides handles to the contained data. Other interfaces don't (see
      {object-macros.h}.
      This leads to performance and memory overhead for chained accesses like
      {instance->compiled_module()->shared()->script()}, because intermediate
      accessors allocate Handles for no reason. It also breaks the
      constraints that lower-case accessors should be trivial to execute, but
      allocating a handle is not trivial (should not be done in a loop if not
      needed).
      It also silences gcmole errors, as documented in
      https://crrev.com/c/832268.
      
      R=ahaas@chromium.org, mtrofin@chromium.org
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ib82fb295977a47b4a8ab9bae9c9b6e2b235ad5e5
      Reviewed-on: https://chromium-review.googlesource.com/832387
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50173}
      a1fcd777
    • Clemens Hammacher's avatar
      [wasm] Move more methods to WasmSharedModuleData · 9c858492
      Clemens Hammacher authored
      Many methods currently defined in WasmCompiledModule actually only use
      shared information from WasmSharedModuleData. Hence, move them to this
      class.
      
      R=ahaas@chromium.org
      
      Bug: chromium:750256
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ia298306c3757fca8e2d93eaaf3424d6f91150212
      Reviewed-on: https://chromium-review.googlesource.com/831509Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50156}
      9c858492
  36. 15 Dec, 2017 1 commit
  37. 06 Dec, 2017 1 commit
  38. 05 Dec, 2017 1 commit