Commit Graph

65494 Commits

Author SHA1 Message Date
Milad Fa
32250399eb PPC/s390: Use r0 for SmiTag and Compare
Change-Id: Icd452df211c85d83c82812124d14fe6a31e733b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509553
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70902}
2020-10-30 20:22:08 +00:00
Etienne Pierre-doray
4fb053d847 [Jobs API] Rename !IsCompleted -> IsActive
IsCompleted is backwards. For a more consistent api, the function is
renamed IsActive and logic is flipped.
Following up on https://chromium-review.googlesource.com/c/v8/v8/+/2461840
The intend is to make the distinction between IsActive and IsValid obvious.

Change-Id: Iaf00b9f6ffa8f1efe93ae29f09899737ef20f04d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2510969
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70901}
2020-10-30 19:57:38 +00:00
Georg Neis
07190e90be [compiler] Replace Min/Max by std::min/max
After c90ff8bd85 this is purely
a cosmetic change.

Change-Id: If804f1b7558ab2f8096e576570f68b848df7423c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509592
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70900}
2020-10-30 15:15:46 +00:00
Michael Lippautz
cfba2e5d4e platform, cppgc: Fix stack handling routines
- Provide GetRealStackAddressForSlot that deals with ASAN fake stacks
  properly, also accounting for the fact that ASAN gets its real stack
  address in a nested call.
- Fix cppgc on-stack getter.
- Reuse platform routines in global handles.

Bug: chromium:1139914, chromium:1056170
Change-Id: If11a40d543b33edcea220bb70f170ac018e15053
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509594
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70899}
2020-10-30 15:07:26 +00:00
Clemens Backes
9f2dce884c [wasm] Fix code publish limits
The idea was to distribute the publish limits to reduce the chance that
different tasks are publishing at the same time. We always used the same
task_id to compute the limits though, so all queues had the same limit.
This CL fixes that by using the task id of the respective queue.

R=thibaudm@chromium.org

Change-Id: I5231aa35b2b53d625fafbb2130b886390fb7d38a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502292
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70898}
2020-10-30 15:03:46 +00:00
Michael Lippautz
aad7b7ff33 global-handles: Fix ASAN fake stack handling
We previously assumed that a fake stack should be mapped back to a
real stack based on fake-stack offsets. This is not correct: Fake and
real stack are disjoint and both contain the corresponding slot
values.

For global handles this means that on-stack handles must be registered
using their real stack frame base to be able to purge them
occasionally based on the current stack address.

When dealing with a slot though, the GC can just dereference the slot
for a value, indeppendent of whether the slot is in a fake or real
frame.

Drive-by: Fix tests that do not want stack handles by creating
handles on heap.

Change-Id: I2c86c8e047bd0d48c24c2642b2b4dba284a93909
Bug: chromium:1139914
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507720
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70897}
2020-10-30 13:56:36 +00:00
Andreas Haas
1e6fed5f06 [wasm] Remove obsolete CheckHasMemoryForAtomics
This function is equivalent to CheckHasMemory by now.

R=clemensb@chromium.org

Bug: v8:11074
Change-Id: I05fbd160d6e5b8d7433133052a8390521564632b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509590
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70896}
2020-10-30 13:41:16 +00:00
Almothana Athamneh
874227b527 Add Noavx tests to Linux 32 bots
Relanding after failing test on ia32
was fixed.

Bug: v8:11072
Change-Id: I939ed92f8fb7ea84314a79eb62f0d4aed272bea3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2509589
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Almothana Athamneh <almuthanna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70895}
2020-10-30 11:46:32 +00:00
Benedikt Meurer
1d7579b525 [wasm] Remove "function tables" from the scope chains.
Building these objects takes a lot of time and memory for realistic
applications and exposing them via the Scope view in DevTools isn't
practical either. We have a replacement in the Console now, and if
this needs more exposure we can think about other, more scalable
ways with better UX.

Fixed: v8:10986
Bug: chromium:1141781
Change-Id: I6177d63a987749889a9880cf0738031191eb5705
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507696
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70894}
2020-10-30 11:32:12 +00:00
Zhi An Ng
02b79c2be5 [wasm-simd][x64] Consolidate some instructions into macro list
These operations can be moved into an existing macro list, since they
are simple operations that generate only 1 instruction. The benefit is
that they have support for AVX 3-operand instruction, and does not have
to force dst to be equals to src.

Bug: v8:9561
Change-Id: I9ec1d2496d14cb9f0fb3b4854ca39887eb5bf49b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505240
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70893}
2020-10-30 08:55:06 +00:00
Martin Bidlingmaier
5720d2056c [regexp] Add 'l' flag to force experimental engine
This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l)
that forces execution in linear time.  These regexps are handled by the
experimental engine.  If the experimental engine cannot handle the
pattern, an exception is thrown on creation of the regexp.

The commit also adds a new global V8 flag and changes an existing one:
* --enable-experimental-engine, which turns on recognition of the RegExp
  'l' flag.  Previously this flag also caused all supported regexps to
  be executed by the experimental engine; this is not the case anymore.
* --default-to-experimental-regexp-engine takes over the previous
  semantics of --enable-experimental-regexp-engine:  We execute all
  supported regexps with the experimental engine.

Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
Bug: v8:10765
Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Martin Bidlingmaier <mbid@google.com>
Cr-Commit-Position: refs/heads/master@{#70892}
2020-10-30 08:33:06 +00:00
Leszek Swirski
a928f5fcc2 [map] Skip loading the field owner before GeneralizeField
GeneralizeField already calculates the field owner.

Change-Id: I0730471479d4289d3d027ea63178ddae659ee2b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507717
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70891}
2020-10-30 07:40:56 +00:00
v8-ci-autoroll-builder
52c0d0b01d Update V8 DEPS.
Rolling v8/build: acfd692..b8645e7

Rolling v8/third_party/aemu-linux-x64: zy6Zme4YpIqml3lhXc3o7a0r_gVd0_gcggle2n2j330C..uqYfh08DTmvjUgXl-HxNY1ptIb0KpyuY0I9MFaci9-AC

Rolling v8/third_party/android_sdk/public: ijpIFSitwBfaEdO9VXBGPqDHUVzPimXy_whw3aHTN9oC..V__2Ycej-H2-6AcXX5A3gi7sIk74SuN44PBm2uC_N1sC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/15be7eb..24bd418

Rolling v8/tools/clang: f9b4a22..12b3cd3

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I8250aad9d82eb7ec2f5da2aa60b2dee040df6612
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507341
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@{#70890}
2020-10-30 03:45:26 +00:00
Zhi An Ng
236aff1b08 [wasm-simd][liftoff][ia32] Fix operands on non-AVX
The main fix here is on non-AVX builds, the shifts require dst == src.
Calling macro-assembler functions like Psrlw assumes that we already
met that requirement (which we usually specify in TurboFan's
instruction-selector). On Liftoff, we need to do that check manually.
This is done by using the helper EmitSimdShiftOpImm which will do this
check, and dispatches to AVX if supported, or mov if dst != src.

Also fix a couple of places where we forgot to annotate the required SSE
extension for the instruction.

Bug: v8:11078
Change-Id: Icc31df9ab80c041f4bb3bd48444658368eaa2c91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505251
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70889}
2020-10-29 23:51:36 +00:00
Zhi An Ng
d4f7ea80df [wasm-simd][x64] Don't fix dst to src on AVX
On AVX, many instructions can have 3 operands, unlike SSE which only has
2. So on SSE we use DefineSameAsFirst on the dst. But on AVX, using that
will cause some unnecessary moves.

This change moves a bunch of instructions that have single instruction
codegen into a macro list which supports the this non-restricted AVX
codegen.

Bug: v8:9561
Change-Id: I348a8396e8a1129daf2e1ed08ae8526e1bc3a73b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505254
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70888}
2020-10-29 23:19:16 +00:00
Leszek Swirski
8e3ae62d29 [map] Try to in-place transition during map update
When searching for a target map during map update, attempt to
update field representations in-place to the more general
representation, where possible.

Bug: chromium:1143772
Change-Id: I6a43c94910a1d2d8f8b0ad89048f94b51461f76c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507715
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70887}
2020-10-29 21:26:16 +00:00
Camillo Bruni
95e1fa503c [tools][system-analyzer] Improve timeline track
- Use initial color for TimelineTrack chunks
- Use async functions for TimelineTrack setChunkBackgrounds
- Introduce timeSelection setter on TimelinePanel
- Propagate time selection down to the TimelinePanel
- Avoid layout recalculation in TimelineTrack updateSelection

drive-by-cleanups:
- Add common event listeners only to top-level document
- Use console.warn instead of console.error for better debugging in
  DevTools

Bug: v8:10644
Change-Id: Ie4f80f1c6c3f4fa193f8ac01225e0fb76981551d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2497175
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70886}
2020-10-29 21:21:57 +00:00
Milad Fa
71b29be4f0 S390: relocate stack_check_interrupt in builtins
Change-Id: I875efc2db384742ca7e6b68099321504ca79a8d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2508689
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70885}
2020-10-29 20:54:36 +00:00
Ulan Degenbaev
d7bc6e800e [heap] Delay OOM during GC until NearHeapLimitCallback is invoked
This allows GC to go slightly over the max heap limit in order to give
NearHeapLimitCallback a chance to run and increase the limit.

Based on the suggestion by Kenton Varda.

Change-Id: I9c084b5a4c8fb7b9ce331b565958391c1be56add
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505724
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70884}
2020-10-29 20:00:56 +00:00
Milad Fa
cd06e5f19a PPC/s390: Fix optimization_state load and compare
We need to load 32 bits into optimization_state.

Change-Id: Id6024e33b65c92696366900098c9768b192a7160
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507265
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70883}
2020-10-29 18:09:16 +00:00
Clemens Backes
dd84c39370 [wasm] Bump maximum code space to ~4GB
Big partners are still hitting the code space limit, especially when
debugging larger wasm apps. The limits was bumped to 2GB in August, but
we already have security clearance to increase it to 4GB.
A limit of exactly 4GB is problematic on 32-bit systems, and also on
64-bit we seem to store the limit in a uint32_t sometimes. Thus choose a
limit slighly below 4GB, such that it fits in a 32-bit integer.

R=ecmziegler@chromium.org

Bug: chromium:1143118
Change-Id: If37f87280264c395cf73b3cc3bf6f7b1b27c46d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505768
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70882}
2020-10-29 17:19:16 +00:00
Shu-yu Guo
def7dc3d4b [class] Fix super call evaluation order
Fix super calls so that arguments are evaluated before the
super constructor is checked to be in fact a constructor.

A new bytecode is introduced to split the IsConstructor check
out from the current GetSuperConstructor bytecode.

Bug: v8:10111
Change-Id: I3af99e32a34d99493806bb01b547d6f671cdc9de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2493077
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70881}
2020-10-29 16:08:34 +00:00
Dominik Inführ
deda7cd0a8 [heap] Merge ArrayBufferExtension lists sooner
Merge the list of concurrently swept ArrayBufferExtensions sooner back
to the main thread. When appending a new ArrayBufferExtension check
whether the concurrent sweeping was already finished and merge the lists
if it is.

In order to reduce the number of GCs in the linked test case, reset
young_bytes_ and old_bytes_ to 0 while sweeping the
ArrayBufferExtensions. Surviving extensions will be accounted again
when merging lists.

As a drive-by change remove scavenge.process_array_buffers from
GCTracer. GCTracer also printed the wrong value for fast_promote.

Bug: v8:11044
Change-Id: I8a772df895c43a69493015f42336c6f33fe52056
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505764
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70880}
2020-10-29 14:55:53 +00:00
Liu Yu
c384392753 [mips64] Fix loading optimization state
The optimization state is a 32-bit value, so we should load it by
lw instruction instead of ld.

Change-Id: I5845341ea9b87568fda08180ed51ad1a5c0635e0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507312
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#70879}
2020-10-29 14:21:13 +00:00
Dan Elphick
8338aac4cd [cleanup] Remove stale TODOs in v8.h
TODO says gcc can't handle Local, but it is using Local.

Bug: v8:11074
Change-Id: I4c5045abc319e82eb86f8e23c879db07b4cee13a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505767
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70878}
2020-10-29 13:09:23 +00:00
Nico Hartmann
e600d775f1 [TurboFan] Transition SharedFunctionInfo to kNeverSerialized (1)
This is the 1st step in series of CLs to move the SharedFunctionInfo
class to kNeverSerialized and make it concurrently accessible from
the background thread. This CL:
* Enables direct heap reads for the most basic members of SFI
  if FLAG_turbo_direct_heap_reads is enabled.
* Adds synchronization to SharedFunctionInfo::script_or_debug_info.

Bug: v8:7790
Change-Id: Ia7d28033e9053aae5771b1b9b174de40f194534d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461238
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70877}
2020-10-29 13:06:33 +00:00
Frank Emrich
eeb74f09c1 [dict-proto] make small ordered hash tables use InternalIndex, too
This CL changes the "small" versions of ordered hash tables, like
SmallOrderedNameDictionary and the corresponding handlers, like
OrderedNameDictionaryHandler, to use InternalIndex rather than int
as the type used for indices.

This is part of an effort to make the interfaces of the
ordered and unordered name dictionaries more similar.

Bug: v8:7569
Change-Id: I3b6fe79dfd3c6743f58a04cfe82798fe2ef09e19
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505720
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70876}
2020-10-29 13:00:53 +00:00
Jakob Gruber
5d51713179 [nci] Simplify *_WithFeedback interface descriptor definitions
These aren't called from or implemented in assembly, thus the exact
registers don't matter. We can remove platform-specific definitions.

This resolves 56 TODOs! ))

Bug: v8:8888
Change-Id: I287fbf7eb3c03d7467ff58a27d614163baf34b3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505761
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70875}
2020-10-29 12:53:43 +00:00
Jakob Gruber
4044038082 [nci] Unskip a test
For-in now collect feedback as well, the test passes.

Tbr: neis@chromium.org
Bug: v8:8888
Change-Id: I4e2ae41b60aa43132a24f001dc4de460a270a1a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505766
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70874}
2020-10-29 12:21:53 +00:00
Frank Emrich
b4fe3473e4 [dict-proto] make ordered hash tables use InternalIndex for indices
This changes the ordered hash data structures in ordered-hash-table.h to
use InternalIndex as the type used for indices, rather than int.

This makes the interface more similar to the (unordered) hash tables in
dictionary.h and hash-table.h

Bug: v8:7569

Change-Id: I2389b0c7d103eb7c33c5ed620b16eb198109b54c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2503949
Commit-Queue: Frank Emrich <emrich@google.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70873}
2020-10-29 11:21:21 +00:00
Santiago Aboy Solanes
8eaf1cde4a Reland x2 "[compiler] Replace Symbol with direct reads""
Inside of LoopPeeler::PeelInnerLoopsOfTree we call the typer, which
inspects heap objects, so we need to unpark the local heap.

Reverted in https://chromium-review.googlesource.com/c/v8/v8/+/2502333

Original change's description:
> [compiler] Replace Symbol with direct reads
>
> Bug: v8:7790
> Change-Id: I49120a6349777fd992a97d697940e79b2e71dbd1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400988
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69812}

Bug: v8:7790, chromium:1137594
Change-Id: I8539175002e19b04b84009eb6b2cc5ced4ee53c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502339
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70872}
2020-10-29 10:25:41 +00:00
Andreas Haas
bd768bd627 Reland "[wasm] Enable --wasm-opt"
This is a reland of 757f043130

There was a bug in a TurboFan optimization that was fixed in
https://chromium-review.googlesource.com/c/v8/v8/+/2504250

Original change's description:
> [wasm] Enable --wasm-opt
>
> This CL enables basic optimizations in TurboFan for WebAssembly code,
> like dead code elimination (DeadCodeElimination), constant folding
> (MachineOperatorReducer), and control flow optimizations
> (CommonOperatorReducer).
>
> These optimizations were disabled originally to improve startup time,
> at the expense of slower generated code. However, with Liftoff as the
> baseline compiler, startup time is not so important anymore for
> TurboFan.
>
> R=clemensb@chromium.org
> CC=manoskouk@chromium.org
>
> Change-Id: I2a81f66929c43fbbdfc3625359772c8ea0f2235f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2488684
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Andreas Haas <ahaas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70691}

Change-Id: Ia3f6f48649c329b9a49e038264dd12f7d872d275
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504265
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70871}
2020-10-29 09:46:51 +00:00
Alfonso Castaño
954b3a7787 Prepare for moving object description generation to blink (ValueMirror)
This CL is a preliminary work to move the description generation of objects that are not V8 specific to the Embedder. Until now, the description for Nodes and Trusted Types was generated by V8 what was problematic, since Blink (not V8) is who has access to the information required for the description.
Once the refactoring is complete the existing descriptionForNode and descriptionForTrustedType can be deleted from V8.


Corresponding Blink CL: https://chromium-review.googlesource.com/c/chromium/src/+/2502589
Follow-up V8 CL: https://chromium-review.googlesource.com/c/v8/v8/+/2502869

Bug: chromium:1048143
Change-Id: Ia30c207697d7355bf3f8b27f7494349ca41266e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502342
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Alfonso Castaño <alcastano@google.com>
Cr-Commit-Position: refs/heads/master@{#70870}
2020-10-29 09:39:11 +00:00
Zhi An Ng
aafa16d641 [mjsunit] Check array length in array-concat
The speedup in https://crrev.com/c/2504853 left out checking the array
lengths, this adds that check.

Bug: v8:7783
Change-Id: I8de01fa2dff3e051246ee3a268cdce2128ad16ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505252
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70869}
2020-10-29 09:33:56 +00:00
Zhi An Ng
0545f1164e [mjsunit][wasm] Unmark some tests as slow
These were sped up in
https://bugs.chromium.org/p/v8/issues/detail?id=7783 comments 65 to 68.


Bug: v8:7783
Change-Id: If1bb3db10a418625d13ae3417c009274c39df67d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505249
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70868}
2020-10-29 09:32:51 +00:00
Michael Lippautz
b86e224b40 Reland "cppgc-js: heap snapshot: Add logic for querying detachedness"
This is a reland of e68285e21d

Failing wasm tests seemed to recover on their own.

Original change's description:
> cppgc-js: heap snapshot: Add logic for querying detachedness
>
> Adds infrastructure to allow embedders specifying a detachedness state
> that is queried when encountering an object with a TraceReference that
> has a non-zero wrapper class id set.
>
> Change-Id: Ie7f2f253544ee25a25565eb08d82e9df5f0a74d2
> Bug: chromium:1056170
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502345
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Omer Katz <omerkatz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70841}

Bug: chromium:1056170
Change-Id: I293a9d38f841b4d0faa4af7408bb57544f11d566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505713
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70867}
2020-10-29 09:18:21 +00:00
Mathias Bynens
b4d35d0241 Revert "Update RegExp sequence property support"
This reverts commit 1eecdf3450.

Reason for revert: unacceptable binary size increase (+65.5 KiB)
We’ll reland once we implement a more efficient way to store the
sequences.

Original change's description:
> Update RegExp sequence property support
>
> This patch aligns --harmony-regexp-sequence with the latest version of
> the corresponding TC39 and Unicode proposals.
>
> The list of supported properties has been changed:
>
> - https://github.com/tc39/proposal-regexp-unicode-sequence-properties#proposed-solution
> - https://unicode.org/reports/tr18/#Full_Properties
>
> Furthermore, the Unicode data now uses Unicode v13.0.0 instead of v12.0.0.
>
> Bug: v8:7467
> Change-Id: I1ac386d87af68d68e84e919cb5ffc1313443844a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2497163
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Mathias Bynens <mathias@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70752}

TBR=yangguo@chromium.org,jgruber@chromium.org,mathias@chromium.org

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

Bug: v8:7467
Change-Id: I6721f4862827dc686d96d79498a1e8fdae4481d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505758
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70866}
2020-10-29 07:46:01 +00:00
Liu Yu
36dfc3841e [mips][turboprop] Add a slot for optimization marker in feedback vector
Port d7ece57e20

Bug: v8:9684
Change-Id: I6b103a5331f49a248e56a72d85e79f3d0fd2ef96
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505243
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70865}
2020-10-29 06:54:07 +00:00
Zhi An Ng
f4ff68af61 [wasm-simd] Enable skipped regression test
Test was skipped because the generated test contains multi-byte opcode,
and wasn't correct. Fix up the test with the correct encoding. The
fuzzer now generates multi-byte opcodes correctly, and so shouldn't be
an issue.

Bug: v8:10486
Change-Id: I1f5ad7d456320a30da6c553f65fdca0fc86a291a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505238
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70864}
2020-10-29 05:12:27 +00:00
v8-ci-autoroll-builder
a146f6dc32 Update V8 DEPS.
Rolling v8/build: eef4a9f..acfd692

Rolling v8/third_party/aemu-linux-x64: Cde6_Nup5XVxJODi7chcAAfy5-gsuGDvdepMA2nkfKMC..zy6Zme4YpIqml3lhXc3o7a0r_gVd0_gcggle2n2j330C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/daba508..15be7eb

Rolling v8/third_party/depot_tools: dfa44da..e8dff37

Rolling v8/third_party/icu: d3c1cdc..c7c91f8

TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com

Change-Id: I8313da9064bc7fc86f79b84ebd01763b2a79de44
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2506503
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@{#70863}
2020-10-29 03:50:27 +00:00
Zhi An Ng
45cb1ce07f Reland "[wasm-simd][ia32][x64] Only use registers for shuffles"
This is a reland of 3fb0788266

Original change's description:
> [wasm-simd][ia32][x64] Only use registers for shuffles
>
> Shuffles have pattern matching clauses which, depending on the
> instruction used, can require src0 or src1 to be register or not.
> However we do not have 16-byte alignment for SIMD operands yet, so it
> will segfault when we use an SSE SIMD instruction with unaligned
> operands.
>
> This patch fixes all the shuffle cases to always use a register for the
> input nodes, and it does so by ignoring the values of src0_needs_reg and
> src1_needs_reg. When we eventually have memory alignment, we can
> re-enable this check, without mucking around too much in the logic in
> each shuffle match clause.
>
> Bug: v8:9198
> Change-Id: I264e136f017353019f19954c62c88206f7b90656
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504849
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Commit-Queue: Adam Klein <adamk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70848}

Bug: v8:9198
Change-Id: I40c6c8f0cd8908a2d6ab7016d8ed4d4fb2ab4114
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505250
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70862}
2020-10-29 00:11:37 +00:00
Zhi An Ng
cf99a85275 [arm] Clean up more arm disassembly formatting
Introduce a new option for Format, 'size, to print element sizes for
Advanced SIMD instructions. Then convert some disassembly to use this
new Format option.

Bug: v8:10933
Change-Id: I9eab0e3f6d951c315c49b723db01bcdc93dbde02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504856
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70861}
2020-10-28 23:23:57 +00:00
Zhi An Ng
6979a711b3 [arm] Small cleanup of disassembly of opcodes using element size
We can move the esize (element size) calculation into the other scope,
since all but 1 instruction share this.

Bug: v8:10933
Change-Id: I43cfef46fdf7e962d54c29949488c2a7c0900334
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504854
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70860}
2020-10-28 23:18:57 +00:00
Michael Achenbach
b17764d25c Revert "Reland "[Heap]: Convert Sweep to Job""
This reverts commit b16c7e5b1c.

Reason for revert: Suspect for lots of crashes on GPU bots, e.g.:
https://ci.chromium.org/p/v8/builders/ci/Mac%20V8%20FYI%20Release%20(Intel)/11228
https://chromium-swarm.appspot.com/task?id=4f88d01781db5a10

Original change's description:
> Reland "[Heap]: Convert Sweep to Job"
>
> This is a reland of 795c0b1c7b
> Reason for revert:
> TSAN failures https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/33884
> Safe to reland as-is with fix to EagerUnmappingInCollectAllAvailableGarbage
> https://chromium-review.googlesource.com/c/v8/v8/+/2502809
>
> Original change's description:
> > [Heap]: Convert Sweep to Job
> >
> > max concurrency is inferred from queue size for OLD_SPACE & MAP_SPACE.
> > Extra Sweeper::TearDown() in MarkCompactCollector::TearDown() is needed
> > to cancel job.
> >
> > Change-Id: Iafba7d7d24e8f6e5c5a1d5c0348dea731f0ac224
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2480783
> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#70767}
>
> Change-Id: Id9a5baceed4664f53da39597af56a2067e4f3c6f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502808
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70845}

TBR=ulan@chromium.org,etiennep@chromium.org

Change-Id: Id6e9fe99f016652dd0fedbdbf65662f8e02ed67a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505974
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70859}
2020-10-28 22:23:29 +00:00
Junliang Yan
6bcf28baf5 PPC: Fix kCallerFPOffset for no CP
Change-Id: I7991225d49797f292c7e565e00c79f418154449f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2506234
Commit-Queue: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Auto-Submit: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70858}
2020-10-28 20:18:57 +00:00
Leszek Swirski
2c555da9e5 [test] Fix mjsunit/regress/regress-542823 on PPC
PPC has a larger page size than other platforms, so increase the page
size in the test to account for this.

Change-Id: I392064e9ef3f87c5bddb7763b35661aee5b4669d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2502330
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70857}
2020-10-28 18:19:41 +00:00
Mythri A
71220b3b69 Reland "[turboprop] Pass required parameters as value inputs to TierUpCheck node"
This is a reland of 44f46defcf with a
fix for failures with --turbonci_as_mid_tier

Original change's description:
> [turboprop] Pass required parameters as value inputs to TierUpCheck node
>
> TierUpCheck node tail calls interpreter entry trampoline when additional
> processing is needed for tiering up. Calling IET requires target,
> new_target, input count and context as parameters. Earlier these were
> created as parameter nodes in effect-control-linearizer. This causes
> problems with Turboprop since TurboProp doesn't use the second scheduler
> and cannot reschedule these nodes to the start block. We should instead
> create these parameter nodes in bytecode-graph-builder and pass them
> as value inputs to TierUpCheck node.
>
> Bug: v8:9684
> Change-Id: Icfe5a33b4e628d5a3ba9a3121b2b0746be6aed5c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498695
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Mythri Alle <mythria@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70790}

Bug: v8:9684
Change-Id: Ic1a7d39aab0a599d0dd421f237e7bc640fcd6eb1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504258
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70856}
2020-10-28 18:18:36 +00:00
Peter Marshall
0933c6d49c [cpu-profiler] Set SA_ONSTACK for the signal handler
This has no effect on our normal V8 builds as we don't set an
alternate stack.

Embedders like Go have to use alt stacks so this makes them work
with V8 if they have set up an alt stack themselves.

Change-Id: Icf3f4b39c026948875f5b2762ea6ffabaab03e8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505718
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70855}
2020-10-28 18:07:01 +00:00
Milad Fa
014112a864 PPC/s390: [turboprop] Add a slot for optimization marker in feedback vector
Port d7ece57e20

Original Commit Message:

    Optimization marker and the optimized code used to share the same slot
    in the feedback vector as they were mutually exclusive. With turboprop
    we would want to mark the function for tier up to Turbofan while holding
    the optimized code for Turboprop. So this cl uses the existing padding
    field to hold the optimization marker instead.

    As a driveby, removes unused JSFunction::ClearOptimizedCodeSlot function
    and fixes a minor bug in Runtime_GetOptimizationStatus.

R=mythria@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
BUG=
LOG=N

Change-Id: Ie635fd05c26f70124076b9c51c0c70a2b948af69
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505621
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#70854}
2020-10-28 17:52:26 +00:00
Tobias Tebbi
03f6029672 [torque] generate C++ class definitions per Torque file
This CL splits the class definitions per .tq file, to realize the
following relationship:
A class defined in src/objects/foo.tq has a C++ definition in
src/objects/foo.h. Torque then generates:

- torque-generated/src/objects/foo-tq.inc
  An include file (no proper header) to be included in src/objects/foo.h
  containing the Torque-generated C++ class definition.

- torque-generated/src/objects/foo-tq-inl.inc
  An include file (no proper header) to be included in
  src/objects/foo-inl.h containing inline function definitions.

- torque-generated/src/objects/foo-tq.cc
  A source file including src/objects/foo-inl.h that contains non-inline
  function definitions.

Advantages of this approach:
- Avoid big monolithic headers and preserve the work that went into
  splitting objects.h
- Moving a definition to Torque keeps everything in the same place
  from a C++ viewpoint, including a fully Torque-generated C++ class
  definition.
- The Torque-generated include files do not need to be independent
  headers, necessary includes or forward declarations can just be added
  to the headers that include them.

Drive-by changes:
A bunch of definitions and files had to be moved or created to realize
a consistent 1:1 relationship between .tq files and C++ headers.


Bug: v8:7793
TBR: hpayer@chromium.org
Change-Id: I239a89a16d0bc856a8669d7c92aeafe24a7c7663
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2470571
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#70853}
2020-10-28 17:43:06 +00:00