- 31 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: chromium:899029 Change-Id: I0fc724d5c77e5cbf2580de53f48934ae6f968934 Reviewed-on: https://chromium-review.googlesource.com/c/1310196Reviewed-by:
Mathias Bynens <mathias@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57189}
-
- 19 Oct, 2018 3 commits
-
-
Daniel Clifford authored
In the process: - add volatile types for FastJSArray and remove the length_fast accessor from JSArray with the application of more rigorous typing. - add micro benchmarks for testing all the interesting slice cases Also update a few assorted places in .tq code to make them more idiomatic. The original version of this patch had an overly agressive assert that has been loosened. TBR=jgruber@chromium.org Change-Id: I56870862f4b124d1b38372daa326182a526c874c Reviewed-on: https://chromium-review.googlesource.com/c/1291375Reviewed-by:
Daniel Clifford <danno@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#56829}
-
Sigurd Schneider authored
This reverts commit 41ba3d3e. Reason for revert: Speculative revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Fuzzer/27370 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20predictable/19895 Original change's description: > [builtins] Implement Array.prototype.slice in Torque > > In the process: > > - add volatile types for FastJSArray and remove the length_fast accessor > from JSArray with the application of more rigorous typing. > - add micro benchmarks for testing all the interesting slice cases > > Also update a few assorted places in .tq code to make them more > idiomatic. > > Change-Id: I76ec2bb25b65a869180af1f7288419dc1f0a9c37 > Reviewed-on: https://chromium-review.googlesource.com/c/1281603 > Commit-Queue: Daniel Clifford <danno@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56806} TBR=danno@chromium.org,jgruber@chromium.org,tebbi@chromium.org Change-Id: I1f2c82b4c3ab0848857f620facacf9604d4fcd11 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/1290973Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56815}
-
Daniel Clifford authored
In the process: - add volatile types for FastJSArray and remove the length_fast accessor from JSArray with the application of more rigorous typing. - add micro benchmarks for testing all the interesting slice cases Also update a few assorted places in .tq code to make them more idiomatic. Change-Id: I76ec2bb25b65a869180af1f7288419dc1f0a9c37 Reviewed-on: https://chromium-review.googlesource.com/c/1281603 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56806}
-
- 28 Sep, 2018 1 commit
-
-
Daniel Clifford authored
This CL adds a bit more rigor to the handling of length properties in JSObject-derived classes that explicitly contain that property inline. This involves: - Introducing a new superclass of JSArgumentsObject called JSArgumentsObjectWithLength that is shared with other object instances that also have a fixed length property. - Adding JSArgumentsObjectWithLength to the type hierarchy in Torque, including adding fast-cases for leading the length property for all classes deriving from JSObjectWithLength. - Adding more rigor to Context and NativeContext handling in base.tq. This is useful for the map checks required to verify objects are argument object types derived from JSArgumentsObjectWithLength. Change-Id: I2f0a20601ffcb90b3767cbaeb766e9998d3462ec Reviewed-on: https://chromium-review.googlesource.com/1248661 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56289}
-
- 24 Sep, 2018 1 commit
-
-
Daniel Clifford authored
Issues/problems addressed: - Fix line-wrapping and indenting for long declarations including strings, e.g. generates and constexpr clauses. - Implement proper formatting for typeswitch statements - Fix formatting of operator declarations - Fix formatting of constexpr if-clauses (the constexpr is now included on the same line as the if and it doesn't mess up the formatting that - Fix formatting of label declarations on callables, the "label" keyword now always starts a new line with indentation. - Remove space after identifier name in generic parameter declarations, e.g. "<a : T>" is now "<a: T>" which is consistent with type specification formatting elsewhere. - Indent "otherwise" clauses that have been pushed to the next line. Also ran the formatter over all existing .tq files. Bug: v8:7793 Change-Id: I5adbb2ffa3d573deed062f9a5c1da57348c8fc71 Reviewed-on: https://chromium-review.googlesource.com/1238580 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56158}
-
- 11 Sep, 2018 1 commit
-
-
Simon Zünd authored
To make the changes in base.tq work, there were 2 changes needed on the C++ side: - calls to "FromConstexpr" are generated by the compiler for implicit conversions. - type switch is desugared and uses "Cast" R=jgruber@chromium.org, tebbi@chromium.org Change-Id: I085f1a393f93e501e6bbcaeacb0d6568259a4714 Reviewed-on: https://chromium-review.googlesource.com/1219629 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55794}
-
- 06 Sep, 2018 2 commits
-
-
Simon Zünd authored
Also changes occurrences of 'length' with kLengthString. R=mvstanton@chromium.org Bug: v8:8015 Change-Id: Ida205a7d69939d7d3473e1ab8e82d0cdba4c8668 Reviewed-on: https://chromium-review.googlesource.com/1209302Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55686}
-
Simon Zünd authored
This CL implements a generic baseline version of Array.p.unshift in Torque, enabling us to remove the JS fall-back. The elements-accessor fast-path is still used, but the check whether to use it is also moved to Torque. Support for sparse JSArrays is removed. Drive-by change: Small refactoring in builtins-array that will get extended to other array builtins in a follow-up CL. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7624 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7b23ce15e7b922eb333f61a408050dedec77c95a Reviewed-on: https://chromium-review.googlesource.com/1189902 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55670}
-
- 04 Sep, 2018 1 commit
-
-
Mike Stanton authored
Before, splice was implemented with a C++ fast path and a comprehensive JavaScript version. This impl. is entirely in Torque with a fastpath for SMI, DOUBLE and OBJECT arrays, and a comprehensive slow path. The same level of "sparse" array support as given by the array.js implementation is included. This reland addresses several issues: * Removed "sparse" array support from splice. * Addressed ClusterFuzz issue 876443: The test and code that uses the fix is in this CL. The fix in isolation can be seen here: https://chromium-review.googlesource.com/c/v8/v8/+/1199403 * Removed dead code in elements.cc BUG=chromium:876443, v8:8131, v8:1956, v8:7221 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I2d4a66c24ba1edabeca34e27e6ff8ee6136ed5f1 Reviewed-on: https://chromium-review.googlesource.com/1201783 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55610}
-
- 03 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL replaces occurrences of "length" with the CSA macro LengthStringConstant(). R=jgruber@chromium.org Bug: v8:8015 Change-Id: Idf095587940f859e4c634865560abae325cd9fb4 Reviewed-on: https://chromium-review.googlesource.com/1201782Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55578}
-
- 24 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL adds a baseline implementation for Array.p.reverse in Torque, as well as fastpaths for PACKED elements kinds. Support for sparse JSArrays was removed. R=jgruber@chromium.org, petermarshall@chromium.org Bug: v8:7624 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I12900fbbb44746f1c5d36b78be826e14b88b4f69 Reviewed-on: https://chromium-review.googlesource.com/1185600 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55369}
-
- 22 Aug, 2018 1 commit
-
-
Tobias Tebbi authored
This reverts commit cdaaa311. Reason for revert: chromium:876445 chromium:876453 chromium:876443 Original change's description: > [builtins] Reland Array.prototype.splice() Torque implementation. > > Before, splice was implemented with a C++ fast path and a > comprehensive JavaScript version. > > This impl. is entirely in Torque with a fastpath for SMI, > DOUBLE and OBJECT arrays, and a comprehensive slow path. > The same level of "sparse" array support as given by the > array.js implementation is included. > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ia7334a30b401988309e9909cfa0069da0bb6fb9f > Reviewed-on: https://chromium-review.googlesource.com/1169466 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55263} TBR=mvstanton@chromium.org,jgruber@chromium.org,tebbi@chromium.org Change-Id: I5b750a98e671b7284474ffcabc6b4d37a9d1219e No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1184741Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55289}
-
- 21 Aug, 2018 1 commit
-
-
Tobias Tebbi authored
Before, splice was implemented with a C++ fast path and a comprehensive JavaScript version. This impl. is entirely in Torque with a fastpath for SMI, DOUBLE and OBJECT arrays, and a comprehensive slow path. The same level of "sparse" array support as given by the array.js implementation is included. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ia7334a30b401988309e9909cfa0069da0bb6fb9f Reviewed-on: https://chromium-review.googlesource.com/1169466Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55263}
-
- 10 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL replaces Delete/SetProperty runtime calls with calls to their stub version. The stubs will bail to the runtime themselves if they can't perform the action. R=jgruber@chromium.org Bug: v8:8015 Change-Id: I1f141296ee074e028c27a3682e2eb46d9f74c0d9 Reviewed-on: https://chromium-review.googlesource.com/1169810Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55031}
-
- 09 Aug, 2018 2 commits
-
-
Simon Zünd authored
This CL changes the order of the parameters of HasProperty to be more consistent with other CSA macros. Drive-by-change: Use HasProperty stub directly in Torque. R=jgruber@chromium.org Bug: v8:8015 Change-Id: I73d1096afbb86d52e2af67c1969549f1158448a7 Reviewed-on: https://chromium-review.googlesource.com/1166831 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55025}
-
Michael Hablich authored
This reverts commit ff4fa92e. Reason for revert: blocks roll: https://chromium-review.googlesource.com/c/chromium/src/+/1167969 ... see https://chromium-swarm.appspot.com/task?id=3f344f7ada4e0110&refresh=10&show_raw=1 for stacktrace. Original change's description: > [builtins] Enable Torque Array.prototype.splice > > Before, splice was implemented with a C++ fast path and a > comprehensive JavaScript version. > > This impl. is entirely in Torque with a fastpath for SMI, > DOUBLE and OBJECT arrays, and a comprehensive slow path. > The same level of "sparse" array support as given by the > array.js implementation is included. > > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ibfa3407ed75b9ad15ac54cce446b3952e38f90a9 > Reviewed-on: https://chromium-review.googlesource.com/1039190 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54974} TBR=danno@chromium.org,yangguo@chromium.org,mvstanton@chromium.org,tebbi@chromium.org,szuend@google.com Change-Id: I900f667b30a0cf673ead9621618a9988cf85ffdf No-Presubmit: true No-Tree-Checks: true No-Try: true Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1168902 Commit-Queue: Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#54998}
-
- 08 Aug, 2018 1 commit
-
-
Mike Stanton authored
Before, splice was implemented with a C++ fast path and a comprehensive JavaScript version. This impl. is entirely in Torque with a fastpath for SMI, DOUBLE and OBJECT arrays, and a comprehensive slow path. The same level of "sparse" array support as given by the array.js implementation is included. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ibfa3407ed75b9ad15ac54cce446b3952e38f90a9 Reviewed-on: https://chromium-review.googlesource.com/1039190Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#54974}
-
- 07 Aug, 2018 1 commit
-
-
Mike Stanton authored
The CSA HasProperty has an inlining that makes it rather large. Also, tighten up some type usage. ToObject() returns a JSReceiver and we can do with less casting if we make use of this. Change-Id: I56d2443b5d409314cc3c74a5a079810d857727ad Reviewed-on: https://chromium-review.googlesource.com/1165241 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#54951}
-
- 02 Jul, 2018 1 commit
-
-
Daniel Clifford authored
In the process, create a shared array utility GetLengthProperty that fast-paths accessing the length properties of JSArray. Bug: v8:7793 Change-Id: I6d7f0007c162794773dc0fc3e8bf12b3adf12fa0 Reviewed-on: https://chromium-review.googlesource.com/1116221 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#54133}
-
- 18 Jun, 2018 1 commit
-
-
Simon Zünd authored
R=jgruber@chromium.org Bug: v8:7382 Change-Id: I5b92f46736d8c0ca8ef0f187ecaa1d58661a1c7f Reviewed-on: https://chromium-review.googlesource.com/1101690Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53778}
-
- 13 Jun, 2018 2 commits
-
-
Daniel Clifford authored
In the process and as a test case of the module/file-handling, separate Array.p.forEach into its own Torque file. Bug: v8:7793 Change-Id: If45103a9df3bf8fade34e7bcf7c7c9c060e25966 Reviewed-on: https://chromium-review.googlesource.com/1097755Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#53703}
-
Simon Zünd authored
R=tebbi@chromium.org Bug: v8:7793 Change-Id: I691b3682aec3269350ee02c29b48ce1d46a1ffcb Reviewed-on: https://chromium-review.googlesource.com/1098656Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53701}
-
- 12 Jun, 2018 1 commit
-
-
Daniel Clifford authored
In the process: - Add strict ordering of Types so that name mangling is consistent and build time. Previously, the UnionType stored the union's types in a std::set<const Type*>, which did not have a consistent ordering of the types in the set. - Add a int31 type to enable consistency and correctness of handling of 'constexpr int31' values on the C++ side. - By removing the "implicit" keyword for operators, there is now one less difference between operators and calls, another incremental step in unifying operators and calls. - Enable external (i.e. C++-defined) generic specializations - Add CSA support for checking double ElementsKinds, including tests. - Clean up some constexpr/non-constexpr handling of ElementsKinds. Bug: v8:7793 Change-Id: I27699aba70b98ebf5466e5b62b045d7b1dad62c8 Reviewed-on: https://chromium-review.googlesource.com/1091155 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53664}
-
- 07 Jun, 2018 1 commit
-
-
Simon Zünd authored
This is a reland of 91bab558 This CL contains two major changes w.r.t to the original CL: The random state is removed from the Smi root list and we pre-seed the RNG on each sort with the length of the array. To cut down on the length of the arguments list and to keep track of the random state across recursive calls, we move most of the sort arguments into a FixedArray and reload from the array for each recursion. Original change's description: > [array] Use random middle element to determine pivot during sorting > > This CL adds a "random state" to the Smi Root list and implements a > basic Linear congruential pseudo random number generator in Torque. > > The RNG is used to determine the pivot element for sorting. This will > prevent the worst cases for certain data layouts. > > Drive-by-fix: Make sorting of ranges and execution pauses for profviz > deterministic by adding a secondary sorting criteria. > > Bug: v8:7382 > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ieb871e98e74bdb803f821b0cd35d2f67ee0f2868 > Reviewed-on: https://chromium-review.googlesource.com/1082193 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Simon Zünd <szuend@google.com> > Cr-Commit-Position: refs/heads/master@{#53524} Bug: v8:7382 Change-Id: Ia7bef7ed1c0e904ffe43bc428e702f64f9c6a60b Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1087888Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53583}
-
- 06 Jun, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit 91bab558. Reason for revert: Seems to break a layout test: https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064/23895 See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [array] Use random middle element to determine pivot during sorting > > This CL adds a "random state" to the Smi Root list and implements a > basic Linear congruential pseudo random number generator in Torque. > > The RNG is used to determine the pivot element for sorting. This will > prevent the worst cases for certain data layouts. > > Drive-by-fix: Make sorting of ranges and execution pauses for profviz > deterministic by adding a secondary sorting criteria. > > Bug: v8:7382 > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng > Change-Id: Ieb871e98e74bdb803f821b0cd35d2f67ee0f2868 > Reviewed-on: https://chromium-review.googlesource.com/1082193 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Simon Zünd <szuend@google.com> > Cr-Commit-Position: refs/heads/master@{#53524} TBR=hpayer@chromium.org,cbruni@chromium.org,jgruber@chromium.org,szuend@google.com Change-Id: I54f5d3f719428fd089ff12ff217d1c819f9ad1f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7382 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1088506Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#53542}
-
- 05 Jun, 2018 2 commits
-
-
Simon Zünd authored
This CL adds a "random state" to the Smi Root list and implements a basic Linear congruential pseudo random number generator in Torque. The RNG is used to determine the pivot element for sorting. This will prevent the worst cases for certain data layouts. Drive-by-fix: Make sorting of ranges and execution pauses for profviz deterministic by adding a secondary sorting criteria. Bug: v8:7382 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ieb871e98e74bdb803f821b0cd35d2f67ee0f2868 Reviewed-on: https://chromium-review.googlesource.com/1082193Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53524}
-
Simon Zünd authored
This is a reland of df1676e6 Original change's description: > [array] Implement Array.p.sort in Torque > > This CL implements a generic baseline version and 3 fastpaths, for > various elements kinds, of Array.p.sort in Torque. Details can be found > in the Design Doc: https://goo.gl/Ge321G. > > Performance impact on micro benchmarks depends on the element kind > and whether the user provides a comparison function. > For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across > the board. For Dictionary we are slower in all micro benchmarks (0.7). > For PackedSmi it depends on the call site and whether or not a > comparison function is used. > > Detailed numbers: https://goo.gl/mTyPSb > > Bug: v8:7382 > Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e > Reviewed-on: https://chromium-review.googlesource.com/1061523 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53481} Bug: v8:7382,v8:7806,chromium:849293 Change-Id: I176cb660d92eb174bd91685cb0a39f50c4cbaa69 Reviewed-on: https://chromium-review.googlesource.com/1086827Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53511}
-
- 04 Jun, 2018 2 commits
-
-
Jakob Gruber authored
This reverts commit df1676e6. Reason for revert: https://crbug.com/v8/7382#c26 Original change's description: > [array] Implement Array.p.sort in Torque > > This CL implements a generic baseline version and 3 fastpaths, for > various elements kinds, of Array.p.sort in Torque. Details can be found > in the Design Doc: https://goo.gl/Ge321G. > > Performance impact on micro benchmarks depends on the element kind > and whether the user provides a comparison function. > For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across > the board. For Dictionary we are slower in all micro benchmarks (0.7). > For PackedSmi it depends on the call site and whether or not a > comparison function is used. > > Detailed numbers: https://goo.gl/mTyPSb > > Bug: v8:7382 > Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e > Reviewed-on: https://chromium-review.googlesource.com/1061523 > Commit-Queue: Simon Zünd <szuend@google.com> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53481} TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com Change-Id: I4c1b32a434d49caba67c80bccb068390607f90a2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7382 Reviewed-on: https://chromium-review.googlesource.com/1085407Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53494}
-
Simon Zünd authored
This CL implements a generic baseline version and 3 fastpaths, for various elements kinds, of Array.p.sort in Torque. Details can be found in the Design Doc: https://goo.gl/Ge321G. Performance impact on micro benchmarks depends on the element kind and whether the user provides a comparison function. For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across the board. For Dictionary we are slower in all micro benchmarks (0.7). For PackedSmi it depends on the call site and whether or not a comparison function is used. Detailed numbers: https://goo.gl/mTyPSb Bug: v8:7382 Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e Reviewed-on: https://chromium-review.googlesource.com/1061523 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53481}
-
- 29 May, 2018 1 commit
-
-
Tobias Tebbi authored
Bug: v8:7754 Change-Id: I8548d0e07fabc23bb5f65b1f91683c756195ae1b Reviewed-on: https://chromium-review.googlesource.com/1071654Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53398}
-
- 24 May, 2018 1 commit
-
-
Simon Zünd authored
R=tebbi@chromium.org Change-Id: Id524c8239f99fc26ac5cd19cbdea39dba62f2c3f Reviewed-on: https://chromium-review.googlesource.com/1071650Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53331}
-
- 18 May, 2018 1 commit
-
-
Mike Stanton authored
Making it into more "idiomatic" Torque code (we are still defining what that means). Template specialization on double and fast fixed arrays allowed me to cut down on the boilerplate. Bug: v8:7672 Change-Id: Ia35706993a9e2ea087ecc3ef93b3a5864ec97827 Reviewed-on: https://chromium-review.googlesource.com/1064054 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#53246}
-
- 09 May, 2018 1 commit
-
-
Mike Stanton authored
BUG=v8:7672 Change-Id: I0c157ce88b31312dfbea7a149c1d9fbdfb398278 Reviewed-on: https://chromium-review.googlesource.com/1013524 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#53091}
-
- 07 May, 2018 1 commit
-
-
Daniel Clifford authored
In the process, rename Boolean constants (i.e. JavaScript constants), to 'True' and 'False'. This uncovered a bug in the internal handling of True/False labels was fixed (they shouldn't be Values and Torque shouldn't conflate Labels with other Declarables, throwing exceptions when they're improperly used in the wrong context). Furthermore, the internal labels used for True and False for if statements have been renamed so that they can't be aliased from user Torque code. Change-Id: I09dbd2241d2bc2f1daff53862dee1b601810060c Reviewed-on: https://chromium-review.googlesource.com/1044370Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53026}
-
- 04 May, 2018 2 commits
-
-
Daniel Clifford authored
Torque expressions of type constexpr are evaluated at compile-time rather than runtime. They are backed by C++ types rather than TNode<X> types, so the macro functions that are called by generated C++ code expect values to be computed when the snapshot is generated rather than by TurboFan-generated code. Specifically, "if" statements can have a constexpr modifier. With this modifier, a type of "constexpr bool" is expected rather than "bool", and in that case instead of generating a CSA BranchIf, it generates a C++ "if (<bool expression>)" that generates code for only the true or false path based on the bool value at torque-execution (compile time) rather than generating both paths (including inserting phi nodes for variables modified on either branch at the re-merge at the end of the if) and dynamically dispatching to the true or false path during d8/Chrome/node.js execution (runtime) using a CSA BranchIf. Change-Id: I8238e25aaadbfc618847e04556e96a3949ea5a8d Reviewed-on: https://chromium-review.googlesource.com/1042085 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53001}
-
Daniel Clifford authored
- In debug builds, 'assert(<expr>)' evaluates and aborts execution if the provided Torque expression is false at runtime. assert(<expr>) supports the same set of expressions protocols as Toruqe's if statement, i.e. both bool values and BranchIf- style tests. Upon failure, the assertion prints the Torque source code of the failed expression, not the generated CSA code. - 'unreachable' calls CSA's Unreachable() and signals to Torque that code execution cannot continue (i.e. its statement returns the 'never' type). In debug builds, the line number and position of the statement are printed before breaking. - 'debug' calls CSA's DebugBreak(). In debug builds, the line number and position of the 'debug' are printed before breaking. Change-Id: I4efd052536bb402c097a0d5f7be56e154b5b3676 Reviewed-on: https://chromium-review.googlesource.com/1042570 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52984}
-
- 23 Apr, 2018 3 commits
-
-
Sigurd Schneider authored
This is a reland of 5728b3fb Original change's description: > [builtins] Separate species protectors for Array, TypedArray, Promise > > Previously, there was one species protector for Array, TypedArray and > Promise. This CL splits the protector in three separate ones. This means > that invalidating one of them does not have negative performance > implications for the other ones. > > Bug: chromium:835347, v8:7340 > Change-Id: Id84aa0071f17096192965264eb60ddadd1e8e73f > Reviewed-on: https://chromium-review.googlesource.com/1023408 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52733} Bug: chromium:835347, v8:7340 Change-Id: I0c0188a0723e206ddb362834bcf872b23cd7666d Reviewed-on: https://chromium-review.googlesource.com/1023811 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52742}
-
Sigurd Schneider authored
This reverts commit 5728b3fb. Reason for revert: Breaks noi18n build Original change's description: > [builtins] Separate species protectors for Array, TypedArray, Promise > > Previously, there was one species protector for Array, TypedArray and > Promise. This CL splits the protector in three separate ones. This means > that invalidating one of them does not have negative performance > implications for the other ones. > > Bug: chromium:835347, v8:7340 > Change-Id: Id84aa0071f17096192965264eb60ddadd1e8e73f > Reviewed-on: https://chromium-review.googlesource.com/1023408 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52733} TBR=sigurds@chromium.org,bmeurer@chromium.org Change-Id: Ied8b436e7991c759eb3b98702c142aa127a7e63c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:835347, v8:7340 Reviewed-on: https://chromium-review.googlesource.com/1024151Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#52736}
-
Sigurd Schneider authored
Previously, there was one species protector for Array, TypedArray and Promise. This CL splits the protector in three separate ones. This means that invalidating one of them does not have negative performance implications for the other ones. Bug: chromium:835347, v8:7340 Change-Id: Id84aa0071f17096192965264eb60ddadd1e8e73f Reviewed-on: https://chromium-review.googlesource.com/1023408 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52733}
-