Commit Graph

71410 Commits

Author SHA1 Message Date
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
Georg Neis
3554c2ad52 Move DetachGlobal from Bootstrapper to Isolate
... as it has nothing to do with bootstrapping.

Change-Id: I364469b023b3f0811a674ea39aefd46313dd10fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164536
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76877}
2021-09-16 14:09:39 +00:00
Georg Neis
defedd0c26 [compiler] Fix data race between FindRootMap and DetachGlobal
... by adding atomic (relaxed) accessor's for a map's
constructor_or_backpointer field, and using them in the two functions.

Bug: chromium:1250216, v8:7790
Change-Id: I3416799cca73792ff5f8963685274ad9afdc6229
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162129
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76876}
2021-09-16 13:34:30 +00:00
Yoav Weiss
9bba68a4c6 Fix a comment typo
Change-Id: I528f43d6aaee068114fadb5a577ead0482eb425b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160350
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76875}
2021-09-16 13:33:27 +00:00
Jakob Gruber
d09fc5403a [isolate-data] Consistent field names
This is a refactor-only change in preparation for the upcoming
builtins table split.

- Define fields through a macro list to avoid some manual boilerplate
  code.
- Consistent names for builtin_entry_table_ and builtin_table_, and
  update names of related methods as well.
- Add Builtins::ToInt to replace manual static_casts.
- Move around IsolateData methods s.t. they're in the same order as
  the underlying fields.

Bug: v8:12203
Change-Id: I68cd036b8de1dd2708e2d4579d76bb3baaea5e1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162128
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76874}
2021-09-16 13:21:37 +00:00
Andreas Haas
b01d2f456f Reland "[wasm][externref] Support default value for the table.set"
Reason for revert: There was an out-dated wpt test in blink that
failed after this CL. I adjusted the test expectations in https://chromium-review.googlesource.com/c/chromium/src/+/3162980 so that I can land this CL.

Original change's description:
> Revert "[wasm][externref] Support default value for the table.set"
>
> This reverts commit 6b57898062.
>
> Reason for revert: Fails layout tests: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Blink%20Linux/13751/overview
>
> Original change's description:
> > [wasm][externref] Support default value for the table.set
> >
> > WebAssembly.Table.set allows a default value instead of the second
> > parameter, which was not supported by V8 so far.
> >
> > R=​thibaudm@chromium.org
> >
> > Bug: v8:7581
> > Change-Id: I417790722b1cb4f854cd0056ecb8377c330c45fa
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3141574
> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> > Commit-Queue: Andreas Haas <ahaas@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#76846}
>
> Bug: v8:7581
> Change-Id: I83d9be59c66ece3184b5708e5b8a3b401e4938ed
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3163257
> Auto-Submit: Clemens Backes <clemensb@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@{#76852}

Bug: v8:7581
Change-Id: I248f836ba4de2a4e3f3d80c00e6f1ac0b46a38d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162608
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76873}
2021-09-16 13:03:41 +00:00
Omer Katz
ed0459770f cppgc: Add GetWriteBarrierType that ignores slots
GetWriteBarrierType used to consider the slot so that a barrier is not
triggered for on-stack slots. For strongifying weak collections we want
the write barrier to trigger even if the backing store is only reachable
from stack.

Blink counterpart: crrev.com/c/3162170

Bug: chromium:1244057
Change-Id: I75b1ca62ad5de7bae3d2f4c1a9acce839f3ccdc1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162127
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76872}
2021-09-16 12:53:21 +00:00
Andreas Haas
b2fa5f335d [wasm] Add shared field to memory type
R=thibaudm@chromium.org

Bug: v8:12227
Change-Id: If10683be63beb32c658d2dfaac0a07d858c472ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162038
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76871}
2021-09-16 12:43:21 +00:00
Milad Fa
ce29ee4405 [wasm-gc] skip test on ppc/s390 platforms
Liftoff needs to be fully implemented for running this test.

Change-Id: Ia229d478fa22d4ce9a715d13b3d2b09a2634ad1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3163016
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/main@{#76870}
2021-09-16 12:08:54 +00:00
Andreas Haas
775cf013d6 [wasm] Update spec tests
Drive-by: Reorder the entries in wasm-js.status a bit.

R=thibaudm@chromium.org

Change-Id: I7c854c41a58f16f95a8909f4d7aa103ae440007d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3162126
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76869}
2021-09-16 12:07:51 +00:00