- 07 Jul, 2022 1 commit
-
-
Manos Koukoutos authored
Mostly src/codegen, src/compiler, src/snapshot, src/utils. Bug: v8:13006 Change-Id: I2fb31acc749a7376e6f2a7424ed2e67ff479d971 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749178 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81575}
-
- 13 May, 2022 1 commit
-
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 09 May, 2022 1 commit
-
-
Tobias Tebbi authored
Bug: chromium:1323114 Change-Id: I2ec6c7d5eb5ef08914cfc1fac52d0128ecb27c53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3630081Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80417}
-
- 26 Apr, 2022 1 commit
-
-
Jakob Gruber authored
.. since it's located in ReadOnlySpace and thus immutable. We could extend this to other strings in RO-space but for now I want to avoid too much movement. This bumps jetstream2/gbemu scores by ~30%. Bug: v8:12790,v8:12161 Change-Id: I3fe10703e9ceca19c110d19c83143d811e090192 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3607994 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80188}
-
- 21 Mar, 2022 1 commit
-
-
Jakob Gruber authored
This CL removes: - Dynamic map checks aka minimorphic property loads (TF support, builtins). - "Bailout" deopts (= drop to the interpreter once, but don't throw out optimized code). - "EagerWithResume" deopts (= part of dynamic map check functionality, we call a builtin for the deopt check and deopt or resume based on the result). Fixed: v8:12552 Change-Id: I492cf1667e0f54586690b2f72a65ea804224b840 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401585 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#79544}
-
- 14 Feb, 2022 1 commit
-
-
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}
-
- 11 Feb, 2022 2 commits
-
-
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}
-
- 17 Jan, 2022 2 commits
-
-
Jakob Gruber authored
We are guaranteed to have a valid ref for the prototype now that the no-concurrent-inlining configuration has been removed. Bug: v8:7790 Change-Id: I8400d1887f5cd41b14c92c87151847c0ed78f911 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3394708Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#78648}
-
Jakob Gruber authored
Now that concurrent inlining is shipping on stable, remove support --no-concurrent-inlining. Note that it's still possible to run Turbofan exclusively on the main thread by passing --no-concurrent-recompilation. Bug: v8:7790, v8:12142, chromium:1240585 Change-Id: I1943bbbcad7dea7e3a3c337c239f14f7d96c23cd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3308798Reviewed-by:
Liviu Rau <liviurau@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#78644}
-
- 22 Dec, 2021 1 commit
-
-
Shu-yu Guo authored
Private method loads are compiled to a named load of a private brand, which always loads a BlockContext. This BlockContext holds the private methods common to all instances of a class. TurboFan currently considers JSLoadNamed to be of Type::NonInternal(). Private methods break this assumption, since BlockContext is of Type::OtherInternal(). This CL changes the typing of JSLoadNamed of private brands to be Type::OtherInternal(). Bug: v8:12500 Change-Id: I91f39747bf9422bd419d299f44152f567d8be8db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3351167Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#78431}
-
- 15 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: I3029cfb8e9afdcb5e53aa406359aa7246c23ea40 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3274021Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77906}
-
- 13 Oct, 2021 1 commit
-
-
Joyee Cheung authored
Introduces several new runtime mechanics for defining private fields, including: - Bytecode StaKeyedPropertyAsDefine - Builtins StoreOwnIC{Trampoline|Baseline|_NoFeedback} - Builtins KeyedDefineOwnIC{Trampoline|Baseline|_Megamorphic} - TurboFan IR opcode JSDefineProperty These new operations can reduce a runtime call per class field into a more traditional Store equivalent. In the microbenchmarks, this results in a substantial win over the status quo (~8x benchmark score for single fields with the changes, ~20x with multiple fields). The TurboFan JSDefineProperty op is lowered in JSNativeContextSpecialization, however this required some hacks. Because private fields are defined as DONT_ENUM when added to the object, we can't find a suitable transition using the typical data property (NONE) flags. I've added a mechanism to specify the required PropertyAttributes for the transition we want to look up. Details: New bytecodes: - StaKeyedPropertyAsDefine, which is essentially StaKeyedProperty but with a different IC builtin (KeyedDefineOwnIC). This is a bytecode rather than a flag for the existing StaKeyedProperty in order to avoid impacting typical keyed stores in any way due to additional branching and testing. New builtins: - StoreOwnIC{TTrampoline|Baseline|_NoFeedback} is now used for StaNamedOwnProperty. Unlike the regular StoreIC, this variant will no longer look up the property name in the prototype. In adddition, this CL changes an assumption that StoreNamedOwnProperty can't result in a map transition, as we can't rely on the property already being present in the Map due to an object literal boilerplate. In the context of class features, this replaces the runtime function %CreateDataProperty(). - KeyedDefineOwnIC{Trampoline|Baseline|_Megamorphic} is used by the new StaKeyedPropertyAsDefine bytecode. This is similar to an ordinary KeyedStoreIC, but will not check the prototype for setters, and for private fields, will take the slow path if the field already exists. In the context of class features, this replaces the runtime function %AddPrivateField(). TurboFan IR: - JSDefineProperty is introduced to represent a situation where we need to use "Define" semantics, in particular, it codifies that we do not consult the prototype chain, and the semantics relating to private fields are implied as well. R=leszeks@chromium.org, syg@chromium.org, rmcilroy@chromium.org Bug: v8:9888 Change-Id: Idcc947585c0e612f9e8533aa4e2e0f8f0df8875d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2795831Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#77377}
-
- 28 Sep, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244 Change-Id: I7ea68dd74a376221631d7f56b4a012207f68a1ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182899Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77129}
-
- 17 Sep, 2021 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: I7c091ad3fd5e7d9a8c4b306d8559654f3fb06868 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168271 Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#76901}
-
- 07 Sep, 2021 1 commit
-
-
Georg Neis authored
... as the main thread might change its contents. Bug: v8:12174, v8:7790 Change-Id: I66b2cafc7ddc9b387223693595a9d810b272d7b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3141586Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76685}
-
- 31 Aug, 2021 1 commit
-
-
Jakob Gruber authored
- Move the compilation-dependency.h header contents into compilation-dependencies.cc; - add macro lists to define type checks and casts; - add invalidated dependency tracing to the --trace-compilation-dependencies flag (renamed from --trace-code-dependencies). Bug: v8:7790 Change-Id: I34b950cd0b79b8d2673b1195599aec763f6b60d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3129420 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76596}
-
- 17 Aug, 2021 1 commit
-
-
Georg Neis authored
Don't create DataField and FastDataConstant access infos with a kNone field representation. Instead return Invalid. Bug: chromium:1239601 Change-Id: I4df7aa298974f9dcd650ead50aaa349c84feb487 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097463Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#76343}
-
- 12 Aug, 2021 1 commit
-
-
Jakob Gruber authored
Bug: v8:7790 Change-Id: I9bd852d42cbc81ba12dc81166990a49a6b91168a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3089153 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#76247}
-
- 09 Aug, 2021 2 commits
-
-
Jakob Gruber authored
The getter and setter members may be set after initialization; in that case, use acquire-release semantics. Bug: v8:7790, chromium:1236965 Change-Id: Ia28c89b664787ff92a56a2f6dcc4d76655df5ff3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3080567Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#76164}
-
Jakob Gruber authored
.. in AccessInfoFactory. In order to be read safely, they must pass the IsPendingAllocation predicate, called internally from TryMakeRef. In a follow-up, DescriptorArrayRef methods should also be updated similarly. Bug: v8:7790,chromium:1236373 Change-Id: I96b59458033c327e3d2e01e8e4496e2c91609eb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3080560 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#76153}
-
- 02 Aug, 2021 1 commit
-
-
Georg Neis authored
Lookup the corresponding details on the given map instead of the owner map. Change-Id: I2dcd0b24216c2bdc5860518d34d710b771f74973 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063234 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#76030}
-
- 30 Jul, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Bug: v8:7790 Change-Id: Id06775f9f3c7f1a505a736fcc4b992feb0d09308 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056454 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#76013}
-
- 29 Jul, 2021 1 commit
-
-
Jakob Gruber authored
is_deprecated and is_stable are mutable and can be changed concurrently. We protect against changes through dependencies. CHECKs on such fields are invalid. Bug: v8:7790,chromium:1234206 Change-Id: I9bb7fab0342e0e2c33377c162b1912a8f93e760b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059682 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#75973}
-
- 28 Jul, 2021 1 commit
-
-
Jakob Gruber authored
.. instead of recalculating them at the risk of getting different answers. In a concurrent setting, repeated type/rep calculations are not guaranteed to return the same answer. Instead, calculate them once and pass them into dependency creation methods. Note with this CL we now get the type/rep off the holder map and not the field owner map. The results should be identical and behavior should not change (verified by CHECKs). Bug: v8:7790 Change-Id: I2b4c3bb8907082c69448ca743d3c8740cd8f71f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055306Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75951}
-
- 26 Jul, 2021 1 commit
-
-
Jakob Gruber authored
The implicit ToObject operation should only be done on the receiver. The remaining prototype chain is already guaranteed to not contain primitives (besides null). Bug: v8:7790 Change-Id: I6706c7648e201e8f99a1f27f98989db96a359c4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041672Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75905}
-
- 22 Jul, 2021 1 commit
-
-
Jakob Gruber authored
A mix of readability refactors, additional DCHECKs, and addressed/updated TODOs. Bug: v8:7790 Change-Id: I87ff996abd40b0ed081586e2c0da1a4c0942fed4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3041665 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75858}
-
- 20 Jul, 2021 3 commits
-
-
Jakob Gruber authored
All these methods are called in compiler/concurrent contexts and should therefore use refs where possible. This mostly just pushes code around, but does avoid a few completely unnecessary ref-handle-ref round-trips. Bug: v8:7790 Change-Id: I18e6f45ddcd16373b5349bdb7d2dccd205f5c9ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3038522Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75814}
-
Jakob Gruber authored
.. instead of handles and update all uses. Likewise with ElementAccessInfo. Essentially, this creates the needed refs up-front and removes useless MakeRef calls from PAI users. Bug: v8:7790, v8:11671 Change-Id: I175e77dcca27760101606587de615e3497e68c68 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3030701 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#75805}
-
Jakob Gruber authored
.. and explicitly mark behavior through tags/naming conventions: // This method is never called when concurrent inlining is enabled. void SerializeFoo(NotConcurrentInliningTag); // This method is thread-safe and may be called at any time. void CacheBar(); It turns out that all our remaining SerializeFoo methods are already either of the former or latter category and thus do not block removal of the serialization phase for concurrent inlining. Bug: v8:7790 Change-Id: If8f3bc2e407bc2824f83bfcd1f520f3b14dc58ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3026709 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#75804}
-
- 18 Jun, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Replace GetOwnDictionaryPropertyFromHeap with TryGetOwnDictionaryPropertyFromHeap which will return {} if we are trying to read out of bounds of the heap or the object. This is done so that we can concurrently use the method. We introduce a new compilation dependency (DependOnPropertyValueSame) which checks that the background thread indeed read the correct value. Bug: v8:7790 Change-Id: Ia5e308faf1f65add638cd271995f4f33416fbd15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2930480 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#75248}
-
- 16 Jun, 2021 1 commit
-
-
Ross McIlroy authored
As we push TurboProp's interrupt budget back, the deopt savings we get from this aren't worth the runtime overhead in the generated code. BUG=v8:9684 Change-Id: I6eeb941b25c13958f6b9ddf33439d7928af9b302 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964813 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#75172}
-
- 11 Jun, 2021 1 commit
-
-
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:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75103}
-
- 09 Jun, 2021 1 commit
-
-
Jakob Gruber authored
This is a step towards making JSObjectRef non-serialized. Change JSObjectRef::RawFastPropertyAt to use a direct load with relaxed semantics. Special handling of `uninitialized` sentinel values is moved to the only use-site. A new lock `boilerplate_migration_access` protects against concurrent boilerplate migrations while we are iterating over properties. Bug: v8:7790 Change-Id: Ic9de54ca16c1f3364d497a77058cfa33d48dd4a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928184 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#75033}
-
- 25 May, 2021 1 commit
-
-
Georg Neis authored
This was missing for transitioning stores. Bug: chromium:1209558 Change-Id: Ib75d919ef748cffd12f0add09ac2718f434eb684 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2916815Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74753}
-
- 17 May, 2021 2 commits
-
-
Santiago Aboy Solanes authored
Continuing the cleanups and using the tags rather than synchronized_ in the name of the accessors. Bug: v8:7790 Change-Id: I3c2d0ccf54fa6161dbd9d12b1b9743a046534521 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897095Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74609}
-
Santiago Aboy Solanes authored
The instance_size of a live map can change via ShrinkInstanceSize. This change was outside of the scope of the MapUpdater. In order to have a consistent view of the data, the concurrent reader will access the map updater lock if needed. Also refactor MapUpdaterMutexDepthScope (now named `MapUpdaterGuardIfNeeded`) so that A) it's not possible to forget to lock it, and B) add V8_NODISCARD to the class. As a second refactor use std::function in TraverseCallback. Bug: v8:7790 Change-Id: I57dd00699ccb1c9f132a950db93704b07ca115ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2862765Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74592}
-
- 04 May, 2021 1 commit
-
-
Jakob Gruber authored
Also add convenience overloads that take handles, and use them in access-info.cc. Bug: v8:7790 Change-Id: I47e14b407b6a57c15da06b0396f8ae9ebb3a447d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2871445 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74352}
-
- 03 May, 2021 1 commit
-
-
Jakob Gruber authored
In the near future we'll have more cases where Ref construction is not guaranteed to succeed. Currently, we don't have convenient patterns to support optional construction. This CL adds the following helpers: base::Optional<FooRef> ref = TryMakeRef(broker, o); if (!ref.has_value()) return {}; // bailout // .. use ref. Or, in the case where construction is guaranteed to succeed: FooRef ref = MakeRef(broker, o); // .. use ref. Bug: v8:7790 Change-Id: I759235c314056c080d79ec413125d3957452c64c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2859169Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74325}
-
- 26 Apr, 2021 1 commit
-
-
Jakob Gruber authored
.. by locking the MapUpdater lock during MapData construction. Note this only applies to basic MapRef/MapData construction. Some methods, in particular MapRef::SerializeFoo methods, are not yet background-serializable in general and require more work. Bug: v8:7790 Change-Id: I473e78c82012ab6abc5a0633a4d34c4a40a3fb77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839553 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74164}
-