Commit Graph

67848 Commits

Author SHA1 Message Date
Shu-yu Guo
33c9fca34a Remove shipped feature flags
Removes

--harmony-string-replaceall (shipped since 8.5)
--harmony-logical-assignment (shipped since 8.5)
--harmony-atomics-waitasync (shipped since 8.7)

Bug: v8:9801,v8:10372,v8:10239
Change-Id: Ifb8db93948a067e75da5e581603acb916b91342a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2747201
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73356}
2021-03-11 21:03:16 +00:00
Toon Verwaest
3094d59889 [wx] Keep the execute bit while making code writable
Otherwise SMC perturbs the icache too much it seems.

Change-Id: Iceea779a7e3deee90efe29df568732d6ac5bcffa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753768
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73355}
2021-03-11 18:57:56 +00:00
Milad Fa
90b8ef8402 PPC [simd]: Implement FP rounding on Sim
LVX simulation is also added in this CL.

Change-Id: I9c827d979cdcd86216f0b089e3819d65d6fc45c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753767
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73354}
2021-03-11 18:40:36 +00:00
Michael Lippautz
b8e7d60d5c cppgc: Fix shrink to free list
Add the object start bit when adding an entry to the free list.
Introduce a GC at the end of the tests to make sure that the object
start bitmap verification catches such issues.

Bug: chromium:1056170
Change-Id: Id8ca257ce054fc3fb199955cf1c4f38004033747
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752870
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73353}
2021-03-11 17:23:56 +00:00
Seth Brenith
ad0e581c48 [torque] Add option for printing Torque IR
While working on the Torque compiler, I've sometimes found it difficult
to understand Torque's intermediate representation and how it
corresponds to the output. In this change, I propose adding a build flag
that instructs Torque to emit comments describing its IR, interspersed
in the generated code. This is particularly useful for seeing the stack
management instructions (Peek, Poke, and DeleteRange) which don't emit
any corresponding C++ code.

Bug: v8:7793
Change-Id: I24bdec47da76c9bd751b928d3cd92aa513dc6593
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748040
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#73352}
2021-03-11 16:50:26 +00:00
Georgia Kouveli
df748fc03e [arm64] Add missing calls to Unreachable.
Change-Id: I15956f50e6c02d7c26d2810a3217d2d22eb71f5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752871
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#73351}
2021-03-11 16:30:01 +00:00
Junliang Yan
ef839bbd98 s390x: [liftoff] implement eqz
Change-Id: Ib60115cd06fe45d41490ff9bd69d23ab49ac6874
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753126
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73350}
2021-03-11 16:21:56 +00:00
Jakob Gruber
42a7fe1d09 [regexp] Remove Zone usage in runtime-regexp.cc
.. to reduce memory overhead. Zones allocate a minimum segment size of
8KB, and the uses in runtime-regexp.cc are expected to need << that.

Two uses were replaced by SmallVectors:

* CompiledReplacement, parses string replacement patterns for
  optimized repeated use.
* Intermediate data structures in RegExpReplace.

Bug: v8:11540
Change-Id: I3fb2d047f1bfadc9b85132f731b294bd8aa72368
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752873
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73349}
2021-03-11 15:29:16 +00:00
Clemens Backes
3f9ff062b0 Reland "[no-wasm] Exclude src/wasm from compilation"
This is a reland of 80f5dfda01. A condition
in pipeline.cc was inverted, which lead to a CSA verifier error.

Original change's description:
> [no-wasm] Exclude src/wasm from compilation
>
> This is the biggest chunk, including
> - all of src/wasm,
> - torque file for wasm objects,
> - torque file for wasm builtins,
> - wasm builtins,
> - wasm runtime functions,
> - int64 lowering,
> - simd scala lowering,
> - WasmGraphBuilder (TF graph construction for wasm),
> - wasm frame types,
> - wasm interrupts,
> - the JSWasmCall opcode,
> - wasm backing store allocation.
>
> Those components are all recursively entangled, so I found no way to
> split this change up further.
>
> Some includes that were recursively included by wasm headers needed to
> be added explicitly now.
>
> backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
> because it only tests wasm backing stores. This file is excluded from
> no-wasm builds then.
>
> R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
>
> Bug: v8:11238
> Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
> Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73344}

TBR=jgruber@chromium.org

Bug: v8:11238
Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73348}
2021-03-11 14:29:26 +00:00
Marja Hölttä
3b16162e50 [private brand checks] Ship --harmony-private-brand-checks
I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/SO8zL3dvKsI/m/wMg-UGOUAgAJ

Bug: v8:11374
Change-Id: If25136f457ba15b7647b383d1e057e5ee4e8266f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745143
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73347}
2021-03-11 14:16:16 +00:00
Clemens Backes
92bc3d3861 Revert "[no-wasm] Exclude src/wasm from compilation"
This reverts commit 80f5dfda01.

Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview

Original change's description:
> [no-wasm] Exclude src/wasm from compilation
>
> This is the biggest chunk, including
> - all of src/wasm,
> - torque file for wasm objects,
> - torque file for wasm builtins,
> - wasm builtins,
> - wasm runtime functions,
> - int64 lowering,
> - simd scala lowering,
> - WasmGraphBuilder (TF graph construction for wasm),
> - wasm frame types,
> - wasm interrupts,
> - the JSWasmCall opcode,
> - wasm backing store allocation.
>
> Those components are all recursively entangled, so I found no way to
> split this change up further.
>
> Some includes that were recursively included by wasm headers needed to
> be added explicitly now.
>
> backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
> because it only tests wasm backing stores. This file is excluded from
> no-wasm builds then.
>
> R=​jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
>
> Bug: v8:11238
> Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
> Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#73344}

Bug: v8:11238
Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866
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/master@{#73346}
2021-03-11 13:09:09 +00:00
Clemens Backes
4b3371c62b [liftoff][arm] Make context register allocatable
This will make it easier to generate builtin calls that require the
context to be passed in that register, because this can be represented
as a {LiftoffRegister} then.

R=thibaudm@chromium.org

Bug: v8:11453
Change-Id: I00995203cc936f23d1c01fdbf8f13eb929f228ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752151
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73345}
2021-03-11 12:55:26 +00:00
Clemens Backes
80f5dfda01 [no-wasm] Exclude src/wasm from compilation
This is the biggest chunk, including
- all of src/wasm,
- torque file for wasm objects,
- torque file for wasm builtins,
- wasm builtins,
- wasm runtime functions,
- int64 lowering,
- simd scala lowering,
- WasmGraphBuilder (TF graph construction for wasm),
- wasm frame types,
- wasm interrupts,
- the JSWasmCall opcode,
- wasm backing store allocation.

Those components are all recursively entangled, so I found no way to
split this change up further.

Some includes that were recursively included by wasm headers needed to
be added explicitly now.

backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
because it only tests wasm backing stores. This file is excluded from
no-wasm builds then.

R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org

Bug: v8:11238
Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73344}
2021-03-11 12:43:16 +00:00
Santiago Aboy Solanes
ad4b012d7f [compiler] Perform MapRef::FindRootMap concurrently
Bug: v8:7790
Change-Id: I6f322591e68f922b1441a10528da7bba77d4f922
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739639
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73343}
2021-03-11 11:39:51 +00:00
Ross McIlroy
812eb26456 [compiler] Cache StateValue processing in InstructionSelector.
Processing StateValues into operands is one of the most costly
parts of instruction selection. As it happens, StateValues are
shared by many nodes, and so we are unecessarily reprocessing
the same StateValues multiple times. This CL introduces caching
for the processed StateValues enabling very fast emitting of
operands for subsiquent instructions with the same StateValue.
The hitrate for the cache is higher than 90% on most optimizations.

BUG=v8:9684

Change-Id: I45db86dcbf22ab972b892f11c608b825aeb3ecf3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749634
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73342}
2021-03-11 11:38:46 +00:00
Clemens Backes
d38f84acc4 [codegen] Simplify definition of signatures
Liftoff defines many signatures of fixed size. This is currently done by
defining a fixed-size array on the stack, and then using this in the
signature definition. This is cumbersome and hard to read, since the
array contains return types and parameter types, and only the signature
definition separates the two. But also the order of those two sizes in
the signature is non-obvious and easy to get wrong.

This CL introduces a helper to define fixed-size signatures in a
"builder style", i.e. parameters and return types can be added
separately. The fixed-size array will be contained in the returned
class, so it will still be stack-allocated like before. The copies to
iteratively build up this array should be completely eliminated by the
compiler, so the binary code should look exactly the same.

R=ahaas@chromium.org

Bug: v8:11384
Change-Id: I167830d6c3429f535b7d1241920730498a9bb4c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2747505
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73341}
2021-03-11 11:36:36 +00:00
Manos Koukoutos
f7bb9267eb [turbofan] Fix CsaLoadElimination for small types
CsaLoadElimination failed to account for truncation when optimizing
loads. This CL extends the notion of compatible Loads and Stores to
include ({store}, {load}) pairs which both have integral representation
and {store}'s representation is no smaller than {load}'s. In case the
representations are not identical, it truncates and possibly
sign-extends {store} before forwarding it to {load}.

Additional change: Extend ObjectMayAlias with wasm allocating builtin
calls.

Bug: v8:11504
Change-Id: I43f89a13793b54477a33be18aaf346462aefa8e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739975
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73340}
2021-03-11 11:09:06 +00:00
Michael Lippautz
b01869cabd cppgc: Add GCInfo folding
Adds GCInfo folding that delegates GCInfo requests to the
parent-most object if finalizer semantics match.

Folding is disabled for builds that want exact object names
as those names are also managed through GCInfo objects.

Bug: chromium:1056170
Change-Id: I783aad930587853741da533d0b9b56ba160d0596
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748588
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73339}
2021-03-11 10:53:26 +00:00
Clemens Backes
2dbdfcddea [no-wasm][logging] Remove wasm support for logging
The definition of {wasm::WasmCode} will not be available in no-wasm
builds, hence avoid any accesses to WasmCode for logging.

Drive-by: Inline enumeration of wasm modules for logging of existing
code, to avoid another #if.

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

Bug: v8:11238
Change-Id: I3b78cf90f9ad155b5bea64e0941531aed2d4291a
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739978
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73338}
2021-03-11 10:50:56 +00:00
Jakob Gruber
d18b37ce1a [regexp] Don't allocate dynamic stacks when static stacks suffice
In https://chromium-review.googlesource.com/c/v8/v8/+/1866771 we added
a static regexp stack area to ensure a stack always exists. We
apparently forgot to update EnsureCapacity s.t. we skip
dynamically-allocating a stack when the static stack suffices.

Found by lizeb@, thanks!

Bug: v8:11540
Change-Id: Ie63b0b5e5959fbf0768cc3597f63943b1775fbf2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749015
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73337}
2021-03-11 10:47:26 +00:00
Michael Lippautz
5204c32ad6 cppgc: Require object for cppgc::subtle::Resize()
Resize() is not similar to realloc() in that it allocates a new object
when passed a nullptr object.

Avoid corner cases around Resize(nullptr, size) where size may be
problematic if non-null by just requiring a valid object. The caller
can perform the necesary nullptr check.

Bug: chromium:1056170
Change-Id: Ic05972ae67c2968fc3eb002a6302b44e56b41ab4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752147
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73336}
2021-03-11 10:15:15 +00:00
Maya Lekova
943eb9e433 [test] Skip CPU profiler test on stress_concurrent_inlining
Bug: v8:11524
Change-Id: I009e050baa1e08a520c00bb88b61cffd3f1c2acc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742476
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73335}
2021-03-11 10:08:48 +00:00
Patrick Thier
f977ace251 Non-handlified BytecodeOffsetIterator
For use at locations where we know, that no GC can happen.
This avoids unnecessary handlifying of objects.

Bug: v8:11420
Change-Id: Ic549c56c4366060a6da3a3772dbd0aae23151eab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735394
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73334}
2021-03-11 09:18:05 +00:00
Thibaud Michaud
7f542d2532 [regalloc] Ensure ranges are split at gap positions
Splitting a range at an instruction position can lead to incorrect code
generation. See the attached bug for a concrete example of that, in
particular comment 6.

The issue is when we add a gap move to connect the split ranges during
the ConnectLiveRanges phase. If the split position is a gap position,
the move coincides with the start of the range. But if the split
position is an instruction position, the move is inserted in the last
gap position, which is outside of the range. This violates assumptions
made during the main register allocation phase and can invalidate the
use of that register in a different range.

The fix proposed here works by moving the split position backwards to
the previous gap position. This ensures that the connecting gap move is
always at the start of the range that it defines.

R=sigurds@chromium.org

Bug: chromium:1182985
Change-Id: Ic4a9f56d5551f01cc91bece087d5ab3afd9b04fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2735396
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73333}
2021-03-11 09:15:05 +00:00
Benedikt Meurer
81b9159158 [inspector] Properly filter by column number for inline scripts.
Previously `setBreakpointByUrl` and friends would only filter based on
line number to find matching scripts. But that didn't work when there
were multiple scripts in the same line (i.e. minified HTML), and we'd
end up setting multiple breakpoints in different inline scripts, looking
for the next possible break location in each of them individually.

Fixed: chromium:1183664
Also-By: pfaffe@chromium.org, kimanh@chromium.org
Change-Id: I957811d30aa71609a38da75f33a24c0f720116f6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749155
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73332}
2021-03-11 08:52:25 +00:00
Igor Sheludko
1691b1f629 [cleanup] Make InstructionStream::TryLookupCode() return builtin ID
... instead of Code. This is useful because usually the callers are
interested in having just a builtin ID but not the Code object.

This CL also makes Builtins::kNoBuiltinId a part of the Builtins::Name
enum.

Bug: v8:11527
Change-Id: I501e3e52dccc73cc7800f271939e0bf9fd00a975
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749635
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73331}
2021-03-11 08:45:25 +00:00
Georg Neis
3353a7d0b0 [deoptimizer] Fix bug in OptimizedFrame::Summarize
OptimizedFrame::Summarize is used by debugger features etc
to inspect the frame of an optimized function (and the virtual frames
of functions that got inlined). It could end up materializing a JSArray
with the same backing store as one that would later get left-trimmed,
resulting in a dangling elements pointer. This CL fixes that by creating
a fresh copy of the elements store instead.

Bug: chromium:1182647
Change-Id: Iaf329464520a927b0ba33166cad2524d3752c450
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748593
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73330}
2021-03-11 08:39:55 +00:00
v8-ci-autoroll-builder
19d8302f02 Update V8 DEPS.
Rolling v8/build: 389d3f3..cb067b2

Rolling v8/third_party/aemu-linux-x64: oXIWsntGxFugYHN4Qb0Ve-IRPq4Rq1FxFYNiuEKnP0kC..ee1oRcPCyneRYNLsuBvxMYnBajvkvvdJY5BYvoaX0vUC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4f82770..7a3a736

Rolling v8/third_party/depot_tools: 57af8c3..c2c576e

Rolling v8/tools/clang: fc54e6b..e65f1a7

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I921f4b3aa14f88bae4a1a96a58c40db7796d1ae6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2751388
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/master@{#73329}
2021-03-11 03:47:04 +00:00
Junliang Yan
83e6c28155 s390x: [liftoff] implement De/AllocationStackSlot
Change-Id: Iaf00bdfba9d42d1e472e048bffee2cde628d164a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749576
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73328}
2021-03-10 21:56:28 +00:00
Junliang Yan
4fb19d5608 s390x: [liftoff] implement Indirect/CallIndirect
Change-Id: I953d1f9e1789cb6f754b1206edcac752e4f22801
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749575
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73327}
2021-03-10 21:00:08 +00:00
Milad Fa
50cb774ea5 PPC [simd]: Implement Add/Sub saturate on Sim
Change-Id: I86fbdc9ca2c1bf66092e52bc85a5b9dfbc696bfb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749574
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73326}
2021-03-10 19:15:57 +00:00
Leszek Swirski
668513d8ab [sparkplug] Add fuzzer support for CompileBaseline
Robustify %CompileBaseline against fuzzing, and allowlist it in the
fuzzer.

Bug: v8:11420
Change-Id: I44947014c8c9362d80ea98636dbbaa5d07d6a177
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739643
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73325}
2021-03-10 17:49:18 +00:00
Clemens Backes
f80b29204c [liftoff][arm64] Make context register allocatable
This will make it easier to generate builtin calls that require the
context to be passed in that register, because this can be represented
as a {LiftoffRegister} then.

Drive-by: Fix a typo (x8 -> x28).

R=thibaudm@chromium.org

Bug: v8:11453
Change-Id: I7dcf7a0390dbde9713334d3da28ce6d79413a9f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748585
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73324}
2021-03-10 17:37:16 +00:00
Jakob Kummerow
e383d76c0c [build] Support Linux-arm64 builds hosts
Building arm64 binaries on arm64 hosts works as long as you set
the correct options in args.gn. This patch teaches gm.py to do
that.
Building 32-bit arm binaries on arm64 hosts requires an extra
definition in snapshot_toolchain.gni (as well as some system
setup to support running 32-bit binaries).

Change-Id: I66c1f8f51932e2f5425033ef09181c31ea5d633e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743889
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73323}
2021-03-10 17:06:06 +00:00
Milad Fa
1bf2ef1ffc PPC [simd]: Implement vector pack and unpack on Sim
Change-Id: I66712edab0d1242516add2fc6fc183168ef1fa11
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748994
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73322}
2021-03-10 16:56:26 +00:00
Benedikt Meurer
a0b0928119 [inspector] Expose "stack" as proper scope property.
This is the V8 side change for https://crrev.com/c/2744048, which an
explicit "stack" property into the (renamed) "Expression" scope to align
the behavior and appearance of that scope with the other scopes.

Fixed: chromium:1159310
Bug: chromium:1071432, chromium:1159307
Change-Id: Ic070c50b674d8c1cff4a93538f708cc431c3f2cb
Screenshot: https://imgur.com/a/ryFiOGA.png
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748591
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Philip Pfaffe <pfaffe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73321}
2021-03-10 16:40:57 +00:00
Thibaud Michaud
f86e6c15d0 [wasm][liftoff][eh] Fix FinishTryCatch
If the try block cannot throw, we don't expect an exception on the stack
when we exit the block.

R=clemensb@chromium.org

Bug: v8:11537
Change-Id: I5f2ea6df2d14205b3ad2cd61a5132bc0b3db6cc8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748583
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73320}
2021-03-10 16:20:06 +00:00
Frank Emrich
8e49d8260f [dict-proto] Fix leaking handle in ExtractPropertyReferences
This fixes a handle leaking out of
V8HeapExplorer::ExtractPropertyReferences when enabling
v8_dict_mode_prototypes, which breaks the
test-heap-profiler/NoHandleLeaks cctest.

Bug: v8:11388
Change-Id: I911f60e3701277540ae5a63fa59f3ac2f52879ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748580
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#73319}
2021-03-10 16:11:16 +00:00
Omer Katz
881364fd5a cppgc: Fix CppHeap::TraceEpilogue
Reporting marked bytes after atomic sweeping means we might be missing
allocations in case finalizers are allocating during sweeping.
Instead report marked bytes and marking time directly to
LocalEmbedderHeapTracer as soon as marking is done.

Bug: chromium:1056170
Change-Id: Ie770f077d2eec10dea182a503a7cd514d3b66baf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748579
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73318}
2021-03-10 15:29:56 +00:00
Clemens Backes
6e45bf8952 [liftoff] Do not clear the cached instance on loops
Loops will always execute a stack check in the header, so having the
instance cached in a register is handy. Instead of clearing it before
entering a loop, ensure that backward jumps to the loop header move the
instance into the right register.

R=thibaudm@chromium.org

Bug: v8:11336
Change-Id: I16cb13457438b7a1603182d56a3d2ea99d670911
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743892
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73317}
2021-03-10 13:50:33 +00:00
Santiago Aboy Solanes
3e421b1162 [objects] RELAXED_ACCESSORS macro to use relaxed accessors
Fix to make the macro actually use the relaxed accessors instead of the
atomic ones.

Bug: v8:7790, v8:11539
Change-Id: Ic74ee4084a76176feac138716e10b88a3a5e1a1d
Fixed: v8:11539
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748088
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73316}
2021-03-10 12:55:23 +00:00
Clemens Backes
add24813ae [liftoff] Clean up definition of ValueKinds
Some ValueKinds were defined based on the size of a system pointer or
the size of a tagged value. In order to be able to reuse those
definitions in both LiftoffAssembler and LiftoffCompiler, define them as
public constants on LiftoffAssembler.
Also, avoid the "ValueType" suffix, since they are not ValueTypes, but
ValueKinds.

R=jkummerow@chromium.org

Change-Id: I38f9c9b6c4e6592d31ee58466b786bf24a55f19c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743890
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73315}
2021-03-10 11:01:53 +00:00
Georg Neis
a021e4d384 [compiler] Read some JSBoundFunction fields on the background thread
Bug: v8:7790
Change-Id: I1e7448c6583a36b2311474e14f4611935e2aa79f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748076
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73314}
2021-03-10 10:37:43 +00:00
Clemens Backes
3b21b6d31d [profiler] Allow empty source URL for asm modules
In contrast to wasm modules, asm.js modules have an empty source URL.
Thus loosen a DCHECK and handle the nullptr source_url correctly.
Also add regression tests that check that we don't crash. Those can
later be extended to check that the profile looks as expected; for now
they only check that we terminate.

R=bmeurer@chromium.org

Bug: chromium:1185919
Change-Id: I6b879f540a2c3647920ad2970efcf7c94712d8c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745895
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73313}
2021-03-10 09:49:02 +00:00
Michael Achenbach
cb2ec66dc5 Whitespace change to test CAS
Bug: chromium:1154223
Change-Id: Ie1786a499f87f86bc6f91a92a0dfb1a02889ef46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748083
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73312}
2021-03-10 09:07:30 +00:00
v8-ci-autoroll-builder
e2172c9cf6 Update V8 DEPS.
Rolling v8/build: 077f859..389d3f3

Rolling v8/buildtools: a5cc843..368c7dd

Rolling v8/third_party/aemu-linux-x64: dBlHF6-1NU-vr6DU068Y8_WQHCWdk_yovRmg225wIr0C..oXIWsntGxFugYHN4Qb0Ve-IRPq4Rq1FxFYNiuEKnP0kC

Rolling v8/third_party/depot_tools: 75c9832..57af8c3

Rolling v8/third_party/icu: e6379c8..d879aac

Rolling v8/tools/clang: 630ab8a..fc54e6b

TBR=v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I23f92a7e958b90228f898df85e3efa87c9429a73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2746751
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/master@{#73311}
2021-03-10 04:12:27 +00:00
Milad Fa
bbafc44f51 PPC [simd]: Implement FP conversion on Sim
Change-Id: If9380a99318618199ced8f079d13ddee28cde770
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745896
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#73310}
2021-03-10 00:29:20 +00:00
Ng Zhi An
2b66ba5d6b [wasm-simd] Rename vXXXX.all_true to iXXXX.all_true
This is done with a script that does something like:

files=$(ag 'v\d\d?x\d\d?[._]?all_?true' -l)
sed -i 's/V\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/I\1\2\3/g' $(files)
sed -i 's/v\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/i\1\2\3/g' $(files)

And manual fixups in test-run-wasm-simd.cc and wasm-opcodes-inl.h.

Bug: v8:10946
Change-Id: Ib5dad388dd6dd9cd0fb575ad961dffc189a2e6ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740488
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73309}
2021-03-10 00:00:30 +00:00
Ng Zhi An
a9577d878e [wasm-interpreter] Fix immediate decoding for numeric instructions
They were using a fixed offset of pc+2, but since the instructions can
be multiple bytes long (leb128 encoded), it should be using *len.

Drive-by fix to add missing instructions to wasm-module-builder.js.

Bug: chromium:1185323,chromium:1185492
Change-Id: I12f396cc2969ecc284aba35b94b1bc5640f12277
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745977
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73308}
2021-03-09 23:54:30 +00:00
Michael Lippautz
ce336fdbda cppgc: Fix {Weak}CrossThreadPersistent destruction
Bug: chromium:1056170
Change-Id: I89dd887a75a475f998d950e86f35c7fe2af5d67f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743887
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73307}
2021-03-09 21:36:00 +00:00