Commit Graph

70558 Commits

Author SHA1 Message Date
Milad Fa
80aed7e2cc PPC [simd]: Optimize ReplaceLane on Power10
I/F 32x4 and 64x2 ReplaceLane opcodes are optimized
on P10.

Change-Id: I28ddc2b4e66ca39414e9c3ed2efd0eea268f1a07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067803
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#76066}
2021-08-03 17:14:49 +00:00
Frank Tang
8f23e48e37 [test262] Roll test262
afe217b31..ab353c6

Bug: v8:7834, v8:3038, v8:3019, v8:11934, v8:12043, v8:12044, v8:11989
Change-Id: I3fd38aa0c2374f96506c21999f8ea04c9ece4f49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068506
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76065}
2021-08-03 16:50:10 +00:00
Bruce Dawson
fb9e129964 Remove windows.h from win32-headers.h
Windows.h causes massive namespace pollution with its defining of many
macros, it adds to build times, it disables warnings, and it makes it
easier to write non-portable code.

This change removes windows.h from V8's win32-headers.h. It does this
by replicating the small number of typedefs that are needed and by
defining three "proxy" types that are the same size and layout. The
V8ToWindowsType functions are used to reinterpret_cast between the
types.

Prior to this change there were over 760 v8-related source files that
include windows.h. After this change there are 16.

Bug: chromium:796644
Change-Id: I89efeed47028faae72de2da4f1dae345d8d7746c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3042215
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76064}
2021-08-03 16:07:16 +00:00
Milad Fa
2a654716c8 PPC/s390: [wasm] Use a consistent limit for large frames
Port f7de8c8062

Original Commit Message:

    For large frames we are executing a special stack check that checks the
    remaining stack space before allocating the new frame. Different
    platforms used different limits for the frame size so far. Liftoff
    already uses 4KB everywhere, hence use the same limit also for TurboFan.

    simplification.

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

Change-Id: Ie47572277769170878c3ed5598fe61edd8524ac7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068955
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#76063}
2021-08-03 15:40:50 +00:00
Georg Neis
574ca6b71c [compiler] Fix a bug in MachineOperatorReducer's BitfieldCheck
Bug: chromium:1234770
Change-Id: I7368c4bcebc9b4ae78291e9e7bfc860328a742ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068941
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76062}
2021-08-03 14:26:54 +00:00
Thibaud Michaud
27a517b892 [wasm][eh] Add WebAssembly.Exception.getArg()
Also introduce a separate error type for WebAssembly.Exception,
since the properties should not be added to RuntimeError.

R=jkummerow@chromium.org

Bug: v8:11992
Change-Id: I8f4ae0da9a95184366e07dc43e58a5a9ff4382ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3055304
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76061}
2021-08-03 14:25:50 +00:00
Clemens Backes
11a15e7feb [traphandler] Enable arm64 simulator support for Mac
This ports https://crrev.com/c/3040844 to also work on Mac. All that's
needed is minor tweaks to the inline assembly. The inline assembly is
stripped down to what's actually needed. I didn't find documentation on
".pushsection" and ".popsection" on Mac. Since we do not have this on
other inline assembly (e.g. src/heap/base/asm/x64/push_registers_asm.cc)
removing this here does not regress the status quo. If this ever causes
problems, we will have to consistently add it everywhere.

The new code paths are tested by the v8_mac_arm64* CQ bots, and the
"V8 Mac - arm64 - sim - {debug,release}" waterfall bots.

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

Bug: v8:11955
Change-Id: If0b78a2d2a8b365c1c77b171de0591452e4bbeec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063500
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76060}
2021-08-03 13:46:29 +00:00
Benedikt Meurer
ce8cef36aa [inspector] Consistently format all native accessors as own properties.
Previously the V8 inspector would only turn embedder accessors on the
prototype chain into data properties, but would not do the same for
ECMAScript builtins, which is kind of inconsistent and weird behavior.

This leaves in the hack that the inspector reports native accessor
properties as (own) data properties, but now at least the very least
does so consistently. In the absence of a better solution, we'll go
with this for now.

Bug: chromium:1076820, chromium:1199247
Change-Id: I593f909a46cb714dbec629a2944eeb892881ba6f
Before: https://imgur.com/kPuSldj.png
After: https://imgur.com/eFau45m.png
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067319
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76059}
2021-08-03 13:32:09 +00:00
Jakob Gruber
97b85196fd [compiler] MakeRefAssumeMemoryFence in MapRef::FindFieldOwner
The current map is safe to read, and backpointers (read inside
Map::FindFieldOwner) are immutable after initialization.

Bug: v8:7790
Change-Id: I10329a44b8fa1e831fc2b52c0bc16c81891af784
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068949
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76058}
2021-08-03 12:47:39 +00:00
Jakob Gruber
a4d78a9d9e [compiler] MakeRefAssumeMemoryFence in ReadFeedbackForGlobalAccess
Feedback is protected by acquire-release.

Bug: v8:7790
Change-Id: I5b9e8f2fa8109207420dd715407c0791fe47db8e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068943
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76057}
2021-08-03 10:41:09 +00:00
Liu Yu
323b596212 [mips][baseline] Adds EmbeddedObjectMatches
Port 6bf0b70490

Bug: v8:11872

Change-Id: I08a88402229e56b923a0551d64c53d73b8e909f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068323
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#76056}
2021-08-03 10:01:49 +00:00
Jakob Gruber
204dc4aa1d [compiler] Remove SerializerForBackgroundCompilation
Based on a CL by mvstanton@.

Bug: v8:7790,v8:12030,v8:12031,v8:12041
Change-Id: I58b75bd96c724a99133bec7d3bd6cf4e0c9be6d4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3059683
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76055}
2021-08-03 09:38:49 +00:00
Jakob Gruber
c8dd61cb6a [compiler] Fix ref construction failure in ContextRef::previous
The `previous` field is immutable after initialization and the
context itself is read through an atomic load.

Bug: v8:7790
Change-Id: I8525cac7264573a7e9fc479613aaf268b72ab836
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067333
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76054}
2021-08-03 08:59:49 +00:00
Michael Achenbach
3d135785fd Revert "[infra] Dummy change to test OWNERS enforcement"
This reverts commit 098835f73a.

Reason for revert: Testing reverts

Original change's description:
> [infra] Dummy change to test OWNERS enforcement
>
> No-Try: true
> Bug: chromium:1235962
> Change-Id: I6dabb9855e5db118315c33ab106ac7ba2c4721b8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068938
> Owners-Override: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#76051}

Bug: chromium:1235962
Change-Id: I5d3d865c2e8b4c69122a2b6ee6c0bcb9bd1ec6f6
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068940
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Owners-Override: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76053}
2021-08-03 08:29:49 +00:00
Georg Neis
65b20a0e65 [compiler] Harden JSCallReducer::ReduceArrayIteratorPrototypeNext
Bug: chromium:1234764
Change-Id: I5b1053accf77331687939c789b7ed94df1219287
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067327
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76052}
2021-08-03 08:27:21 +00:00
Michael Achenbach
098835f73a [infra] Dummy change to test OWNERS enforcement
No-Try: true
Bug: chromium:1235962
Change-Id: I6dabb9855e5db118315c33ab106ac7ba2c4721b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068938
Owners-Override: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76051}
2021-08-03 08:17:49 +00:00
Georg Neis
ca386a4b38 [compiler] Fix bug in MachineOperatorReducer::TryMatchWord32Ror
Bug: chromium:1234764
Change-Id: Ie899f00e9247bdf67b59aa3ebb7def2948ccdb6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067332
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76050}
2021-08-03 08:14:20 +00:00
Michael Achenbach
f021987706 [infra] Add test directory to test OWNERS enforcement
No-Try: true
Bug: chromium:1235962
Change-Id: I4ed07e9e39ae60fa24b76b40bf8d251d16c924e7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067336
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76049}
2021-08-03 08:13:09 +00:00
Liu Yu
acfe7802b5 [mips] Fix some tests error
Change-Id: I09ea01231fc3f646f215ff9fca0b526357d04385
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068322
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#76048}
2021-08-03 07:34:59 +00:00
Frank Tang
2273f34116 [Intl] throw instead of DCHECK while long locale
This is a temp fix to throw instead of DCHECK in debug build.
The correct fix depends on the landing of
https://github.com/unicode-org/icu/pull/1762

Once that land I will cherrypick into chrome to fix the function correctly.
But the current (before this CL) behavior is not harmful in release build.
It basically does not do the max nor min just return itself.

Bug: chromium:1224869
Change-Id: Iebce2ab0a5ce047e83e8fce05db8290212e64509
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3017300
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76047}
2021-08-03 07:33:29 +00:00
v8-ci-autoroll-builder
3a8ce6a092 Update V8 DEPS.
Rolling v8/base/trace_event/common: ad56859..1169114

Rolling v8/build: 50fd66a..cff8a26

Rolling v8/buildtools/third_party/libunwind/trunk: cdb04dc..b79b97c

Rolling v8/third_party/aemu-linux-x64: pmyID7CW-4NsGYefh7NnE4xj3AbHD5lu9r5GLO3rzMYC..DxCnfY154Xn-UYrZ-GF8FewyGfo29cYHkKdDMgpEHJkC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4505381..61f0e50

Rolling v8/third_party/zlib: f7a5fc9..563140d

Rolling v8/tools/clang: d0097bc..dd02422

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

Change-Id: I85237ce6814f9389b20e78238d4c447707599449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067947
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@{#76046}
2021-08-03 03:51:57 +00:00
Liu Yu
9ab8422da7 [mips][baseline] Remove initial relocation when compiling on heap
And fallback to handle references on heap compilation.

Port 7ac3b55a20
Port 642a467338

Bug: v8:11872

Change-Id: Ia371c53d32c0f1f4496fee1a7c72461ea291191f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3066946
Auto-Submit: Liu yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#76045}
2021-08-03 03:35:17 +00:00
Frank Tang
d2db7fa7f7 [Intl] Fix nb / no fallback
ICU 69 moved content of nb resources to no and let
nb fallback to no. This break our original design of checking
locale availability. Hard wire to check on no if nb fail for now
until we come out with a better fix.

Bug: chromium:1215606
Change-Id: I831529d29590cc643ee0109fb2ce8948dac75613
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3068010
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76044}
2021-08-02 23:24:48 +00:00
Mythri A
06697f7a82 Rename stress_flush_bytecode to stress_flush_code
stress_flush_bytecode controls stress flushing of both bytecode and
baseline code. So rename the flag to better reflect its functionality

Bug: v8:11947
Change-Id: Ie6c124a476c3a7c6eabd1d75de030ee15fe78e32
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3062567
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76043}
2021-08-02 19:02:57 +00:00
Kevin Babbitt
0c10dda4bd Update inline cache after migrating deprecated map
Previously, when the Load IC saw a deprecated map, it would migrate to
the new map but not update the feedback vector. This would lead to a
deopt the next time the same object was seen.

With this CL, the feedback vector will be updated to the target of the
deprecated map. In order to do this, we need to mark the IC for
recomputation. Without that call, the map and handler would look the
same to IC::UpdatePolymorphicIC amd would decline to update, causing
the IC to go megamorphic instead.

Bug: v8:10816
Change-Id: I0dcf97fb278bc0b167df6ce24d5db179f599f535
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3032983
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Kevin Babbitt <kbabbitt@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#76042}
2021-08-02 16:21:37 +00:00
Camillo Bruni
fd3d44f6bb [counters] Add --slow-histograms flag
The V8.Execute histogram is not free and can cause more overhead
than expected. This CL is guarding slower histograms behind a new
--slow-histograms flag.

For now --slow-histograms is enabled by default. Once all
chrome-side changes and benchmark changes have landed it will be
disabled by default.

--dump-counters will automatically enable --slow-histograms.

The goal is to not report slow histograms on UMA by default on stable:
- 100% reporting on canary/dev/beta
- 1% reporting on stable or specific finch experiments

Chrome-side feature: https://crrev.com/c/3065464

Bug: v8:11946
Change-Id: I23c782288e10ceb76323d72eceea9170739fd543
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067318
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76041}
2021-08-02 14:58:13 +00:00
Camillo Bruni
caf6582a42 [logging] Platform logging improvements
- Add V8_OS_STRING and V8_TARGET_OS_STRING define
- Add v8-platform logging event
- Add shared-library-end event for faster v8.log processing

Change-Id: Id25a9e704620dbb70042e51a1fb6ed77ca7256bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067219
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76040}
2021-08-02 14:57:09 +00:00
Shu-yu Guo
cb879ec910 Add syg@ to init/ OWNERS
No-try: true
Change-Id: Ib9574d3ddd5ad2ed6d203479baa13a660e170ed6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3047359
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76039}
2021-08-02 14:43:06 +00:00
Michael Achenbach
bc560eaeb7 [release] Make auto-push process use the bot-commit label
This lands the CLs for creating V8 roll branches without TBR.

No-Try: true
Bug: chromium:1176141
Change-Id: I67defe7e0337f6beb3db2e198dc2cf87f1345ec1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067320
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76038}
2021-08-02 13:34:26 +00:00
Camillo Bruni
e4dcbab5e1 [api][fastcall] Small TryCopyAndConvertArrayToCppBuffer fixes
- Add V8_WARN_UNUSED_RESULT to TryCopyAndConvertArrayToCppBuffer
  methods
- Remove --force-slow-path implications in
  Object::IterationHasObservableEffects

Bug: v8:11739
Change-Id: I20dcac1c460c6ee116ff372806cdf8764a99d9f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063504
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76037}
2021-08-02 12:01:46 +00:00
Victor Gomes
5f9e80eb43 [ic] Propagate array error in StoreInArrayLiteralIC
Instead of throwing a fatal error when setting a value in an array with
index larger than FixedArray:kMaxLength, we now throw an exception.

This CL propagates the exception in StoreInArrayLiteralIC.

Bug: chromium:1235093, chromium:1201626
Change-Id: Iaffd4eff47ad689fce2fd641ce1beaddd02d1a48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3067220
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76036}
2021-08-02 11:51:16 +00:00
Clemens Backes
ea822809c7 [wasm] Make CodeSpaceWriteScope more narrow
This avoids having all code writable while compiling functions. We only
need it writable for copying the code to the NativeModule and for
updating the jump table(s).

R=jkummerow@chromium.org

Change-Id: Ifb212b1cd3f7702fac4b1eb9e7bc7d5b5bd5198a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063221
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76035}
2021-08-02 11:20:46 +00:00
Clemens Backes
f7de8c8062 [wasm] Use a consistent limit for large frames
For large frames we are executing a special stack check that checks the
remaining stack space before allocating the new frame. Different
platforms used different limits for the frame size so far. Liftoff
already uses 4KB everywhere, hence use the same limit also for TurboFan.

Drive-by: Remove an outdated and misleading comment, and other minor
simplification.

R=ahaas@chromium.org

Bug: v8:12017
Change-Id: I6548b2293ec255349bf4e08c26fd05b7e0df0497
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063501
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76034}
2021-08-02 11:01:26 +00:00
Jakob Kummerow
a876146449 [bigint] Fix accidental creation of "minus zero" BigInts
Regressed in crrev.com/152ecad8cd4d170e4091a79eaa8d70d10d94734d.

Fixed: chromium:1234931
Change-Id: I8f2b603a914fccaeaeb3dcffa63070cf8fb6f0e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064604
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76033}
2021-08-02 10:47:46 +00:00
Santiago Aboy Solanes
634a0fd641 [compiler] Make NeverEverSerialized the default for NeverSerialized
Also:
* Remove forward declare and As##Name for never serialized Data classes
* Remove the Data classes
* Refactor macro list to encode being background or never serialized

Bug: v8:7790
Change-Id: Ide29d89072b247311f29948f04c4147c5c1103cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3056458
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76032}
2021-08-02 10:34:56 +00:00
Jakob Gruber
3a401f3b51 [compiler] Remove invalid CHECK in JSFunctionData::Cache
A JSFunction object may count as 'ObjectMayBeUninitialized', yet still
be safe to read for other reasons (e.g. because it has been loaded
through a chain of acquire-loads and immutable-after-initialization
guarantees).

Bug: chromium:1235071,v8:7790
Change-Id: I18c81695f001fd67e69d98dde641b71ed7b7e53d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064606
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76031}
2021-08-02 07:53:46 +00:00
Georg Neis
6ca335ef20 [compiler] Make field dependency code clearer
Lookup the corresponding details on the given map instead of the
owner map.

Change-Id: I2dcd0b24216c2bdc5860518d34d710b771f74973
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063234
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76030}
2021-08-02 07:05:36 +00:00
Leszek Swirski
07e636f522 [test] Lower the stack size & iterations on 1125145 test
Change-Id: I0ba9c4bf13ff13e69d960fba44f93124be5a31a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063499
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76029}
2021-08-02 06:57:17 +00:00
v8-ci-autoroll-builder
56aec51115 Update V8 DEPS.
Rolling v8/build: 3ab54c6..50fd66a

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

Change-Id: Ia1870a3ee8532486f7205494fd10da872d6e51d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064460
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@{#76028}
2021-08-02 03:50:56 +00:00
v8-ci-autoroll-builder
2c1c143f91 Update V8 DEPS.
Rolling v8/build: fbcc5ac..3ab54c6

Rolling v8/buildtools/linux64: git_revision:c0a2d23c21e87f27f5af3e5dc2a99f2ef3480b9e..git_revision:eea3906f0e2a8d3622080127d2005ff214d51383

Rolling v8/third_party/aemu-linux-x64: lL9eGDPnjhLmu6ErFz6_fnCALFjGkGsl3IgkWQit-ugC..pmyID7CW-4NsGYefh7NnE4xj3AbHD5lu9r5GLO3rzMYC

Rolling v8/third_party/zlib: dfbc590..f7a5fc9

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

Change-Id: I25f0355a55daf4d9e2339120abd118e46ab16d9a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3065570
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@{#76027}
2021-08-01 03:52:10 +00:00
v8-ci-autoroll-builder
185badc912 Update V8 DEPS.
Rolling v8/build: 8aa210e..fbcc5ac

Rolling v8/third_party/aemu-linux-x64: EfaAueisHmQB3i2Cqncpzj07xFoDNrwT09yreit16bgC..lL9eGDPnjhLmu6ErFz6_fnCALFjGkGsl3IgkWQit-ugC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/10f6e4b..4505381

Rolling v8/tools/luci-go: git_revision:59603935354589d60cd8374e75889932bf84c33f..git_revision:db421da12bad8e57f97ee45b24147e34ec882007

Rolling v8/tools/luci-go: git_revision:59603935354589d60cd8374e75889932bf84c33f..git_revision:db421da12bad8e57f97ee45b24147e34ec882007

Rolling v8/tools/luci-go: git_revision:59603935354589d60cd8374e75889932bf84c33f..git_revision:db421da12bad8e57f97ee45b24147e34ec882007

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

Change-Id: Ib619bcf5b931c491b7080bd1a92a5cbba3dee122
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064304
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@{#76026}
2021-07-31 03:46:48 +00:00
Junliang Yan
121df413a3 ppc: [liftoff] implement fp copysign
Change-Id: Ic1fb152ced8535982f4e918df691e5c6e4cfaa68
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063506
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#76025}
2021-07-30 17:09:07 +00:00
Ng Zhi An
74bdb34967 [wasm] Remove stale ifdef guard
wasm-code-manager.cc is no longer included if v8_enable_webassembly ==
false, so we can remove this guard.

Bug: v8:11879
Change-Id: Ide77e7e334d2711c1cbbbbedc34c2796ffaf793d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3061358
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76024}
2021-07-30 17:00:57 +00:00
Milad Fa
1c4ce244e2 [wasm] skip partial serialization test on platforms without liftoff
Bug: v8:11862
Change-Id: If40fea4c332374c4e245498f378dff7734a84e9a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3062239
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#76023}
2021-07-30 14:35:38 +00:00
Jakob Kummerow
152ecad8cd [bigint] Move String-to-BigInt parsing to src/bigint/
No changes to the algorithm, approximately 4x performance
improvement thanks to reduced overhead.

Bug: v8:11515
Change-Id: Id3f6c91bd650f6ae47ac8f169dc780420091998e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3046185
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76022}
2021-07-30 14:19:48 +00:00
Andreas Haas
835a8b7de5 [wasm] Add instance to DebugBreak safepoint
Since recently, the WebAssembly instance gets cached in Liftoff code
to avoid reloading it from the stack whenever it is used. Typically the
cached instance gets invalidated at a function call and therefore does
not need to be recorded in safepoints.

However, when the DebugBreak builtin is called, the cached instance
was not invalidated. It is even incorrect to invalidate the cached
instance there because that would modify the CacheState of Liftoff.
Therefore this CL adds the register that caches the instance to the
safepoint of the call to the DebugBreak builtin.

R=clemensb@chromium.org

Bug: v8:11979
Change-Id: I7f9153e0c0e7e797b11b827111b4d61e29606071
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3063222
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76021}
2021-07-30 14:16:38 +00:00
Georg Neis
3129309fac [compiler] Remove invalid DCHECK in CompilationDependencies
With concurrent inlining, the TransitionDependency ctor can no
longer assume that the given map is not deprecated. This is not an
issue since IsValid will check it again.

Also remove some other outdated DCHECKs and turn a few DCHECKs into
CHECKs since the properties they check are not so obvious anymore with
concurrency.

Bug: v8:12033, v8:7790
Change-Id: I932f7f6440697d693b0c0e6472406329af29b46b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3062576
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76020}
2021-07-30 13:50:28 +00:00
Benedikt Meurer
f9ebad0119 [inspector] Use side-effect free debug evaluate for inherited accessors.
Replace the hard-coded blocklist ("Response.body" and "Request.body") in
the V8 inspector with proper side-effect free debug evaluate. This is
otherwise a non-functional change and in particular preserves the
behavior of reporting accessors as (own) data properties. That will be
tackled in a follow-up CL.

This CL is possible because with https://crrev.com/c/3056879 Blink now
properly marks accessors as side-effect free consistently with what the
V8 inspector had done before.

Doc: http://doc/1gLyyOlssS5zyCSEyybVC-5sp0UnNJj2hBoFyf6ryrTc
Bug: chromium:829571, chromium:1076820, chromium:1119900
Change-Id: Idb256accaf4cfb5db5982b3eb06ddcef588be635
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3062573
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
Reviewed-by: Philip Pfaffe <pfaffe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76019}
2021-07-30 12:24:28 +00:00
Marja Hölttä
6ca9684f5b [rab/gsab] Fix: handle the case where parameter processing resizes the rab
See https://github.com/tc39/proposal-resizablearraybuffer/issues/67

Bug: v8:11111
Change-Id: I43cc61797387a021e9bf752284b917f77662354d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3062559
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76018}
2021-07-30 11:41:38 +00:00
Andreas Haas
cace2f533e Reland "[wasm] Support partial serialization of modules"
The original CL was flaky because deserialization did not wait correctly
for the compilation of missing functions to finish. The baseline-finished
event was set even when there were still some functions missing. The
combination of deserialization and lazy compilation was also not handled
correctly.

Original change's description:
> [wasm] Support partial serialization of modules
>
> At the moment a WebAssembly module can be serialized successfully when
> all functions were compiled with TurboFan. However, for some functions
> it may not be necessary to be compiled with TurboFan, e.g. for functions
> where Liftoff code is as good as TurboFan code.
>
> With this CL we allow WebAssembly modules to get serialized even when
> not all functions are compiled with TurboFan. Missing functions are
> marked as missing in the serlialization. Upon deserialization, missing
> functions either get compiled by Liftoff, or initialized with a
> lazy-compilation stub, depending on the V8 configuration.
>
> Bug: v8:11862

Change-Id: I79a9e8e14199cff87fce6ae41a87087e047bbc65
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3060485
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76017}
2021-07-30 11:18:38 +00:00