Commit Graph

71419 Commits

Author SHA1 Message Date
Manos Koukoutos
eee722cbf4 [wasm-gc] Add struct.new_default* to constant expressions
Bug: v8:7748
Change-Id: I5b6d8bf0b6dbf88c4762f4d61fb468c3e2898201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168621
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76927}
2021-09-20 07:54:49 +00:00
Manos Koukoutos
6ec7e0a76c Reland "[wasm] Introduce CallInfo in WasmGraphBuildingInterface"
This is a reland of db95e20b98

Changes compared to original:
Only invoke std::memcpy if source is not null.

Original change's description:
> [wasm] Introduce CallInfo in WasmGraphBuildingInterface
>
> The DoCall and DoReturnCall functions implement function calls in
> WasmGraphBuilderInterface. These functions need different arguments
> based on if the call is direct, indirect or call_ref. Right now, these
> arguments are misnamed in some cases, and callers have to pass default
> values for unused arguments.
> This CL tidies up the arguments of these functions by introducing a
> CallInfo class which provides different constructors based on the type
> of the call, where only the required arguments need to be passed.
>
> Change-Id: Ie03de6d3cf253a9baa0369f569589bb91d0b1866
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162606
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76910}

Change-Id: I85cb5479f013e6625adce421d011c0b2ae073260
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168626
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76926}
2021-09-20 07:44:30 +00:00
v8-ci-autoroll-builder
2b4bc731af Update V8 DEPS.
Rolling v8/build: 28f08ad..ae8cb5d

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I1e7b57b7120906e6a1c789a428e199944a0be7dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168365
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76925}
2021-09-20 03:53:51 +00:00
v8-ci-autoroll-builder
45bf0bb17c Update V8 DEPS.
Rolling v8/build: 67d9786..28f08ad

Rolling v8/third_party/aemu-linux-x64: 4_W8oYEfH2jwjpXXJX32HUtITINfNQfevdEMi6HVUm8C..17S2VQDv3RUfAsW4s0c53HyKMVsd-i_1DocJS0aHWu4C

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I39375c01a3ce17bc1d03c0a9563dd6efa27ffb0a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168363
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76924}
2021-09-19 03:51:55 +00:00
v8-ci-autoroll-builder
894a36f9dd Update V8 DEPS.
Rolling v8/build: 48f708c..67d9786

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/6b072fa..fa2350f

Rolling v8/third_party/depot_tools: 9cba73f..cf9d643

Rolling v8/third_party/instrumented_libraries: 0faacf9..eb740e9

Rolling v8/tools/clang: c8d8b3e..6f44cf5

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I9bcc20f2e6a23805d50d85a667a3c537ce6774b9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3170131
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76923}
2021-09-18 03:49:14 +00:00
Frank Tang
86bf842c41 [test262] Roll test262
66a3c3aa..650e7ad

Bug: v8:7834, v8:12168
Change-Id: I6555baf3a4ec317ee5bca1e159d0ed215d1ef110
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167031
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76922}
2021-09-17 21:57:05 +00:00
Ng Zhi An
f74335bbb3 [x64] Move Movdqa into shared macro assembler
Bug: v8:11589
Change-Id: Id1c068edb2bf0849ad99ecdcd42ce97bcba013d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3163281
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76921}
2021-09-17 20:03:33 +00:00
Jakob Kummerow
afed992bb0 [bigint] Move asIntN/asUintN to src/bigint/
No algorithmic changes, just cleaning up.

Bug: v8:11515
Change-Id: Ib173713a1191d443faf2aebbcc31ff7608823436
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3151957
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76920}
2021-09-17 18:54:03 +00:00
Thibaud Michaud
159e440d4d [wasm][eh] Fix interpreter delegate in catch block
The recent change in the delegate semantics was incorrectly implemented
in the interpreter. It only checked that the first opcode of the target
block is a 'try': we also need to skip try blocks when we are already in
their 'catch' or 'catch_all' sub-block.
Use the exception_stack instead, since it already only contains indices
of try blocks that haven't reached their handlers yet.

R=clemensb@chromium.org

Bug: chromium:1249306
Change-Id: I15746b4bfabf3dcf04cfe0f2ad438c573cce65e7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168622
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76919}
2021-09-17 18:20:13 +00:00
Ng Zhi An
325077dcfc Spec tests don't need simd flag anymore
SIMD is now shipped, so we don't need to pass the experimental wasm simd
flag.

Change-Id: I54090cec575da5eecfd2bf9a455ac5d0ef3f146e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3169313
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76918}
2021-09-17 17:54:33 +00:00
Ng Zhi An
71df28cb63 [x64] Optimize F64x2PromoteLowF32x4 with S128Load64Zero
When the input to F64x2PromoteLowF32x4 is a S128Load64Zero, we can skip
the load + promote, and promote directly with a memory operand. The
tricky bit here is that on systems that rely on OOB trap handling, the
load is not eliminatable, so we always visit the S128Load64Zero, even
though after instruction-selector pattern-matching, it is unused. We
mark it as defined to skip visiting it, only if we matched it.

Bug: v8:12189
Change-Id: I0a805a3fce65c56ec52082b3625e1712ea1ee7cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3154347
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76917}
2021-09-17 16:52:23 +00:00
Leszek Swirski
9ab053026b Reland "[flag] Disable W^X behind --future"
This is a reland of b06f38324a

s/DEFINE_READONLY_BOOL/DEFINE_BOOL_READONLY/

Original change's description:
> [flag] Disable W^X behind --future
>
> Measure the impact of W^X on --future bots
>
> Change-Id: I6f60cc835471fa62ec0871101eca5d3022ece519
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168277
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76908}

Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng,v8_mac_arm64_compile_dbg
Change-Id: Iae6da3a64d19d3c03d565cc94f765bc41e36bfb1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168620
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76916}
2021-09-17 16:26:43 +00:00
Andreas Haas
1e8ab268c4 [win] Fix corner case in AllocateStackSpace
With this CL it is guaranteed that every time after AllocatedStackSpace
allocates a full page, this page also gets touched.

Background:

On Windows it is required to touch every new memory page on the stack
before adding another memory page. This is implemented in
{AllocateStackSpace}. This was implemented so far by repeatedly
allocating a new page, followed by touching the new page. The last
allocation, which may has up to the size of a page, did not get touched
anymore, with the assumption that allocated stack space will be used
before new stack space gets allocated. However, this assumption is
wrong. In Liftoff, the whole stack space that is needed for a function
gets allocated in the beginning of the function. This stack space may
only be used for spills though, and the spilling may only happen after
the first function call in the function. In this case the callee
function will write to its own stack frame before the stack frame of the
caller gets used.

As written above, the last allocation does not get touched anymore. In
the case that this is a full memory page, this can mean that a full
memory page gets skipped without getting touched. With this CL it is
guaranteed that the last allocation is always smaller than one page, and
therefore it is impossible to skip a full page without touching it as
long as there are no two calls to {AllocateStackSpace} without a {push}
in between.


Bug: v8:12063
Change-Id: If0bb41212e882beb926aac538001b02f179fc03e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168276
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76915}
2021-09-17 15:52:44 +00:00
Junliang Yan
b88bfa9f37 ppc: [liftoff] implement type reinterpret casting
Change-Id: I8edbc9f3acada00d40b8007c880dfb3d14491744
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168356
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76914}
2021-09-17 15:48:36 +00:00
Leszek Swirski
f2e25f8a09 [base] Replace base::Optional with Abseil
Change base::Optional to an alias of absl::optional. Eventually we
should remove it entirely.

Bug: v8:11006
Change-Id: I687d44cc7e7cd0a49a84bcc207231eb6808eef2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476318
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76913}
2021-09-17 15:46:54 +00:00
Manos Koukoutos
b584f27372 [wasm-gc] Allow array.init in function bodies
Bug: v8:7748
Change-Id: Ic25e7be11cb1a06b160c1abe6d004a4c74b88b49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167493
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76912}
2021-09-17 15:36:24 +00:00
Leszek Swirski
6f5f8e6c81 Revert "[wasm] Introduce CallInfo in WasmGraphBuildingInterface"
This reverts commit db95e20b98.

Reason for revert: UBSan failures https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/18300/overview

Original change's description:
> [wasm] Introduce CallInfo in WasmGraphBuildingInterface
>
> The DoCall and DoReturnCall functions implement function calls in
> WasmGraphBuilderInterface. These functions need different arguments
> based on if the call is direct, indirect or call_ref. Right now, these
> arguments are misnamed in some cases, and callers have to pass default
> values for unused arguments.
> This CL tidies up the arguments of these functions by introducing a
> CallInfo class which provides different constructors based on the type
> of the call, where only the required arguments need to be passed.
>
> Change-Id: Ie03de6d3cf253a9baa0369f569589bb91d0b1866
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162606
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76910}

Change-Id: Ie0b288b3cbb66de4858fb7fbf1bc992518e637d0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168284
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76911}
2021-09-17 15:35:17 +00:00
Manos Koukoutos
db95e20b98 [wasm] Introduce CallInfo in WasmGraphBuildingInterface
The DoCall and DoReturnCall functions implement function calls in
WasmGraphBuilderInterface. These functions need different arguments
based on if the call is direct, indirect or call_ref. Right now, these
arguments are misnamed in some cases, and callers have to pass default
values for unused arguments.
This CL tidies up the arguments of these functions by introducing a
CallInfo class which provides different constructors based on the type
of the call, where only the required arguments need to be passed.

Change-Id: Ie03de6d3cf253a9baa0369f569589bb91d0b1866
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162606
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76910}
2021-09-17 14:38:12 +00:00
Leszek Swirski
044b76dcc5 Revert "[flag] Disable W^X behind --future"
This reverts commit b06f38324a.

Reason for revert: Typo in mac arm64 config

Original change's description:
> [flag] Disable W^X behind --future
>
> Measure the impact of W^X on --future bots
>
> Change-Id: I6f60cc835471fa62ec0871101eca5d3022ece519
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168277
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#76908}

Change-Id: Ia6084a838bc507bc4c988d13d1a991c7604e4653
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168619
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Owners-Override: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76909}
2021-09-17 14:36:22 +00:00
Leszek Swirski
b06f38324a [flag] Disable W^X behind --future
Measure the impact of W^X on --future bots

Change-Id: I6f60cc835471fa62ec0871101eca5d3022ece519
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168277
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76908}
2021-09-17 14:28:31 +00:00
Andreas Haas
968549117c [wasm] Set correct prototype for WebAssembly.Global
This fixes the first part of a failing spec test, the other WebAssembly
objects will follow in other CLs.

R=jkummerow@chromium.org

Bug: v8:12227
Change-Id: I7b57b0c518671f0614a88f0477b64e2507435aba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168272
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76907}
2021-09-17 13:31:01 +00:00
Michael Lippautz
656b1d64ea heap: Allow concurrent DescriptorArray write barrier
The barrier checks whether an object has already been marked and
strongifies all values in case it was. This means that DescriptorArray
elements will not be reclaimed within the current garbage collection
cycle in case a write barrier triggers for the array.

Bug: v8:12133
Change-Id: I33df2f75d75527034a040275b6c55ac0aed94321
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3158325
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76906}
2021-09-17 13:16:10 +00:00
Andreas Haas
cde2a6c72e [wasm] Support initial value for Table.grow
An initial value for Table.grow is supported by the core spec and does
not depend on a proposal, see [1].

[1] https://webassembly.github.io/spec/js-api/index.html#tables

R=thibaudm@chromium.org

Bug: v8:12227
Change-Id: Ia4f16adc76a0422b2211c069614929a1a70afa76
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164979
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76905}
2021-09-17 12:55:14 +00:00
Thibaud Michaud
82cc2677ac [regalloc] Fix S128 slot interference check
When checking for operand interference, if both operands are slots and
one of them is 128 bit wide, check that the slot ranges don't intersect.

R=nicohartmann@chromium.org

Bug: chromium:1248817
Change-Id: Ib18b6e596dbb23427508b7cc07947a0ab4665e85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162141
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76904}
2021-09-17 12:54:10 +00:00
Junliang Yan
8e3d7e82c4 ppc: [liftoff] fix MoveStackValue
Change-Id: I501d81c461f16ea483d4d2246fceb8b40cae261e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167310
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76903}
2021-09-17 11:55:01 +00:00
Clemens Backes
367f86de7e [traphandler] Add arm64 simulator support on Windows
This ports the trap handler implementation for the arm64 simulator
from POSIX to Windows. Apart from different registers being used
for passing parameters, and different access to these register
values in the signal handler, the implementation is exactly the same.

The new logic is being used for sanitizer builds which automatically
target arm64 via the simulator, or if manually compiling an arm64
simulator build on x64. I manually tested the latter.

Also, the existing unit test is enabled for Mac (which was missing)
and Windows now.

R=ahaas@chromium.org, mseaborn@chromium.org

Bug: v8:11955
Cq-Include-Trybots: luci.v8.try:v8_win64_asan_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_mac64_asan_rel_ng
Change-Id: Ia62405b28808a3cc9f199e3f43a45ffc4bda491b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3163256
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76902}
2021-09-17 11:42:13 +00:00
Georg Neis
62133215bc [compiler][cleanup] Remove unnecessary MakeRef call
Bug: v8:7790
Change-Id: I7c091ad3fd5e7d9a8c4b306d8559654f3fb06868
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168271
Commit-Queue: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76901}
2021-09-17 09:39:39 +00:00
Samuel Groß
b3d9ba8156 Simplify the V8VirtualMemoryCage implementation
Instead of explicitely splitting the cage into two separate regions, we
now just create a single BoundedPageAllocator to manage the entire
address range of the cage, then allocate the first 4GB for the pointer
compression cage.

Bug: chromium:1218005
Change-Id: I02c53ca8b6dda9074ae6caccc74c32bd6271d4d2
Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162044
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Samuel Groß <saelo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76900}
2021-09-17 09:38:35 +00:00
Georg Neis
6d787191e8 [compiler] Prevent unexpected deopts causing test flakes
Bug: v8:12201
Change-Id: I9a225184a887002859882d6960432a71da28b76e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3168230
Commit-Queue: Georg Neis <neis@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76899}
2021-09-17 09:20:40 +00:00
Lu Yahan
04f26c6375 [riscv64] Fix RvvGts emit wrong instr
Change-Id: Icd2ed5c6e54dec208afa9a09b0e4fe9bcd410687
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167438
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#76898}
2021-09-17 09:12:31 +00:00
Leszek Swirski
214ef26dd0 Reland "[DEPS] Add abseil to deps"
This is a reland of 3c49308ac6

Original change's description:
> [DEPS] Add abseil to deps
>
> Add a dependency on the chromium abseil-cpp subdir mirror.
>
> Bug: v8:11006
> Change-Id: Icaad757269d27c65bc368ed539f84c5bb79ee62d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2464940
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70786}

Bug: v8:11006
Change-Id: I2befd2eadd11d485eee47c68119d93be9a3e1655
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504257
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76897}
2021-09-17 09:00:01 +00:00
Georg Neis
999ef89114 [compiler] Fix a DCHECK
Inlineability can change when a function gets its deoptimization
disabled. We can bailout if we notice that (but keep in mind that it
can still happen later).

Bug: chromium:1250244, v8:7790
Change-Id: Ib088396f41eceeaae7ccdfce287cd11c5bee738a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164980
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76896}
2021-09-17 08:53:51 +00:00
Lu Yahan
899b54439d [riscv6] Add check into vrgather
vragther require that the destination vector register group cannot overlap with the source vector
register groups, otherwise an illegal instruction exception is raised.

Change-Id: I6d23ea80edc4a80be961531ded855ff372ca0da0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3161777
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#76895}
2021-09-17 07:43:10 +00:00
Lu Yahan
36e7351907 [riscv64] Operand only have int64_t constructor
Fix node.js build failed

Change-Id: I3769a2f7a71b26b7d0d84bfc0e76c359e50191ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167434
Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn>
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#76894}
2021-09-17 07:04:58 +00:00
Benedikt Meurer
833b3c96a6 [inspector] Make ArrayBuffer.[[ArrayBufferData]] deterministic.
Previously the internal `[[ArrayBufferData]]` property for `ArrayBuffer`
objects reported by the inspector (and used by the DevTools front-end to
identify `ArrayBuffer`s and `WebAssembly.Memory`s using the same backing
store) simply contained a hex string representation of the backing store
pointer. However that unnecessarily leaks internal addresses and more
importantly is not deterministic, which complicates tests (just blew up
on layout tests).

This CL introduces an automatically incremented `BackingStore::id()`,
which is used instead now and is deterministic.

Bug: chromium:1199701, chromium:1163802, chromium:1249961
Change-Id: I8ee47009cd825cfdbe00230f617c87c90508ab2a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162144
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76893}
2021-09-17 06:57:15 +00:00
Andreas Haas
3ef7527218 [wasm] Change default value of tables
The default value for table entries in WebAssembly tables is null when
the table gets allocated from WebAssembly, but when the table gets
allocated from JavaScript, the default value is undefined when the
table type is externref. With this CL V8 handles the JavaScript case
spec-compliant.

R=manoskouk@chromium.org

Bug: v8:12227
Change-Id: Ic8a1361629d8e5dfb59e2ee22a5e0ae0f6de936d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162045
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76892}
2021-09-17 06:30:08 +00:00
jiepan
a01a02fe13 [x64] Implement 256-bit assembly for vmovdqa/u
Previous 256-bit implementation supports register
to register move, this patch adds memory to/from
register support.

Bug: v8:12228
Change-Id: I3088bae47bacf13595c76506cdc016f01a31d8b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160296
Commit-Queue: Jie Pan <jie.pan@intel.com>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76891}
2021-09-17 05:21:05 +00:00
v8-ci-autoroll-builder
1e60c9b5e2 Update V8 DEPS.
Rolling v8/build: 590c648..48f708c

Rolling v8/buildtools/third_party/libc++abi/trunk: a5b6419..c883cb1

Rolling v8/buildtools/third_party/libunwind/trunk: 44ea7ab..a7e4ce0

Rolling v8/third_party/aemu-linux-x64: FqiWusPGPs0zkuCyCSj2axBNOhCaD117fjIbnnj6h8kC..4_W8oYEfH2jwjpXXJX32HUtITINfNQfevdEMi6HVUm8C

Rolling v8/third_party/depot_tools: 5307522..9cba73f

Rolling v8/tools/clang: 83b09bd..c8d8b3e

TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com

Change-Id: I22da2220afa663166c361d04b9301c6940f97a91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3167810
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#76890}
2021-09-17 03:51:19 +00:00
Ng Zhi An
693112bfc0 [ia32][x64][liftoff] Share i64x2mul code
Optimize i64x2mul when AVX is supported to elide some moves.

Bug: v8:11589
Change-Id: Ide0bba502a35cbb632e3fc311c9697c5f54f9d82
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3163280
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76889}
2021-09-17 01:27:34 +00:00
Junliang Yan
af7232380f ppc: [liftoff] more conversion from float to int
Change-Id: Ie3778dfc1b477a234399d58dd78ef1a3c1195b4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3166250
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76888}
2021-09-16 21:06:28 +00:00
Paolo Severini
6ff9c6869e [fastcall] Refactor TryCopyAndConvertArrayToCppBuffer
Refactor TryCopyAndConvertArrayToCppBuffer to avoid using a CTypeInfo*
pointer as template argument. Use instead a uint32 encoded value
sufficient to reconstruct the CTypeInfo.

Bug: v8:11739
Change-Id: I74052e59b3fa5ebed00cdb938504ba1947d959d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3138832
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76887}
2021-09-16 18:52:28 +00:00
Junliang Yan
ccfdb72955 ppc: [liftoff] implement conversion from float to int
Change-Id: I56592c8abf48c30ecdc1f4ce3084bd373a5930d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3165691
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76886}
2021-09-16 17:45:37 +00:00
Junliang Yan
5e0b7f46ec ppc: [liftoff] implement conversion from int to float
Change-Id: Ia530c3505e3675f8170900e0c64fea2cdb8e44a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164907
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76885}
2021-09-16 16:22:40 +00:00
Manos Koukoutos
5a7d7de9e2 [wasm-gc][turbofan] Speculative direct calls for call_ref
Behind the --wasm-inlining flag, we introduce speculative direct calls
as an alternative to invoking functions through references.
In pseudocode, call_ref(func_ref, args...) reduces to
  if (func_ref == function_reference_at(expected_index)) {
    call_direct(expected_index, args...)
  } else call_ref(func_ref, args...)
The introduced direct call can later get inlined in WasmInliningPhase.
Currently, we always speculate that the reference is the function at
index 0. Proper heuristics, based on liftoff runtime feedback, will come
later.

Bug: v8:12166, v8:7748
Change-Id: Icd1319d3091b436e71906717fd8a2662bfbb8481
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162602
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76884}
2021-09-16 16:21:37 +00:00
Junliang Yan
f2f392fbad ppc: [liftoff] implement basic type conversion
Change-Id: I1cfb706a429a67830640ec3274b95dd6ee9cdd56
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164904
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76883}
2021-09-16 15:40:37 +00:00
Junliang Yan
96fc27193e ppc: fix FCTIWUZ simulation
Change-Id: Ic4c295265162f5dbc7c425d5e196a1cf2c994003
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164978
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76882}
2021-09-16 15:25:00 +00:00
Patrick Thier
fd88af9ef5 Fix ParameterCount for JSBuiltinContinuationFrame
JavascriptBuiltinContinuationFrame and BuiltinFrame didn't correctly
handle the receiver when it was included in the argument count.

Bug: v8:11112, chromium:1249941
Change-Id: I4d79bd152ea7e992fa3b87a4de2a509b79fcb37c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3165058
Commit-Queue: Patrick Thier <pthier@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76881}
2021-09-16 15:23:57 +00:00
Omer Katz
e6491ecb32 cppgc: Check success of permissions update in FreePages
Bug: chromium:1249752
Change-Id: I18dee16c13f504f6669395f0ce4a753177aec9f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3165059
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76880}
2021-09-16 15:16:48 +00:00
Hannes Payer
614761c3b5 Add verwaest@ to ENG_REVIEW_OWNERS.
Change-Id: I5f3c83287fec334a56643f87d12a8dc1a7e47d72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3109667
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76879}
2021-09-16 15:00:57 +00:00
Milad Fa
4f21e4a009 S390 [simd]: Unify Load/Store transform ops on BE and LE
Checks if the machine is running on a native BE and if so
try to do the load/store ops using the new vector instructions
form z15.

If target machine is older than a z15, the memory offset is larger
than 12 bits or we are running in the simulator then we fall back
to the scalar method of loading/store from memory.

Change-Id: Iec41ad21e7f292cf5b9c4707b4951a561f3dcda4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162247
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76878}
2021-09-16 14:53:21 +00:00