Commit Graph

69841 Commits

Author SHA1 Message Date
Georg Neis
4c41299d8c [compiler] Fix serialization for Function#bind
It was not in sync with the optimization, which relies on
inspecting up the length and name fields even for bound
functions.

To make a now meaningful serializer test actually pass, I have
to to make some changes to the test setup.

I'm also moving the function name and length index constants
from JSFunction to JSFunctionOrBoundFunction for clarity.

TBR=marja@chromium.org

Bug: v8:7790
Change-Id: I36dd3c80996ccb53810c7ea9bfceb5c84ffd60ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972919
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75299}
2021-06-22 12:42:19 +00:00
Dan Elphick
332d6c1114 [utils] Remove StringBuilder class
StringBuilder and its base class SimpleStringBuilder aren't very safe
and are a potential source of memory leaks or double-frees.

This removes the StringBuilder class and converts all of its usages to
use the standard library.

(As a drive-by, this converts std::ostream* to std::ostream& which is
more idiomatic C++).

Bug: v8:11917
Change-Id: I0eaf9d60cf49836e65bb28f0e114b33ef8103a61
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2978252
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75298}
2021-06-22 12:37:42 +00:00
Mike Stanton
38c872aa63 Concurrent stress mode adjustment in predictable test variant
If a test specifies --stress-concurrent-inlining it shouldn't be
run in predictable mode, since it is depending on some concurrent
behavior (a race condition) between threads.

Bug: v8:11907
Change-Id: I027eed056689a8ee62675fce7dfa0701d202e970
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975298
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75297}
2021-06-22 12:25:02 +00:00
Clemens Backes
83a5e42b5d [cleanup] Remove remaining redundant NOLINTs
After a series of CLs per component, this removes all remaining NOLINT
annotations that my script identified as not needed (because removing
them does not cause a presubmit error).

R=mlippautz@chromium.org, jkummerow@chromium.org, leszeks@chromium.org
R=cbruni@chromium.org

Bug: v8:11879
Change-Id: Ia403c23588a0c2871b987931f6c26f85821e9e9c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972733
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75296}
2021-06-22 11:34:11 +00:00
Manos Koukoutos
3f24baf6da [wasm] Remove current global argument from consume_init_expr
We can get rid of this by deferring adding a new global to the module's
globals, and using the current size of globals to determine allowed
global indices.

Bug: v8:11895
Change-Id: Ide80eab2de4abdbab96a7298acf3665599c394ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972908
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75295}
2021-06-22 11:17:13 +00:00
Georg Neis
6288483b65 [compiler] Fix an issue with deprecated maps
Various field dependencies assume that the receiver map and the field
owner map agree on field meta data. That's not necessarily true when
the receiver map is already deprecated. We should skip over deprecated
maps.

- Fix a bug in SerializerForBackgroundCompilation. It used to process
  even deprecated maps.
- Fix a bug in FilterRelevantReceiverMaps. It used to store the original
  map rather than the new version.
- Turn some compilation dependency DCHECKs into CHECKs.
- CHECK in MapRef::FindFieldOwner that the map is not deprecated. While
  there might be valid use cases for calling the underlying
  Map::FindFieldOwner on a deprecated map, we never want to do that in
  the compiler.

Note that we skip any deprecated maps in JSNativeContextSpecialization's
ReduceNamedAccess. That's why I believe the issue could only be observed
with --concurrent-inlining and only in the form of a failing DCHECK.

Bug: chromium:1221812, v8:7790
Change-Id: I998b4ce1954be01eb6e0feb491ccc6b8306c685f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976655
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75294}
2021-06-22 09:56:02 +00:00
Al Muthanna Athamina
fb9aee414d [test] Skip test-osr until we make progress on NumFuzz
Bug: v8:11656
No-Try: true
Change-Id: I60bdedc1eb7fc04a3ed1f09bf02fbddffa05c4dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975861
Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75293}
2021-06-22 09:50:22 +00:00
Manos Koukoutos
0ec7f85f37 [wasm] Improve init. expr. testing code
- Add an expected type argument in DecodeWasmInitExprForTesting. This
  eliminates the need to check for kWasmVoid in consume_init_expr.
- Invoke StartDecoding() to initialize module in
  DecodeWasmInitExprForTesting.
- Pass the current module to DecodeInitExprForTesting.
- Adjust tests.

Bug: v8:11895
Change-Id: I13b71b68a2011bf08742701cb9dd986afd6e55f8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972907
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75292}
2021-06-22 09:43:25 +00:00
Victor Gomes
e29b2ae48a [baseline] Compiles sparkplug code on the heap
1. Adds the flag --sparkplug-on-heap
2. Creates OnHeapAssemblerBuffer
3. Generates code on heap (but still relocates later)
4. Provides Assembler::IsOnHeap function

Bug: v8:11872
Change-Id: I6223bf27a5fbcfb5f94f3462b951443b35273661
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949097
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75291}
2021-06-22 09:11:02 +00:00
Sara Tang
205338ceb3 [diagnostics] Added line numbers to ETW JIT events
Feedback suggests that it would be easier to trace minified JS code if
line numbers were included in the ETW JIT events, so I added them.

Bug: v8:11043
Change-Id: I1660c695db2e4659184b2b679839dafe256fb3ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971625
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sara Tang <sartang@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#75290}
2021-06-22 09:10:53 +00:00
Clemens Backes
4e19455bd8 Reland "[wasm] Provide a global WasmCodeManager"
This is a reland of 0f90a2aa1c.
The issue was inverted destructor order between WasmCodeManager and
WasmEngine. WasmEngine has to be destructed first, because it contains
a barrier to ensure that background compile threads finished before
global state is being destructed.

Original change's description:
> [wasm] Provide a global WasmCodeManager
>
> The WasmCodeManager was part of the WasmEngine so far, but there is only
> exactly one WasmEngine. Hence we can pull it out, and also remove the
> pointer in the WasmCodeAllocator.
>
> The argument passed from the single constructor call is now inlined in
> the constructor itself.
>
> Drive-by: Replace "GetPlatformPageAllocator()->CommitPageSize()" by just
> "CommitPageSize()".
>
> R=jkummerow@chromium.org
>
> Bug: v8:11879
> Change-Id: I6c0e74cea308f5806d1aa479945d90b6ef8d1613
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972909
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75270}

Bug: v8:11879
Change-Id: I0eaa2395f5c1e30f3f7303c5f3df70c227b74d3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975859
Auto-Submit: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75289}
2021-06-22 08:59:10 +00:00
Michael Achenbach
7d3bc3fa60 [bazel] Add optional deps for prebuilt bazel for bots
This will download a prebuilt bazel on Ubuntu bots if gclient variable
download_prebuilt_bazel is set. The currently pinned version is:
5.0.0-pre.20210604.6.

This is planned to only run on specific bots that use a new recipe
for building with bazel:
https://crrev.com/c/2972749

Bug: v8:11912
Change-Id: I8ff405fc03bfede4762bf4e8577cb1feab56f7c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972918
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@{#75288}
2021-06-22 08:42:15 +00:00
Maya Lekova
e33ca13415 Revert "[sparkplug] Trigger compilation when a FBV exists"
This reverts commit 3296de2f65.

Reason for revert: Blocks the roll - https://chromium-review.googlesource.com/c/chromium/src/+/2970676

Original change's description:
> [sparkplug] Trigger compilation when a FBV exists
>
> We were gating baseline compilation on FBV allocation, but in some
> cases, the feedback vector may be allocated eagerly (notably, if we are
> logging function events). Instead, unconditionally try baseline
> compilation after ensuring the feedback vector exists.
>
> Bug: v8:11420
> Change-Id: I1264a1d541a74d4eccb5caf65c360ac23836a1a8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2953161
> Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Reviewed-by: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75242}

Bug: v8:11420
Change-Id: Ia9524e3a57eda7ec069f29652acc7593bf680509
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976654
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75287}
2021-06-22 08:24:31 +00:00
Maya Lekova
e0e9f7412d Revert "[sparkplug] Trigger compilation only when we don't have baseline data"
This reverts commit a93293d9c9.

Reason for revert: Need to revert a dependency which is blocking the roll - https://chromium-review.googlesource.com/c/v8/v8/+/2953161

Original change's description:
> [sparkplug] Trigger compilation only when we don't have baseline data
>
> If we trigger baseline compilation unconditionally on bytecode budget
> interrupt after we have compiled the function with sparkplug already, we
> will arm back-edges for OSR unconditionally. Since the OSR arming
> mechanism is the same for Sparkplug and TurboFan, this means that we
> will immediately arm back-edges for OSR to TurboFanned code.
>
> Bug: v8:11656
> Change-Id: Ic8e5d1899a3a203321e063ada474d39f2627ea88
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972922
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75285}

Bug: v8:11656
Change-Id: I2e2910f8882314260ff70a3c996ef74903b6851b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976653
Auto-Submit: Maya Lekova <mslekova@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@{#75286}
2021-06-22 07:45:05 +00:00
Patrick Thier
a93293d9c9 [sparkplug] Trigger compilation only when we don't have baseline data
If we trigger baseline compilation unconditionally on bytecode budget
interrupt after we have compiled the function with sparkplug already, we
will arm back-edges for OSR unconditionally. Since the OSR arming
mechanism is the same for Sparkplug and TurboFan, this means that we
will immediately arm back-edges for OSR to TurboFanned code.

Bug: v8:11656
Change-Id: Ic8e5d1899a3a203321e063ada474d39f2627ea88
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972922
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75285}
2021-06-22 06:58:21 +00:00
Benedikt Meurer
01605d567a [debug] Default to last break index.
When looking up the break index for a given source position, default to
the last break index if there is neither a precise match nor a breakable
position after the source position (in which case we still pick the
first candidate).

Fixed: chromium:1222065
Bug: chromium:901819, chromium:782461, chromium:1222060
Change-Id: I10d6a086b2d5fadc9e6dca0c49ed4187eb0359ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972917
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75284}
2021-06-22 05:06:31 +00:00
v8-ci-autoroll-builder
1890913587 Update V8 DEPS.
Rolling v8/build: e03cfed..69cba92

Rolling v8/buildtools: 466954e..7bff39b

Rolling v8/buildtools/third_party/libc++/trunk: 8fa8794..79a2e92

Rolling v8/third_party/aemu-linux-x64: PN9-ZWJ3VamzkSeIVWLhS3mXDEVLPX86Ht5EEDH1O-EC..KN9a-2MYhLQ9kDLdCOca4xZcBjrhMIzoD4ReyO0u95IC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/cb63922..2ba6b1f

Rolling v8/third_party/depot_tools: 473499b..b714c17

Rolling v8/tools/clang: 03ff857..2d4e9fd

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

Change-Id: I1c17166b07efae9631726b57f27260997571f120
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2977585
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@{#75283}
2021-06-22 03:56:31 +00:00
Bill Budge
b261213fcc Revert "Improve error messages for property access on null/undefined"
This reverts commit 24c626c1f7.

Reason for revert: Blocks V8 roll into Chromium (changed error messages cause tests to fail):
https://ci.chromium.org/p/chromium/builders/try/linux-rel/724109?

Original change's description:
> Improve error messages for property access on null/undefined
>
> Only print the property name when accessing null/undefined if we can
> convert it to a string without causing side effects.
> If we can't, omit the property name in the error message.
> This should avoid confusion when the key is an object with toString().
> E.g. undefined[{toString:()=>'a'}] doesn't print 'read property [object
> Object]' anymore, which was misleading since the property accessed would
> be 'a', but we can't evaluate the key without side effects.
>
> Bug: v8:11365
> Change-Id: If82d1adb42561d4851e2bd2ca297a1c71738aee8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960211
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75250}

Bug: v8:11365
Change-Id: Ic63f34033254f55b3871041633d84ea48586a75d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2977374
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75282}
2021-06-21 23:06:41 +00:00
Milad Fa
4eebb1e915 S390: enable VEF2 on the simulator
This enables running some of the new instructions on the simulator
including vcgd and vclgd.

Change-Id: Icd1c6ced124aec8608dece855f85ba350c4247fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2976027
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75281}
2021-06-21 22:02:41 +00:00
Frank Tang
91d5cc2fa9 Reland "[intl] Improve test coverage of "best fit" localeMatcher"
This is a reland of dd8845cd74

Original change's description:
> [intl] Improve test coverage of "best fit" localeMatcher
>
> https: //docs.google.com/document/d/1cPGfiihn76yj2iAomKcspPFyLLcnk3WkCiqceBQPQyk/edit#heading=h.cc9tt7s0iwsd
> Bug: v8:7051
> Change-Id: I8c35e859062c5bdb009334dd1b725751e6df2123
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2965481
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75228}

Bug: v8:7051
Change-Id: I9af13b8fdf7ec3de2ac24050074d13fcdef981c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973648
Reviewed-by: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75280}
2021-06-21 17:37:31 +00:00
Leszek Swirski
b6e31aaaaa [system-analyzer] More fixes
- Fix inline script line nos
  * Change the map source pos panel to a table
  3. Fix script sorting to not crash on missing name

Change-Id: I250c830f4be5f734a9489622ce162615bf80aab7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964606
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75279}
2021-06-21 16:05:29 +00:00
Nico Hartmann
d8f78c0a9e Revert "[assembler][arm64][arm][ia32] Add more Assembler::CodeComment"
This reverts commit 2588380d2c.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Arm%20-%20debug%20builder/34664/overview

Original change's description:
> [assembler][arm64][arm][ia32] Add more Assembler::CodeComment
>
> Use more code comments to better document generated assembler code.
> This CL also attaches a CodeComment to FrameScope.
>
> Change-Id: I45afc3e4078dc161316b877fbbd1ae8bcd6e821d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964392
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Commit-Queue: Camillo Bruni <cbruni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75277}

Change-Id: I6d36535ca96133cc83b3d6194a3d53889f735499
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972826
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75278}
2021-06-21 15:42:22 +00:00
Camillo Bruni
2588380d2c [assembler][arm64][arm][ia32] Add more Assembler::CodeComment
Use more code comments to better document generated assembler code.
This CL also attaches a CodeComment to FrameScope.

Change-Id: I45afc3e4078dc161316b877fbbd1ae8bcd6e821d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964392
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75277}
2021-06-21 15:37:39 +00:00
Michaël Zasso
3b8a5026eb [log] Include tickprocessor log files in git
Without this, the files are ignored when V8 source is copied to another
repository (for example Node.js).

Change-Id: Ia1ac2d2673d13a266f2beaa1dadd93df903afd5d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972915
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michaël Zasso <mic.besace@gmail.com>
Cr-Commit-Position: refs/heads/master@{#75276}
2021-06-21 15:26:29 +00:00
Igor Sheludko
d31824f47d [ext-code-space] Enable stricter heap verification for CodeT
When v8_enable_external_code_space is enabled the Code objects are
allowed only
- in CodeDataContainer::code field
- as uncompressed values embedded in Code instruction streams

Bug: v8:11880
Change-Id: I080a678fd77a7e42c6a397e7145a640fd07d6e83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2969828
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75275}
2021-06-21 14:35:59 +00:00
Maya Lekova
c46e820538 Revert "[wasm] Provide a global WasmCodeManager"
This reverts commit 0f90a2aa1c.

Reason for revert: Breaks MSAN, please see https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/38941/overview

Original change's description:
> [wasm] Provide a global WasmCodeManager
>
> The WasmCodeManager was part of the WasmEngine so far, but there is only
> exactly one WasmEngine. Hence we can pull it out, and also remove the
> pointer in the WasmCodeAllocator.
>
> The argument passed from the single constructor call is now inlined in
> the constructor itself.
>
> Drive-by: Replace "GetPlatformPageAllocator()->CommitPageSize()" by just
> "CommitPageSize()".
>
> R=​jkummerow@chromium.org
>
> Bug: v8:11879
> Change-Id: I6c0e74cea308f5806d1aa479945d90b6ef8d1613
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972909
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75270}

Bug: v8:11879
Change-Id: I110eec313762d73073f530aec7cf0be82c4db344
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972921
Auto-Submit: Maya Lekova <mslekova@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@{#75274}
2021-06-21 14:31:57 +00:00
v8-ci-autoroll-builder
06f937eedd Update V8 DEPS.
Rolling v8/build: d6115b1..e03cfed

Rolling v8/buildtools/linux64: git_revision:7d803996740ccd587c54062750cbe04dfbc3c423..git_revision:170c2dba1e0c0299fe8c6a441caf2f2352a42ae0

Rolling v8/third_party/aemu-linux-x64: h_kO6UaQmxXGNfG0ofG4wgKw_URVHcderPkx6AlamR0C..PN9-ZWJ3VamzkSeIVWLhS3mXDEVLPX86Ht5EEDH1O-EC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/893c99a..cb63922

Rolling v8/tools/clang: 0e77445..03ff857

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

Change-Id: Ic1579515b592206a34f25296d9e24e9d99a8e13d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975087
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@{#75273}
2021-06-21 14:30:52 +00:00
Daniel Lehmann
8a3c48817b [wasm] Merge code space write scope implementations
Merges `NativeModuleModificationScope` (with an implementation using
Intel PKU, if available, and mprotect otherwise) and
`CodeSpaceWriteScope` (for Apple Silicon, where switching to RWX with
mprotect is disallowed anyway, so MAP_JIT and thread-local switching
must be used).

Because `CodeSpaceWriteScope` sounded better (and is shorter), we kept
its name (which unfortunately makes the diff a bit harder to read).

R=clemensb@chromium.org
CC=jkummerow@chromium.org

Bug: v8:11714

Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
Change-Id: Ib2a7d18e72797a725ed34b904c70769166d811dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972911
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Daniel Lehmann <dlehmann@google.com>
Cr-Commit-Position: refs/heads/master@{#75272}
2021-06-21 14:13:02 +00:00
v8-ci-autoroll-builder
6d91aaa710 Update google_benchmark
Rolling v8/third_party/google_benchmark/src: 5b75184..62937f9

Add missing trailing commas (#1182) (Dominic Hamon)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/62937f9

Provide helpers to create integer lists for the given ranges. (#1179) (PCMan)
https://chromium.googlesource.com/external/github.com/google/benchmark/+/c932169

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

Change-Id: I81658863aa16aebb1c0f76d79bdbf6abcbd1accf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975083
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@{#75271}
2021-06-21 14:10:12 +00:00
Clemens Backes
0f90a2aa1c [wasm] Provide a global WasmCodeManager
The WasmCodeManager was part of the WasmEngine so far, but there is only
exactly one WasmEngine. Hence we can pull it out, and also remove the
pointer in the WasmCodeAllocator.

The argument passed from the single constructor call is now inlined in
the constructor itself.

Drive-by: Replace "GetPlatformPageAllocator()->CommitPageSize()" by just
"CommitPageSize()".

R=jkummerow@chromium.org

Bug: v8:11879
Change-Id: I6c0e74cea308f5806d1aa479945d90b6ef8d1613
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972909
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75270}
2021-06-21 14:03:22 +00:00
Sigurd Schneider
764fa7e3f3 Create objects in the correct context
The exception meta-data API created several objects in the wrong
context, resulting in the exception context being kept alive for
too long.

Bug: chromium:1221089
Change-Id: I02aece4e10d9bd559d49f98fe1c3e44a09e27eef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2975301
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75269}
2021-06-21 12:59:07 +00:00
Igor Sheludko
e4361df076 [ext-code-space] Migrate CodeDataContainer::next_code_link to CodeT
... and OPTIMIZED_CODE_LIST and DEOPTIMIZED_CODE_LIST slots of
NativeContext which serve as heads of respective weak lists of Code
objects.

Drive-by: trivial NativeContext methods are moved to contexts-inl.h
header.

Bug: v8:11880
Change-Id: I0f2ca967b2820f84c279fea702bab28829f65d0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968416
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75268}
2021-06-21 12:43:27 +00:00
Daniel Lehmann
2ef8f917ff [wasm] Move NativeModuleModificationScope impl
In an effort to merge `CODE_SPACE_WRITE_SCOPE` and
`NativeModuleModificationScope`, this CL moves the interface and
implementation of the latter into code-space-access.{h,cc}, where the
former already lives. No other changes to the code itself.

R=clemensb@chromium.org
CC=jkummerow@chromium.org

Bug: v8:11714

Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
Change-Id: I1aabce26f2033430523a7a3a0a4864e7267bee21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972803
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Daniel Lehmann <dlehmann@google.com>
Cr-Commit-Position: refs/heads/master@{#75267}
2021-06-21 12:22:05 +00:00
Clemens Backes
089221ef96 [wasm] Pass and store fewer wasm engine pointers
There is exactly one WasmEngine per process, hence we do not need to
store or pass a pointer to it. We just use {GetWasmEngine} (which just
reads a global variable) whenever we need it.

R=jkummerow@chromium.org

Bug: v8:11879
Change-Id: I7e0e86e326f4cafe5a894af0ff6d35803c0340a9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972725
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75266}
2021-06-21 11:57:45 +00:00
Clemens Backes
fa3cd68a3f [isolate][cleanup] Remove pointer to WasmEngine
The WasmEngine is shared across the whole process, so there is no need
to store it in every Isolate.
Instead, we can just get it from everywhere on any thread using
{wasm::GetWasmEngine()}, which is a simple read of a global.

R=jkummerow@chromium.org

Bug: v8:11879
Change-Id: I13afb8ca3d116aa14bfaec5a4bbd6d71faa9aa17
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2969825
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75265}
2021-06-21 09:09:25 +00:00
v8-ci-autoroll-builder
3e6230062e Update V8 DEPS.
Rolling v8/build: 11f1e3d..d6115b1

Rolling v8/buildtools/linux64: git_revision:d2dce7523036ed7c55fbb8d2f272ab3720d5cf34..git_revision:7d803996740ccd587c54062750cbe04dfbc3c423

Rolling v8/third_party/aemu-linux-x64: R61GnhotR5EpRE5ZeVtRvIQPRz8z-LSXnxN1ighigqMC..h_kO6UaQmxXGNfG0ofG4wgKw_URVHcderPkx6AlamR0C

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2573cff..893c99a

Rolling v8/third_party/depot_tools: 59140d4..473499b

Rolling v8/tools/clang: 66b4484..0e77445

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

Change-Id: I00eab552662eb15afd50c8b77ff72932806d443b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973786
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@{#75264}
2021-06-19 03:44:50 +00:00
Frank Tang
b7d5b94f5b Revert "[intl] Ship "best fit" LocaleMatcher for m93"
This reverts commit f8a40f6d27.

Reason for revert: Performance regression

Original change's description:
> [intl] Ship "best fit" LocaleMatcher for m93
>
> LGTM1 Mike West mkwst@chromium.org
> LGTM2 Chris Harrelson chrishtr@chromium.org
> LGTM3 Yoav Weiss yoavweiss@chromium.org
>
> Design Doc:
> https://docs.google.com/document/d/1cPGfiihn76yj2iAomKcspPFyLLcnk3WkCiqceBQPQyk
> R2T: https://groups.google.com/a/chromium.org/g/blink-dev/c/W7TcX1tSHDI/m/1AthUhEWBAAJ
> I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/TpAvyXwHM_c/m/QXJKbClfAwAJ
> Stage in m92 Canary 92 92.0.4500.0 Dev 92 92.0.4503.3 Beta 92 92.0.4515.40
> https://chromiumdash.appspot.com/commit/eb6482784ca71d3b22db449fd941bfa9872d244a
>
>
> Bug: v8:7051, v8:11868, v8:11869
> Change-Id: Id1ae20234b764e6f6def83af651daf70056d0725
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2950559
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75194}

Bug: v8:7051, v8:11868, v8:11869
Change-Id: I1c5d2c2201f7724eb7db67f2c5268b787d6ca8eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973649
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75263}
2021-06-18 22:22:53 +00:00
Frank Tang
0f24696c71 Revert "[intl] Improve test coverage of "best fit" localeMatcher"
This reverts commit dd8845cd74.

Reason for revert: Performance regression

Original change's description:
> [intl] Improve test coverage of "best fit" localeMatcher
>
> https: //docs.google.com/document/d/1cPGfiihn76yj2iAomKcspPFyLLcnk3WkCiqceBQPQyk/edit#heading=h.cc9tt7s0iwsd
> Bug: v8:7051
> Change-Id: I8c35e859062c5bdb009334dd1b725751e6df2123
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2965481
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75228}

Bug: v8:7051
Change-Id: I4cf9484d727291ebc2868e3594ab1f18b19bec6b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973227
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Frank Tang <ftang@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75262}
2021-06-18 21:27:21 +00:00
Junliang Yan
b81d383859 ppc: Add STHBRX to assembler/disasm/simulator
Change-Id: Ie092921e4a9c1e4a0acee827f73570f3f9617712
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971557
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75261}
2021-06-18 20:29:51 +00:00
Milad Fa
b90cf28279 PPC: Use CleanUInt32 instead of clrldi
Change-Id: I2335844f500790ccd3223c37768b6811daefbf66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971555
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75260}
2021-06-18 20:28:46 +00:00
Manos Koukoutos
4f808daee0 [wasm] Move DecodeFunctionBody to the public section
It will be used by consume_init_expr().

Bug: v8:11895
Change-Id: I577b5126a3c2cd0a6075ff9f085b4c93a8554846
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972906
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75259}
2021-06-18 19:53:07 +00:00
Junliang Yan
e2efe88e19 ppc: [liftoff] implement Load function
Change-Id: I568516149f49b7724680d9dfae6e078eb07a8b44
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971552
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75258}
2021-06-18 19:26:46 +00:00
Milad Fa
009c16f261 PPC/s390: Fix comment pointing to frame-constants.h
Port f09de17ca7

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

Change-Id: I3b8c3df178a281b5195da649048e7c722516fd45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2971551
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75257}
2021-06-18 19:08:16 +00:00
Ng Zhi An
f09de17ca7 Fix comment pointing to frame-constants.h
Bug: v8:11879
Change-Id: I8a7643b8b6226cdae4fb5f741a2b50f82d1894bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973212
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75256}
2021-06-18 18:19:26 +00:00
Peter Kasting
207e7df0e6 Fix some -Wdeprecated-copy warnings.
Bug: chromium:1221591
Change-Id: Ie24334873d1e66de0e0aa90fa1fb49d4290b7b59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2973214
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75255}
2021-06-18 18:08:15 +00:00
Milad Fa
fb83bded06 S390: refetch the address of supports_wasm_simd_128_address when popping
Change-Id: I22345aef595be1e5daef0604139e39337f003f15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972734
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75254}
2021-06-18 18:06:56 +00:00
Junliang Yan
2a7bdf4bc6 ppc: implement LE version of mem operation
Change-Id: I39d7e9aa098e83c9268736cac993c69eccef0015
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972735
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75253}
2021-06-18 17:51:57 +00:00
Manos Koukoutos
5a5b328cf4 [wasm] Remove MemoryAccessImmediate constructor
When we later introduce an additional template argument to WasmDecoder,
we will have to add it here too, as well as in all places which use
MemoryAccessImmediate. It is simpler to have a helper function in
WasmDecoder to fetch the 64-bit memory status.

Bug: v8:11895
Change-Id: I08edbf4e825cd148b30b2a5c0d04a26dfbaed186
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972905
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75252}
2021-06-18 16:24:07 +00:00
Manos Koukoutos
29dbe17726 [wasm] Split interface functions
Split interface functions into constant, non-constant, and meta
functions. This will be useful once initializer expression decoding is
implemented as an interface for WasmFullDecoder.
Additionally, add ArrayInit() interface function (currently unused).

Bug: v8:11895
Change-Id: If076fe47871868c2d754f9c72c865f0a7f9f97d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964609
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75251}
2021-06-18 15:42:57 +00:00
Patrick Thier
24c626c1f7 Improve error messages for property access on null/undefined
Only print the property name when accessing null/undefined if we can
convert it to a string without causing side effects.
If we can't, omit the property name in the error message.
This should avoid confusion when the key is an object with toString().
E.g. undefined[{toString:()=>'a'}] doesn't print 'read property [object
Object]' anymore, which was misleading since the property accessed would
be 'a', but we can't evaluate the key without side effects.

Bug: v8:11365
Change-Id: If82d1adb42561d4851e2bd2ca297a1c71738aee8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960211
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75250}
2021-06-18 14:47:08 +00:00