- 26 Feb, 2019 2 commits
-
-
Igor Sheludko authored
... which always contains constant value. Bug: v8:8834 Change-Id: I27af24d07371b112d48eaab4d3a782a74af5fb20 Reviewed-on: https://chromium-review.googlesource.com/c/1487611Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59864}
-
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 3 commits
-
-
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}
-
Benedikt Meurer authored
Mark the not_ok case as deferred. Bug: v8:8834 Change-Id: I17536e45fb6aa309347b8faaf5f25fb3bbfbf6cf Reviewed-on: https://chromium-review.googlesource.com/c/1485973Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59830}
-
Ross McIlroy authored
Template objects should be cached after they are first created and reused on subsiquent calls to tag functions. Currently these cached objects are stored on the feedback vector, which has appropriate lifetime, however with bytecode flushing the feedback vector could be cleared when the bytecode is flushed, causing the template object to be dropped. In order to retain the cached template objects in the face of bytecode flushing, this CL adds a weakmap for each native context that is (weakly) keyed by shared function info, and holds a linked list of cached template objects associated with that shared function info, indexed by feedback vector slot id. Misses will check this weakmap, and if no entry is found, a new template object is created and added into this weakmap alongside the feedback vector. BUG=v8:8799,v8:8799,v8:8395 Change-Id: Ia95d5cfc394ce58dc9fe6a1e49780f05299acc17 Reviewed-on: https://chromium-review.googlesource.com/c/1477746 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59818}
-
- 21 Feb, 2019 3 commits
-
-
Tobias Tebbi authored
This is a reland of c3148664 Original change's description: > [csa] disable selected bounds checks for remaining regressions > > Bug: chromium:932919 > TBR: jarin@chromium.org > Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8 > Reviewed-on: https://chromium-review.googlesource.com/c/1480387 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59773} Bug: chromium:932919 Change-Id: Ifb115ded2ff272abae4fba557ef669eee8e3c687 TBR: tebbi@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/1481746Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#59781}
-
Sathya Gunasekaran authored
This reverts commit c3148664. Reason for revert: speculative revert for MSAN failure https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/25398 Original change's description: > [csa] disable selected bounds checks for remaining regressions > > Bug: chromium:932919 > TBR: jarin@chromium.org > Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8 > Reviewed-on: https://chromium-review.googlesource.com/c/1480387 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59773} TBR=jarin@chromium.org,jgruber@chromium.org,leszeks@chromium.org,tebbi@chromium.org Change-Id: Ib6cb825375725773db73f40ad3b65e084645b568 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:932919 Reviewed-on: https://chromium-review.googlesource.com/c/1480914Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#59777}
-
Tobias Tebbi authored
Bug: chromium:932919 TBR: jarin@chromium.org Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8 Reviewed-on: https://chromium-review.googlesource.com/c/1480387 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#59773}
-
- 20 Feb, 2019 1 commit
-
-
peterwmwong authored
This is a reland of c9ef0405 Original change's description: > [builtins]: Optimize CreateTypedArray to use element size log 2 for calculations. > > TypedArrayElementsInfo now represents an element's size as a log 2 and typed as > uintptr. This simplifies and speeds up (avoids possible HeapNumber allocations) a > number of calculations: > > - Number of Elements (length) -> Byte Length - is now a WordShl > - Byte Length -> Number of Elements (length) - is now a WordShr > - Testing alignment (byte offset or length) - is now a WordAnd > > These element/byte length related calculations are encapsulated in > TypedArrayElementsInfo as struct methods. > > This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release: > - Before: 9,088 > - After: 6,896 > > This improves the performance of the following microbencmarks > - TypedArrays-ConstructWithBuffer: ~87% > - TypedArrays-SubarrayNoSpecies: ~28% > > Bug: v8:7161 > Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44 > Reviewed-on: https://chromium-review.googlesource.com/c/1456299 > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59531} Bug: v8:7161, chromium:932034 Change-Id: I5c3dc34c549234417f95b404e7d49b2fd496fa69 Reviewed-on: https://chromium-review.googlesource.com/c/1476306 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59728}
-
- 18 Feb, 2019 3 commits
-
-
Tobias Tebbi authored
This addresses the JSTests/Array/OptFastForEach regression, which ends up spending a lot of time in the ToString builtin. Bug: chromium:932919 Change-Id: I53cfdc61841bf10a669e54c3fdc009ead295782b Reviewed-on: https://chromium-review.googlesource.com/c/1477068Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59664}
-
Tobias Tebbi authored
This should recover the microbenchmark performance-regressions. Bug: chromium:932919 Change-Id: I00e2345428c8730035dc1164278006d687364de7 Reviewed-on: https://chromium-review.googlesource.com/c/1477063Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59663}
-
Jakob Gruber authored
This reverts commit c9ef0405. Reason for revert: https://crbug.com/932034 Original change's description: > [builtins]: Optimize CreateTypedArray to use element size log 2 for calculations. > > TypedArrayElementsInfo now represents an element's size as a log 2 and typed as > uintptr. This simplifies and speeds up (avoids possible HeapNumber allocations) a > number of calculations: > > - Number of Elements (length) -> Byte Length - is now a WordShl > - Byte Length -> Number of Elements (length) - is now a WordShr > - Testing alignment (byte offset or length) - is now a WordAnd > > These element/byte length related calculations are encapsulated in > TypedArrayElementsInfo as struct methods. > > This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release: > - Before: 9,088 > - After: 6,896 > > This improves the performance of the following microbencmarks > - TypedArrays-ConstructWithBuffer: ~87% > - TypedArrays-SubarrayNoSpecies: ~28% > > Bug: v8:7161 > Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44 > Reviewed-on: https://chromium-review.googlesource.com/c/1456299 > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59531} TBR=peter.wm.wong@gmail.com,jgruber@chromium.org,petermarshall@chromium.org,szuend@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7161, chromium:932034 Change-Id: I3da95447ce34f84d01629d2791868f3adcdfb387 Reviewed-on: https://chromium-review.googlesource.com/c/1475764 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59645}
-
- 15 Feb, 2019 2 commits
-
-
Tobias Tebbi authored
To address previously observed regressions, this CL also introduces unchecked FixedArray accessors and uses them to access collections. Bug: v8:8029 Change-Id: I6bcd8db2b89b29b7acb3b8431ec5405b737bcef2 Reviewed-on: https://chromium-review.googlesource.com/c/1473033 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59631}
-
Jakob Kummerow authored
This takes heap-inl.h out of the "Giant Include Cluster". Naturally, that means adding a bunch of explicit includes in a bunch of places that relied on transitively including them before. As of this patch, no header file outside src/heap/ includes heap-inl.h. Bug: v8:8562,v8:8499 Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4 Reviewed-on: https://chromium-review.googlesource.com/c/1459659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59617}
-
- 13 Feb, 2019 2 commits
-
-
Mythri authored
When an error occurs when storing the properties we either need to throw or ignore the error depending on the language mode. We used to infer the language mode from the type feedback vector. This cl instead falls back to runtime to check and throw an error when needed. Bug: v8:8580 Change-Id: Iebeb3ca86d753157329dc1b5cfd1c07af2ff3dcd Reviewed-on: https://chromium-review.googlesource.com/c/1458220Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#59563}
-
Nico Weber authored
For macros expanding to function definitions, I removed the spurious ; after macro invocations. For macros expandign to function declarations, I made the ; required and consistently inserted it. No behavior change. Bug: chromium:926235 Change-Id: Ib8085d85d913d74307e3481f7fee4b7dc78c7549 Reviewed-on: https://chromium-review.googlesource.com/c/1467545Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59558}
-
- 12 Feb, 2019 2 commits
-
-
Maciej Goszczycki authored
It's unused and hinders separating read-only roots into a shared table. Bug: v8:8562 Change-Id: I4a2889d9be5df877b2f9d11ce5146a091d864cd3 Reviewed-on: https://chromium-review.googlesource.com/c/1466963Reviewed-by: Dan Elphick <delphick@chromium.org> Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Cr-Commit-Position: refs/heads/master@{#59539}
-
peterwmwong authored
TypedArrayElementsInfo now represents an element's size as a log 2 and typed as uintptr. This simplifies and speeds up (avoids possible HeapNumber allocations) a number of calculations: - Number of Elements (length) -> Byte Length - is now a WordShl - Byte Length -> Number of Elements (length) - is now a WordShr - Testing alignment (byte offset or length) - is now a WordAnd These element/byte length related calculations are encapsulated in TypedArrayElementsInfo as struct methods. This reduces the size of CreateTypedArray by 2.125 KB (24%) on Mac x64.release: - Before: 9,088 - After: 6,896 This improves the performance of the following microbencmarks - TypedArrays-ConstructWithBuffer: ~87% - TypedArrays-SubarrayNoSpecies: ~28% Bug: v8:7161 Change-Id: I2239fd0e0af9d3ad55cd52318088d3c7c913ae44 Reviewed-on: https://chromium-review.googlesource.com/c/1456299 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59531}
-
- 08 Feb, 2019 1 commit
-
-
Igor Sheludko authored
... and also loads of off-heap tagged values. Bug: v8:7703 Change-Id: I0dd15ecda76cc35fe5f2f51a7103937a7ac238dc Reviewed-on: https://chromium-review.googlesource.com/c/1459639 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59468}
-
- 06 Feb, 2019 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: Ifc2bf26e9d3bc13d4f2455d6d04ce5e2682626db Reviewed-on: https://chromium-review.googlesource.com/c/1454600Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59404}
-
- 05 Feb, 2019 2 commits
-
-
Simon Zünd authored
This CL introduces Torque classes with fields around TypedArrays so CSA LoadObjectField accessors that are only used in Torque code can be removed. R=tebbi@chromium.org Bug: v8:8562 Change-Id: Ie46dad5c25bd6ac03aacef8509e22f435896d127 Reviewed-on: https://chromium-review.googlesource.com/c/1451823Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59359}
-
Ujjwal Sharma authored
Port String.prototype.startsWith from a CPP builtin to a Torque builtin. Spec: https://tc39.github.io/ecma262/#sec-string.prototype.startswith Bug: v8:8400 Change-Id: I51aff0b3a4126c17ab4f89763019fd7e4ba665d9 Reviewed-on: https://chromium-review.googlesource.com/c/1361340 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#59355}
-
- 04 Feb, 2019 1 commit
-
-
peterwmwong authored
The parts that deal with allocating on heap buffers and typed array elements (FixedTypedArrayBase) remain in CSA, as it is assumed to eventually be expressed with Torque classes. This reduces overall builtins size by 508 bytes (Mac x64.release) - TypedArrayInitialize 2332 -> 1824 Bug: v8:7161 Change-Id: I5d0648b4dd79a687f77d6f4b01b236f4a0508c54 Reviewed-on: https://chromium-review.googlesource.com/c/1445215Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Cr-Commit-Position: refs/heads/master@{#59337}
-
- 31 Jan, 2019 1 commit
-
-
Z Duong Nguyen-Huu authored
According to spec https://tc39.github.io/ecma262/#sec-object.assign, https://tc39.github.io/ecma262/#sec-ordinaryownpropertykeys, object.assign should copy symbols last. The current implementation ignores that order. The idea of the fix here is to do iteration twice, one to skip symbol first then one to skip string. Bug: v8:6705 Change-Id: I27a353e0c44a8f7adcf55d7143dd3ce26bea2724 Reviewed-on: https://chromium-review.googlesource.com/c/1432597 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59258}
-
- 29 Jan, 2019 1 commit
-
-
Ulan Degenbaev authored
This replaces InNewSpace with InYoungGeneration, which is a prerequisite for young large objects. Additional changes: - FROM_SPACE, TO_SPACE flags are renamed to FROM_PAGE, TO_PAGE. - A new LARGE_PAGE flag is added. - The external string table is refactored to track young string instead of new space strings. Bug: chromium:924547 Change-Id: Ia4e3ba1b72995c3400257a1f98559f091533e811 Reviewed-on: https://chromium-review.googlesource.com/c/1437274Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59156}
-
- 28 Jan, 2019 3 commits
-
-
Camillo Bruni authored
- Dehandlify ScopeInfo::ContextSlotIndex - Dehandlify ScriptContextTable::Lookup - Introduce function-kind.h with range-based helper methods - Spread usage of Scope::is_script_scope and friends Change-Id: I8ed1d82cc5bb9ea3fce856e16e9eafe194fb57ba Reviewed-on: https://chromium-review.googlesource.com/c/1430100Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59120}
-
Clemens Hammacher authored
This reverts commit c9616b0f. Reason for revert: Fails gc-stress tests: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20GC%20Stress/5460 Original change's description: > Infer the language mode instead of passing it as a parameter to builtins > > It is better to infer the language mode from the context and the closure > instead of getting it from the feedback vector. This will allow us to use > some of these builtins even when feedback vectors are not allocated. > Language mode is only needed to decide if we need to throw an exception > when a store fails. This is on a slow path and hence deriving the language > mode is not on critical path. > > Bug: v8:8580 > Change-Id: Id0d8e78d35046f015b5cdc15d5fc3f8a17dd8757 > Reviewed-on: https://chromium-review.googlesource.com/c/1421924 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59113} TBR=mythria@chromium.org,verwaest@chromium.org Change-Id: I584b41ca4d396165a3a294b7facee30f0c4f4a7f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8580 Reviewed-on: https://chromium-review.googlesource.com/c/1436025Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59114}
-
Mythri authored
It is better to infer the language mode from the context and the closure instead of getting it from the feedback vector. This will allow us to use some of these builtins even when feedback vectors are not allocated. Language mode is only needed to decide if we need to throw an exception when a store fails. This is on a slow path and hence deriving the language mode is not on critical path. Bug: v8:8580 Change-Id: Id0d8e78d35046f015b5cdc15d5fc3f8a17dd8757 Reviewed-on: https://chromium-review.googlesource.com/c/1421924 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59113}
-
- 26 Jan, 2019 1 commit
-
-
peterwmwong authored
This is part of an effort to improve the performance of TA#subarray. Bug: v8:7161 Change-Id: Iffd469ca6528710c28cc454604a725ca9748359d Reviewed-on: https://chromium-review.googlesource.com/c/1435768 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59105}
-
- 25 Jan, 2019 1 commit
-
-
Mythri authored
Inferring the language mode involves iterating the stack to find the closure. This is an expensive operation and should be done only when required. This cl changes the implementation to infer the language mode only when we can't defer it any further. Currently, we infer the language mode when throwing an exception or when passing this information to PropertyCallbackArguments. This cl also changes the language mode parameter to SetProperty related methods to Maybe<ShouldThrow>. We only use the language mode to decide if we need to throw and using ShouldThrow instead of language mode simplifies the code by avoiding conversions from Maybe<ShouldThrow> to Maybe<LanguageMode> and vice-versa. Bug: v8:8580, chromium:923820, chromium:925289 Change-Id: I72497497f62fe0d86fcecd57b06b3183b7531f7b Reviewed-on: https://chromium-review.googlesource.com/c/1425912 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59094}
-
- 24 Jan, 2019 2 commits
-
-
peterwmwong authored
This is part of an effort to improve the performance of TA#subarray. Bug: v8:7161 Change-Id: Id110b4bd30fd8f67b9f8f23268e64de22e471c68 Reviewed-on: https://chromium-review.googlesource.com/c/1432596 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59073}
-
Mike Stanton authored
All users have elements already, and we can just pass that in. Change-Id: Ie9b8c1290d74bce120461c9f15695e8eb7dfd7c2 Reviewed-on: https://chromium-review.googlesource.com/c/1430072 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59064}
-
- 22 Jan, 2019 2 commits
-
-
peterwmwong authored
This is part of an effort to improve the performance of TA#subarray. Bug: v8:7161 Change-Id: I6f4b0f01e498d48e0fce11fbf7dcd7a0ad1ae748 Reviewed-on: https://chromium-review.googlesource.com/c/1425002 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58988}
-
Peter Marshall authored
Everything was including log.h through heap-inl.h, so remove that include by moving the one user into heap.cc, and then fix all the include errors. This reduces the log.h include ball from ~550 to ~100. Change-Id: I6d09bc2f365b48645fcfdc695a68ea12539a745d Reviewed-on: https://chromium-review.googlesource.com/c/1424198 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58981}
-
- 17 Jan, 2019 1 commit
-
-
Tobias Tebbi authored
This triggers the optimizing StoreField lowering in the MemoryOptimizer. Drive-by cleanup: Remove useless return values in CSA store functions. Bug: v8:7793 Change-Id: I08417a81ca321dcd27ff5cc3a11ef74262d419fb Reviewed-on: https://chromium-review.googlesource.com/c/1414911Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58880}
-
- 15 Jan, 2019 1 commit
-
-
Tobias Tebbi authored
A first step towards using Turbofan's MemoryOptimizer for CSA/Torque. Change-Id: I2ce9eaa602ea6f19a679e1cf5516c309a5a5051b Reviewed-on: https://chromium-review.googlesource.com/c/1406675Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58830}
-
- 11 Jan, 2019 1 commit
-
-
Camillo Bruni authored
Drive-by-fix: - Add several iterator instance types to user objects - Add JSProxy instance type to user objects - Rename *PRE_PARSED_SCOPE* to *PREPARSE_DATA* Change-Id: Ia1304871c91bb4e7e46ae0aef6084ded985b9a9f Reviewed-on: https://chromium-review.googlesource.com/c/1405040Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#58745}
-
- 10 Jan, 2019 1 commit
-
-
Daniel Clifford authored
Class declarations support structured heap data that is a subtype of HeapObject. Only fields of Object subtypes (both strong and weak) are currently supported (no scalar fields yet). With this CL, both the field list macro used with the C++ DEFINE_FIELD_OFFSET_CONSTANTS macro (to make field offset constants) as well as the Torque "operator '.field'" macros are generated for the classes declared in Torque. This is a first step to removing the substantial amount of duplication and boilerplate code needed to declare heap object classes. As a proof of concept, and handful of class field definitions, including those for non trivial classes like JSFunction, have been moved to Torque. Bug: v8:7793 Change-Id: I2fa0b53db65fa6f5fe078fb94e1db3418f908753 Reviewed-on: https://chromium-review.googlesource.com/c/1373971 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58704}
-
- 09 Jan, 2019 1 commit
-
-
Jakob Gruber authored
OOMs in CSA code would trigger fairly arbitrary assertion failures on some paths. This changes CSA::AllocateRaw to call FatalProcessOutOfMemory (just like runtime methods). CSA::AllocateFixedArray additionally checks for FixedArray::kMaxLength. This increases overall builtin code size on x64 release by 28K / 2.5%. Bug: chromium:917561, chromium:848672 Change-Id: I757271264f396e0df8d8fe0570bad078075c27d5 Reviewed-on: https://chromium-review.googlesource.com/c/1400414 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58654}
-
- 07 Jan, 2019 1 commit
-
-
Camillo Bruni authored
We plan to store additional information that is not related to scopes. The new name will reflect this fact better. Change-Id: I4ddb1017bc255e6ad271e4448848ed630f367d5b Reviewed-on: https://chromium-review.googlesource.com/c/1388538 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58591}
-