Commit Graph

111 Commits

Author SHA1 Message Date
Tobias Tebbi
7584dbf587 [array][torque] use new internal classes for sortState
Change-Id: Ibcac85442e755ceabd79cd87ebba7098b95a9182
Reviewed-on: https://chromium-review.googlesource.com/c/1454720
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59406}
2019-02-06 14:03:21 +00:00
Simon Zünd
dc4c8bdb05 [cleanup] Use implicit context and sortState for most Call* macros
This CL changes most Call* macros (and some others) in Array#sort to
pass the context and sortState implicitly. This improves
readability, especially for loads and stores.

R=jgruber@chromium.org, tebbi@chromium.org

Bug: v8:8567
Change-Id: I6528d080bb01ab676de3ba6a7bf8223b98b6db7f
Reviewed-on: https://chromium-review.googlesource.com/c/1450114
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59320}
2019-02-04 09:30:58 +00:00
Simon Zünd
0b2fa277fb [cleanup] Remove usage of 'ReloadElements' from Array#sort
This CL is mostly a mechanical change. Loading either the receiver,
the backing store or the temp array from the sort state is pushed down
into each respective Load/Store builtin. This eliminates the need
for reloading the elements pointer after each compare function call.

R=jgruber@chromium.org, tebbi@chromium.org

Bug: v8:8562
Change-Id: I453e98635f9d891da58cf7b2a86c5c58f4a4069c
Reviewed-on: https://chromium-review.googlesource.com/c/1449613
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59291}
2019-02-01 13:36:47 +00:00
Michael Spang
9bf9717192 Revert "[build] Port "Add patched eu-strip in third_party""
This is no longer necessary after
https://chromium-review.googlesource.com/c/chromium/src/+/1427781

This reverts commit 571076ecb1.

Change-Id: Id754864022171fd3da8f7274b5d3b526603337ce
Reviewed-on: https://chromium-review.googlesource.com/c/1446136
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59254}
2019-01-31 16:44:20 +00:00
Jakob Kummerow
8310864010 Roll inspector_protocol to 8515c2a1c5c016646b61221586cd4e5839f425ee
This roll includes:
8515c2a1c UBSan fix
9977c471b (does not touch files imported into V8)
9cba74155 (does not touch files imported into V8)

Bug: v8:3770
Change-Id: If5ae5e7c6a7a81a246c8376545c4437cacaf1dc3
Reviewed-on: https://chromium-review.googlesource.com/c/1436230
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59103}
2019-01-25 22:41:26 +00:00
Tobias Tebbi
76394d6b34 [torque] add general down-cast intrinsic
Bug: v8:7793
Change-Id: If79b3d760406e44530da5656459ece6db3eff7ab
Reviewed-on: https://chromium-review.googlesource.com/c/1435935
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59098}
2019-01-25 14:16:33 +00:00
Simon Zünd
9514f0d62a [array] Add check for --force-slow-path to Array#sort
This CL changes Array#sort to use the generic path for fast elements
kinds if --force-slow-path is present. Note that the IsFastJSArray macro
includes this check but not the Cast itself.

R=jgruber@chromium.org

Bug: v8:8215
Change-Id: I1135ab9db15effd86020f49f4ae23ba1e1da07f8
Reviewed-on: https://chromium-review.googlesource.com/c/1435940
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59097}
2019-01-25 13:20:50 +00:00
Sergiy Belozorov
71cb4777e7 Update V8 DEPS.
Rolling v8/build: 402bc6d..4b7e3ce

Rolling v8/third_party/googletest/src: 879ac09..9518a57

This also ports:
https://crrev.com/c/1410527

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Bug: chromium:922379
Change-Id: I3982ace35bb762e7f5c85ba9468739aedd3bcd78
Reviewed-on: https://chromium-review.googlesource.com/c/1424659
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58994}
2019-01-22 14:49:04 +00:00
Michael Achenbach
7b01fe76d1 Update V8 DEPS.
Rolling v8/build: 7a1aacd..de8bef4

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/78448d9..a9729f3

Rolling v8/third_party/depot_tools: e229a0e..d1dba64

Rolling v8/third_party/googletest/src: 933e5df..879ac09

Rolling v8/tools/clang: a9c5056..9f413ce

This also ports:
https://crrev.com/c/1415130

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Bug: chromium:922889
Change-Id: Ibf674eeefb82f9feb210107d6081c489cfba48db
Reviewed-on: https://chromium-review.googlesource.com/c/1416608
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58868}
2019-01-17 08:14:47 +00:00
Johannes Henkel
7b0038ef40 [DevTools] Roll inspector_protocol to fdbdb154336fc1f15a0a6775349dd90243b8d3fc.
This should be a non-event, I'm just rolling it to line it up
with https://chromium.googlesource.com/deps/inspector_protocol/
again.

Change-Id: I84b0af31963bceb66084a579519412d47c3bbd40
Reviewed-on: https://chromium-review.googlesource.com/c/1413409
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58861}
2019-01-16 17:38:16 +00:00
Michael Achenbach
84ff79a3b9 Update V8 DEPS.
Rolling v8/build: 02ccb16..7a1aacd

Rolling v8/buildtools: 9d61cbb..40194ab

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/96320b5..78448d9

Rolling v8/third_party/depot_tools: 8432ec2..e229a0e

Rolling v8/third_party/googletest/src: 879ac09..933e5df

This also ports https://crrev.com/c/1410527 for the gtest roll.

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Bug: chromium:922379
Change-Id: I65347892b6d2df3b6b30d8688367b39f4e76e25a
Reviewed-on: https://chromium-review.googlesource.com/c/1413874
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#58841}
2019-01-16 09:12:26 +00:00
Michael Achenbach
50b72266ff Revert "Reland "[build] Pull binutils via DEPS""
This reverts commit 09c49ee064.

Reason for revert: Still breaks the node.js bot.

Original change's description:
> Reland "[build] Pull binutils via DEPS"
> 
> This is a reland of 98bbb636b1
> 
> Original change's description:
> > [build] Pull binutils via DEPS
> >
> > This pulls binutils from a subtreed repository of Chromium:
> > https://chromium.googlesource.com/chromium/src/third_party/binutils/
> >
> > Bug: chromium:718157
> > Change-Id: I532c7e84d83f716728e4f9f715cfdb82ea5d5f98
> > Reviewed-on: https://chromium-review.googlesource.com/c/1370043
> > Reviewed-by: Yang Guo <yangguo@chromium.org>
> > Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
> > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#58180}
> 
> Bug: chromium:718157, v8:8584
> Change-Id: I1c9773bc5fa0a629e35db5151e535e63839f2801
> Reviewed-on: https://chromium-review.googlesource.com/c/1375655
> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58213}

TBR=machenbach@chromium.org,yangguo@chromium.org,sergiyb@chromium.org

Change-Id: I1935f4aef0d6eb4f58e25197d14ccf2c2c645b15
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:718157, v8:8584
Reviewed-on: https://chromium-review.googlesource.com/c/1375659
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58214}
2018-12-13 12:05:58 +00:00
Michael Achenbach
09c49ee064 Reland "[build] Pull binutils via DEPS"
This is a reland of 98bbb636b1

Original change's description:
> [build] Pull binutils via DEPS
>
> This pulls binutils from a subtreed repository of Chromium:
> https://chromium.googlesource.com/chromium/src/third_party/binutils/
>
> Bug: chromium:718157
> Change-Id: I532c7e84d83f716728e4f9f715cfdb82ea5d5f98
> Reviewed-on: https://chromium-review.googlesource.com/c/1370043
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58180}

Bug: chromium:718157, v8:8584
Change-Id: I1c9773bc5fa0a629e35db5151e535e63839f2801
Reviewed-on: https://chromium-review.googlesource.com/c/1375655
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58213}
2018-12-13 11:34:18 +00:00
Michael Achenbach
b33fcd7e83 Revert "[build] Pull binutils via DEPS"
This reverts commit 98bbb636b1.

Reason for revert: https://crbug.com/v8/8584

Original change's description:
> [build] Pull binutils via DEPS
> 
> This pulls binutils from a subtreed repository of Chromium:
> https://chromium.googlesource.com/chromium/src/third_party/binutils/
> 
> Bug: chromium:718157
> Change-Id: I532c7e84d83f716728e4f9f715cfdb82ea5d5f98
> Reviewed-on: https://chromium-review.googlesource.com/c/1370043
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#58180}

TBR=machenbach@chromium.org,yangguo@chromium.org,sergiyb@chromium.org

Change-Id: I43126c54846b14de10a0cd6bdc0b9d6e2e64999c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:718157
Reviewed-on: https://chromium-review.googlesource.com/c/1373780
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58187}
2018-12-12 14:05:12 +00:00
Michael Achenbach
98bbb636b1 [build] Pull binutils via DEPS
This pulls binutils from a subtreed repository of Chromium:
https://chromium.googlesource.com/chromium/src/third_party/binutils/

Bug: chromium:718157
Change-Id: I532c7e84d83f716728e4f9f715cfdb82ea5d5f98
Reviewed-on: https://chromium-review.googlesource.com/c/1370043
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58180}
2018-12-12 09:46:01 +00:00
Stephen Martinis
f12466441c Remove GYP_DEFINES reference
This was deleted source side in https://crrev.com/c/1308912 with
seemingly no ill effects.

Bug: chromium:718157
Change-Id: Ic2516b391b76a8fb72df97f6f090af3c24f35766
Reviewed-on: https://chromium-review.googlesource.com/c/1371035
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58141}
2018-12-11 07:34:58 +00:00
Daniel Clifford
9362fa9478 [builtins] Port Frame-related CSA functionality to Torque
Moving Frame-inspection functionality to Torque is a prerequisite
for porting the CSA-based arguments code, which is a great candidate
to simplify/cleanup with Torque.

Change-Id: I1f4cb94cb357aae5864c2e84f3bf5a07549b27f8
Reviewed-on: https://chromium-review.googlesource.com/c/1357050
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@{#58106}
2018-12-07 17:13:43 +00:00
Daniel Clifford
79605b4508 [torque] Add new and refine existing Torque intrinsic support
Intrinsic changes:

- Rename %RawCast to %RawObjectCast and add error checking so that it
  only applies to subtypes of Objects.

- Add %RawPointerCast, which is similar to %RawObjectCast but must be
  used for all subtypes of RawPtr.

- Add %RawConstexprCast, which allows one constexpr to be be cast to
  another at compile time. It translate to an appropriate static_cast
  in the generated code

- Add %FromConstexpr, which handles most of the standard cases of
  generating XXXConstant CSA nodes from constexpr constants. It uses
  either SmiConstant, NumberConstant, StringConstant, IntPtrConstant
  or Int32Constant, depending on the cast-to type generic <To> type.

- Add support for intrinsics that return constexpr results.

Cleanup:

- Turn FromConstexpr into a generic with two generic types, a <To> and
  a <From> type. Most FromConstexpr can use the new %FromConstexpr
  intrinsic rather than provide an explicit implementation.

Bug: v8:7793
Change-Id: Icab5db16d203034ec157fa3ad5157d10c7dc8464
Reviewed-on: https://chromium-review.googlesource.com/c/1357049
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58049}
2018-12-05 19:06:56 +00:00
Daniel Clifford
1d08ecafbe [torque] Simplify and cleanup Cast and UnsafeCast
Change-Id: I57e21c5bc754ca07f52032f85ec8aeff96448dd0
Reviewed-on: https://chromium-review.googlesource.com/c/1342929
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57855}
2018-11-27 06:50:30 +00:00
Sergiy Byelozyorov
fa306d4372 Update V8 DEPS.
Rolling v8/build: 8af70c5..6600235

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0cf6ee7..6b8b30c

Rolling v8/third_party/depot_tools: 332c9ff..ef71a5f

Rolling v8/third_party/googletest/src: 2e68926..879ac09

Rolling v8/tools/luci-go:infra/tools/luci/isolate/${platform}: https://chrome-infra-packages.appspot.com/infra/tools/luci/isolate/${platform}/+log/git_rev..git_rev

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: I0cbffcb71b49e1d54e2aedb19f6dab65448586a0
Reviewed-on: https://chromium-review.googlesource.com/c/1336187
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57517}
2018-11-14 20:08:33 +00:00
Mike Stanton
08eed80c42 [Torque] Rename modules to namespaces
BUG=v8:7793

Change-Id: Ibcf16998ef9a44ae899a2536ccf02af1b7b7193d
Reviewed-on: https://chromium-review.googlesource.com/c/1333410
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57469}
2018-11-13 13:40:43 +00:00
Jakob Gruber
1444bebe76 [array] Weaken bounds checks in Array.p.sort
The array length is modifiable by user code that is called as a
side-effect during the sorting algorithm. We thus cannot base any
guarantees on the current length, but must reference the initially-read
array length instead.

Note that even though the algorithm may read and write from beyond
the current array length value, this adheres to the spec, which only
requires accesses to be within the original array dimensions (i.e.: 0
<= i < original array length).

Bug: chromium:901633
Change-Id: Id765e80d4231ff6f2a73e040ec94c2b07f8c5b0f
Reviewed-on: https://chromium-review.googlesource.com/c/1317814
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57279}
2018-11-06 14:04:38 +00:00
Daniel Clifford
769be76162 Reland "Fix Array.prototype.sort speed regression"
This is a reland of c88994f84c

Turned out to not be the issue.

Original change's description:
> Fix Array.prototype.sort speed regression
>
> CanUseSameAccessor<ElementsAccessor: type> is array-sort.tq is super
> performance-critical. Reverting the type-safe cleanup made in this
> function while landing Array.prototype.slice.
>
> Bug=chromium:852764
>
> Change-Id: I1252d2ff8e431581f916794807e59abb39248abb
> Reviewed-on: https://chromium-review.googlesource.com/c/1317815
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Daniel Clifford <danno@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57248}

TBR=danno@chromium.org

Change-Id: I627a131a8525ae4e131c6467561cab9832f3792f
Reviewed-on: https://chromium-review.googlesource.com/c/1319581
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57270}
2018-11-06 10:55:42 +00:00
Leszek Swirski
aeb74d1ca0 Revert "Fix Array.prototype.sort speed regression"
This reverts commit c88994f84c.

Reason for revert: Seems to break AccessibilitySelectionTest.List in webkit_unit_tests (https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15618)

Original change's description:
> Fix Array.prototype.sort speed regression
> 
> CanUseSameAccessor<ElementsAccessor: type> is array-sort.tq is super
> performance-critical. Reverting the type-safe cleanup made in this
> function while landing Array.prototype.slice.
> 
> Bug=chromium:852764
> 
> Change-Id: I1252d2ff8e431581f916794807e59abb39248abb
> Reviewed-on: https://chromium-review.googlesource.com/c/1317815
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Daniel Clifford <danno@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57248}

TBR=danno@chromium.org,jgruber@chromium.org

Change-Id: Ie447fd0382fee344326d928398595aa450ccdcca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1319577
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57265}
2018-11-06 09:50:05 +00:00
Daniel Clifford
c88994f84c Fix Array.prototype.sort speed regression
CanUseSameAccessor<ElementsAccessor: type> is array-sort.tq is super
performance-critical. Reverting the type-safe cleanup made in this
function while landing Array.prototype.slice.

Bug=chromium:852764

Change-Id: I1252d2ff8e431581f916794807e59abb39248abb
Reviewed-on: https://chromium-review.googlesource.com/c/1317815
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57248}
2018-11-05 17:55:37 +00:00
Daniel Clifford
2593d0733d Remove bogus cast in and rename GetReceiverLengthProperty
BUG=chromium:901040

Change-Id: I0c28a2bd9a43d107e8afe8a8c0d53d1d3278121a
Reviewed-on: https://chromium-review.googlesource.com/c/1317506
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57230}
2018-11-05 09:15:19 +00:00
Daniel Clifford
bb065aa900 [torque] Implement transient types and checking
In the process implement TopType to express undefined values and
transient types after they no longer are valid, as well as checks to
make sure that transtioning callables are transitively marked
to express if they or their call chain modify transient types.

Bug: v8:7793
Change-Id: Idb237e878d3a511a4f460b6510ffd4876593951d
Reviewed-on: https://chromium-review.googlesource.com/c/1297963
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57052}
2018-10-29 07:48:20 +00:00
Jakob Gruber
0855fb151b [array] Ensure PrepareElementsForSort returns a legal value
PrepareElementsForSort must return a number less than or equal the array
length.

Bug: chromium:897512, v8:7382
Change-Id: If5f9c4d052e623ab9f3300b8534603abbee859fa
Reviewed-on: https://chromium-review.googlesource.com/c/1297958
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56982}
2018-10-25 12:02:47 +00:00
Michael Achenbach
9929a238ab Update V8 DEPS.
Rolling v8/build: 6455acf..5a371bc

Rolling v8/test/wasm-js/data: 7e3c46a..b0e7838

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/b026043..ed6fe0f

Rolling v8/third_party/depot_tools: 98f1e59..2b71832

Rolling v8/third_party/fuchsia-sdk: bac0433..29de0c2

Rolling v8/tools/clang: a245b95..3041f30

Rolling v8/tools/luci-go: 445d7c4..86c09e8

TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org

Change-Id: Ieb48aa2ff019267e3be8d3f70e60829d545d34c3
Reviewed-on: https://chromium-review.googlesource.com/c/1298391
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56971}
2018-10-25 07:28:05 +00:00
Daniel Clifford
ce00ea8085 Fix formatting of Torque unions
TBR=tebbi@chromium.org
NOTRY=true

Change-Id: I2c5a1fc18efbbef7fd407000fa560bb75e5dc145
Reviewed-on: https://chromium-review.googlesource.com/c/1297324
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56945}
2018-10-24 13:31:53 +00:00
Johannes Henkel
e99349a9e9 Roll inspector_protocol to 460186cff1f0eead0d418626e7e75f52105182b2.
See
460186cff1

Bug: chromium:891377
Change-Id: I10332e68fb33f8bc06a489162171c52675373536
Reviewed-on: https://chromium-review.googlesource.com/c/1297591
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56922}
2018-10-24 01:05:53 +00:00
Jakob Gruber
d31a5b6569 [array] Fix left-trimming in Array.p.sort
Whenever left-trimming is possible (e.g. whenever user code is
called), we must not store a reference to an exposed JSArray's
elements.

Bug: chromium:897366,v8:7382
Change-Id: I8dd6a93aa6ed19e755ccce7122e0e019dc578a31
Reviewed-on: https://chromium-review.googlesource.com/c/1292066
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56903}
2018-10-23 13:58:54 +00:00
Daniel Clifford
b51053d89e Reland: [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.

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/1291375
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56829}
2018-10-19 21:27:19 +00:00
Sigurd Schneider
5bc96c9191 Revert "[builtins] Implement Array.prototype.slice in Torque"
This reverts commit 41ba3d3eb0.

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/1290973
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56815}
2018-10-19 11:24:34 +00:00
Daniel Clifford
41ba3d3eb0 [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}
2018-10-19 09:12:21 +00:00
Daniel Clifford
9958694f84 [torque] Implement implicit parameters
The implicit parameter syntax adds a second parameter list
before the explicit parameter list when declaring macros, builtins and
runtime functions:

  extern macro MyMacro(implicit a: Smi)(b: Oddball);

when calling the macro, only the formal parameters can be provided
at the call site. The implicit parameters are implicitly looked-up
by name in the scope of the call and prepended to the explicit parameter
list. The values that are found by name for each implicit parameter must
be castable the corresponding implicit parameter type:

  MyMacro(Null);  // Error, a is not defined
  ...
  const a: Smi = 0;
  MyMacro(Null);  // OK
  ...
  const a: Object = 0;
  MyMacro(Null);  // Error, a has wrong type

For external macros, builtins and runtime functions, the formal
parameter list expected on the C++ side is the concatenation of the
implicit and explicit parameter lists.

As a drive-by: fix the formatting of typeswitch statements in the
the presence of deferred-marked blocks and funky white space.

Bug: v8:7793
Change-Id: I40da8405c706d7cdeca35367c9c954d0b33f6bf4
Reviewed-on: https://chromium-review.googlesource.com/c/1270996
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56555}
2018-10-11 09:49:30 +00:00
Ivica Bogosavljevic
0d81c8bf42 Update binutils to 2.30
Change-Id: I88db66ef1bea03dee365679487814563250c4bba
Reviewed-on: https://chromium-review.googlesource.com/1243127
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#56231}
2018-09-26 07:36:07 +00:00
Daniel Clifford
274aecdd78 Fix nits in presubmit.py and handling of .tq otherwise formatting
Change-Id: I69a4db1d8be47bad56df74447a29526e9623cb80
Reviewed-on: https://chromium-review.googlesource.com/1243107
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56219}
2018-09-25 15:37:39 +00:00
Daniel Clifford
f088840abf [torque] Improve formatting in format-torque
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}
2018-09-24 10:08:00 +00:00
Simon Zünd
d898fa3ec1 [torque] Add linter rule for 'label' naming convention
R=tebbi@chromium.org

Bug: v8:7793
Change-Id: I6690ae59743054e8171bffbf722eb486f468ac48
Reviewed-on: https://chromium-review.googlesource.com/1228062
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#55985}
2018-09-18 09:20:23 +00:00
Jakob Gruber
74320a1b92 Revert "[builtins] Add FastCallFunction builtin that elides some checks"
This reverts commit 99e13e587e.

Reason for revert: Reverting in favor of a general mechanism for this in Torque.

Original change's description:
> [builtins] Add FastCallFunction builtin that elides some checks
> 
> This CL adds a new "Call" stub that can be used by builtins that will
> call the same JS call-back function often (e.g. compare function in
> Array.p.sort). The checks have to be done upfront once, but can then
> be omitted.
> 
> R=​jgruber@chromium.org
> 
> Bug: v8:7861
> Change-Id: Id6e4ca27c3d488a7b1f708cbcb4cbe6cc382513e
> Reviewed-on: https://chromium-review.googlesource.com/1208574
> Commit-Queue: Simon Zünd <szuend@google.com>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55769}

TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:7861
Change-Id: I47260993ef2a16bd5348bb0b46da4d34d33ea10b
Reviewed-on: https://chromium-review.googlesource.com/1226871
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55897}
2018-09-14 11:09:08 +00:00
Simon Zünd
31eca73d34 [torque] Fix all current lint errors in Torque code
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}
2018-09-11 14:11:05 +00:00
Simon Zünd
99e13e587e [builtins] Add FastCallFunction builtin that elides some checks
This CL adds a new "Call" stub that can be used by builtins that will
call the same JS call-back function often (e.g. compare function in
Array.p.sort). The checks have to be done upfront once, but can then
be omitted.

R=jgruber@chromium.org

Bug: v8:7861
Change-Id: Id6e4ca27c3d488a7b1f708cbcb4cbe6cc382513e
Reviewed-on: https://chromium-review.googlesource.com/1208574
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55769}
2018-09-11 07:31:32 +00:00
Simon Zünd
292c3ed774 [cleanup] Remove unnecessary calls to FillFixedArrayWithSmiZero
The functionality of "FillFixedArrayWithSmiZero" got merged into
"AllocateZeroedFixedArray", making these calls superfluous.

R=jgruber@chromium.org

Bug: v8:8015
Change-Id: I5453ea4b16a1446717517fe1676d611d987ad0a3
Reviewed-on: https://chromium-review.googlesource.com/1212842
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#55699}
2018-09-07 07:17:05 +00:00
Simon Zünd
c433112cca [array] Use CallCFunction3 for SmiLexicographicCompare
This CL changes the call-site of SmiLexicographicCompare to a fast
c call instead of a runtime call. The runtime function is not deleted
as it is still used in InnerArraySort.

The test is also moved from mjsunit to cctest, to make removal of the
runtime function easier in the future.

R=cbruni@chromium.org, jgruber@chromium.org

Bug: v8:7382
Change-Id: Ie961eeb094c13018e9ec28b68f7c444d7f889036
Reviewed-on: https://chromium-review.googlesource.com/1201587
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55642}
2018-09-05 10:13:25 +00:00
Simon Zünd
b50fa92a2d Introduce 'kLengthString' in torque code
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/1201782
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#55578}
2018-09-03 06:36:42 +00:00
Simon Zünd
837fec91a4 [array] Replace JS Array.p.reverse with a Torque implementation
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}
2018-08-24 05:57:20 +00:00
Simon Zünd
fa11e2ac03 Reland ^2 "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
This is a reland of 9e48a24fd9

Original change's description:
> Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
>
> The CL was reverted because it broke some tests in ChromeOS.
>
> > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
> >
> > This CL changes the sorting algorithm used in Array.p.sort from
> > QuickSort to TimSort (implemented in Torque).
> >
> > Detailed performance results can be found here: https://goo.gl/4E733J
> >
> > To save on code space, fast-paths are implemented as sets of
> > function pointers instead of specializing generics.
> >
> > R=cbruni@chromium.org, jgruber@chromium.org
> >
> > Bug: v8:7382, v8:7624
> > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
> > Reviewed-on: https://chromium-review.googlesource.com/1151199
> > Commit-Queue: Simon Zünd <szuend@google.com>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#55003}
>
> Bug: v8:7382, v8:7624
> Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
> Reviewed-on: https://chromium-review.googlesource.com/1184901
> Commit-Queue: Simon Zünd <szuend@google.com>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55325}

Bug: v8:7382, v8:7624
Change-Id: I297611f45c09967e0f6961156b0c9ebdebc7053f
Reviewed-on: https://chromium-review.googlesource.com/1186801
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55360}
2018-08-23 15:43:29 +00:00
Maya Lekova
8e43b9c01d Revert "Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort""
This reverts commit 9e48a24fd9.

Reason for revert: Possibly breaking the V8-Blink Mac bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15097

Original change's description:
> Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
> 
> The CL was reverted because it broke some tests in ChromeOS.
> 
> > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
> >
> > This CL changes the sorting algorithm used in Array.p.sort from
> > QuickSort to TimSort (implemented in Torque).
> >
> > Detailed performance results can be found here: https://goo.gl/4E733J
> >
> > To save on code space, fast-paths are implemented as sets of
> > function pointers instead of specializing generics.
> >
> > R=cbruni@chromium.org, jgruber@chromium.org
> >
> > Bug: v8:7382, v8:7624
> > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
> > Reviewed-on: https://chromium-review.googlesource.com/1151199
> > Commit-Queue: Simon Zünd <szuend@google.com>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#55003}
> 
> Bug: v8:7382, v8:7624
> Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
> Reviewed-on: https://chromium-review.googlesource.com/1184901
> Commit-Queue: Simon Zünd <szuend@google.com>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55325}

TBR=jgruber@chromium.org,szuend@google.com

Change-Id: Ie7e2af57a6480aa0504ba21ec98ee825d7ac74fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7382, v8:7624
Reviewed-on: https://chromium-review.googlesource.com/1186601
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55355}
2018-08-23 13:08:13 +00:00
Simon Zünd
9e48a24fd9 Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
The CL was reverted because it broke some tests in ChromeOS.

> [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
>
> This CL changes the sorting algorithm used in Array.p.sort from
> QuickSort to TimSort (implemented in Torque).
>
> Detailed performance results can be found here: https://goo.gl/4E733J
>
> To save on code space, fast-paths are implemented as sets of
> function pointers instead of specializing generics.
>
> R=cbruni@chromium.org, jgruber@chromium.org
>
> Bug: v8:7382, v8:7624
> Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
> Reviewed-on: https://chromium-review.googlesource.com/1151199
> Commit-Queue: Simon Zünd <szuend@google.com>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Camillo Bruni <cbruni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55003}

Bug: v8:7382, v8:7624
Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
Reviewed-on: https://chromium-review.googlesource.com/1184901
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55325}
2018-08-23 07:33:33 +00:00