1. 14 Feb, 2022 12 commits
    • Anton Bikineev's avatar
      cppgc: young-gen: Implement GenerationalBarrier for source objects · 3f5c2dda
      Anton Bikineev authored
      The generational barrier for source objects records the entire source
      object to be processed later during remembered set visitation. It's
      planned to be used for Blink backing stores when an inlined object (or a
      range thereof) is added (HeapAllocator::NotifyNewObject(s)).
      
      An alternative approach would be to eagerly process the inlined objects
      using a custom callback. However, this requires changing Visitors to
      bring slots into the context. This approach should better work for
      scenarios where small ranges or single elements are added, to avoid
      processing potentially large backing stores. The followup CL implements
      this idea.
      
      Bug: chromium:1029379
      Change-Id: Iacb59e4b10a66354526ed293d7f43f14d8761a8f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460402Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Anton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79073}
      3f5c2dda
    • Darshan Sen's avatar
      [cleanup] Fix -Wrange-loop-analysis compiler warning · 620158f8
      Darshan Sen authored
      Here is the warning:
      
      ```
      src/compiler/persistent-map.h:81:47: warning: loop variable 'triple' is always a copy because the range of type
            'v8::internal::compiler::PersistentMap<v8::internal::compiler::Variable, v8::internal::compiler::Node *, v8::base::hash<v8::internal::compiler::Variable> >::ZipIterable'
            does not return a reference [-Wrange-loop-analysis]
          for (const std::tuple<Key, Value, Value>& triple : Zip(other)) {
      ```
      
      So this changes the const ref into a copy.
      Signed-off-by: 's avatarDarshan Sen <raisinten@gmail.com>
      Change-Id: I28bdd4e28e7536bd8dcb17cf2a6bf3342a79f504
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3459925Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79072}
      620158f8
    • Leszek Swirski's avatar
      [utils] Move BitVector's iterator to STL-like interface. · 59ea4881
      Leszek Swirski authored
      Replace the Advance/Done methods on BitVector::Iterator with
      STL-compatible operator overloads, and add begin/end methods to
      BitVector itself, so that BitVectors can be iterated with ranged for
      loops.
      
      As a drive-by cleanup, make GrowableBitVector hold the BitVector by
      value (to avoid needing to allocate one for empty iteration), and remove
      its unused (and inefficient) Union method.
      
      Change-Id: Idcd34e26bfb087e3ec8297b4a769a51bfab4b6e8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455803Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79071}
      59ea4881
    • 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
    • Victor Gomes's avatar
      Reland "[runtime] Refactor TransitionsAccessor" · 24ff6e28
      Victor Gomes authored
      This is a reland of c927ada7
      
      Fix: Recalculate encoding after an allocation (that can potentially
      trigger GC) in EnsureHasFullTransitionArray.
      
      Original change's description:
      > [runtime] Refactor TransitionsAccessor
      >
      > Problems:
      > - The class uses a bare Map field, but some methods can trigger GC
      > causing it to have a potential dangling pointer in case of map
      > compaction.
      > - Some methods invalidate the object state and should not be used again.
      > - Complicate logic with a no_gc and a gc aware constructors. Some
      > methods can only be called if the object is constructed with a
      > particular constructor (e.g, Insert and PutPrototypeTransition).
      >
      > Note: Most usages of this class is done by constructing an object and
      > calling a single method:
      > `TransitionAccessor(...).Method(...)`
      > So we can easily change them to a static method.
      >
      > This CL:
      > 1. Adds DISALLOW_GARBAGE_COLLECTION to the class.
      > 2. Makes methods that can trigger GC static.
      > 3. Creates static helper functions that wrap the class in a different
      > scope, since TransitionsAccessor now forces the scope to disallow gc.
      > 4. Removes now unnecessary "Reload" logic.
      >
      > Bug: chromium:1295133, v8:12578
      > Change-Id: I85484e7235fbd5e69894e26f5e1c491c6f69635e
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3450416
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Victor Gomes <victorgomes@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79051}
      
      Bug: chromium:1295133, v8:12578
      Change-Id: If3880c2480433b78567870c8d14508d6ad9eccbd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460405Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Auto-Submit: Victor Gomes <victorgomes@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79069}
      24ff6e28
    • Samuel Groß's avatar
      Initialize V8 sandbox in samples · af78745f
      Samuel Groß authored
      Bug: v8:10391
      Change-Id: If54ba6ddaabd14e5f4c232cdc3c29746f89e1cb3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455822Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Samuel Groß <saelo@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79068}
      af78745f
    • Dominik Inführ's avatar
      [d8] Prepare for shared GCs in d8 · 60245d83
      Dominik Inführ authored
      With shared GCs we need to stop all isolates in a safepoint. But in
      some cases not every main thread of each isolate is able to reach a
      safepoint. We need to park the main thread manually here in d8.
      
      Bug: v8:11708
      Change-Id: I45d495cecce92ebef7e25ff16ea852430f3645e5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3456023
      Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79067}
      60245d83
    • Leszek Swirski's avatar
      [compiler] Make accumulator index 0 in liveness bitvectors · 2b96e854
      Leszek Swirski authored
      Previously, the accumulator was at the end of liveness bitvectors, which
      meant that checking for accumulator liveness required a length lookup.
      This CL moves it to the start of the bitvector, with registers starting
      at index 1 -- the assumption is that the addition of 1 to the index on
      register liveness access can be constant folded away.
      
      As a cleanup, replace all the custom liveness printing code with a
      single unified ToString. This places the accumulator at the end of the
      printed liveness, to avoid having to change test expectations (also, the
      position of the accumulator is now an implementation detail). As a
      similar cleanup, change StateValue node building to use the
      BytecodeLivenessState interface rather than the underlying bitvector.
      These two cleanups allow us to remove the raw bitvector accessor from
      liveness entirely.
      
      Change-Id: Ic2744b5e8e16b8527e6a4e8d3b4ddad7096289d9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455144
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79066}
      2b96e854
    • Yang Guo's avatar
      Mark Reflect methods as side-effect free · be7b0e82
      Yang Guo authored
      R=bmeurer@chromium.org
      
      Fixed: chromium:1295387
      Change-Id: I64461b7360f904fe5e0163263163db48a1c7c69c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460404
      Auto-Submit: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79065}
      be7b0e82
    • Pan, Tao's avatar
      [runtime-profiler] Use the OSR cache earlier if enter loop range of OSR cache · ba94a6c1
      Pan, Tao authored
      If function's SFI has OSR cache, once enter loop range of OSR cache, set
      OSR loop nesting level for matching condition of OSR (loop_depth <
      osr_level), soon later OSR will be triggered when executing bytecode
      JumpLoop which is entry of the OSR cache, then hit the OSR cache.
      This CL can improve JetStream2 case gaussian-blur by ~3%, it's
      introduced by 18 profiler ticks earlier use OSR code cache.
      
      Change-Id: Ibf404d74a4a32bc34974f129828c594c9d551355
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3379240Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Tao Pan <tao.pan@intel.com>
      Cr-Commit-Position: refs/heads/main@{#79064}
      ba94a6c1
    • Michael Lippautz's avatar
      heap: Factor out AllocationResult from heap.h · d89579b3
      Michael Lippautz authored
      Allows separating out the allocator from Heap without requiring a
      heap.h include.
      
      Drive-by:
      - Rename "Retry" to "Failure".
      - Avoid implicit constructors.
      - Rename "RetrySpace" to "GarbageCollectionSpace" which is its only
        use.
      
      Bug: v8:12615
      Change-Id: Idac17cded8f0b2b645a2be9045ab31ffd71999b3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3456562Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79063}
      d89579b3
    • v8-ci-autoroll-builder's avatar
      Update V8 DEPS. · 9ac64a9d
      v8-ci-autoroll-builder authored
      Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/a00adb7..4309020
      
      Rolling v8/tools/luci-go: git_revision:462d0a9cdbe947cd652fcd0c54f64ebc712858a5..git_revision:fbbb5b9748a05dd16fe621f7ea48a4ece1913874
      
      Rolling v8/tools/luci-go: git_revision:462d0a9cdbe947cd652fcd0c54f64ebc712858a5..git_revision:fbbb5b9748a05dd16fe621f7ea48a4ece1913874
      
      R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
      
      Change-Id: Iadaab4cb52265ab5dcba20dda863954373027478
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460234
      Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Bot-Commit: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/main@{#79062}
      9ac64a9d
  2. 13 Feb, 2022 2 commits
  3. 12 Feb, 2022 2 commits
  4. 11 Feb, 2022 17 commits
  5. 10 Feb, 2022 7 commits