Commit Graph

70086 Commits

Author SHA1 Message Date
Emanuel Ziegler
2acaa66ffa [wasm] Replace FunctionSizeBytes histograms with HugeFunctionSizeBytes
We only care about huge functions (>100kB) as they can cause extended
compilation times and OOM situations. These are difficult to see in the
existing histogram as they only account for a tiny fraction of functions.
We therefore introduce a new counter that only covers those functions
and remove the other histogram.

Bug: chromium:1222273
Change-Id: I72fcec3fda5a358de6e29eb78d1fcf40059fb6c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008646
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75594}
2021-07-07 08:21:00 +00:00
v8-ci-autoroll-builder
4544da7baf Update V8 DEPS.
Rolling v8/build: ced9667..8969ad2

Rolling v8/buildtools/third_party/libc++abi/trunk: ae0481e..d87a06d

Rolling v8/buildtools/third_party/libunwind/trunk: 5f424e3..e7ac0f8

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/de5768d..096f6b4

Rolling v8/tools/clang: 081034a..ccc7ba2

Rolling v8/tools/luci-go: git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b..git_revision:3501536c6f762461d322d6694711bb384ffce6f2

Rolling v8/tools/luci-go: git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b..git_revision:3501536c6f762461d322d6694711bb384ffce6f2

Rolling v8/tools/luci-go: git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b..git_revision:3501536c6f762461d322d6694711bb384ffce6f2

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

Change-Id: Iac99d089064a592e9de2f3e6d21a4fb9a1be862f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3009800
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@{#75593}
2021-07-07 03:51:59 +00:00
Liu Yu
ea1a1a5be9 [mips][sparkplug] Fix AddToInterruptBudgetAndJumpIfNotExceeded
Bug: v8:11420
Change-Id: Ic2744f59b697d4b229ea5cd3055a396c616fc14b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3007181
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75592}
2021-07-07 02:56:50 +00:00
Milad Fa
798caa85d6 S390: optimize loading of reversed bytes
This adds a check similar to Word32ReverseBytes.

Change-Id: I3a75f29ae1b9cb75dd0fda471d6d42ca21915bf9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3009795
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75591}
2021-07-06 18:31:19 +00:00
Z Nguyen-Huu
ae95f46dc5 Use type feedback to improve exponentiation.
With this change, we use Float64Pow for both Smi and Float inputs, also
introduce new speculative operator.

For this PoC
==========================================================
let result = [NaN]; // Avoid HeapNumber-boxing the results.

function slow(){
  for(let i = 0; i < 100000000; i++) {
    result[0] = i ** 2;
  }
}

start = Date.now();
slow();
console.log(Date.now() - start);
==========================================================
Before: 1313
After: 112

Bug: v8:11731
Change-Id: I07a1bde068bef8184b9f556be9d1fe2d6a288705
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960064
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75590}
2021-07-06 17:18:18 +00:00
Camillo Bruni
1d9be5dc38 [runtime][printer] Fix JSGlobalProxy short printing
Change-Id: Ia3170ef243a988c05f5892893b80b5b0a4f43b0a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008895
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75589}
2021-07-06 15:29:38 +00:00
Toon Verwaest
1a60e9291e [parser] Move extension_ from parserbase to parser
The preparser doesn't support extension parsing so always return false
there, and move the field to the parser instead.

Change-Id: Ie9ad0bd710858120467eb709ec92e59b38eaffba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3009214
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75588}
2021-07-06 14:49:07 +00:00
Mike Stanton
758816f438 [compiler] Representation mismatch detection missed a case
In GetOwnFastDataPropertyFromHeap, we read a property value
then compare it with the expected representation. We already
had code to bail out of that particular optimization if there
was a mismatch, however it missed the case of expected
representation being a HeapObject, and when a Smi value was found.

The fix is to use the excellent pre-existing method
Object::FitsRepresentation() to make this check. Thusly, all
cases are handled.

Bug: chromium:1225607, v8:7790
Change-Id: I7d9b1b7722d9691cf5427f8456a6deb466dda0d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008218
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75587}
2021-07-06 13:05:47 +00:00
Mike Stanton
6a1063c899 [compiler] TSAN data race on HeapNumber::value_as_bits()
TurboFan reads the value in HeapNumber, and TSAN detects a data
race between this read and sets on the main thread elsewhere.
We mark this as relaxed atomic (meaning, correct value of the read
is not guaranteed). The compiler uses the dependency mechanism
to re-read the value safely on the main thread later, and aborts
compilation if a change is detected.

Bug: chromium:1224277, v8:7790
Change-Id: I8931d8989812550c0c57b6bd27aa796f6f5e779d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2996201
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75586}
2021-07-06 13:04:17 +00:00
Santiago Aboy Solanes
a2b76fa7c3 [turbolizer] Solve bug where the node 0 was not being selected
In the schedule phase (and only in this phase!) the node 0 was not
being selected due to `!0` being true. We meant to be checking
against undefined rather than this.

Bug: v8:7327
Notry: true
Change-Id: Ie675979219868725b0e345065cec7a2a7091fda8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008215
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75585}
2021-07-06 13:03:57 +00:00
Junliang Yan
2889a3c2bb ppc: [liftoff] Implement and clean up AddS64
Change-Id: I1b1d8d0485f037ba5c105741039e62db87fd2b6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008642
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75584}
2021-07-06 12:59:07 +00:00
Camillo Bruni
b8b3e75cb1 [runtime] Add debugger RCS scopes
Add and use two new RCS scopes:
- RuntimeCallCounterId::kDebugger
- RuntimeCallCounterId::kDebuggerCallback

Change-Id: Ifd326424248948d0d5c1e0e29cacaecc92046e88
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006415
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75583}
2021-07-06 12:48:07 +00:00
Dominik Inführ
d1f2a83b7d [heap] Support transitioning of code objects
This CL adds support for updating code objects. So far code objects
were immutable. Sparkplug makes compilation a very frequent operation
and thus wants to avoid copying the instruction stream from the
AssemblerBuffer into the code object (with more overhead that entails).
The idea is to allocate an "empty" Code object initially, which is
likely large enough to hold the full instruction stream. Then Sparkplug
will compile the given function and write the instruction stream
directly into the code object. After compilation is done Sparkplug trims
the Code to the right size and finishes its initialization.

We use relocation_info to determine whether a Code object is fully
initialized: undefined means that this object is filled by SparkPlug
at the moment. If it's a proper ByteArray, this code object is assumed
to be initialized. Turbofan still fully initializes the Code object
immediately.

Before changing the size of the code object, EnsureSweepingCompleted()
makes sure that the code object's page is swept already. This prevents
that the concurrent sweeper loads the new and smaller object size and
stores that memory in the free list.

NotifyCodeObjectChanged() signals the GC that the code object is now
fully initialized and revisits that object (even if it is black already)
to find and record outgoing references in the instruction stream.

Design doc: https://docs.google.com/document/d/12LHGkRXY1H3IFMBrdxs2vhgtG9bfJTdquQUsX1oPoSE/edit?usp=sharing

Bug: v8:11872
Change-Id: Ie1b95b27842eea5ec7e9d345052585a27d6ea7f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999087
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75582}
2021-07-06 12:14:07 +00:00
Michael Lippautz
a420ea54e3 cppgc: Add testing infra to regular targets
There's only few testing code required for embedders. Add testing
directly to the regular cppgc target to allow working around an ODR
violation issue with //v8:v8 and //v8:v8_for_testing, see bug.

This unblock Oilpan library builds in Chromium.

Bug: v8:11952, chromium:1056170
Change-Id: I0f0448faa0904b9ece58bd5a24c79c86ee55e2bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008216
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75581}
2021-07-06 11:04:07 +00:00
Sigurd Schneider
668e48bd49 Suppress exceptions due to exception meta-data
Associating exception meta-data may throw an exception if the
browser is under memory pressure. This CL adds a try-catch
scope to prevent surfacing of said exceptions in Chrome.

Bug: chromium:1226360
Change-Id: Ide969273b2ac6dc109370ba2adcb20586ef30bff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008214
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75580}
2021-07-06 11:00:08 +00:00
Liu Yu
dc6acd1533 [mips][wasm][liftoff] Detect SIMD NaNs for fuzzing
Port: 6f48b7b369

Bug: v8:11856
Change-Id: I1828e307caa55a31090e09b6e24b3d6317fdf6fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3007176
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@{#75579}
2021-07-06 10:35:37 +00:00
v8-ci-autoroll-builder
3918b688db Update V8 DEPS.
Rolling v8/build: a0862c3..ced9667

Rolling v8/buildtools/linux64: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062

Rolling v8/tools/clang: e1e56a5..081034a

Rolling v8/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b

Rolling v8/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b

Rolling v8/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b

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

Change-Id: I28f68680c554a54623bbeff106b3c6aafcde61f3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008257
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@{#75578}
2021-07-06 10:32:15 +00:00
Leszek Swirski
94cd8b6459 Revert "Reland "Improve error messages for property access on null/undefined""
This reverts commit 8b18c5e6a5.

Reason for revert: Still failing: https://test-results.appspot.com/data/layout_results/V8_Blink_Linux/12469/blink_web_tests%20%28retry%20shards%20with%20patch%29/layout-test-results/results.html

Original change's description:
> Reland "Improve error messages for property access on null/undefined"
>
> This is a reland of 24c626c1f7
>
> 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: Ie2312337f4f1915faa31528a728d90833d80dbd1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979599
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Patrick Thier <pthier@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75571}

Bug: v8:11365
Change-Id: Ic4137f0d70fa9b10ca70fa921b98ea7e1499f11b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3008217
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#75577}
2021-07-06 09:46:11 +00:00
Santiago Aboy Solanes
f89ecbb1a7 [turbolizer] Connect the register allocation phase with the other panels
Now we can click any panel and connect to the others via highlight. Note
that we do not have a bijection between panels and (e.g. one node can be
several instructions in the generated code.

Bug: v8:7327, v8:11192
Notry: true
Change-Id: Idfabce98bfdfc1b6cd26d540e6f0bbac47754de1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001175
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75576}
2021-07-06 08:44:40 +00:00
Santiago Aboy Solanes
4069580792 [turbolizer] Make the instructions in register allocator highlightable
Now, when we click an instruction in the register allocation phase we
will have highlighted both the middle panel and right panel.
Previously only the right panel was highlighted.

Note that the reverse is not yet true (i.e. clickin the right panel
does not highlight the middle panel).

Bug: v8:7327
Notry: true
Change-Id: Ia45d54a33587eac3706d5fbf56e01f19d6f94144
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001170
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75575}
2021-07-06 08:38:01 +00:00
Santiago Aboy Solanes
d3e4498449 [turbolizer] Link the source text and disassembly code
If you now click a line number on the source panel (left panel) you will
get the nodes (middle panel) highlighted and the disassembly code (right
panel). As a bonus, you can click on the middle or right panels and get
the same result (i.e. you can click on a disassembly instruction and see
the highlighted source text and nodes).

Note that not all source text has a node or disassembly instruction
associated with it.

Bug: v8:7327, v8:11192
Notry: true
Change-Id: Ia20aff02407e0d9d118c26a0b5895ee521288565
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3000965
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75574}
2021-07-06 08:32:50 +00:00
Maya Lekova
5db480e3f2 Revert "Update V8 DEPS."
This reverts commit d42ae8021a.

Reason for revert: Broke Mac64 ASAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Mac64%20ASAN%20-%20release%20builder/23150/overview

Original change's description:
> Update V8 DEPS.
>
> Rolling v8/build: a0862c3..05e78ec
>
> Rolling v8/buildtools/linux64: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062
>
> Rolling v8/tools/clang: e1e56a5..081034a
>
> TBR=v8-waterfall-sheriff@grotations.appspotmail.com,mtv-sf-v8-sheriff@grotations.appspotmail.com
>
> Change-Id: Ic1191777085e8afc6f356fd2563fa27a13ec58a8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3007654
> 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@{#75570}

Change-Id: I4e3435c5ec778bb7f61b6919dd13f09d0d767753
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006579
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@{#75573}
2021-07-06 08:08:17 +00:00
Wenyu Zhao
c25a324d2b [heap] Allow TPH to access some heap private interfaces.
This CL make TPH be able to access some heap private interfaces, by
marking TPH classes as friend classes.

Bug: v8:11641
Change-Id: I72aebf267c8f36593f50279bec5dccb44cda9528
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2994220
Auto-Submit: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Wenyu Zhao <wenyu.zhao@anu.edu.au>
Cr-Commit-Position: refs/heads/master@{#75572}
2021-07-06 08:07:27 +00:00
Patrick Thier
8b18c5e6a5 Reland "Improve error messages for property access on null/undefined"
This is a reland of 24c626c1f7

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: Ie2312337f4f1915faa31528a728d90833d80dbd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979599
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75571}
2021-07-06 08:07:21 +00:00
v8-ci-autoroll-builder
d42ae8021a Update V8 DEPS.
Rolling v8/build: a0862c3..05e78ec

Rolling v8/buildtools/linux64: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062

Rolling v8/tools/clang: e1e56a5..081034a

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

Change-Id: Ic1191777085e8afc6f356fd2563fa27a13ec58a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3007654
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@{#75570}
2021-07-06 03:58:32 +00:00
Camillo Bruni
e4494edd6d [tools] Add README.md file and package.json for local development
Bug: v8:10644
Change-Id: Ic8fa0100a1e276f6c8f7c70b325718d5bdf9123e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001349
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75569}
2021-07-05 16:43:28 +00:00
Santiago Aboy Solanes
baf4c37716 [compiler] Perform Map's accessors atomically for no-cm
We were already performing these accessors in an atomic relaxed way for
concurrent marking. In no-cm builds I thought we could get away with
performing it non-atomically but we are seeing TSAN warnings.

Bug: v8:7790, v8:11945
Change-Id: I4f3b1be3e2ae726ac15777e6eb464979b3c0159c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001179
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75568}
2021-07-05 16:16:58 +00:00
Victor Gomes
b0067a2364 [bazel] Adds js_protocol.pdl as dep to generated_inspector_files
No-Try: true
Bug: v8:11234
Change-Id: Icb1f40c18334f22c5d3afbf028eac79ab22610a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006635
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75567}
2021-07-05 15:11:28 +00:00
Victor Gomes
f8ab795739 [bazel] Remove linkstatic from v8_library
We do not need to force the library to be linked statically.

No-Try: true
Change-Id: Ib2c639fa8c0f0857a902ccf80fff1ef0a17278c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006636
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75566}
2021-07-05 15:10:38 +00:00
v8-ci-autoroll-builder
b5b3e11776 Update V8 DEPS.
Rolling v8/build: 3cf06a3..a0862c3

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

Change-Id: I5a9f0ed25ca228f0ce17cbdf03611d82bcde4b82
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006535
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@{#75565}
2021-07-05 15:06:37 +00:00
Milad Fa
052588f05d PPC/s390: Reland "[wasm][liftoff][ia32][x64] Detect SIMD NaNs for fuzzing"
Port 6f48b7b369

Original Commit Message:

    This is a reland of b0bcedccfd
    Changes:
    - Consistently use int32_t for max_steps and nondeterminism
    - Skip SIMD tests on architectures that don't support it

    Original change's description:
    > [wasm][liftoff][ia32][x64] Detect SIMD NaNs for fuzzing
    >
    > R=clemensb@chromium.org
    >
    > Bug: v8:11856
    > Change-Id: I9764e3e2944690ed0883afdab20afd47fdd4acfa
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979605
    > Reviewed-by: Clemens Backes <clemensb@chromium.org>
    > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#75512}

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

Change-Id: I5d0281bb9668c22d9d068fdf95bc80404b982744
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006474
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#75564}
2021-07-05 15:01:57 +00:00
Yang Guo
36d4e8e15a Remove dead code around catch scope for desugaring
Bug: none
Change-Id: I634631515e392198c5a6c885ab033035ead97f25
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003468
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75563}
2021-07-05 14:41:48 +00:00
Clemens Backes
a41f5bee79 [wasm] Only print compiler for proper functions
The new DCHECK fires when the tier was set to {kNone}, which was the
case for wrappers.
Since the compiler is only interesting for proper Wasm functions, we
keep the DCHECK but only print the compiler for code objects that
represent actual Wasm functions.

R=thibaudm@chromium.org

Bug: chromium:1223839
Change-Id: Icc0f13b34b53fee2a8d53857a4769ab4d80ab805
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003467
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75562}
2021-07-05 14:29:37 +00:00
Michael Achenbach
a1116f2d69 [test] Move mac-arm64 testing to chromium.test
The Chromium testing pool now has a sufficient number of devices for
testing. The old pool is deprecated.

No-Try: true
Bug: chromium:1226561
Change-Id: I6a985da860d4d2d5a30ccfd2c6593cce54b930c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3006414
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75561}
2021-07-05 14:19:57 +00:00
Clemens Backes
18fbc33ea4 [wasm][fuzzer] Remove unused arguments
The number of arguments and their values were generated and passed by
the individual fuzzers, but were unused by the caller. Instead, default
arguments are generated in {MakeDefaultInterpreterArguments} and
{MakeDefaultArguments}.
Thus this CL removes the dead parameters and assignments.

R=ahaas@chromium.org

Change-Id: I5ca5b06a0848c2a89e70ed739f44bc2161fcb2bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003464
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75560}
2021-07-05 14:10:57 +00:00
Liu Yu
4cb591e873 [mips32] Fix the use of callee-saved registers for RecordWrite
this is related to commit 6d54d94845

Bug: v8:11420
Change-Id: I8e19b8a960fc7a1c499e04a170a4439f38750205
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3005678
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#75559}
2021-07-05 13:57:12 +00:00
Clemens Backes
bcda3b68d0 [wasm] Rename use_trap_handler fields to bounds_checks
This is a three-state field now: kTrapHandler, kExplicitBoundsChecks,
kNoBoundsChecks. It is set once based on the flags
(--wasm-bounds-checks and --wasm-enforce-bounds-checks) and depending on
whether the signal handler for wasm trap handling was installed. All
compilation then only uses the field value, and does not need to check
any flags any more.

R=ahaas@chromium.org

Bug: v8:11926
Change-Id: I2c0eb5ecb742ee65d1c10e4dceff7204119dab7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2996191
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75558}
2021-07-05 13:38:58 +00:00
Thibaud Michaud
6f48b7b369 Reland "[wasm][liftoff][ia32][x64] Detect SIMD NaNs for fuzzing"
This is a reland of b0bcedccfd
Changes:
- Consistently use int32_t for max_steps and nondeterminism
- Skip SIMD tests on architectures that don't support it

Original change's description:
> [wasm][liftoff][ia32][x64] Detect SIMD NaNs for fuzzing
>
> R=clemensb@chromium.org
>
> Bug: v8:11856
> Change-Id: I9764e3e2944690ed0883afdab20afd47fdd4acfa
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2979605
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#75512}

Bug: v8:11856
Change-Id: I0a7858d1c21c0dfb961b9b2c3fa1074f9362886a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001178
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75557}
2021-07-05 13:21:13 +00:00
Benedikt Meurer
32328edd54 [inspector] Add throwOnSideEffect to Runtime.callFunctionOn.
In order to implement eager (side effect free) evaluation of arbitrary
accessor properties correctly, we need the ability to call getters while
guaranteeing that we don't trigger side effects. This is accomplished by
adding a `throwOnSideEffect` flag to the `Runtime.callFunctionOn` API,
similar to what's already available with the `Runtime.evaluate` and the
`Debugger.evaluateOnCallFrame` APIs.

Bug: chromium:1076820, chromium:1119900, chromium:1222114
Change-Id: If2d6c51376669cbc71a9dd3c79403d24d62aee43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001360
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75556}
2021-07-05 12:53:07 +00:00
Liviu Rau
b844d0f4b7 Build clang for gcmole bootstrap
Bug: v8:11169
Change-Id: I32e9bb1f91c9583e900c96e158d66407d5560868
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003466
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75555}
2021-07-05 12:39:37 +00:00
Clemens Backes
13d9ccfcf2 [liftoff] Avoid unneeded protected instruction information
For static OOB accesses in Liftoff we were adding a protected
instruction information, mapping the PC of a jump instruction to the
landing pad. This is not needed, as the jump instruction is not supposed
to trigger a signal.
This CL slightly refactors the code to avoid this protected instruction
information, and resolves the old TODO.

R=ahaas@chromium.org

Change-Id: I668f3ec6a0815af83cbc04fb307744000166fb8e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003156
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75554}
2021-07-05 11:42:17 +00:00
Georg Neis
ce08dec035 [compiler] Fix a (harmless) DCHECK failure
A frame state's outer frame state input can be kDeadValue. A DCHECK
did not take that into account. In release builds there was no issue
because we branch on the opcode anyways.

While fixing this bug, I'm strengthening the FrameState class such that
a FrameState node must have a kFrameState operator. I'm also
- changing the result type of outer_frame_state() from FrameState to
  Node* since it may in fact not be a kFrameState;
- removing has_outer_frame_state() because I find it unintuitive to
  have outer_frame_state() return non-NULL even when
  has_outer_frame_state() would return true.

Bug: chromium:1224758
Change-Id: I8ebed75c62e31f7eef71e2941fd18869d8a56af3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001356
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75553}
2021-07-05 11:17:17 +00:00
Yang Guo
ef65e936d6 [debug] skip some work when exception events are not enabled
Bug: none
Change-Id: I95060382c0e10a252f1cec7b2d2c4b44f757b5f2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003154
Commit-Queue: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75552}
2021-07-05 10:04:47 +00:00
Santiago Aboy Solanes
969e1c5ef6 [compiler] Mark Name and its subclasses as NeverEverSerialized
Mark:
 * InternalizedString
 * String
 * Symbol
 * Name

Bug: v8:7790
Change-Id: I17463d51ffe8a50711f5b4916c9beb369bac7f38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2982480
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75551}
2021-07-05 09:34:38 +00:00
Yang Guo
1f66a47a9b Remove Runtime_PromiseMarkAsHandled
Bug: none
Change-Id: Icbc00fcdba6e408f34ac487b05e36deb71976e11
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001357
Commit-Queue: Yang Guo <yangguo@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75550}
2021-07-05 09:26:07 +00:00
Camillo Bruni
212d6678e7 [tools][system-analyzer] Various improvements
- Change Group.prototype.size to .length
- Use window.requestAnimationFrame when streaming-loading files to show
  the loading animation
- Limit width of the timeline-track legend and add 'title' attribute
  to show the full text when cropped
- Add duration for selected timeline events in timeline-track legend
- Better error message when the local symbol server is not available

Bug: v8:10644
Change-Id: Icdf2042341c9355ecb55e2fd8e6a4fa0feb5968f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003151
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75549}
2021-07-05 09:12:57 +00:00
Dan Elphick
3e1d2221ac [snapshot] Add flag to skip checksumming
For very large snapshots, calculating the checksum of the snapshot can
take at least 30% of the time to deserialize the snapshot, so add a flag
to skip it.

Change-Id: I8f3418f1d1e9f984e7334ac51096a1a166874722
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001176
Auto-Submit: Dan Elphick <delphick@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75548}
2021-07-05 08:01:47 +00:00
Piotr Tworek
3b3c7d92d9 Fix v8 unittests broken on official builds by recent crash logging changes
Commit 26d85acee2 "Use IMMEDIATE_CRASH on
official build FATAL errors." has changed how FATAL macro behaves on
such builds. Unfortunately this affects logging and
random number generator v8 unittests which use ASSERT_DEATH_IF_SUPPORTED
macro. After the change we no longer get any v8 CHECK crash messages on
official builds thus failing those tests.

Fix this by adjusting failing test expectations to reflect the new,
expected results v8 now has on official builds.

Change-Id: Ice9718c5e887b42a0cfd583340256f7d2591add4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2991238
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Patrick Thier <pthier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75547}
2021-07-05 07:38:47 +00:00
Joyee Cheung
22bee2c921 [serializer] print reference stack when external reference is unknown
Print the reference stack when V8 is unable to encode an external
reference in debug builds so that it's easier for the embedder
to track the external reference down.

Refs: https://github.com/nodejs/node/pull/38905
Change-Id: Ia86eeb87833d7de0eccc7bc040301c78ddb3240c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2988831
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#75546}
2021-07-05 07:33:57 +00:00
v8-ci-autoroll-builder
103f5dbf84 Update V8 DEPS.
Rolling v8/build: dcc42e4..3cf06a3

Rolling v8/buildtools/third_party/libunwind/trunk: ed4a85e..5f424e3

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

Change-Id: If661c9f551391cb1f1c66765dc87c25c0eaf5fd3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3005143
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@{#75545}
2021-07-05 03:47:57 +00:00