1. 16 Aug, 2021 1 commit
  2. 15 Jul, 2021 1 commit
  3. 11 Jun, 2021 1 commit
    • Dan Elphick's avatar
      [build] Reduce size of inline header cycles · c26965bd
      Dan Elphick authored
      This removes/replaces header includes with the aim of shrinking the
      size of the inline header cycle. Specifically before this CL, there was
      a single Strongly-Connected Component comprising 60 header files from
      src/objects and src/heap.
      
      Now there are two 2 SCCs. The src/heap SCC has 6 files and depends on
      the src/objects SCC, which has 50 files. Additionally some previously
      implicit dependencies have been added.
      
      Dependencies calculated using:
      git grep "#include \"" *.h *.cc | sed 's/:#include "/ /;s/".*$//' | \
      awk 'BEGIN {print "digraph deps {" } END {print "}"} {print "\""$1"\" -> \""$2"\""}'
      
      SCCs found using sccmap from graphviz.
      
      Also removes unused Cell::FromValueAddress method.
      
      Change-Id: Ib19d00ccd14e490ee64d57be4d99b1b3686ac32a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951734Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75103}
      c26965bd
  4. 15 May, 2021 1 commit
  5. 19 Apr, 2021 1 commit
  6. 09 Feb, 2021 1 commit
  7. 21 Jan, 2021 1 commit
  8. 12 Oct, 2020 1 commit
  9. 09 Sep, 2020 1 commit
  10. 25 Aug, 2020 3 commits
  11. 02 Jul, 2020 1 commit
  12. 14 Nov, 2019 1 commit
  13. 25 Sep, 2019 1 commit
  14. 13 Sep, 2019 2 commits
  15. 09 Aug, 2019 1 commit
    • Clemens Hammacher's avatar
      Reland "[wasm] Test concurrent code emission" · a2b98b60
      Clemens Hammacher authored
      This is a reland of 11524453
      
      Original change's description:
      > [wasm] Test concurrent code emission
      > 
      > This extends the jump table stress test. Currently, we generate
      > different thunks (on the main thread) and then concurrently update the
      > jump table to jump to one of these thunks.
      > With this CL, we also generate the thunks concurrently. So this also
      > tests whether there is proper synchronization between code generation
      > and executing it in another thread.
      > 
      > R=ahaas@chromium.org, mstarzinger@chromium.org
      > 
      > Bug: v8:9477
      > Change-Id: I3598329e37482ebd27a13acc752581c714226184
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735319
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63097}
      
      Bug: v8:9477
      Change-Id: Iac696f1ff3cd5209231a8dd8d1500cf77c2777b8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1739370
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63138}
      a2b98b60
  16. 06 Aug, 2019 2 commits
    • Michael Achenbach's avatar
      Revert "[wasm] Test concurrent code emission" · 708995b6
      Michael Achenbach authored
      This reverts commit 11524453.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/27728
      
      Original change's description:
      > [wasm] Test concurrent code emission
      > 
      > This extends the jump table stress test. Currently, we generate
      > different thunks (on the main thread) and then concurrently update the
      > jump table to jump to one of these thunks.
      > With this CL, we also generate the thunks concurrently. So this also
      > tests whether there is proper synchronization between code generation
      > and executing it in another thread.
      > 
      > R=​ahaas@chromium.org, mstarzinger@chromium.org
      > 
      > Bug: v8:9477
      > Change-Id: I3598329e37482ebd27a13acc752581c714226184
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735319
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#63097}
      
      TBR=mstarzinger@chromium.org,ahaas@chromium.org,clemensh@chromium.org
      
      Change-Id: I1c95cb43aa23340913de9cfad9988d0c583cc266
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9477
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1739368Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63100}
      708995b6
    • Clemens Hammacher's avatar
      [wasm] Test concurrent code emission · 11524453
      Clemens Hammacher authored
      This extends the jump table stress test. Currently, we generate
      different thunks (on the main thread) and then concurrently update the
      jump table to jump to one of these thunks.
      With this CL, we also generate the thunks concurrently. So this also
      tests whether there is proper synchronization between code generation
      and executing it in another thread.
      
      R=ahaas@chromium.org, mstarzinger@chromium.org
      
      Bug: v8:9477
      Change-Id: I3598329e37482ebd27a13acc752581c714226184
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735319Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63097}
      11524453
  17. 30 Jul, 2019 2 commits
  18. 15 Jul, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Split jump table and lazy compile table · 56eaec9d
      Clemens Hammacher authored
      We had both jump slots and lazy compile slots in the same table. This
      increases the space per slot to the maximum of the two, even though we
      often do not use lazy compilation and could have smaller jump slots.
      This CL splits the two into two separate tables. The lazy compile table
      will only be created on demand, and will never be patched.
      The jump table now only contains jumps, and is more compact (which
      might improve performance because of improved locality).
      
      R=mstarzinger@chromium.org
      
      Bug: v8:9477
      Change-Id: Ie182873a1ec612f71d1b54447021a9a8f8ca59db
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1698393Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62707}
      56eaec9d
  19. 23 May, 2019 1 commit
  20. 22 May, 2019 1 commit
  21. 21 May, 2019 1 commit
  22. 11 Apr, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm][x64] Use near jump in jump table · 3cd6705f
      Clemens Hammacher authored
      On x64, we allocate one big code region such that we can use near jumps
      and near calls. The jump table did not make use of that design yet.
      This CL changes that by emitting jump table slots as near jumps. This
      also speeds up patching jump table slots significantly, since far jumps
      populate the inline constant pool, which is unneeded overhead in this
      case.
      As a drive-by, this CL cleans up the API of near_call and near_jmp. The
      current semantics is broken, and only works because this is only used
      for WebAssembly calls which are patched anyway after code generation.
      Also, x64 now uses the same path in test-jump-table-assembler.cc as
      arm64 to ensure that all targets are within near-call-distance.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8916
      Change-Id: Iffc34e248b72167307ffdab62dd2212c4ae86a32
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561313Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60777}
      3cd6705f
  23. 01 Mar, 2019 1 commit
  24. 20 Feb, 2019 1 commit
  25. 17 Jan, 2019 1 commit
  26. 28 Nov, 2018 1 commit
  27. 20 Nov, 2018 1 commit
  28. 24 Aug, 2018 1 commit
  29. 09 Aug, 2018 1 commit
  30. 08 Aug, 2018 1 commit
  31. 07 Aug, 2018 1 commit
    • Michael Starzinger's avatar
      [wasm] Support concurrent patching of jump table. · 7579b1e3
      Michael Starzinger authored
      This adds initial support for concurrently patching jump table slots. It
      is needed once different Isolates share code (for the --wasm-shared-code
      feature). We need to ensure that instructions holding the target address
      within a jump table slot do not cross cache-line boundaries. To do this,
      the jump table has been split into consecutive pages.
      
      Note that this also adds a stress test for multiple threads hammering at
      a single slot concurrently. The test is currently limited to the ia32
      and the x64 architecture, but will be extended to cover others. The test
      reliably triggers tearing of the target address on almost every run of
      the test and hence serves to prevent regressions.
      
      R=clemensh@chromium.org
      TEST=cctest/test-jump-table-assembler
      BUG=v8:8018
      
      Change-Id: Ife56bbb61ffcae5d8906ca7b8c604b195603707c
      Reviewed-on: https://chromium-review.googlesource.com/1163664
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54942}
      7579b1e3