- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 20 May, 2019 2 commits
-
-
Yang Guo authored
TBR=verwaest@chromium.org,rmcilroy@chromium.org NOTREECHECKS=true NOPRESUBMIT=true Bug: v8:9247 Change-Id: I9ddfb6e56ca8e47c4ac186a8df5f442d26420a69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617661 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61642}
-
Yang Guo authored
Code that is being moved primarily deal with layout of a JSObject, accessing properties and elements, and map transitions. NOTREECHECKS=true NOTRY=true Bug: v8:9247 Change-Id: Ibce5d5926ac4021c8d40c4dd109948775ce1da58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613994 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61638}
-
- 17 May, 2019 2 commits
-
-
Yang Guo authored
This reverts commit 5f285395. Reason for revert: presubmit failure Original change's description: > Move logging and diagnostics related source files > > This also introduces a COMMON_OWNERS file, which is derived from the > current top-level OWNERS file. It is to be used for parts of the > codebase that is not sensitive to domain-specific expertise. > > NOPRESUBMIT=true > TBR=verwaest@chromium.org > > Bug: v8:9247 > Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61600} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org Change-Id: I3827c3af4fd63b18aa48c49617f318a01746e813 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617247Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61601}
-
Yang Guo authored
This also introduces a COMMON_OWNERS file, which is derived from the current top-level OWNERS file. It is to be used for parts of the codebase that is not sensitive to domain-specific expertise. NOPRESUBMIT=true TBR=verwaest@chromium.org Bug: v8:9247 Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61600}
-
- 16 May, 2019 2 commits
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: Ib3c67e4f038b3eac3f85cd2f3c38501a4b2073f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609792 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61577}
-
Georg Neis authored
Bug: v8:7790 Change-Id: Ib729393c38ca064bf3af141674ab5f697872a1b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613991Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61571}
-
- 15 May, 2019 1 commit
-
-
Georg Schmid authored
Change-Id: I28f2c87ffae32d16bcfb7cb17ec6e607e7fa2285 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599172 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61506}
-
- 13 May, 2019 1 commit
-
-
Georg Neis authored
Bug: chromium:961986, v8:7790 Change-Id: I4c5fbd8eafb96ffe7e54be28eb5c5462b49ed015 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1607648Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61439}
-
- 10 May, 2019 1 commit
-
-
Georg Neis authored
Brokerize parts of named property access. Bug: v8:7790 Change-Id: I465bced5f266969040d1e966946a162b0a850c5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1596734Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61414}
-
- 07 May, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Follow -up CL that aims to eliminate the straggler tagged loads and stores. It includes a lot of access builder changes. There are 8 access (2 Any and 6 Pointer) that are still remaining as tagged since changing those to compressed make some tests fail. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977, v8:7703 Change-Id: Iad305fd3a2da257764d22bad30b25489f727e676 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588431Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#61270}
-
- 27 Apr, 2019 1 commit
-
-
Jaroslav Sevcik authored
This enables constant field tracking unconditionally. TBR=jgruber@chromium.org Bug: v8:8361 Change-Id: I02f35827d860c3e0f18a3d55cb156c088d48bc94 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585730 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61055}
-
- 26 Apr, 2019 1 commit
-
-
Georg Neis authored
Instead of recording dependencies during ComputePropertyAccessInfo(s), store off-the-record dependencies in the resulting PropertyAccessInfo(s) and record them when the PropertyAccessInfo(s) are consumed. This will enable us to do the ComputePropertyAccessInfo(s) during serialization. Bug: v8:7790 Change-Id: I2a3918eb3bc2c795061ca7969c0053b68a53aea7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581610 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61051}
-
- 18 Apr, 2019 1 commit
-
-
Santiago Aboy Solanes authored
This CL adds the representation changes from/to CompressedPointer to the other data types (excluding Tagged, which was done in a previous CL). Also adding missing write barriers for compressed values (WriteBarrierKindFor). Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977, v8:7703 Change-Id: Ieb4e6dd72371e858ba1da551f765e42581a51f90 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571616Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#60924}
-
- 17 Apr, 2019 1 commit
-
-
Santiago Aboy Solanes authored
This CL adds the representation changes from/to CompressedSigned to the other data types (excluding Tagged, which was done in a previous CL). Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977, v8:7703 Change-Id: If967a1a0fc669c45a2764cf950cf02d8c06b08b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547859 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60903}
-
- 16 Apr, 2019 1 commit
-
-
Georg Neis authored
We'll eventually map each relevant map to a PropertyAccessInfo at serialization time. Bug: v8:7790 Change-Id: I739075af3629359f43acfdeb609112f355f1bd38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565899 Commit-Queue: Georg Neis <neis@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60872}
-
- 12 Apr, 2019 3 commits
-
-
Santiago Aboy Solanes authored
This CL can be used as a base for specialising CompressedSigned and CompressedPointer. B Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng,v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:8977, v8:7703 Change-Id: I43c8e7f57021ac506822aba5bbd4bdf6cc3159ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543731 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60827}
-
Benedikt Meurer authored
This adds a new flag --modify-field-representation-inplace (enabled by default), which lets the runtime perform field representation changes for Smi to Tagged or for HeapObject to Tagged in-place instead of creating new maps and marking the previous map tree as deprecated. That means we create (a lot) fewer Maps and DescriptorArrays in the beginning and also need to self-heal fewer objects later (migrating off the deprecated maps). In TurboFan we just take the "field owner dependency" whenever we use the field representation, which is very similar to what we already do for the field types. That means if we change the representation of a field that we used in optimized code, we will simply deoptimize that code and have TurboFan potentially later optimize it again with the new field representation. On the Speedometer2/ElmJS-TodoMVC test, this reduces the total execution time from around 415ms to around 352ms, which corresponds to a **15%** improvement. The overall Speedometer2 score improves from around 74.1 to around 78.3 (on local runs with content_shell), corresponding to a **5.6%** improvement here.
On the CNN desktop browsing story, it seems that we reduce map space utilization/fragmentation by about 4-5%. But since we allocate a lot less (fewer Maps and DescriptorArrays) we also significantly change the GC timing, which heavily influences the results here. So take this with a grain of salt. Note: For Double fields, this doesn't change anything, meaning they still create new maps and deprecate the previous map trees. Bug: v8:8749, v8:8865, v8:9114 Change-Id: Ibd70efcb59be982863905663dbfaa89aa5b31e14 Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel Doc: http://bit.ly/v8-in-place-field-representation-changes Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565891 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60822} -
Michael Hablich authored
This reverts commit 1416d5a5. Reason for revert: blocks roll https://chromium-review.googlesource.com/c/chromium/src/+/1564550 Original change's description: > [map] Support in-place field representation changes. > > This adds a new flag --modify-field-representation-inplace (enabled by > default), which lets the runtime perform field representation changes > for Smi to Tagged or for HeapObject to Tagged in-place instead of > creating new maps and marking the previous map tree as deprecated. > > That means we create (a lot) fewer Maps and DescriptorArrays in the > beginning and also need to self-heal fewer objects later (migrating > off the deprecated maps). In TurboFan we just take the "field owner > dependency" whenever we use the field representation, which is very > similar to what we already do for the field types. That means if we > change the representation of a field that we used in optimized code, > we will simply deoptimize that code and have TurboFan potentially > later optimize it again with the new field representation. > > On the Speedometer2/ElmJS-TodoMVC test, this reduces the total execution > time from around 415ms to around 352ms, which corresponds to a **15%** > improvement. The overall Speedometer2 score improves from around 74.1 > to around 78.3 (on local runs with content_shell), corresponding to a > **5.6%** improvement here.
> > On the CNN desktop browsing story, it seems that we reduce map space > utilization/fragmentation by about 4-5%. But since we allocate a lot > less (fewer Maps and DescriptorArrays) we also significantly change > the GC timing, which heavily influences the results here. So take this > with a grain of salt. ♂️ > > Note: For Double fields, this doesn't change anything, meaning they > still create new maps and deprecate the previous map trees. > > Bug: v8:8749, v8:8865, v8:9114 > Change-Id: I694a53f87ae5caeb868fd98a21809b66d4297d35 > Cq-Include-Trybots: luci.chromium.try:linux-blink-rel > Doc: http://bit.ly/v8-in-place-field-representation-changes > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561132 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60764} TBR=jarin@chromium.org,neis@chromium.org,ishell@chromium.org,bmeurer@chromium.org,verwaest@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:8749, v8:8865, v8:9114 Change-Id: I666975d08d51bbe7ab4faec9428b9a1f88e9b322 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564208Reviewed-by: Michael Hablich <hablich@chromium.org> Commit-Queue: Michael Hablich <hablich@chromium.org> Cr-Commit-Position: refs/heads/master@{#60807}
-
- 11 Apr, 2019 1 commit
-
-
Benedikt Meurer authored
This adds a new flag --modify-field-representation-inplace (enabled by default), which lets the runtime perform field representation changes for Smi to Tagged or for HeapObject to Tagged in-place instead of creating new maps and marking the previous map tree as deprecated. That means we create (a lot) fewer Maps and DescriptorArrays in the beginning and also need to self-heal fewer objects later (migrating off the deprecated maps). In TurboFan we just take the "field owner dependency" whenever we use the field representation, which is very similar to what we already do for the field types. That means if we change the representation of a field that we used in optimized code, we will simply deoptimize that code and have TurboFan potentially later optimize it again with the new field representation. On the Speedometer2/ElmJS-TodoMVC test, this reduces the total execution time from around 415ms to around 352ms, which corresponds to a **15%** improvement. The overall Speedometer2 score improves from around 74.1 to around 78.3 (on local runs with content_shell), corresponding to a **5.6%** improvement here.
On the CNN desktop browsing story, it seems that we reduce map space utilization/fragmentation by about 4-5%. But since we allocate a lot less (fewer Maps and DescriptorArrays) we also significantly change the GC timing, which heavily influences the results here. So take this with a grain of salt. ♂️ Note: For Double fields, this doesn't change anything, meaning they still create new maps and deprecate the previous map trees. Bug: v8:8749, v8:8865, v8:9114 Change-Id: I694a53f87ae5caeb868fd98a21809b66d4297d35 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Doc: http://bit.ly/v8-in-place-field-representation-changes Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561132 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#60764}
-
- 10 Apr, 2019 2 commits
-
-
Jaroslav Sevcik authored
If the runtime does not transition in keyed store IC miss handler, avoid generating transitioning handler since this could make the receiver map non-stable. (The optimizing compiler does not like non-stable fast prototype maps.) Bug: chromium:950328 Change-Id: I113880d2033518e3eb8fd11df1599e56a67d7fd0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559867 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60752}
-
Georg Neis authored
Make the tracing code and output more consistent and/or compact. Also, restrict --trace-heap-broker to reports about missing data and introduce a new flag --trace-heap-broker-verbose that prints everything. Bug: v8:7790 Change-Id: I6e678fb97bf8631428594f77d8b5f0909ab2e281 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559864Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#60745}
-
- 03 Apr, 2019 1 commit
-
-
Benedikt Meurer authored
When TurboFan optimizes field access, we need to check first that the runtime already determined the correct field representation properly. If the field representation is still None, we cannot optimize this in TurboFan straight away but we have to call the IC to let the runtime do the magic. Bug: chromium:944865 Change-Id: I032a48824e83806e1be7670346f518b258a9dd65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549167Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60607}
-
- 14 Mar, 2019 1 commit
-
-
Georg Neis authored
Main changes: - Rename ProcessedFeedback to ElementAccessFeedback and introduce a base class with the old name ProcessedFeedback. - Introduce another kind of ProcessedFeedback, namely GlobalAccessFeedback for the LoadGlobal/StoreGlobal IC. It's either a PropertyCell or a script context slot. - Produce such processed feedback in the serializer, when visiting LdaGlobal and similar bytecodes. - Consume it, and disallow heap access, in JSNativeContextSpecialization's ReduceJSLoadGlobal and ReduceJSStoreGlobal (for --concurrent-inlining). Minor changes: - Introduce a FeedbackSource class (pair of FeedbackVector and FeedbackSlot) that is used as the key of the processed feedback hash table. We already have two similar classes, FeedbackNexus and VectorSlotPair, but both are unsuitable for technical reasons (e.g. FeedbackNexus construction accesses the heap). Eventually we should remove VectorSlotPair. - Processed feedback is now returned as a pointer, which is nullptr if the original feedback wasn't interesting (e.g. megamorphic). The title says "partially" because the CL doesn't yet take into account named accesses where the receiver happens to be the global proxy. Bug: v8:7790 Change-Id: I4404d98636b91a8f2d5667115944bae4773a4770 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518184 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60240}
-
- 07 Mar, 2019 1 commit
-
-
Igor Sheludko authored
... because the latter are not meant to be modified from non-main thread and especially after V8 isolate is set up while the former are modified cuncurrently by tracing API. Tbr: verwaest@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Bug: v8:8929, v8:8834 Change-Id: I44d3da2f388bb8bb8d0365ac6354e761bf92b936 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505581Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60104}
-
- 06 Mar, 2019 1 commit
-
-
Georg Neis authored
This CL builds on top of feedback preprocessing. It brokerizes all parts of element access reduction and disallows heap access there (except for debug tracing). To make this work without breaking tests (when concurrent inlining is enabled): - We don't inline functions that weren't serialized for compilation. - We don't optimize for constant typed-array receivers when the typed array wasn't serialized. This means that from now on --concurrent-inlining (and thus --future) may result in less optimization than the default configuration. Bug: v8:7790 Change-Id: I22685258b7d841fc9183bf99775d3f09cd272927 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1495556 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60061}
-
- 01 Mar, 2019 1 commit
-
-
Matt Gardner authored
The original was reverted for breaking webkit layout tests: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/30270 It also caused the following clusterfuzz failures: chromium:935832 This was a correctness bug due to not properly handling the case of arrays with prototypes other than Array.prototype. Accesses that were TheHole were not being handled property, both in bounds holes in holey arrays and out of bounds on either holey or packed arrays. Handling was incorrect both in access-assembler and in Turbofan. chromium:935932 This bug was that there was no handling for Has checks on the global object. Turbofan was emitting code for a store (the 'else' condition on 'access_mode == AccessMode::kLoad'). It hit a DCHECK in debug builds but in release could show up in different places. This is the bug that caused the webkit layout test failure that led to the revert. Both bugs are fixed by in CL, and tests are added for those cases. Bug: v8:8733, chromium:935932, chromium:935832 Change-Id: Iba0dfcfce6e15d2c0815a7670ece67bc13ba1925 Reviewed-on: https://chromium-review.googlesource.com/c/1493132Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Matt Gardner <magardn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#59958}
-
- 27 Feb, 2019 1 commit
-
-
Georg Neis authored
This was an oversight in my previous CL. Bug: chromium:936077, v8:7790 Change-Id: Ic1034c1754d10c72df8f61d1e2c34333e1565e3e Reviewed-on: https://chromium-review.googlesource.com/c/1491222Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59923}
-
- 26 Feb, 2019 2 commits
-
-
Georg Neis authored
When --concurrent_inlining is on, precompute (during serialization) the list of receiver maps and the transition matrix of element accesses. Bug: v8:7790 Change-Id: I257eaea630f33831ab6600851ccdf297e17e35ca Reviewed-on: https://chromium-review.googlesource.com/c/1475769 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59863}
-
Sigurd Schneider authored
This reverts commit 32fc0acf. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/30270 layout test breakage: https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64/30270/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html There is a dead node arriving in representation selection, which might indicate that the problem is not in this CL, but that this CL stirs up the node soup in such a way that dead code elimination gets confused. Original change's description: > Optimize `in` operator > > This change implements optimizations for the `in` operator for packed array > elements and object properties. It adds a new feedback slot kind and an IC > path similar to KeyedLoadIC for handling the lookups. TurboFan uses the > feedback to optimize based on the maps and keys. > > For more details see: > https://docs.google.com/document/d/1tIfzywY8AeNVcy_sen-5Xev21MeZwjcU8QhSdzHvXig > > This can provide 10x performance improvements of on loops of the form: > > for (let i = 0; i < ary.length; ++i) { > if (i in ary) { > ... > } > } > > > Bug: v8:8733 > Change-Id: I766bf865a547a059e5bce5399bb6112e5d9a85c8 > Reviewed-on: https://chromium-review.googlesource.com/c/1432598 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Matt Gardner <magardn@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#59843} TBR=ulan@chromium.org,rmcilroy@chromium.org,jkummerow@chromium.org,jarin@chromium.org,ishell@chromium.org,bmeurer@chromium.org,verwaest@chromium.org,magardn@microsoft.com Change-Id: Ib2db974e5bed4c4a2b6b450f796bdc4b0b8fd562 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8733 Reviewed-on: https://chromium-review.googlesource.com/c/1488761Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59857}
-
- 25 Feb, 2019 1 commit
-
-
Matt Gardner authored
This change implements optimizations for the `in` operator for packed array elements and object properties. It adds a new feedback slot kind and an IC path similar to KeyedLoadIC for handling the lookups. TurboFan uses the feedback to optimize based on the maps and keys. For more details see: https://docs.google.com/document/d/1tIfzywY8AeNVcy_sen-5Xev21MeZwjcU8QhSdzHvXig This can provide 10x performance improvements of on loops of the form: for (let i = 0; i < ary.length; ++i) { if (i in ary) { ... } } Bug: v8:8733 Change-Id: I766bf865a547a059e5bce5399bb6112e5d9a85c8 Reviewed-on: https://chromium-review.googlesource.com/c/1432598Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Matt Gardner <magardn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#59843}
-
- 21 Feb, 2019 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: I92657d3aae6ba34b2aeeb6f000962707577811b6 Reviewed-on: https://chromium-review.googlesource.com/c/1478696Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59751}
-
- 14 Feb, 2019 1 commit
-
-
Georg Neis authored
... such that the feedback maps can evenentually be processed in the serialization phase. Bug: v8:7790 Change-Id: Ic033e88646a1b161710b1ca2028ef10f49d23cfd Reviewed-on: https://chromium-review.googlesource.com/c/1472293Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59592}
-
- 13 Feb, 2019 2 commits
-
-
Georg Neis authored
I had forgotten to remove this in https://chromium-review.googlesource.com/c/v8/v8/+/1458243 Change-Id: Id0da5f87f782e854b204f400173aa2bbecb4c43c Reviewed-on: https://chromium-review.googlesource.com/c/1470133Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59578}
-
Georg Neis authored
...mainly by moving two big chunks into separate methods. Change-Id: I048a8d27c28bc171559190a915616efbebdfe6cc Reviewed-on: https://chromium-review.googlesource.com/c/1462957Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59550}
-
- 11 Feb, 2019 2 commits
-
-
Georg Neis authored
Then the various methods that take receiver maps don't need to worry about deprecated maps. Change-Id: I09c53939275b1af19d54430bfecb23809a4257c2 Reviewed-on: https://chromium-review.googlesource.com/c/1458243Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59496}
-
Georg Neis authored
For unknown reasons, we didn't try to update deprecated maps when taking the shortcut for compatible element kinds. Change-Id: I78f70f1d98acd40cfc6687f0b087182849a0188e Reviewed-on: https://chromium-review.googlesource.com/c/1454722Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59491}
-
- 08 Feb, 2019 1 commit
-
-
Georg Neis authored
It unnecessarily allowed for transitions in the presence of multiple receiver maps. Bug: v8:7790 Change-Id: I226f499f626ffb7c1b084aa5a45684e7782d1760 Reviewed-on: https://chromium-review.googlesource.com/c/1456088Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59459}
-
- 06 Feb, 2019 1 commit
-
-
Georg Neis authored
This would enable us to move the computation to the serialization pass, while keeping the merging in the reducers. Bug: v8:7790 Change-Id: Ic1a4da7085e1c0ebe787a5c7ad79f0f09e7c3c76 Reviewed-on: https://chromium-review.googlesource.com/c/1452796Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59414}
-
- 14 Jan, 2019 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: Iad9a3087ea7915bade6c70c56f6d8f6f640f26cb Reviewed-on: https://chromium-review.googlesource.com/c/1408889Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#58773}
-