- 12 Sep, 2019 1 commit
-
-
Swapnil Gaikwad authored
Current GetIterator bytecode loads and calls @@iterator property on a given object. This change extends the bytecode functionality to check whether the value returned after calling @@iterator property is a valid JSReceiver. The bytecode throws SymbolIteratorInvalid exception if the returned value is not a valid JSReceiver. This change absorbs the functionality of additional two bytecodes - JumpIfJSReceiver and CallRuntime, that are part of the iterator protocol in the GetIterator bytecode. Bug: v8:9489 Change-Id: I9e84cfe85eeb9a1b8a97ca0595375ac26ba1bbfd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792905Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Swapnil Gaikwad <swapnilgaikwad@google.com> Cr-Commit-Position: refs/heads/master@{#63704}
-
- 30 Aug, 2019 1 commit
-
-
Maya Lekova authored
Introduce JSGlobalObjectRef to the heap broker. Bug: v8:7790 Change-Id: I055a0545b582d6ff4c4e0dd639ce532311a76fec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773267Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63472}
-
- 20 Aug, 2019 1 commit
-
-
Maya Lekova authored
Bug: v8:7790 Change-Id: I6f493d994f49d84020966322d60061567b54c854 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1760808 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63265}
-
- 19 Aug, 2019 3 commits
-
-
Georg Neis authored
This is a reland of 29585a06 after removing an incorrect DCHECK. Original change's description: > [turbofan] Various serializer/broker improvements > > They are all somewhat entangled, sorry for the big CL. > > - Brokerize remaining feedback vector slots. > - Introduce Hints::SingleConstant helper. > - Introduce SerializationPolicy enum. > - Eliminate use of nullptr for megamorphic load/store ic feedback. > Instead use the corresponding ProcessedFeedback with an empty list > of maps or the like. new class MegamorphicFeedback. > - Separate processing of feedback from serialization. This eliminates > code duplication. > - Be very careful when clearing hints not to overwrite hints that are > being processed. > - Move AccessInfos out of NamedAccessFeedback. Always store them in > property_access_infos_ map on broker. (This was actually unused > before, somewhat by mistake.) > - Support map inference in concurrent inlining. Rewrite > ElementAccessFeedback such that we can refine it with the set of > inferred maps. > > TBR: mvstanton@chromium.org > Change-Id: I05e9eb250bdffc6dff29db01742550a86a41cb31 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752853 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63232} TBR: mvstanton@chromium.org Bug: v8:7790 Change-Id: Ia4acd31b339a941ee065e1ae4835bb7b85d5685e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1758319Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63241}
-
Maya Lekova authored
This reverts commit 29585a06. Reason for revert: Breaks GC stress bots - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/24009 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/27281 Original change's description: > [turbofan] Various serializer/broker improvements > > They are all somewhat entangled, sorry for the big CL. > > - Brokerize remaining feedback vector slots. > - Introduce Hints::SingleConstant helper. > - Introduce SerializationPolicy enum. > - Eliminate use of nullptr for megamorphic load/store ic feedback. > Instead use the corresponding ProcessedFeedback with an empty list > of maps or the like. new class MegamorphicFeedback. > - Separate processing of feedback from serialization. This eliminates > code duplication. > - Be very careful when clearing hints not to overwrite hints that are > being processed. > - Move AccessInfos out of NamedAccessFeedback. Always store them in > property_access_infos_ map on broker. (This was actually unused > before, somewhat by mistake.) > - Support map inference in concurrent inlining. Rewrite > ElementAccessFeedback such that we can refine it with the set of > inferred maps. > > TBR: mvstanton@chromium.org > Change-Id: I05e9eb250bdffc6dff29db01742550a86a41cb31 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752853 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63232} TBR=mvstanton@chromium.org,neis@chromium.org Change-Id: I88625d92fddf993db63661666c59af05a47b2b58 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1758314Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63237}
-
Georg Neis authored
They are all somewhat entangled, sorry for the big CL. - Brokerize remaining feedback vector slots. - Introduce Hints::SingleConstant helper. - Introduce SerializationPolicy enum. - Eliminate use of nullptr for megamorphic load/store ic feedback. Instead use the corresponding ProcessedFeedback with an empty list of maps or the like. new class MegamorphicFeedback. - Separate processing of feedback from serialization. This eliminates code duplication. - Be very careful when clearing hints not to overwrite hints that are being processed. - Move AccessInfos out of NamedAccessFeedback. Always store them in property_access_infos_ map on broker. (This was actually unused before, somewhat by mistake.) - Support map inference in concurrent inlining. Rewrite ElementAccessFeedback such that we can refine it with the set of inferred maps. TBR: mvstanton@chromium.org Change-Id: I05e9eb250bdffc6dff29db01742550a86a41cb31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1752853 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63232}
-
- 09 Aug, 2019 1 commit
-
-
Swapnil Gaikwad authored
This is the first in a series of changes to reduce the number of bytecodes generated for the iteration protocol based operations. The GetIterator bytecode introduced in this change currently loads the @@iterator symbol from an object that was previously done using the LdaNamedProperty bytecode. This change uses builtin-based mechanism that would be extended to perform additional operations in the future on absorbing the bytecodes associated with the GetIterator operation from the iteration protocol. Bug: v8:9489 Change-Id: I83b8b55c27bae8260bf227f355eeca1ba80cd8f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701852 Commit-Queue: Swapnil Gaikwad <swapnilgaikwad@google.com> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#63139}
-
- 01 Aug, 2019 1 commit
-
-
Georg Neis authored
From JSNativeContextSpecialization::ReduceKeyedLoadFromHeapConstant to JSNativeContextSpecialization::ReduceElementLoadFromHeapConstant. Change-Id: Ib07a6a4bd599dc71a9a100b2f1f6baef68acbe0b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728618Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63027}
-
- 25 Jul, 2019 1 commit
-
-
Georg Neis authored
- Move SerializePrototype out of DependOnStablePrototypes into ComputePropertyAccessInfo. - Brokerize JSNativeContextSpecialization::InferHasInPrototypeChain. - Brokerize JSNativeContextSpecialization::ReduceJSOrdinaryHasInstance (modulo the call to ReduceJSInstanceOf). - Brokerize JSNativeContextSpecialization::ReduceJSHasInPrototypeChain. - Serialize for JSCallReducer::ReduceObjectPrototypeIsPrototypeOf. - Serialize for JSNativeContextSpecialization::ReduceJSInstanceOf. This is still incomplete. Bug: v8:7790 Change-Id: Ic56eab5ddd8d725a13d2980e5b55db53ae82e822 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709408 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62920}
-
- 05 Jul, 2019 1 commit
-
-
Maya Lekova authored
Got rid of the following circular header dependency chains: compilation-dependencies <-> js-heap-broker <-> access-info types <-> js-heap-broker <-> access-info Extracted former CompilationDependencies::Dependency class into its own header. Extracted *Ref classes into their own header. This should enable building on older GCC versions, e.g. 5.4.0. Bug: v8:9440 Change-Id: Ia345bc227d8f7806d0b8622b706346a7ce6d01ea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687415 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#62541}
-
- 24 Jun, 2019 1 commit
-
-
Georg Neis authored
We tried to pass the load mode even for stores. Bug: chromium:977670 Change-Id: I2527a5ca755dba343b75f54383d17e22be0a20a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672940 Auto-Submit: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62333}
-
- 21 Jun, 2019 1 commit
-
-
Georg Neis authored
A few are still left and made explicit with Allow* scopes. Bug: v8:7790 Change-Id: I85e78949730d046d3449e0cee70997e60a043825 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622108 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62310}
-
- 20 May, 2019 3 commits
-
-
Yang Guo authored
This reverts commit a7695520. Reason for revert: Was not the culprit. Original change's description: > Revert "Move deoptimizer files" > > This reverts commit 61523c45. > > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/20396 > > Original change's description: > > Move deoptimizer files > > > > Bug: v8:9247 > > Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 > > Commit-Queue: Yang Guo <yangguo@chromium.org> > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#61648} > > TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org > > Change-Id: Icf258f7bc409ef0c360cfa82029bfc45a41dc75f > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: v8:9247 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619749 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61650} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org Change-Id: Ic2aa07ccd08b6070222ec7a65b92b7afb9db484c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619753Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61652}
-
Yang Guo authored
This reverts commit 61523c45. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/20396 Original change's description: > Move deoptimizer files > > Bug: v8:9247 > Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61648} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,bmeurer@chromium.org Change-Id: Icf258f7bc409ef0c360cfa82029bfc45a41dc75f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619749Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61650}
-
Yang Guo authored
Bug: v8:9247 Change-Id: I6287907edb8a36225bfa9fe864305ea59c20dd8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617667 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61648}
-
- 16 May, 2019 1 commit
-
-
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}
-
- 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}
-
- 12 Apr, 2019 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: I65e050929a45c3391c5c9c9b0d814ae536664cf4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1564067 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@{#60828}
-
- 09 Apr, 2019 1 commit
-
-
Georg Neis authored
Instead optimize based on the name feedback. This simplifies matters for concurrent optimization. Drive-by: Rename "index" to "key" for clarity where appropriate. Bug: v8:7790 Change-Id: Id6db1174c7840c24044bc655e0ffee6a5b0de21c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559742 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60709}
-
- 29 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in compiler code to 'using' declarations. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I3baf3ecbfe2c853cb17bb479ebbf140382193b5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545896 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60527}
-
- 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}
-
- 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}
-
- 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}
-
- 19 Feb, 2019 1 commit
-
-
Georg Neis authored
...to make things easier to read. R=jarin@chromium.org Change-Id: I0e53ef67e34f696b5977d4e091c7bc7bdf0ec145 Reviewed-on: https://chromium-review.googlesource.com/c/1477739Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59706}
-
- 13 Feb, 2019 1 commit
-
-
Georg Neis authored
...by moving a special case into a separate method. Change-Id: I880768ed6fbb7d29b94588435c9da65b01f07fde Reviewed-on: https://chromium-review.googlesource.com/c/1462960 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59555}
-
- 12 Feb, 2019 1 commit
-
-
Georg Neis authored
This is a reland of 8683116e without changes. The previous issues should be gone thanks to ba1d0f25. Original change's description: > Reland^3 "[turbofan] Use feedback when reducing global loads/stores." > > This is a reland of 2d2c1374 without > changes. Offending chromium tests have been modified. > > Original change's description: > > Reland^2 "[turbofan] Use feedback when reducing global loads/stores." > > > > This reverts commit ac85ab0a. A > > chromium test caused trouble and was taken care of in > > https://chromium-review.googlesource.com/c/1384064. > > > > 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. > > > > TBR=sigurds@chromium.org > > > > Change-Id: I58bcd9bceec2f9cf401f7b0fc4460a6da6cd0abc > > Reviewed-on: https://chromium-review.googlesource.com/c/1386404 > > Commit-Queue: Georg Neis <neis@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#58393} > > Change-Id: Ic6734201a6c45f2752488ab44b16859776802f51 > Reviewed-on: https://chromium-review.googlesource.com/c/1408252 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58769} TBR=bmeurer@chromium.org Change-Id: I80890e2605711045ec6997843d031b61ea27d5e4 Reviewed-on: https://chromium-review.googlesource.com/c/1463779 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59518}
-
- 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
This make things more readable. Change-Id: I1373a4d67de4b4dd8ec9f68b5a672dabc68daf67 Reviewed-on: https://chromium-review.googlesource.com/c/1460951Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59489}
-
- 17 Jan, 2019 1 commit
-
-
Georg Neis authored
This reverts commit 8683116e. Reason for revert: There's a bug in the StoreGlobalIC that causes regressions in combination with this CL (observable in Chrome but not in d8). Original change's description: > Reland^3 "[turbofan] Use feedback when reducing global loads/stores." > > This is a reland of 2d2c1374 without > changes. Offending chromium tests have been modified. > > Original change's description: > > Reland^2 "[turbofan] Use feedback when reducing global loads/stores." > > > > This reverts commit ac85ab0a. A > > chromium test caused trouble and was taken care of in > > https://chromium-review.googlesource.com/c/1384064. > > > > 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. > > > > TBR=sigurds@chromium.org > > > > Change-Id: I58bcd9bceec2f9cf401f7b0fc4460a6da6cd0abc > > Reviewed-on: https://chromium-review.googlesource.com/c/1386404 > > Commit-Queue: Georg Neis <neis@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#58393} > > Change-Id: Ic6734201a6c45f2752488ab44b16859776802f51 > Reviewed-on: https://chromium-review.googlesource.com/c/1408252 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58769} TBR=neis@chromium.org,sigurds@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:922545, chromium:922514, chromium:922558 Change-Id: I6e4c4c0fbc29a0f2a03972f1687242ae247ebfa8 Reviewed-on: https://chromium-review.googlesource.com/c/1417614 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#58891}
-
- 14 Jan, 2019 1 commit
-
-
Georg Neis authored
This is a reland of 2d2c1374 without changes. Offending chromium tests have been modified. Original change's description: > Reland^2 "[turbofan] Use feedback when reducing global loads/stores." > > This reverts commit ac85ab0a. A > chromium test caused trouble and was taken care of in > https://chromium-review.googlesource.com/c/1384064. > > 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. > > TBR=sigurds@chromium.org > > Change-Id: I58bcd9bceec2f9cf401f7b0fc4460a6da6cd0abc > Reviewed-on: https://chromium-review.googlesource.com/c/1386404 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58393} Change-Id: Ic6734201a6c45f2752488ab44b16859776802f51 Reviewed-on: https://chromium-review.googlesource.com/c/1408252Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#58769}
-
- 07 Jan, 2019 1 commit
-
-
Georg Neis authored
Bug: v8:7790 Change-Id: I8cc88aadaaacca4cc6b87a6f5bead9129b8dfa14 Reviewed-on: https://chromium-review.googlesource.com/c/1394550Reviewed-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@{#58583}
-
- 02 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Apart from being more in-line with the style guide, this allows to use DEFINE_LAZY_LEAKY_OBJECT_GETTER for defining {TypeCache::Get}. R=tebbi@chromium.org Bug: v8:8562 Change-Id: I016b28624950ce9404180fc1ca1a232551f75cd0 Reviewed-on: https://chromium-review.googlesource.com/c/1392201Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58500}
-
- 27 Dec, 2018 1 commit
-
-
Ulan Degenbaev authored
This reverts commit 2d2c1374. Reason for revert: layout test timeout - crbug.com/917714 Original change's description: > Reland^2 "[turbofan] Use feedback when reducing global loads/stores." > > This reverts commit ac85ab0a. A > chromium test caused trouble and was taken care of in > https://chromium-review.googlesource.com/c/1384064. > > 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. > > TBR=sigurds@chromium.org > > Change-Id: I58bcd9bceec2f9cf401f7b0fc4460a6da6cd0abc > Reviewed-on: https://chromium-review.googlesource.com/c/1386404 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58393} TBR=neis@chromium.org,sigurds@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I9003135cfc5cc3ffb8bbf06ca35c9773adac93e7 Reviewed-on: https://chromium-review.googlesource.com/c/1390129Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58475}
-
- 20 Dec, 2018 1 commit
-
-
Georg Neis authored
This reverts commit ac85ab0a. A chromium test caused trouble and was taken care of in https://chromium-review.googlesource.com/c/1384064. 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. TBR=sigurds@chromium.org Change-Id: I58bcd9bceec2f9cf401f7b0fc4460a6da6cd0abc Reviewed-on: https://chromium-review.googlesource.com/c/1386404 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#58393}
-
- 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}
-
- 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}
-