1. 14 Feb, 2022 1 commit
    • Dominik Inführ's avatar
      Reland^3 [heap] Support client-to-shared refs in Code objects · e459c84b
      Dominik Inführ authored
      This is a reland of 2694b75e
      
      The reason for the revert was fixed and landed in
      https://crrrev.com/c/3456023, together with all changes in d8.cc. This
      reland itself doesn't change the CL apart from rebasing.
      
      Original change's description:
      > Reland "Reland "[heap] Support client-to-shared refs in Code objects""
      >
      > This is a reland of 4b8f1b1c
      >
      > After landing https://crrev.com/c/3447371, we can reland this CL as-is
      > correctness-wise.
      >
      > What's new in this CL is that we now treat references from client
      > objects into the shared heap as roots for the --track-retaining-path
      > feature.
      >
      > Original change's description:
      > > Reland "[heap] Support client-to-shared refs in Code objects"
      > >
      > > This is a reland of 12e46091
      > >
      > > Original change's description:
      > > > [heap] Support client-to-shared refs in Code objects
      > > >
      > > > Support references from code objects in the client heaps to shared heap objects. Such references are stored in a remembered set during marking, which is later used for updating pointers.
      > > >
      > > > Bug: v8:11708
      > > > Change-Id: I8aeb508ddd14514ca65fa5acf3030dd8c2040168
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401588
      > > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > > > Cr-Commit-Position: refs/heads/main@{#78819}
      > >
      > > Bug: v8:11708
      > > Change-Id: I47bcf44b452fcffe8675fba03244b736ede14247
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422630
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78838}
      >
      > Bug: v8:11708
      > Change-Id: I5b48e942fa469eabb40e797e221d06c25af16443
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3425358
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79023}
      
      Bug: v8:11708
      Change-Id: I83de1dc4dc4701cba4936a68923f6d9b97f7a6a8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455242Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79070}
      e459c84b
  2. 10 Feb, 2022 2 commits
    • Dominik Inführ's avatar
      Revert "Reland "Reland "[heap] Support client-to-shared refs in Code objects""" · cf7234cc
      Dominik Inführ authored
      This reverts commit 2694b75e.
      
      Reason for revert: Causes timeouts on waterfall (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20debug/38375/overview)
      
      Original change's description:
      > Reland "Reland "[heap] Support client-to-shared refs in Code objects""
      >
      > This is a reland of 4b8f1b1c
      >
      > After landing https://crrev.com/c/3447371, we can reland this CL as-is
      > correctness-wise.
      >
      > What's new in this CL is that we now treat references from client
      > objects into the shared heap as roots for the --track-retaining-path
      > feature.
      >
      > Original change's description:
      > > Reland "[heap] Support client-to-shared refs in Code objects"
      > >
      > > This is a reland of 12e46091
      > >
      > > Original change's description:
      > > > [heap] Support client-to-shared refs in Code objects
      > > >
      > > > Support references from code objects in the client heaps to shared heap objects. Such references are stored in a remembered set during marking, which is later used for updating pointers.
      > > >
      > > > Bug: v8:11708
      > > > Change-Id: I8aeb508ddd14514ca65fa5acf3030dd8c2040168
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401588
      > > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > > > Cr-Commit-Position: refs/heads/main@{#78819}
      > >
      > > Bug: v8:11708
      > > Change-Id: I47bcf44b452fcffe8675fba03244b736ede14247
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422630
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78838}
      >
      > Bug: v8:11708
      > Change-Id: I5b48e942fa469eabb40e797e221d06c25af16443
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3425358
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79023}
      
      Bug: v8:11708
      Change-Id: I3c5cb945261882122cd76a50aba5237106a25b65
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3451719
      Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79026}
      cf7234cc
    • Dominik Inführ's avatar
      Reland "Reland "[heap] Support client-to-shared refs in Code objects"" · 2694b75e
      Dominik Inführ authored
      This is a reland of 4b8f1b1c
      
      After landing https://crrev.com/c/3447371, we can reland this CL as-is
      correctness-wise.
      
      What's new in this CL is that we now treat references from client
      objects into the shared heap as roots for the --track-retaining-path
      feature.
      
      Original change's description:
      > Reland "[heap] Support client-to-shared refs in Code objects"
      >
      > This is a reland of 12e46091
      >
      > Original change's description:
      > > [heap] Support client-to-shared refs in Code objects
      > >
      > > Support references from code objects in the client heaps to shared heap objects. Such references are stored in a remembered set during marking, which is later used for updating pointers.
      > >
      > > Bug: v8:11708
      > > Change-Id: I8aeb508ddd14514ca65fa5acf3030dd8c2040168
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401588
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78819}
      >
      > Bug: v8:11708
      > Change-Id: I47bcf44b452fcffe8675fba03244b736ede14247
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422630
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78838}
      
      Bug: v8:11708
      Change-Id: I5b48e942fa469eabb40e797e221d06c25af16443
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3425358Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79023}
      2694b75e
  3. 09 Feb, 2022 1 commit
  4. 28 Jan, 2022 2 commits
  5. 27 Jan, 2022 2 commits
  6. 26 Jan, 2022 3 commits
    • Shu-yu Guo's avatar
      Reland^2 "[string] Support shared strings in Value{Serializer,Deserializer}" · fc23bc1d
      Shu-yu Guo authored
      This is a reland of 5320fe8d
      
      Changes since revert:
      - Remove stale DCHECK in deserializer
      
      Original change's description:
      > Reland "[string] Support shared strings in Value{Serializer,Deserializer}"
      >
      > This is a reland of 3cb4039c
      >
      > Changes since revert:
      > - Fix FLAG_stress_scavenge interaction with shared Isolate
      > - Use the shared Isolate's global handles to keep shared values
      >   alive in transit during a postMessage
      >
      > Original change's description:
      > > [string] Support shared strings in Value{Serializer,Deserializer}
      > >
      > > When FLAG_shared_string_table is true, postMessaging strings will share
      > > instead of copy.
      > >
      > > Note that not all operations on shared strings are supported, and shared
      > > strings may be slower than non-shared strings for some operations.
      
      Bug: v8:12007
      Change-Id: I70782978ed05558615eca03bafc4c12eba3644ca
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3417189Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78791}
      fc23bc1d
    • Nico Hartmann's avatar
      Revert "Reland "[string] Support shared strings in Value{Serializer,Deserializer}"" · 199f1c2a
      Nico Hartmann authored
      This reverts commit 5320fe8d.
      
      Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20debug/38175/overview
      
      Original change's description:
      > Reland "[string] Support shared strings in Value{Serializer,Deserializer}"
      >
      > This is a reland of 3cb4039c
      >
      > Changes since revert:
      > - Fix FLAG_stress_scavenge interaction with shared Isolate
      > - Use the shared Isolate's global handles to keep shared values
      >   alive in transit during a postMessage
      >
      > Original change's description:
      > > [string] Support shared strings in Value{Serializer,Deserializer}
      > >
      > > When FLAG_shared_string_table is true, postMessaging strings will share
      > > instead of copy.
      > >
      > > Note that not all operations on shared strings are supported, and shared
      > > strings may be slower than non-shared strings for some operations.
      > >
      > > Bug: v8:12007
      > > Change-Id: I3462128e15410d2568868143571571b3025722c1
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277250
      > > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#78614}
      >
      > Bug: v8:12007
      > Change-Id: I5d9b99b2dac6f26d5ef046d7aec94f1a1d219419
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3389533
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78761}
      
      Bug: v8:12007
      Change-Id: Ie8e54b30055324e6592562450b51d5a11e11c9d0
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3416232
      Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
      Owners-Override: Nico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78762}
      199f1c2a
    • Shu-yu Guo's avatar
      Reland "[string] Support shared strings in Value{Serializer,Deserializer}" · 5320fe8d
      Shu-yu Guo authored
      This is a reland of 3cb4039c
      
      Changes since revert:
      - Fix FLAG_stress_scavenge interaction with shared Isolate
      - Use the shared Isolate's global handles to keep shared values
        alive in transit during a postMessage
      
      Original change's description:
      > [string] Support shared strings in Value{Serializer,Deserializer}
      >
      > When FLAG_shared_string_table is true, postMessaging strings will share
      > instead of copy.
      >
      > Note that not all operations on shared strings are supported, and shared
      > strings may be slower than non-shared strings for some operations.
      >
      > Bug: v8:12007
      > Change-Id: I3462128e15410d2568868143571571b3025722c1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277250
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78614}
      
      Bug: v8:12007
      Change-Id: I5d9b99b2dac6f26d5ef046d7aec94f1a1d219419
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3389533Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78761}
      5320fe8d
  7. 20 Jan, 2022 1 commit
  8. 14 Jan, 2022 2 commits
  9. 13 Jan, 2022 1 commit
    • Jakob Gruber's avatar
      [maps] Lock map_updater_access in CompleteInobjectSlackTracking · 4b8d0489
      Jakob Gruber authored
      CompleteInobjectSlackTracking potentially shrinks multiple maps, and
      the relation between these maps should be preserved in a concurrent
      environment. Thus it is not enough to make each modification
      atomically, but all related map modifications must be within a
      critical section.
      
      We do this by locking the map_updater_access mutex
      CompleteInobjectSlackTracking, and hence moving the function to the
      MapUpdater class.
      
      Bug: chromium:1274445,v8:7990
      Change-Id: If99bb8b55e03180128ee397d845fa4c269c4241e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3379819Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78597}
      4b8d0489
  10. 16 Dec, 2021 1 commit
  11. 14 Dec, 2021 1 commit
  12. 02 Dec, 2021 1 commit
  13. 01 Dec, 2021 1 commit
    • Leszek Swirski's avatar
      [compiler-dispatcher] Enqueue tasks for non-eager inner funcs · 5ab1ec1e
      Leszek Swirski authored
      Add suppose for compiling non-eager, non-top-level inner functions in
      parallel, using the compiler dispatcher. This behaviour can be enabled
      with --parallel-compile-tasks-for-lazy.
      
      There are a couple of consequences:
      
        * To support this we need support for off-thread ScopeInfo
          deserialization, so this adds that too.
        * The previous --parallel-compile-tasks flag is renamed to the more
          descriptive --parallel-compile-tasks-for-eager-toplevel.
        * Both parallel-compile-tasks flags are moved onto
          UnoptimizedCompileFlags so that they can be enabled/disabled on a
          per-compile basis (e.g. enabled for streaming, disabled for
          re-parsing).
        * asm.js compilations can now happen without an active Context (in
          the compiler dispatcher's idle finalization) so we can't get a
          ContextId for metric reporting; we'd need to somehow fix this if we
          wanted asm.js UKM but for now it's probably fine.
        * Took the opportunity to clean up some of the "can preparse" logic in
          the parser.
      
      Change-Id: I20b1ec6a6bacfe268808edc8d812b92370c5840d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281924
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarEmanuel Ziegler <ecmziegler@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78183}
      5ab1ec1e
  14. 29 Nov, 2021 1 commit
  15. 08 Nov, 2021 1 commit
  16. 05 Nov, 2021 2 commits
  17. 26 Oct, 2021 1 commit
  18. 14 Oct, 2021 1 commit
  19. 30 Sep, 2021 1 commit
  20. 29 Sep, 2021 1 commit
  21. 03 Sep, 2021 1 commit
  22. 01 Sep, 2021 1 commit
  23. 30 Aug, 2021 1 commit
  24. 24 Aug, 2021 2 commits
    • Georg Neis's avatar
      Fix a DCHECK failure with broken asm.js functions · a6f3fce3
      Georg Neis authored
      Fixed: chromium:1236286
      Change-Id: I90106fce4d6e747f35c638ab00bf9a1696c8eb77
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3109668
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76462}
      a6f3fce3
    • Dan Elphick's avatar
      Reland "[include] Split out v8.h" · ec06bb6c
      Dan Elphick authored
      This is a reland of d1b27019
      
      Fixes include:
      Adding missing file to bazel build
      Forward-declaring classing before friend-classing them to fix win/gcc
      Add missing v8-isolate.h include for vtune builds
      
      Original change's description:
      > [include] Split out v8.h
      >
      > This moves every single class/function out of include/v8.h into a
      > separate header in include/, which v8.h then includes so that
      > externally nothing appears to have changed.
      >
      > Every include of v8.h from inside v8 has been changed to a more
      > fine-grained include.
      >
      > Previously inline functions defined at the bottom of v8.h would call
      > private non-inline functions in the V8 class. Since that class is now
      > in v8-initialization.h and is rarely included (as that would create
      > dependency cycles), this is not possible and so those methods have been
      > moved out of the V8 class into the namespace v8::api_internal.
      >
      > None of the previous files in include/ now #include v8.h, which means
      > if embedders were relying on this transitive dependency then it will
      > give compile failures.
      >
      > v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      > that Chrome continue to compile but that change will be reverted once
      > those transitive #includes in chrome are changed to include it directly.
      >
      > Full design:
      > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      >
      > Bug: v8:11965
      > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#76424}
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_vtunejit
      Bug: v8:11965
      Change-Id: I99f5d3a73bf8fe25b650adfaf9567dc4e44a09e6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113629Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarSimon Zünd <szuend@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76460}
      ec06bb6c
  25. 23 Aug, 2021 2 commits
    • Dan Elphick's avatar
      Revert "[include] Split out v8.h" · 44fe02ce
      Dan Elphick authored
      This reverts commit d1b27019.
      
      Reason for revert: Broke vtune build, tsan build and possibly others
      
      Original change's description:
      > [include] Split out v8.h
      >
      > This moves every single class/function out of include/v8.h into a
      > separate header in include/, which v8.h then includes so that
      > externally nothing appears to have changed.
      >
      > Every include of v8.h from inside v8 has been changed to a more
      > fine-grained include.
      >
      > Previously inline functions defined at the bottom of v8.h would call
      > private non-inline functions in the V8 class. Since that class is now
      > in v8-initialization.h and is rarely included (as that would create
      > dependency cycles), this is not possible and so those methods have been
      > moved out of the V8 class into the namespace v8::api_internal.
      >
      > None of the previous files in include/ now #include v8.h, which means
      > if embedders were relying on this transitive dependency then it will
      > give compile failures.
      >
      > v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      > that Chrome continue to compile but that change will be reverted once
      > those transitive #includes in chrome are changed to include it directly.
      >
      > Full design:
      > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      >
      > Bug: v8:11965
      > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#76424}
      
      Bug: v8:11965
      Change-Id: Id57313ae992e720c8b19abc975cd69729e1344aa
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113627
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76428}
      44fe02ce
    • Dan Elphick's avatar
      [include] Split out v8.h · d1b27019
      Dan Elphick authored
      This moves every single class/function out of include/v8.h into a
      separate header in include/, which v8.h then includes so that
      externally nothing appears to have changed.
      
      Every include of v8.h from inside v8 has been changed to a more
      fine-grained include.
      
      Previously inline functions defined at the bottom of v8.h would call
      private non-inline functions in the V8 class. Since that class is now
      in v8-initialization.h and is rarely included (as that would create
      dependency cycles), this is not possible and so those methods have been
      moved out of the V8 class into the namespace v8::api_internal.
      
      None of the previous files in include/ now #include v8.h, which means
      if embedders were relying on this transitive dependency then it will
      give compile failures.
      
      v8-inspector.h does depend on v8-scripts.h for the time being to ensure
      that Chrome continue to compile but that change will be reverted once
      those transitive #includes in chrome are changed to include it directly.
      
      Full design:
      https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing
      
      Bug: v8:11965
      Change-Id: I53b84b29581632710edc80eb11f819c2097a2877
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#76424}
      d1b27019
  26. 19 Aug, 2021 1 commit
  27. 17 Aug, 2021 1 commit
  28. 16 Aug, 2021 1 commit
  29. 10 Aug, 2021 1 commit
    • Georg Neis's avatar
      [compiler][test] Give tests control over finalization · 8b87e36e
      Georg Neis authored
      Some tests want to invalidate part of the VM state after an optimization
      has consumed the old state but before the code is installed.
      
      The existing mechanism for this is --block-concurrent-recompilation
      and %UnblockConcurrentRecompilation(). The former suspends optimization
      right after PrepareJob, before the background ExecuteJob phase. The
      intrinsic can then be used to unblock it again.
      
      This was good enough so far because the main "consume" work used to
      happen on the main thread. With concurrent inlining this is no longer
      true and we need something else.
      
      This CL introduces three intrinsics:
      
      %DisableOptimizationFinalization turns off automatic finalization of
      background optimizations.
      
      %FinalizeOptimization() can then be called at an appropriate time to
      manually finalize (and thus install) the code and reenable automatic
      finalization.
      
      In case one wants to perform some action on the main thread after the
      concurrent optimization has finished but before it is finalized, one can
      do so with the help of %WaitForBackgroundOptimization() (see tests).
      
      In a followup CL I'm removing the old mechanism since it now seems
      redundant.
      
      Bug: v8:12041, v8:7790
      Change-Id: Ib7195789105922eb7e4bff86dc5bc11e96a4f97b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3071400
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#76190}
      8b87e36e
  30. 22 Jul, 2021 1 commit
  31. 25 Jun, 2021 1 commit