1. 03 Dec, 2020 1 commit
  2. 06 Aug, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Remove ExecutionTier::kInterpreter · 0c918bd8
      Clemens Backes authored
      The interpreter is not an execution tier in production any more. It's
      only used in tests.
      Thus, remove {ExecutionTier::kInterpreter} and instead add a
      {TestExecutionTier} that still has {kInterpreter}.
      
      If needed (in {TestingModuleBuilder::execution_tier()}), we translate
      back from {TestExecutionTier} to {ExecutionTier} (for {kLiftoff} and
      {kTurboFan} only).
      
      The {TraceMemoryOperation} method, which is shared between interpreter
      and production code, now receives a {base::Optional<ExecutionTier>}, and
      we will just pass en empty optional if called from the interpreter.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10389
      Change-Id: Ibe133b91e8dca6d6edbfaee5ffa0d7fe72ed6d64
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2335186Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69260}
      0c918bd8
  3. 12 Jun, 2020 1 commit
  4. 05 May, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Remove interpreter entry code · 61c2a0f4
      Clemens Backes authored
      This removes the interpreter entry stubs, which are used to redirect
      specific wasm functions to the interpreter. It is only needed when
      mixing JS code with interpreted Wasm code, otherwise the test functions
      just call the interpreter directly.
      Thus a lot of tests that contain such interaction between JS and Wasm
      need to be restricted to execute in Liftoff and TurboFan only.
      
      After this CL, the WASM_INTERPRETER_ENTRY frame type and the
      corresponding WasmInterpreterEntryFrame are dead, and will be removed in
      a follow-up CL.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10389
      Change-Id: I8e50d350dbc2afcc1cddaeb98baf23711117af2d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172962
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67559}
      61c2a0f4
  5. 23 Mar, 2020 1 commit
  6. 28 Nov, 2019 1 commit
    • Clemens Backes's avatar
      [wasm] Clean up WASM_CALL_INDIRECT macros · a183b8be
      Clemens Backes authored
      Fix a TODO from Ben to change the macro argument order to match the
      actual order in wasm code.
      After this fix, we can remove the individual {WASM_CALL_INDIRECT[0-5]}
      macros and implement them via a common variadic macro.
      
      Also, rename {WASM_CALL_INDIRECT_TABLE0} to {WASM_CALL_INDIRECT_TABLE}.
      The name was confusing, because this macro explictly allows to set a
      table index different from 0. Thus, just drop the "0" in the name.
      
      The individual test changes were done via a vim macro, to avoid manual
      errors.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:10021
      Change-Id: I9f0f31511c5c6e20a0b07524bf75fe9cf1598eba
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1940265Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65242}
      a183b8be
  7. 22 May, 2019 1 commit
    • Andreas Haas's avatar
      [wasm][anyref] Cache export wrappers per signature · d56ee2e3
      Andreas Haas authored
      Up until now, we cached export wrappers per export index. With the
      anyref proposal potentially many more functions will need export
      wrappers, e.g. any function that is stored in a table, and any
      function accessed by the new ref.func instruction.
      
      With this CL, we change the caching scheme an do the caching per
      signature. Thereby we can guarantee that any export wrapper which
      potentially exists can be stored in the cache.
      
      For cctests which use wasm-run-utils, we don't know the size of the
      cache anymore ahead of time. However, we assume that no more than
      5 signatures will be used in any cctest. If this assumption is not
      true, we can just adjust the number.
      
      The cache is now accessed in all code paths where we need an export
      wrapper.
      
      Bug: chromium:962850
      
      Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61752}
      d56ee2e3
  8. 17 May, 2019 1 commit
  9. 16 May, 2019 2 commits
  10. 21 Mar, 2019 1 commit
    • Ben Smith's avatar
      [wasm] Call through dispatch table in interpreter · 1a88414c
      Ben Smith authored
      When running wasm tests, the interpreter previously used a static
      collection of function indexes stored in WasmTable to perform
      call_indirect calls internal to that module. This has the wrong behavior
      if the table is changed (via WasmTableObject::Set, `table.copy`, or
      `table.init`).
      
      This CL changes the cctests to always generate an intepreter entry for
      all functions, and stores those entries in the dispatch table. This
      allows us to use the same execution path as for non-testing code.
      
      The interpreter entry compiler needed to be changed to support
      multi-value returns too, since a 64-bit integer return value may be
      lowered to two 32-bit integer returns.
      
      Bug: v8:9016
      Change-Id: I277df21ffde5c2eee0b691fcc9bab2b1a43eeffc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531137
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60380}
      1a88414c
  11. 19 Feb, 2019 1 commit
  12. 07 Feb, 2019 1 commit
  13. 01 Feb, 2019 1 commit
  14. 31 Jan, 2019 1 commit
    • Michael Starzinger's avatar
      [wasm] Support exceptions between interpreter frames. · 5b8c7f84
      Michael Starzinger authored
      This adds support for handling exceptions between different frames of
      one single interpreter activation. Frames are dropped until a local
      handler is found. If none is found in the current activation then we
      delegate to the existing stack unwinding mechanism to deal with multiple
      activations interspersed with non-interpreter stack frames on the actual
      machine stack.
      
      R=clemensh@chromium.org
      TEST=cctest/test-run-wasm-exceptions
      BUG=v8:8091
      
      Change-Id: Ia4abb27ff037bf0d3e3b05721bd3c971ef820e3c
      Reviewed-on: https://chromium-review.googlesource.com/c/1445989
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59228}
      5b8c7f84
  15. 30 Jan, 2019 2 commits
  16. 28 Jan, 2019 2 commits