1. 27 Apr, 2022 1 commit
  2. 04 Apr, 2022 1 commit
  3. 30 Mar, 2022 1 commit
  4. 16 Mar, 2022 1 commit
    • Clemens Backes's avatar
      [wasm] Fix some WASM comments and outputs · 44c02e18
      Clemens Backes authored
      In text, we should use the properly capitalized "Wasm" instead of
      "WASM". In particular for frame output, other frames typically use
      CamelCase (like "JsToWasmFrame", "ExitFrame", "InternalFrame"), so Wasm
      should do the same.
      The "0xa" comment in some assemblers is also outdated, the current tag
      we emit for StackFrame::WASM is 0x8 (0x4 shifted by one).
      
      R=jkummerow@chromium.org
      
      Bug: v8:12425
      Change-Id: Ic3e00c401b219c28b5424c82efb0f1a9df51690f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3525195Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79498}
      44c02e18
  5. 24 Feb, 2022 1 commit
  6. 23 Feb, 2022 1 commit
    • Jakob Gruber's avatar
      [safepoints] Various refactors · c7e47c30
      Jakob Gruber authored
      A collection of smallish cleanups and improvements for safepoints.
      
      Maintainability:
      - The class names were not very clear; move Safepoint inside
        SafepointTableBuilder to clarify that this wrapper class is used
        during codegen.
      - Rename DefinePointerSlot/DefineRegister to
        DefineTaggedStackSlot/DefineTaggedRegister for clarity.
      - Use named constants instead of -1.
      - DefineTaggedRegister has no connection to kNoDeoptIndex, remove
        the DCHECK and comment.
      - Remove the unused kNumSafepointRegisters constant + other dead code.
      - Small clarifications in CommonFrame::IterateCompiledFrame.
      - Rename has_safepoint_info to uses_safepoint_table and refactor s.t.
        `stack_slots` can be used when `uses_safepoint_table == false`. In
        this case it just returns 0.
      
      Perf:
      - During codegen, represent stack slots as a growable bit vector
        instead of a list of int indices. Extend GrowableBitVector
        functionality to support the above.
      - Track the minimum index instead of iterating all stack slots in
        all safepoints before encoding.
      
      Bug: v8:7700
      Change-Id: If409bc42c825d47fc0074fce51e3b963fd080806
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3483659Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79233}
      c7e47c30
  7. 18 Feb, 2022 1 commit
  8. 03 Feb, 2022 1 commit
    • Thibaud Michaud's avatar
      Reland "Reland "[wasm] Resume suspender on resolved promise"" · dfbe5028
      Thibaud Michaud authored
      This is a reland of f942f656
      
      Changes: Change the order of initialization for wasm continuations to
      ensure object integrity if a GC happens during allocation. Also add
      missing handles.
      
      Original change's description:
      > Reland "[wasm] Resume suspender on resolved promise"
      >
      > This is a reland of a865d16b
      >
      > Changes:
      > - Make the next ID atomic
      > - Leave more space for runtime calls in debug mode
      >
      > Original change's description:
      > > [wasm] Resume suspender on resolved promise
      > >
      > > Implement the WasmResume builtin, which resumes a wasm suspender
      > > when the corresponding JS promise resolves.
      > >
      > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator.
      > > Drive-by 2: Add a stack ID for better tracing.
      > >
      > > R=ahaas@chromium.org
      > > CC=​fgm@chromium.org
      > >
      > > Bug: v8:12191
      > > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827
      > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78842}
      >
      > Bug: v8:12191
      > Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78890}
      
      Bug: v8:12191
      Change-Id: I0e1362d3a9da1fd8c0d600ad9776ce2fd26c6a52
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3434145Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78922}
      dfbe5028
  9. 01 Feb, 2022 2 commits
    • Thibaud Michaud's avatar
      Revert "Reland "[wasm] Resume suspender on resolved promise"" · cb12a3e4
      Thibaud Michaud authored
      This reverts commit f942f656.
      
      Reason for revert: Breaks gc-stress
      
      Original change's description:
      > Reland "[wasm] Resume suspender on resolved promise"
      >
      > This is a reland of a865d16b
      >
      > Changes:
      > - Make the next ID atomic
      > - Leave more space for runtime calls in debug mode
      >
      > Original change's description:
      > > [wasm] Resume suspender on resolved promise
      > >
      > > Implement the WasmResume builtin, which resumes a wasm suspender
      > > when the corresponding JS promise resolves.
      > >
      > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator.
      > > Drive-by 2: Add a stack ID for better tracing.
      > >
      > > R=ahaas@chromium.org
      > > CC=​fgm@chromium.org
      > >
      > > Bug: v8:12191
      > > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827
      > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78842}
      >
      > Bug: v8:12191
      > Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78890}
      
      Bug: v8:12191
      Change-Id: I5037419b6cee7a3bb49c1649e5a5d11a935a9b28
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Auto-submit: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3429500
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Auto-Submit: Thibaud Michaud <thibaudm@chromium.org>
      Owners-Override: Maya Lekova <mslekova@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78893}
      cb12a3e4
    • Thibaud Michaud's avatar
      Reland "[wasm] Resume suspender on resolved promise" · f942f656
      Thibaud Michaud authored
      This is a reland of a865d16b
      
      Changes:
      - Make the next ID atomic
      - Leave more space for runtime calls in debug mode
      
      Original change's description:
      > [wasm] Resume suspender on resolved promise
      >
      > Implement the WasmResume builtin, which resumes a wasm suspender
      > when the corresponding JS promise resolves.
      >
      > Drive-by 1: Fix detection of empty stacks in the stack frame iterator.
      > Drive-by 2: Add a stack ID for better tracing.
      >
      > R=ahaas@chromium.org
      > CC=​fgm@chromium.org
      >
      > Bug: v8:12191
      > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78842}
      
      Bug: v8:12191
      Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78890}
      f942f656
  10. 28 Jan, 2022 2 commits
    • Thibaud Michaud's avatar
      Revert "[wasm] Resume suspender on resolved promise" · 98db248d
      Thibaud Michaud authored
      This reverts commit a865d16b.
      
      Reason for revert: breaks tsan and gc-stress
      
      Original change's description:
      > [wasm] Resume suspender on resolved promise
      >
      > Implement the WasmResume builtin, which resumes a wasm suspender
      > when the corresponding JS promise resolves.
      >
      > Drive-by 1: Fix detection of empty stacks in the stack frame iterator.
      > Drive-by 2: Add a stack ID for better tracing.
      >
      > R=​ahaas@chromium.org
      > CC=​​fgm@chromium.org
      >
      > Bug: v8:12191
      > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78842}
      
      Bug: v8:12191
      Change-Id: I3352c8b1dcc8d99e1bd782a09276add219a3ecda
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3424489
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78845}
      98db248d
    • Thibaud Michaud's avatar
      [wasm] Resume suspender on resolved promise · a865d16b
      Thibaud Michaud authored
      Implement the WasmResume builtin, which resumes a wasm suspender
      when the corresponding JS promise resolves.
      
      Drive-by 1: Fix detection of empty stacks in the stack frame iterator.
      Drive-by 2: Add a stack ID for better tracing.
      
      R=ahaas@chromium.org
      CC=​fgm@chromium.org
      
      Bug: v8:12191
      Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78842}
      a865d16b
  11. 20 Jan, 2022 1 commit
  12. 17 Jan, 2022 1 commit
    • Victor Gomes's avatar
      Reland "[runtime] Adds LocalNameIterator" · 4ebc9b7b
      Victor Gomes authored
      This is a reland of f605d778
      
      Adds a GC safe (using handles) and unsafe versions of the iterator.
      
      V8HeapExplorer needs an unsafe one, since it does not allow the
      creation of handles.
      
      Original change's description:
      > [runtime] Adds LocalNameIterator
      >
      > ScopeInfo will contain either inlined (array) local names or
      > a hash table (names => index) containing the local names.
      >
      > We abstract iteration with LocalNameIterator and remove
      > ContextLocalName since accessing a local name by index in
      > the hash table would be expensive.
      >
      > This CL only implements the iterator for the array.
      >
      > Bug: v8:12315
      > Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78623}
      
      Bug: v8:12315
      Change-Id: I6288a08b9c342cd3a9cabcb621c40bb44c08c9c4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3394706Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78653}
      4ebc9b7b
  13. 14 Jan, 2022 3 commits
  14. 04 Jan, 2022 1 commit
  15. 03 Jan, 2022 1 commit
    • Benedikt Meurer's avatar
      [debug] Lazily lookup source positions for StackFrameInfo. · 2ffc79b7
      Benedikt Meurer authored
      This changes the StackFrameInfo to either hold on to a pair of
      
        (Script,source position)
      
      or a pair of
      
        (SharedFunctioInfo,bytecode offset)
      
      similar to what we do for MessageLocation. The idea here is to defer the
      costly bytecode offset to source position lookup until really needed,
      and in particular, avoid the costly lookup during stack trace capturing.
      
      On the `standalone.js` benchmark in crbug.com/1283162#c1, this reduces
      overall average execution time by roughly 25%, and the performance is
      almost back to where it was before crrev.com/c/3302794 (being only 12%
      slower than before on the `standalone.js` test case).
      
      Note that due to unrelated limitations we cannot encode -1 as bytecode
      offset in the flags field of the StackFrameInfo, and so we treat this
      case specially (happens when stack trace capturing is triggered in the
      function entry sequence) and just eagerly resolve it to the source
      position.
      
      Bug: chromium:1278650, chromium:1283162, chromium:1280803
      Bug: chromium:1280818, chromium:1280831, chromium:1280832
      Doc: https://bit.ly/v8-cheaper-inspector-stack-traces
      Change-Id: If7cf62fce48d32c0f188895d1f8c9eee51b9e70d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359633Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78466}
      2ffc79b7
  16. 16 Dec, 2021 1 commit
  17. 15 Dec, 2021 1 commit
  18. 14 Dec, 2021 1 commit
  19. 13 Dec, 2021 1 commit
  20. 09 Dec, 2021 1 commit
    • Thibaud Michaud's avatar
      [wasm] Fix wasm stack segment iterator · a8d4ff7d
      Thibaud Michaud authored
      Only initialize the superclass fields initially. The constructor was
      using an overload of the same class's constructor instead. In most cases
      this still behaved as expected because the {frame_} field would be
      overwritten with the right value inside the constructor. But when the
      stack segment is empty we would keep the wrong value from the
      ThreadLocalTop info instead of {nullptr}.
      
      R=jkummerow@chromium.org
      
      Bug: v8:12191, v8:12485
      Change-Id: Iff6a7ea7c8501deaee9ac9f95cd066d965ddbe09
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3326241Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78319}
      a8d4ff7d
  21. 08 Dec, 2021 1 commit
  22. 02 Dec, 2021 1 commit
  23. 22 Nov, 2021 1 commit
    • Clemens Backes's avatar
      [codegen] Avoid unused fields in safepoint table · 0580829f
      Clemens Backes authored
      Many safepoint tables do not contain any deoptimization info and/or no
      callee-saved registers. Do not emit empty fields for all entries in this
      case.
      This often shrinks the size of the encoded safepoint table by more than
      50%.
      
      Drive-by cleanups:
      - Rename fields of the safepoint table entries to clarify their meaning
      ("tagged slots" instead of "bits", "tagged register indexes" instead of
       "register bits").
      - Include the PC in the decoded {SafepointEntry} to make it the single
      source of truth.
      
      R=jkummerow@chromium.org
      
      Bug: v8:12401
      Change-Id: If5c24a688a434842ed3b6427f5f1f3ea9232173a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289173Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78021}
      0580829f
  24. 18 Nov, 2021 1 commit
  25. 09 Nov, 2021 1 commit
  26. 08 Nov, 2021 1 commit
  27. 05 Nov, 2021 1 commit
  28. 27 Oct, 2021 1 commit
  29. 20 Oct, 2021 1 commit
  30. 07 Oct, 2021 1 commit
  31. 24 Sep, 2021 2 commits
  32. 16 Sep, 2021 2 commits
  33. 09 Sep, 2021 1 commit
  34. 07 Sep, 2021 1 commit