1. 10 May, 2021 1 commit
  2. 18 Jan, 2021 1 commit
    • Clemens Backes's avatar
      [wasm][liftoff] Check for unexpected bailout · 589677bc
      Clemens Backes authored
      We are working on getting Liftoff feature complete. Eventually, bailout
      should only happen if experimental features are enabled. Until we are
      there, we also need to allow some more bailouts, which should be removed
      in the near future.
      
      This CL adds a check for expected bailout reasons. The new function
      serves as a burndown list of issues to be fixed.
      
      Drive-by: Make some methods constexpr such that they can be used in
      static assertions.
      
      R=ahaas@chromium.org
      
      Change-Id: I5d3cd8f49a30d01f89ac6cf5321e1314b63eba40
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2629513
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72127}
      589677bc
  3. 18 Jun, 2020 1 commit
  4. 26 Feb, 2020 5 commits
    • Clemens Backes's avatar
      Reland "[wasm] Refactor callback triggering" · 9a96f1bb
      Clemens Backes authored
      This is a reland of 0dc598df
      
      Original change's description:
      > [wasm] Refactor callback triggering
      > 
      > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass
      >    one EnumSet which contains all events to trigger.
      > 2) Remember which events already happened, to avoid triggering them
      >    again.
      > 3) Compute triggered events once after the loop in |OnFinishedUnits|,
      >    instead of checking for every finished unit.
      > 4) When a new callback is registered, trigger all previous events
      >    immediately. This solves issue v8:10217.
      > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
      > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
      >    compiled (this is a minor performance optimization; we save taking
      >    and releasing a lock).
      > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
      >    |Mask| constexpr).
      > 
      > R=ahaas@chromium.org
      > 
      > Bug: v8:10217
      > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66459}
      
      Bug: v8:10217
      Change-Id: I9f7ca424fa7f1d0379dabe230bebf62522dfc857
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074501Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66468}
      9a96f1bb
    • Clemens Backes's avatar
      Revert "[wasm] Refactor callback triggering" · 6a2865d2
      Clemens Backes authored
      This reverts commit 0dc598df.
      
      Reason for revert: Fails the wasm-cache-test blink test.
      
      Original change's description:
      > [wasm] Refactor callback triggering
      > 
      > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass
      >    one EnumSet which contains all events to trigger.
      > 2) Remember which events already happened, to avoid triggering them
      >    again.
      > 3) Compute triggered events once after the loop in |OnFinishedUnits|,
      >    instead of checking for every finished unit.
      > 4) When a new callback is registered, trigger all previous events
      >    immediately. This solves issue v8:10217.
      > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
      > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
      >    compiled (this is a minor performance optimization; we save taking
      >    and releasing a lock).
      > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
      >    |Mask| constexpr).
      > 
      > R=​ahaas@chromium.org
      > 
      > Bug: v8:10217
      > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66459}
      
      TBR=ahaas@chromium.org,clemensb@chromium.org
      
      Change-Id: I564b053e898db5f7b51cefa4626c0625a225c89a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10217
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074638Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66461}
      6a2865d2
    • Clemens Backes's avatar
      [wasm] Refactor callback triggering · 0dc598df
      Clemens Backes authored
      1) Instead of passing three boolean values to |TriggerCallbacks|, pass
         one EnumSet which contains all events to trigger.
      2) Remember which events already happened, to avoid triggering them
         again.
      3) Compute triggered events once after the loop in |OnFinishedUnits|,
         instead of checking for every finished unit.
      4) When a new callback is registered, trigger all previous events
         immediately. This solves issue v8:10217.
      5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
      6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
         compiled (this is a minor performance optimization; we save taking
         and releasing a lock).
      7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
         |Mask| constexpr).
      
      R=ahaas@chromium.org
      
      Bug: v8:10217
      Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66459}
      0dc598df
    • Clemens Backes's avatar
      [base] Extend EnumSet · 1e4b0435
      Clemens Backes authored
      This extends EnumSet by
      1) adding element-wise operations (without first creating an EnumSet of
         that element in the caller),
      2) adding arithmetic assignment operators, and
      3) adding a subtraction operation which removes all elements in another
         EnumSet, or a single element.
      
      R=mlippautz@chromium.org
      
      Change-Id: Ibe694e9e111e506ad09cf9729fa0b0ba38430b79
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071874
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66451}
      1e4b0435
    • Clemens Backes's avatar
      [base] Pass EnumSet by value · 151b85a0
      Clemens Backes authored
      EnumSet hold a single integral field, hence it should be passed by
      value. All users already do this, we are just inconsistent within the
      declaration of EnumSet itself.
      
      R=mlippautz@chromium.org
      
      Change-Id: Ic2cac35fbd8fe3e98c1fe135bd334547dca30ab5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071872Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66447}
      151b85a0
  5. 26 Nov, 2019 1 commit
  6. 16 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Clean up base::EnumSet · 4064757c
      Clemens Hammacher authored
      After moving to its own header, this CL cleans up some parts of the
      interface. It fixes names and const-declarations of simple accessors,
      and adds a named constructor to make it explicit that an EnumSet should
      be constructed from an integral value.
      Also refactor the use in cctest.h to have less statically declared
      constants. Instead, just create the set of extensions in the individual
      tests.
      
      R=titzer@chromium.org
      
      Bug: v8:8562
      Change-Id: I6178d1aba25afa1d7f54c29ccf81505c165e7cd3
      Reviewed-on: https://chromium-review.googlesource.com/c/1409366
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58862}
      4064757c
  7. 15 Jan, 2019 1 commit