- 14 Feb, 2022 12 commits
-
-
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: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79073}
-
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: Darshan Sen <raisinten@gmail.com> Change-Id: I28bdd4e28e7536bd8dcb17cf2a6bf3342a79f504 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3459925Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#79072}
-
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: Jakob 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}
-
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: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#79070}
-
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: Dominik Inführ <dinfuehr@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#79069}
-
Samuel Groß authored
Bug: v8:10391 Change-Id: If54ba6ddaabd14e5f4c232cdc3c29746f89e1cb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455822Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79068}
-
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: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#79067}
-
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: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#79066}
-
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: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#79065}
-
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: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tao Pan <tao.pan@intel.com> Cr-Commit-Position: refs/heads/main@{#79064}
-
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: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79063}
-
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}
-
- 13 Feb, 2022 2 commits
-
-
Manos Koukoutos authored
We optimize trivial type checks in the function body decoder, i.e., ref.as_<type> and ref.is_<type> when invoked on a value that is statically known to be of typeable as <type>. Bug: v8:7748 Change-Id: Ieee608a965ba44c4cadd9c7171ed8bdc129fce8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3447375Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79061}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/1de0c65..a00adb7 Rolling v8/third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/dd9a133..d8f49e6 R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com Change-Id: Ie4bfc3d4e762528704a4a4c1adb50095aea08d3b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3459290 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@{#79060}
-
- 12 Feb, 2022 2 commits
-
-
v8-ci-autoroll-builder authored
Rolling v8/third_party/google_benchmark/src: https://chromium.googlesource.com/external/github.com/google/benchmark/+log/d2cbd4b..6e51dcb Expose default display reporter creation in public API (#1344) (Dominic Hamon) https://chromium.googlesource.com/external/github.com/google/benchmark/+/6e51dcb R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com,mlippautz@chromium.org Change-Id: I2fd5613b838800fc553ebffaae05dcf0f97f91f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3457039 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@{#79059}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/3408ba5..1de0c65 Rolling v8/buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi/+log/c69bde2..9a29c97 Rolling v8/buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind/+log/2b08f99..b323ac8 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7b5325d..516c0b3 R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com Change-Id: I0d288bf6f1197d1142836af8736a9b10d1a320b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3457037 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@{#79058}
-
- 11 Feb, 2022 17 commits
-
-
Milad Fa authored
Change-Id: I26a9c7567c36422c01c089d9f71411b3e73c681d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3457684Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#79057}
-
Milad Fa authored
Change-Id: I39049c88f48c81b2f8ce84e9589e05405abce3a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3453783Reviewed-by: Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Farazmand <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#79056}
-
Kevin Babbitt authored
This will enable proper reporting of OOM errors during snapshot deserialization, for example https://crbug.com/614440#c27. Bug: chromium:614440 Change-Id: I226fb763d2630d0b21f7552070ed1a4cc222f69b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3445203Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Kevin Babbitt <kbabbitt@microsoft.com> Cr-Commit-Position: refs/heads/main@{#79055}
-
Manos Koukoutos authored
Changes: - GenerateInitExpr should emit a function reference to a function that is known to exist when funcref is expected. - Add functions by signature index to the WasmModuleBuilder, so we avoid signature canonicalization, which currently does not work for wasm-gc. - Remove printing of recursive groups in the WasmModuleBuilder. Instead, restrict type definitions to only refer to previous types. - Some local restructuring of code, comments. Bug: chromium:1296162 Change-Id: I5abd9bf8ec21ef6a51f00bc960b78519f2ec94f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3452433Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79054}
-
Kim-Anh Tran authored
This changes the way how we are handling instrumentation breakpoints. Motivation: with instrumentation breakpoints, we need a way to break on (conditional) breakpoints that were just set by the client on the instrumentation pause. How: We want to first find out if we have an instrumentation break, and trigger a pause. For this to work, we need to distinguish between regular and instrumentation breakpoints in the debugger back-end. On resume, we want to check if we have hit any breakpoints (may now contain new breakpoints due to the client setting new breakpoints at the previous instrumentation pause) and trigger a separate pause for them. Fixed: chromium:1292930 Change-Id: Idaadd276c44c693f856c4b08c7a72ea67271f420 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3442676Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#79053}
-
Deepti Gandluri authored
This reverts commit c927ada7. Reason for revert: GC stress failures: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/37276/overview 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: Ia567cdcae73bc7fdfaf08b62eeeb899d6a933e21 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3456682 Auto-Submit: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#79052}
-
Victor Gomes authored
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/+/3450416Reviewed-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}
-
Manos Koukoutos authored
Bug: v8:12591 Change-Id: Ica2ee1bb74d4b6f7e5ed06e23511c860bcf204be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3456083Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79050}
-
Leszek Swirski authored
Bytecode liveness needs a mapping from offset to liveness. This was previously a hashmap with a very weak hash (the identity function) and both inserts and lookups showed up as a non-trivial costs during compilation. Now, replace the hashmap with a simple flat array of liveness, indexed by offset, pre-sized to the size of the bytecode. This will have a lot of empty entries, but will have much better runtime performance and probably ends up not much less memory efficient as a hashmap if the hashmap has to resize inside the Zone, and is likely negligible compared to the other compilation memory overheads. Change-Id: Id21375bfcbf0d53b5ed9c41f30cdf7fde66ee699 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455802Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79049}
-
Michael Lippautz authored
- Both paths are now inlined. - Outline large object allocation, shrinking trampoline a bit. - Support a fast path for AllocationType::kOld from AllocateRawWith(). Bug: v8:12615, chromium:1293284 Change-Id: I8f0b9aabc6fe47e1eee159c214403ccffea5eeab Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3456082Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79048}
-
Michael Achenbach authored
Bug: chromium:1292013 Change-Id: Ifcaad3fe346e59914050b34969bd63a230166491 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3452116 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Almothana Athamneh <almuthanna@chromium.org> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Cr-Commit-Position: refs/heads/main@{#79047}
-
Michael Lippautz authored
Initialize thread-safe count properly. Bug: v8:12620 Change-Id: Ifb43a860f1b8cefd410fea25ac408f5be55ab1af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455823 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#79046}
-
Greg Thompson authored
Bug: chromium:1296220 Change-Id: I8af141dc61a7abb31b460c5e43248aaef29aaf84 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455423 Auto-Submit: Greg Thompson <grt@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/main@{#79045}
-
Michael Lippautz authored
The flag has been turned on for a long time and we do not intend to support a mode without young LO objects. A side effect is that it removes a branch in AllocateRaw for the young generation. Drive-by: Reinstantiate the LO space verifier checking that only certain types can appear as large objects. Bug: v8:12615 Change-Id: I8c33019a04670f20459ea2faa9dc2f98b8cda40b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3450420Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79044}
-
Nikolaos Papaspyrou authored
This CL fixes a bug in the tracing of full GC cycles that was introduced by https://crrev.com/3432211. In doing so, it refactors the tracing of cycles by introducing an explicit state in GC tracing events, which follows the phase within the GC cycle as perceived by the tracer. Two new methods, (Start|Stop)AtomicPause are introduced; together with (Start|Stop)Cycle they mark the state transitions. The existing methods (Start|Stop)ObservablePause are now disentangled from cycles and state transitions. Bug: v8:12503 Bug: chromium:1154636 Change-Id: Ie4b863bc27f81dd6858103a8988874d89e6e8517 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3440663Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#79043}
-
Dominik Inführ authored
Now that the map space gets compacted as well, we want to sort pages for that space when starting sweeping as well. Bug: v8:12578 Change-Id: I8f25fb05f311d70697d2f7154bd428b4c3e56c13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455142 Auto-Submit: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79042}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/96cf77d..3408ba5 Rolling v8/buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi/+log/53a6cf1..c69bde2 Rolling v8/buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind/+log/107cd56..2b08f99 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/954eec7..7b5325d Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/ff8a62f..54e30e7 Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/06519ce..0e40217 Rolling v8/third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/14f4303..dd9a133 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/c7ca87f..b9894ca R=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com Change-Id: I8d36950dab4270407ee2c6e460f953f1a7c40a87 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3453628 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@{#79041}
-
- 10 Feb, 2022 7 commits
-
-
Dominik Inführ authored
Scavenger can promote objects into the shared heap. Since the scavenger might also run while incremental marking is on, the promoted object could already be stored in the marking worklist. When updating the worklist after the scavenger, we need to remove entries with objects promoted into the shared heap. Bug: v8:11708, v8:12582 Change-Id: I4ccad74d23de7921e02adcdb04d2b4e46d9b3a4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3452115Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#79040}
-
Dominik Inführ authored
ExternalStrings in the shared heap currently conflicts with the sandbox project. We would need concurrent concurrent allocation in the external pointer table but also require different accessors for them. Since the shared string table doesn't really need ExternalStrings in the shared heap for now, simply keep ExternalStrings in the client heaps. Bug: v8:11708, v8:12617 Change-Id: I272e40eaec4b7f368ce44f42f7f69bf27d53f9c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3451717Reviewed-by: Shu-yu Guo <syg@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#79039}
-
Michael Lippautz authored
The previous CLs stealth-fixed an issue where we wouldn't receive MoveEvent's even if FLAG_fuzzer_gc_analysis was true. The fix uncovered a data race which is fixed here. Bug: v8:12615 Change-Id: I646dc31918d6ebe717716290375e12eac562b4b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3452030Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79038}
-
Samuel Groß authored
With external code space and background compilation, external pointer table entries are now allocated on background threads. For this to work properly, the implementation must be atomic. As atomic operations are not currently available in CSA, the fast path in CSA::InitializeExternalPointerField has been removed for now. Bug: v8:10391 Change-Id: I1119a9b5f97bc8d5f48de6872b62b9ddf001e9ce Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3448381Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#79037}
-
Omer Katz authored
The build flag is on by default and the actual functionality is guarded by a runtime flag. Bug: v8:12612 Change-Id: I6adbd5b766f502400af32eeeb035edca3a3606ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3448383Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79036}
-
Manos Koukoutos authored
Avoid killing the whole mutable state in the following two cases: - When we encounter a mutable object store operation, we can only kill the respective object/field pair in the mutable state. - When we encounter an immutable initialization operation, we do not have to modify the state. A DCHECK ensures we do not initialize the same field twice. Drive-by: Avoid zone-allocating data structures for frame-local variables. Bug: v8:11510 Change-Id: I1c655f619cf620923256f460b30dc7371de571de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3452022Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79035}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Ia70eeb49cd4fe142cad2cb210dae1f98ec4d076b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3450417Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#79034}
-