1. 18 Feb, 2022 1 commit
    • Dominik Inführ's avatar
      [compiler] Always use full version of RecordWrite builtin · 1b437aa8
      Dominik Inführ authored
      When we know that the value in a write barrier is a map, we know that
      we are not going to have an old-to-new reference (maps are always in
      old generation). Therefore we also don't really need the generational
      barrier in RecordWrite. While this is technically correct, we don't
      gain much from this optimization. The inline and out-of-line generated
      code for the barrier is still the same as in all other cases. Which
      means that outside marking we don't even reach the RecordWrite builtin.
      Most write barrier executions happen outside incremental marking, hence
      performance of the incremental marking barrier isn't critical. This CL
      always uses the full RecordWrite builtin using a flag in order to
      allow for an easy revert.
      
      This CL is motivated by the shared heap work, which needs an additional
      always-on barrier in the future (similar to OLD_TO_NEW) to keep a
      OLD_TO_SHARED remembered set up-to-date. While maps are always in the
      old generation, they maybe by located in the shared heap.
      
      Bug: v8:11708
      Change-Id: I71a6ded2547a0b2bbb9bbbd796dbcae0987b2232
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3471854Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79160}
      1b437aa8
  2. 17 Feb, 2022 1 commit
  3. 15 Feb, 2022 5 commits
  4. 11 Feb, 2022 1 commit
  5. 10 Feb, 2022 1 commit
  6. 07 Feb, 2022 1 commit
  7. 04 Feb, 2022 2 commits
    • Junliang Yan's avatar
      s390x: [baseline] enable sparkplug on s390x · 78bc7852
      Junliang Yan authored
      Change-Id: I4646bb0f3f6291c97bb4b397d6248b9bdaa2059a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3439641Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
      Commit-Queue: Junliang Yan <junyan@redhat.com>
      Cr-Commit-Position: refs/heads/main@{#78959}
      78bc7852
    • Seth Brenith's avatar
      Add verifier for retaining paths in heap snapshots · d937a0bb
      Seth Brenith authored
      The web app owner who notified me about bugs v8:12112 and v8:12126 asked
      me a reasonable question: "how am I ever supposed to trust the retaining
      paths in the devtools, if the heap snapshot is generated by a different
      component than the actual marking code?". This change is my attempt to
      answer that question. If verification is enabled, the heap snapshot
      generator will visit each heap object with a realistic marking visitor
      to find all references from that object. It will then check that those
      references match the HeapGraphEdges in the snapshot.
      
      I also considered the idea that we could collect retaining information
      during the last GC cycle before taking the heap snapshot, or during an
      extra GC cycle immediately after. However, running the full GC provides
      the embedder with the opportunity to run arbitrary code (including JS)
      both before and after PerformGarbageCollection, so there is no clear
      guarantee that the heap state during the snapshot actually matches the
      heap state during marking.
      
      Bug: v8:12112, v8:12126
      Change-Id: Id29e75ecf9eee19e35daedbdb4a3e1df64785380
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3299590Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/main@{#78952}
      d937a0bb
  8. 01 Feb, 2022 1 commit
  9. 31 Jan, 2022 1 commit
  10. 28 Jan, 2022 1 commit
    • Dominik Inführ's avatar
      [heap] Compact map space with --compact-map-space · fff5ed12
      Dominik Inführ authored
      Enable compaction of objects in the map space during a full GC. So far
      pages in the map space were never chosen as evacuation candidates. We
      might be able to improve memory usage a bit by also compacting map
      space. Luckily for us the marking barrier was already emitted when
      updating an object's map word.
      
      This CL adds a new flag FLAG_compact_map_space to easily turn off this
      feature again. For now we keep this flag (and with that map space
      compaction) disabled by default. So GC behavior does not change with
      this CL.
      
      Bug: v8:12578
      Change-Id: I99c0cd826bd824af5383fb3ce64796693a59d1ff
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404775Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78844}
      fff5ed12
  11. 27 Jan, 2022 1 commit
  12. 25 Jan, 2022 1 commit
  13. 24 Jan, 2022 1 commit
  14. 20 Jan, 2022 1 commit
  15. 17 Jan, 2022 1 commit
  16. 15 Jan, 2022 1 commit
  17. 13 Jan, 2022 1 commit
  18. 11 Jan, 2022 1 commit
  19. 10 Jan, 2022 2 commits
  20. 07 Jan, 2022 1 commit
  21. 05 Jan, 2022 1 commit
  22. 16 Dec, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm][turbofan] Inline before loop unrolling · b9855173
      Manos Koukoutos authored
      We switch the order of inlining and loop unrolling optimizations. This
      gives small improvements to wasm-gc benchmarks.
      Changes:
      - Change the loop analysis algorithm to accept loops directly connected
        to the graph's end. This is required because some nodes in an inlined
        function, such as tail calls, might be directly connected to the outer
        function's end without an intervening LoopExit node.
      - Based on the above, skip emitting loop exits for some Throw nodes in
        WasmGraphBuildingInterface.
      - Introduce WasmInliningPhase, add it before loop unrolling. Remove
        inlining from WasmOptimizationPhase.
      - Handle graph terminators in loop unrolling.
      - Add loops in the inlined function to the callers loop_infos.
      Drive-by:
      - Allow more wasm builtins in unrolled loops.
      - Reduce inlining parameters to reflect that functions are now slightly
        smaller during inlining, as no unrolling has taken place yet.
      
      Bug: v8:12166
      Change-Id: Iadd6b2f75170aa153ca1efb47fbb0d185c2b8371
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329783Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78394}
      b9855173
  23. 15 Dec, 2021 2 commits
  24. 14 Dec, 2021 2 commits
  25. 13 Dec, 2021 1 commit
  26. 08 Dec, 2021 4 commits
  27. 07 Dec, 2021 1 commit
    • Dominik Inführ's avatar
      [heap] Fix marking state regression · e7fbe09d
      Dominik Inführ authored
      Concurrent marking got accidentally disabled because
      V8_ATOMIC_MARKING_STATE got removed.
      
      Bug: v8:12470, chromium:1277264, chromium:1277330, chromium:1277392
      Bug: chromium:1277287, chromium:1277260, chromium:1277259
      Bug: chromium:1277256, chromium:1277252, chromium:1277250
      Bug: chromium:1277254, chromium:1277251
      Change-Id: I21211e8f6d3a65714ba3204e87863b71af42d82d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3318663
      Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78269}
      e7fbe09d
  28. 06 Dec, 2021 2 commits