1. 22 Jun, 2022 4 commits
  2. 21 Jun, 2022 28 commits
  3. 20 Jun, 2022 8 commits
    • Nico Hartmann's avatar
      Revert "[sandbox] Also enable the sandbox outside of Chromium builds" · c878117f
      Nico Hartmann authored
      This reverts commit 5b9401dd.
      
      Reason for revert: A few memory tests flake on tsan (e.g. https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20isolates/20190/overview)
      
      Original change's description:
      > [sandbox] Also enable the sandbox outside of Chromium builds
      >
      > Drive-by: include the right header in sandboxed-pointer-inl.h and fix
      > missing sandbox initialization in generate-bytecode-expectations.cc.
      >
      > Bug: v8:10391
      > Change-Id: Ic39ba04b7c98eaa58ea3943189c23b297f581f5a
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3630082
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Commit-Queue: Samuel Groß <saelo@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#81216}
      
      Bug: v8:10391
      Change-Id: I22560a6bdcffbf71651f655bdf7d183d5c832620
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714239
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81256}
      c878117f
    • Clemens Backes's avatar
      [liftoff] Fix PopToModifiableRegister · 4f70151d
      Clemens Backes authored
      PopToModifiableRegister did not check the {pinned} list, so it could
      return a register which was already used for another (temporary) value.
      This CL fixes that, and adds a little optimization which gives more
      freedom to the choice of spilling and has a chance to avoid a register
      mode.
      
      R=jkummerow@chromium.org
      
      Bug: chromium:1337221
      Change-Id: Ifc02321038713ff03e8f8e7db78dde33f70ec847
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3707287Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81255}
      4f70151d
    • Samuel Groß's avatar
      [sandbox] Add ApiCheck in v8::ArrayBuffer::NewBackingStore · f6e18e9a
      Samuel Groß authored
      Previously, when embedders attempted to create ArrayBuffers backed by
      memory outside the sandbox, V8 would simply crash with a failed CHECK
      when converting the raw backing store pointer into a SandboxedPointer.
      The new ApiCheck now provides a better error message in that case.
      
      Bug: chromium:1218005
      Change-Id: I7a1ad8cbf07fa346b1f09521850df9b18b428427
      Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3711882Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Samuel Groß <saelo@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81254}
      f6e18e9a
    • Andreas Haas's avatar
      Reland "[wasm] Use the API callback to resolve the wasm result promise" · 438dc0d3
      Andreas Haas authored
      The original CL used Object::Set to create the result object of
      WebAssembly instantiation. However, Object::Set is potentially
      observable from JavaScript, and therefore required a MicrotasksScope.
      This CL replaces the use of Object::Set with Object::CreateDataProperty.
      
      Original message:
      
      This CL switches resolving and rejecting the wasm result promise from
      the V8-internal API to the external API added in
      https://chromium-review.googlesource.com/c/v8/v8/+/3695584.
      
      This CL can land once Chrome provided an implementation of the callback.
      
      R=jkummerow@chromium.org
      
      Bug: v8:12953
      Change-Id: If1f252736fd3a13024d4b38adebf468530c59c03
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714234Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81253}
      438dc0d3
    • Toon Verwaest's avatar
      [maglev] Various regalloc fixes · e16e8d8b
      Toon Verwaest authored
        * Move fixed temporary allocation before arbitrary input allocation,
          so that fixed temporaries don't accidentally clobber the arbitrary
          input register. Now the input allocation will pick a different
          register.
        * For the above, make temporary allocation 'block' the register with a
          sentinel value, rather than marking it free, so that the subsequent
          input allocation knows not to use those registers (including
          spilling into them).
        * Similarly, move arbitrary input allocation after phi resolution when
          allocating control nodes, since phis may have fixed requirements.
        * Allow deopts to spill their inputs if they are not in registers and
          not yet loadable. This is done during the equivalent of input
          allocation for deopts.
        * Allow there to be multiple targets for a single source during gap
          move collection / cycle detection. There can still only be a single
          source per target, therefore there can only be one cycle for each
          connected component -- this is DCHECKed.
        * Make register validation more complete -- also walk the entire
          graph, and check whether value nodes' result register states match
          the current register allocator state.
        * Add much more printing to --trace-maglev-regalloc because these bugs
          ain't easy to debug.
      
      Bug: v8:7700
      Change-Id: Id98259c2920d772ce168bf27497162e78b136f9f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714235
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81252}
      e16e8d8b
    • JianxiaoLuIntel's avatar
      [serializer]: Fix DisableGCStats · 6697ae18
      JianxiaoLuIntel authored
      This bug may lead to gc_stats tracing doesn't stop after chrome://tracing stop as expected.
      
      Change-Id: Ibc2ece4c0ad536a99c4aece039ef546d152df10a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3709242Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com>
      Cr-Commit-Position: refs/heads/main@{#81251}
      6697ae18
    • Clemens Backes's avatar
      [liftoff] Fix implicit conversion to LiftoffRegList · b84c7dbd
      Clemens Backes authored
      According to the style guide, the implicit conversion of any number of
      registers to a LiftoffRegList should not be there. This CL removes it,
      and fixes two subideal call sites to use SpillRegister (receiving a
      single register) instead of SpillOneRegister (receiving a register list
      to choose from).
      
      Plus some semantics-preserving rewrites.
      
      R=jkummerow@chromium.org
      
      Bug: chromium:1337221
      Change-Id: Id22043ac1c185bc794dbde7baa4b1d5ab7cce56e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3707286Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81250}
      b84c7dbd
    • Jakob Kummerow's avatar
      [wasm] Fix tier-up budget tracking for recursive calls · 15f372af
      Jakob Kummerow authored
      In the previous implementation, functions overwrote any budget
      decrements caused by recursive invocations of themselves, which
      could cause tier-up decisions for certain unlucky functions to
      get delayed unreasonably long.
      This patch avoids this by working with the on-instance value
      directly instead of caching it in a stack slot. That generates
      the same amount of Liftoff code as the status quo, but handles
      recursive functions properly.
      The "barista3" benchmark's peak performance improves by almost 20%.
      
      Bug: v8:12281
      Change-Id: I8b487a88da99c2d22e132f2cc72bdf36aa5f6e63
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693710
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81249}
      15f372af