- 13 Dec, 2018 1 commit
-
-
Mythri authored
With V8 lite mode we don't allocate feedback vectors always. This cl adds a new NO_FFEDBACK IC state and uses it use/update feedback only when there is a valid feedback vector. Bug: v8:8394 Change-Id: I9b66ac38c69876e5c1e6eb01ba328a49678c8738 Reviewed-on: https://chromium-review.googlesource.com/c/1365278 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58210}
-
- 08 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I1d74ffe9e5478b4b8bc0acbf088d20919d458d50 Reviewed-on: https://chromium-review.googlesource.com/c/1363822 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58112}
-
- 30 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
to the new design. Bug: v8:3770 Change-Id: I63291cc8eccfa1da20e84c6d3e9f48f253409396 Reviewed-on: https://chromium-review.googlesource.com/c/1355627 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57981}
-
- 28 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If405611d359d29ae1958beebd9202e068434a621 Reviewed-on: https://chromium-review.googlesource.com/c/1350286 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57918}
-
- 27 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I4da6404aa968adca1fbb49029fc304622101d6c3 Reviewed-on: https://chromium-review.googlesource.com/c/1349112 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57853}
-
- 23 Nov, 2018 1 commit
-
-
Yang Guo authored
This reverts commit e64f7c0a. Reason for revert: this breaks chromedriver_py_test on Mac and Windows. This blocks the roll. Details: - DEPS roll with V8 pointing to this commit fails: https://chromium-review.googlesource.com/c/chromium/src/+/1349251 - DEPS roll with V8 pointing to the parent of this commit succeeds: https://chromium-review.googlesource.com/c/chromium/src/+/1349214 Original change's description: > Reland "[turbofan] Use feedback when reducing global loads/stores." > > This is a reland of 9c91b687 after > fixing undefined behavior in numeric conversion that caused trouble > on arm32. > > Original change's description: > > [turbofan] Use feedback when reducing global loads/stores. > > > > We already record the script context location or the property cell > > as feedback of the global load/store IC, so Turbofan doesn't need > > to do the lookups again. > > > > Change-Id: I6cbd2937de344729cd8e146b4ff85ddf3de6a56e > > Reviewed-on: https://chromium-review.googlesource.com/c/1335691 > > Commit-Queue: Georg Neis <neis@chromium.org> > > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#57555} > > Change-Id: Ic2d09025de02f92199755ac860bb9e91fa08f4ec > Reviewed-on: https://chromium-review.googlesource.com/c/1340043 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57649} TBR=neis@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I7c9364d6a0bea6681fe9e25b28206cfc2c8557a7 Reviewed-on: https://chromium-review.googlesource.com/c/1349272Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#57768}
-
- 20 Nov, 2018 1 commit
-
-
Georg Neis authored
This is a reland of 9c91b687 after fixing undefined behavior in numeric conversion that caused trouble on arm32. Original change's description: > [turbofan] Use feedback when reducing global loads/stores. > > We already record the script context location or the property cell > as feedback of the global load/store IC, so Turbofan doesn't need > to do the lookups again. > > Change-Id: I6cbd2937de344729cd8e146b4ff85ddf3de6a56e > Reviewed-on: https://chromium-review.googlesource.com/c/1335691 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57555} Change-Id: Ic2d09025de02f92199755ac860bb9e91fa08f4ec Reviewed-on: https://chromium-review.googlesource.com/c/1340043Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#57649}
-
- 19 Nov, 2018 1 commit
-
-
Igor Sheludko authored
which will eventually replace kPointerSize[Log2] to make it explicit what kind of values is expected. With enabled pointer compression these sizes will not be equal anymore. This CL starts an incremental migration to proper constants. Bug: v8:8477, v8:8238 Change-Id: Ia134d5a1c0639d9f9103d7a88bf87211e353ad50 Reviewed-on: https://chromium-review.googlesource.com/c/1340298Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57614}
-
- 16 Nov, 2018 1 commit
-
-
Jakob Gruber authored
This reverts commit 9c91b687. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm%20GC%20Stress/8864 Original change's description: > [turbofan] Use feedback when reducing global loads/stores. > > We already record the script context location or the property cell > as feedback of the global load/store IC, so Turbofan doesn't need > to do the lookups again. > > Change-Id: I6cbd2937de344729cd8e146b4ff85ddf3de6a56e > Reviewed-on: https://chromium-review.googlesource.com/c/1335691 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57555} TBR=neis@chromium.org,ishell@chromium.org,bmeurer@chromium.org Change-Id: I99d72075e01348733fecdffc6b5572b96eb577b4 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/1339860Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57559}
-
- 15 Nov, 2018 1 commit
-
-
Georg Neis authored
We already record the script context location or the property cell as feedback of the global load/store IC, so Turbofan doesn't need to do the lookups again. Change-Id: I6cbd2937de344729cd8e146b4ff85ddf3de6a56e Reviewed-on: https://chromium-review.googlesource.com/c/1335691 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57555}
-
- 13 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I52660eeda1bd299953793af9af1395f47e89072e Reviewed-on: https://chromium-review.googlesource.com/c/1331155 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#57454}
-
- 12 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I413ce57f7fa91cef2445995ca22650477f92b0df Reviewed-on: https://chromium-review.googlesource.com/c/1321892Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57445}
-
- 26 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
This CL applies the equivalent of the Object -> ObjectPtr transformation to MaybeObject and HeapObjectReference. We need no renaming in this case because we can just migrate them both in one go. Bug: v8:3770 Change-Id: Ie1259c3e8c556eff00f8bcf534d7270ca9fe00e1 Reviewed-on: https://chromium-review.googlesource.com/c/1298386 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57010}
-
- 24 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
as part of the continuing quest to get rid of Object*/Object**. This is a fairly mechanical replacement of Object**/MaybeObject** with wrapper objects carrying the same data. No change in behavior is intended. Overloaded operators are provided to minimize code churn. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I76cee82b8bf2dd80a1b66f09dd2bb2b65038eeb7 Reviewed-on: https://chromium-review.googlesource.com/c/1287889 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56920}
-
- 19 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
Those two methods are spread over the code base, and their purpose is often not clear. Historically, they were used to turn pointers into integers in order to do computations on them. Today we have {Address} which is uintptr_t, so we can compute directly on that. This also makes the {RoundUp} and {RoundDown} macros only work on integral values (including {Address}). R=mlippautz@chromium.org Bug: v8:8015 Change-Id: Ia98fb826793ee5d3a2a5b18c09c329d088443772 Reviewed-on: https://chromium-review.googlesource.com/1233914Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56048}
-
- 17 Sep, 2018 1 commit
-
-
Marja Hölttä authored
BodyDescriptorWeak is not needed for all classes. For the classes it's needed it's referred to explicitly (Foo::BodyDescriptorWeak::IterateBody()). BUG=v8:7308 Change-Id: If8591929cd588575e88f3d6f116ec2cac4941e8f Reviewed-on: https://chromium-review.googlesource.com/1226649Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55941}
-
- 13 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
HeapObject::GetHeap and HeapObject::GetIsolate are gone since https://crrev.com/c/1140319 (landed in July), hence we can clean up the using declarations to force use of the methods declared in NeverReadOnlySpaceObject. R=delphick@chromium.org Bug: v8:7786 Change-Id: Iec4edd394ac57a3f378dd1a9a100320e82cf8ea5 Reviewed-on: https://chromium-review.googlesource.com/1224414Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55863}
-
- 05 Sep, 2018 1 commit
-
-
Hai Dang authored
This is a reland of 1c48d52b. It turned out that IterableToList doesn't always behave according to the ES operation with the same name. Specifically, it allows holey arrays to take its fast path, which produces an output array with holes where actually "undefined" elements should appear. This CL changes the version of IterableToList that is used for spreads (IterableToListWithSymbolLookup) such that holey arrays take the slow path. It also includes tests for such situations. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} Bug: v8:7980 Change-Id: I0b5603a12d2b588327658bf0a9b214bd0f22e237 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1201882 Commit-Queue: Hai Dang <dhai@google.com> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55639}
-
- 31 Aug, 2018 1 commit
-
-
Georg Neis authored
This reverts commit 1c48d52b. Reason for revert: Clusterfuzz found something. Original change's description: > [interpreter] Add bytecode for leading array spreads. > > This CL improves the performance of creating [...a, b] or [...a]. > If the array literal has a leading spread, this CL emits the bytecode > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable > is implemented by [IterableToListDefault] builtin to create the initial > array for the leading spread. IterableToListDefault has a fast path to > clone efficiently if the spread is an actual array. > > The bytecode generated is now shorter. Bytecode generation is refactored > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit > from this optimization also. > For now, turbofan also lowers the bytecode to the builtin. > > The idiomatic use of [...a] to clone the array a now performs better > than a simple for-loop, but still does not match the performance of slice. > > Bug: v8:7980 > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 > Reviewed-on: https://chromium-review.googlesource.com/1181024 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Commit-Queue: Hai Dang <dhai@google.com> > Cr-Commit-Position: refs/heads/master@{#55520} TBR=rmcilroy@chromium.org,neis@chromium.org,sigurds@chromium.org,gsathya@chromium.org,jgruber@chromium.org,dhai@google.com Change-Id: I1c86ddcc24274da9f5a8dd3d8bf8d869cbb55cb6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1199303Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55544}
-
- 30 Aug, 2018 1 commit
-
-
Hai Dang authored
This CL improves the performance of creating [...a, b] or [...a]. If the array literal has a leading spread, this CL emits the bytecode [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable is implemented by [IterableToListDefault] builtin to create the initial array for the leading spread. IterableToListDefault has a fast path to clone efficiently if the spread is an actual array. The bytecode generated is now shorter. Bytecode generation is refactored into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit from this optimization also. For now, turbofan also lowers the bytecode to the builtin. The idiomatic use of [...a] to clone the array a now performs better than a simple for-loop, but still does not match the performance of slice. Bug: v8:7980 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35 Reviewed-on: https://chromium-review.googlesource.com/1181024Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Commit-Queue: Hai Dang <dhai@google.com> Cr-Commit-Position: refs/heads/master@{#55520}
-
- 28 Aug, 2018 1 commit
-
-
Hai Dang authored
The SharedFeedbackSlot helper class allow bytecodes to share one feedback slot. The helper will only create the slot on-demand, at the first-use. This does not encapsulate the use-case of FeedbackSlotCache. Change-Id: I22aec19d59e52e7395898fa2a59c5c1ec95abbe8 Reviewed-on: https://chromium-review.googlesource.com/1189904 Commit-Queue: Hai Dang <dhai@google.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#55452}
-
- 14 Aug, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I310d9453be8b90a82856c0d394442aad5527a3ae Reviewed-on: https://chromium-review.googlesource.com/1169167 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55105}
-
- 25 Jul, 2018 1 commit
-
-
Benedikt Meurer authored
When going to PREMONOMORPHIC state we previously stored the premonomorphic sentinel into the first IC slot and then the second slot was storing the uninitialized sentinel. So when TurboFan kicked in and optimized the function we'd just put a LOAD_IC in there and hoped for the best that this is either not in hot code or will reoptimize for another reason later to fixup the LOAD_IC. This is a quite annoying footgun for developers because the performance inevitably depends on timing of when the optimizing compiler kicks in. To fix this issue we now keep a weak reference to the receiver map in the second slot of the IC in PREMONOMORPHIC state and use that to speculatively optimize when we go to TurboFan. This improves the performance on the reported bug from spread: 2342 ms. spread: 2352 ms. spread: 2339 ms. to spread: 1490 ms. spread: 1451 ms. spread: 1445 ms. which corresponds to a 36% improvement in this particular case. In general you'll get more predictable performance with this change. We might want to also use the map when going to MONOMORPHIC state at a later point to maybe skip the additional transition to POLYMORPHIC in some cases, but that's independent of this bug. Bug: v8:5267, v8:7973 Change-Id: Ia4eef7651e219a40927531cdffe320ade1dd19a4 Reviewed-on: https://chromium-review.googlesource.com/1148205Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54682}
-
- 20 Jul, 2018 1 commit
-
-
Caitlin Potter authored
As discussed in https://docs.google.com/document/d/1sBdGe8RHgeYP850cKSSgGABTyfMdvaEWLy-vertuTCo/edit?ts=5b3ba5cc#, this CL introduces a new bytecode (CloneObject), and a new IC type. In this prototype implementation, the type feedback looks like the following: Uninitialized case: { uninitialized_sentinel, uninitialized_sentinel } Monomorphic case: { weak 'source' map, strong 'result' map } Polymorphic case: { WeakFixedArray with { weak 'source' map, strong 'result' map }, cleared value } Megamorphic case: { megamorphic_sentinel, cleared_Value } In the fast case, Object cloning is done by allocating an object with the saved result map, and a shallow clone of the fast properties from the source object, as well as cloned fast elements from the source object. If at any point the fast case can't be taken, the IC transitions to the slow case and remains there. This prototype CL does not include any TurboFan optimization, and the CloneObject operation is merely reduced to a stub call. It may still be possible to get some further improvements by somehow incorporating compile-time boilerplate elements into the cloned object, or simplifying how the boilerplate elements are inserted into the object. In terms of performance, we improve the ObjectSpread score in JSTests/ObjectLiteralSpread/ by about 8x, with substantial improvements over the Babel and ObjectAssign scores. R=gsathya@chromium.org, mvstanton@chromium.org, rmcilroy@chromium.org, neis@chromium.org, bmeurer@chromium.org BUG=v8:7611 Change-Id: I79e1796eb77016fb4feba0e1d3bb9abb348c183e Reviewed-on: https://chromium-review.googlesource.com/1127472 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#54595}
-
- 02 Jul, 2018 1 commit
-
-
Leszek Swirski authored
FeedbackVector and AllocationSite are now NeverReadOnlySpaceObjects Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I6109c0c4a391b19c5c77c61b52aae989707fecc4 Reviewed-on: https://chromium-review.googlesource.com/1120532 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54139}
-
- 26 Jun, 2018 1 commit
-
-
Dan Elphick authored
All Object::Print functions now take an Isolate* parameter. Various XX::XXPrint functions now take an Isolate if it's needed rather than calling GetIsolate(). Such method use DECL_PRINTER_WITH_ISOLATE rather than DECL_PRINTER. The _v8_internal_Print_ function (intended for use in gdb) now uses Isolate::Current() to get hold of an Isolate. Reduces the GetIsolate and GetHeap count by 9 and 5 respectively. Also removes unneeded gdb/lldb macros (along with their support functions), jfv, jfm, jda and jta, since job does the same thing. Bug: v8:7786 Change-Id: Ib93ebca6ca47c4db9c85cc6d9ff8004da5942dec Reviewed-on: https://chromium-review.googlesource.com/1112001 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54029}
-
- 15 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Add a separate GetIsolate implementation for Context and JSObjects so that we can continue using it on these context-specific types, while eventually removing HeapObject::GetIsolate(). Bug: v8:7786 Change-Id: I86c2e12c6878e060338cbd5c3bbe27dcf978e34b Reviewed-on: https://chromium-review.googlesource.com/1101320 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53746}
-
- 23 May, 2018 1 commit
-
-
Marja Hölttä authored
Previous version: https://chromium-review.googlesource.com/1049606 This version is exactly the same as the previous; a bugfix ( https://chromium-review.googlesource.com/c/v8/v8/+/1069127 ) makes relanding possible. BUG=v8:7308 TBR=ishell@chromium.org, tebbi@chromium.org, leszeks@chromium.org, ulan@chromium.org Change-Id: If7d455ceb6af0505a44b4fc52c52143e51cd115a Reviewed-on: https://chromium-review.googlesource.com/1070027Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53296}
-
- 18 May, 2018 1 commit
-
-
Marja Hölttä authored
This reverts commit c063e3f0. Reason for revert: https://bugs.chromium.org/p/v8/issues/detail?id=7768 Original change's description: > [in-place weak refs] Replace WeakCells in FeedbackVector. > > BUG=v8:7308 > > Change-Id: I08b97f7f47e2d96e313b70a66cd890fedd46e9fb > Reviewed-on: https://chromium-review.googlesource.com/1049606 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53233} TBR=ulan@chromium.org,marja@chromium.org,leszeks@chromium.org,tebbi@chromium.org,ishell@chromium.org Change-Id: I68c068883884f9311ff166306245d0f21693bb6f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Reviewed-on: https://chromium-review.googlesource.com/1065631Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53241}
-
- 17 May, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I08b97f7f47e2d96e313b70a66cd890fedd46e9fb Reviewed-on: https://chromium-review.googlesource.com/1049606 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53233}
-
- 14 May, 2018 1 commit
-
-
Marja Hölttä authored
This gets rid of the weakness hacks which were needed for remembering that maps as handlers are weak, and other handles are strong. BUG=v8:7308 Change-Id: I7fd3252ba67350803e2207dc12bbdf6abbae7e23 Reviewed-on: https://chromium-review.googlesource.com/1055449Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53151}
-
- 08 May, 2018 1 commit
-
-
Marja Hölttä authored
- Make FeedbackVector backing store a WeakFixedArray. - "feedback" is always strong but "extra" might be weak. - Whenever the handler stored in FeedbackVector is a WeakCell to a transition Map, replace it with an in-place weak reference. For a more detailed description of the changes, see the design doc https://docs.google.com/document/d/1P8cIme2wKszdYt64ObAiuh6pXgLnrrn80Hpl1ejJbOU/edit#heading=h.ijx1oculrikp BUG=v8:7308 Change-Id: I72c5cf6597ef24d4c22a1fe8e25b67ca196d4ec8 Reviewed-on: https://chromium-review.googlesource.com/1027855 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53051}
-
- 30 Apr, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I55400096095619e2995a50adadf93253fc95d34c Reviewed-on: https://chromium-review.googlesource.com/1034057Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52880}
-
- 19 Apr, 2018 2 commits
-
-
Marja Hölttä authored
This reverts commit 9d0154d6. Reason for revert: gc stress breakage, prob this commit is broken. Original change's description: > [heap] Verify FeedbackVector contents during heap verification. > > Pre-work for in-place weak refs. > > BUG=v8:7308 > > Change-Id: I5c7086bded14879f62ab366d0aba59302f0078d3 > Reviewed-on: https://chromium-review.googlesource.com/1010069 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52681} TBR=marja@chromium.org,yangguo@chromium.org,mvstanton@chromium.org,ishell@chromium.org Change-Id: I7d95e375e06db186f0e9823cb080ce15d1e1062d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Reviewed-on: https://chromium-review.googlesource.com/1019180Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52682}
-
Marja Hölttä authored
Pre-work for in-place weak refs. BUG=v8:7308 Change-Id: I5c7086bded14879f62ab366d0aba59302f0078d3 Reviewed-on: https://chromium-review.googlesource.com/1010069 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#52681}
-
- 09 Mar, 2018 1 commit
-
-
Peter Marshall authored
Previously we used a FixedArray for the FeedbackMetadata, packing bits of information into Smi fields. On 64-bit platforms, we waste at least half of the available memory by using the Smi representation. Given that this is just raw data (no pointers), we can just use a new type that uses the existing packing scheme to store the data in int32 format instead. This CL changes FeedbackMetadata to a new subclass of HeapObject. This is to reduce the API surface exposed, in comparison to extending/using a more general purpose data structure like ByteArray, which is also just raw data. FeedbackMetadata only exposes general purpose methods for accessing slots, but hides the implementation detail of packing bits into int32 fields. This CL also introduces a sentinal EmptyFeedbackMetadata, because there are ~750 empty FeedbackMetadata objects when running an empty program in V8. These are probably for builtins. Bug: v8:7500 Change-Id: Ic85563153abbd71a22854cee8519260c32b1e9ab Reviewed-on: https://chromium-review.googlesource.com/945730 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#51842}
-
- 05 Mar, 2018 3 commits
-
-
Marja Hölttä authored
Implement in-place weak reference handling in GC. Turn FeedbackVector::optimized_code_or_smi into an in-place weak reference (this is the only in-place weak reference at this point). (See bug for design doc.) BUG=v8:7308 TBR=yangguo@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I16d65dc768f10ed431252e23a0df07bee9063534 Reviewed-on: https://chromium-review.googlesource.com/948493 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51731}
-
Sigurd Schneider authored
This reverts commit 07c1e641. Reason for revert: Breaks TSAN build. https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/19784 Original change's description: > [in-place weak refs] Add in-place weak references & migrate one WeakCell to it. > > Implement in-place weak reference handling in GC. > > Turn FeedbackVector::optimized_code_or_smi into an in-place weak reference (this > is the only in-place weak reference at this point). > > (See bug for design doc.) > > BUG=v8:7308 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I0f9f992cb4ee0457c40b7c868317dfb607bfb906 > Reviewed-on: https://chromium-review.googlesource.com/873638 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51722} TBR=ulan@chromium.org,marja@chromium.org,yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,ishell@chromium.org,bmeurer@chromium.org Change-Id: I75a7dd99fbfd2f5922a6c4d2000bea2adfdeac11 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/948522Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#51723}
-
Marja Hölttä authored
Implement in-place weak reference handling in GC. Turn FeedbackVector::optimized_code_or_smi into an in-place weak reference (this is the only in-place weak reference at this point). (See bug for design doc.) BUG=v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0f9f992cb4ee0457c40b7c868317dfb607bfb906 Reviewed-on: https://chromium-review.googlesource.com/873638 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51722}
-
- 02 Mar, 2018 1 commit
-
-
Georg Neis authored
... and use it in the implementation of array literal spreads, replacing calls to %AppendElement. Array spreads in destructuring will be taken care of in a separate CL. Bug: v8:5940, v8:7446 Change-Id: Idec52398902a7fd3c1244852cf73246f142404f0 Reviewed-on: https://chromium-review.googlesource.com/915364 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#51709}
-