1. 09 Dec, 2021 1 commit
  2. 08 Dec, 2021 2 commits
  3. 01 Dec, 2021 1 commit
  4. 15 Nov, 2021 1 commit
  5. 11 Nov, 2021 1 commit
  6. 10 Nov, 2021 1 commit
  7. 08 Nov, 2021 1 commit
  8. 05 Nov, 2021 1 commit
    • Camillo Bruni's avatar
      Reland "[runtime] Optimise paired instance type checks" · ed0a8599
      Camillo Bruni authored
      This is a reland of 92edf9a1
      
      Introduce map handle again to prevent corruption.
      
      Drive-by-fix:
      Make some PropertyDetails and Representation methods constexpr.
      
      Original change's description:
      > [runtime] Optimise paired instance type checks
      >
      > Clang doesn't optimise over handle derefs. Change the ValueSerializer
      > and the JsonStringifier to use InstanceType directly for checks.
      > This CL squeezes another 1.5% of JSON.stringify in local benchmarks.
      >
      > Drive-by-fix:
      > - Avoid a few more derefs in the JsonStringifier
      > - Make JsonStringifier::SerializeJSArray a bit more readable
      >
      > Change-Id: I37626a6d92a8d9275611a4e6d1d908f2e0c6d43b
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247637
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#77697}
      
      Change-Id: I8915a82aab6dd7966223a4d7a8dd1363258b7c81
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3260512
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77735}
      ed0a8599
  9. 04 Nov, 2021 2 commits
  10. 13 Oct, 2021 1 commit
  11. 28 Sep, 2021 1 commit
  12. 20 Sep, 2021 1 commit
  13. 15 Sep, 2021 1 commit
  14. 24 Aug, 2021 1 commit
    • 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
  15. 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
  16. 06 Jul, 2021 2 commits
    • Mike Stanton's avatar
      [compiler] TSAN data race on HeapNumber::value_as_bits() · 6a1063c8
      Mike Stanton authored
      TurboFan reads the value in HeapNumber, and TSAN detects a data
      race between this read and sets on the main thread elsewhere.
      We mark this as relaxed atomic (meaning, correct value of the read
      is not guaranteed). The compiler uses the dependency mechanism
      to re-read the value safely on the main thread later, and aborts
      compilation if a change is detected.
      
      Bug: chromium:1224277, v8:7790
      Change-Id: I8931d8989812550c0c57b6bd27aa796f6f5e779d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2996201Reviewed-by: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75586}
      6a1063c8
    • Dominik Inführ's avatar
      [heap] Support transitioning of code objects · d1f2a83b
      Dominik Inführ authored
      This CL adds support for updating code objects. So far code objects
      were immutable. Sparkplug makes compilation a very frequent operation
      and thus wants to avoid copying the instruction stream from the
      AssemblerBuffer into the code object (with more overhead that entails).
      The idea is to allocate an "empty" Code object initially, which is
      likely large enough to hold the full instruction stream. Then Sparkplug
      will compile the given function and write the instruction stream
      directly into the code object. After compilation is done Sparkplug trims
      the Code to the right size and finishes its initialization.
      
      We use relocation_info to determine whether a Code object is fully
      initialized: undefined means that this object is filled by SparkPlug
      at the moment. If it's a proper ByteArray, this code object is assumed
      to be initialized. Turbofan still fully initializes the Code object
      immediately.
      
      Before changing the size of the code object, EnsureSweepingCompleted()
      makes sure that the code object's page is swept already. This prevents
      that the concurrent sweeper loads the new and smaller object size and
      stores that memory in the free list.
      
      NotifyCodeObjectChanged() signals the GC that the code object is now
      fully initialized and revisits that object (even if it is black already)
      to find and record outgoing references in the instruction stream.
      
      Design doc: https://docs.google.com/document/d/12LHGkRXY1H3IFMBrdxs2vhgtG9bfJTdquQUsX1oPoSE/edit?usp=sharing
      
      Bug: v8:11872
      Change-Id: Ie1b95b27842eea5ec7e9d345052585a27d6ea7f3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999087
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75582}
      d1f2a83b
  17. 24 Jun, 2021 3 commits
  18. 18 Jun, 2021 1 commit
  19. 07 Jun, 2021 1 commit
  20. 31 May, 2021 1 commit
  21. 17 May, 2021 1 commit
  22. 08 Apr, 2021 1 commit
  23. 12 Mar, 2021 1 commit
  24. 08 Mar, 2021 1 commit
  25. 11 Feb, 2021 1 commit
  26. 26 Nov, 2020 1 commit
  27. 24 Nov, 2020 3 commits
  28. 20 Nov, 2020 1 commit
  29. 24 Oct, 2020 1 commit
    • Camillo Bruni's avatar
      Reland "[runtime] Use Isolate::ThrowAt with MessageLocation" · 447915ef
      Camillo Bruni authored
      This is a reland of eb6b4ce1
      
      Skip test that serializes Error which references a Script. All errors
      created by ThrowAt store the current Script under the
      error_script_symbol.
      
      Original change's description:
      > [runtime] Use Isolate::ThrowAt with MessageLocation
      >
      > Fix various missing source positions when reporting parse and compile
      > errors. Namely this fixes missing source positions when having invalid
      > module imports.
      >
      > - Use Isolate::ThrowAt with valid MessageLocation objects
      > - Change public Isolate::Throw to no longer accept MessageLocation to
      >   avoid misues
      > - Introduce private Isolate::ThrowInternal that accepts MessageLocation
      >
      > Bug: v8:6513
      > Change-Id: I3ee633c9fff8c9d361bddb37f56e28a50c280ec1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467839
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#70623}
      
      Bug: v8:6513
      Change-Id: Icba74f74178e28fbda0fd0c237eeb7bacbc33570
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2487123Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70741}
      447915ef
  30. 20 Oct, 2020 1 commit
  31. 19 Oct, 2020 2 commits