Commit Graph

66814 Commits

Author SHA1 Message Date
Milad Fa
19b7ff412d cppgc: Fix compilation error on older gcc compilers
Without the added header the following compilation
error might occur:

error: ‘size_t’ does not name a type

Change-Id: I021f6ce7b9691f76f0c439265850f1f4fc50685c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2645160
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72272}
2021-01-22 23:13:30 +00:00
Jakob Kummerow
ec143a63cd [mac-arm] Fix typo in preprocessor check
Change-Id: Ic1130d1bba3f70906cd39685bfa45b214424c2e3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644952
Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72271}
2021-01-22 22:19:49 +00:00
Jakob Kummerow
ec5b796ffd [wasm-gc] Liftoff support part 6: funcrefs
This implements support for the following instructions:
ref.func, call_ref, return_call_ref

Bug: v8:7748,v8:9495
Change-Id: If5bdc2b9bc2347de056de2917430b8d9dc901c53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2632591
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72270}
2021-01-22 21:38:55 +00:00
Michael Lippautz
6d11bcda29 cppgc: Introduce ObjectSizeTrait
Users of padded objects must know the actual object size for
implementing custom finalizers.

Bug: chromium:1056170
Change-Id: I0ddf9066cfece0a8d18a9e6fd985d09449eea92a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644941
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72269}
2021-01-22 20:53:55 +00:00
Michael Lippautz
03cea71144 cppgc: Fix GC traits and add documentation
- Adds IsGarbageCollectedWithMixin<T> to check for mixin applications.
- Add documentation to all trait values.

Bug: chromium:1056170
Change-Id: I22c255c36c791a5ff9b38d034f205f1e23c968ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644951
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72268}
2021-01-22 20:27:09 +00:00
Ng Zhi An
b7a30f18de [wasm-simd][fuzzer] Add i64x2.widen_i32x4_{s,u}
Bug: v8:10972
Change-Id: I00651064c1c17ce4ddc8669f00f904257387d613
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644068
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72267}
2021-01-22 19:52:05 +00:00
Omer Katz
ae8930002e cppgc: Add object/memory size histograms for UMA
Bug: chromium:1056170
Change-Id: I3d6cbff3e37bb541481a014056e539bd4824c37c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642259
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72266}
2021-01-22 17:25:42 +00:00
Omer Katz
0ac80246a5 cppgc: Fix missing scope in CppHeap
CppHeap was missing a scope for incremental marking.

This CL also introduces NestedEmbedderStepScope which is used for
identifying nested samples to avoid double accounting in UMA.

Bug: chromium:1056170
Change-Id: I8bba3fbfe6d098fe6861d1cfe5df8b88b4ac0fea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642260
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72265}
2021-01-22 17:20:33 +00:00
Victor Gomes
f5eae65a30 [cleanup] Remove IrOpcode::kArgumentsFrame
After removing the arguments adaptor frame, this should not be needed anymore.

Removes ArgumentFrame from the following nodes:
- ArgumentsLength
- RestLength
- NewArgumentsElements

Also removes 'formal parameter count' as input of ArgumentsLength.

Adapt the escape analysis to use the frame pointer directly instead of the ArgumentsFrame node.

Change-Id: I0ead48a6ee05a10d05d6cfa2e46906ad69930986
Bug: v8:11306
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639765
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72264}
2021-01-22 17:01:23 +00:00
Victor Gomes
41c3140b16 [cleanup] Simplify CallOrConstructForwardVarargs
Removes unnecessary move after the removal of the arguments adaptor frame

Change-Id: If92b9505ca23bb06a01bd25ba8e9664697d381f8
Bug: v8:11307
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639759
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72263}
2021-01-22 16:51:03 +00:00
Michael Lippautz
373803c959 cppgc: Fix IsGarabgeCollected trait and friends
The TraceTrait<T> checks whether T is a mixin to decide whether we can
use the fast (arithmetic) or slow (bitmap) method to look up the HoH.
Before this CL, the mixin application would also be considered as a
mixin because the marker is present, resulting in all cases going
through the object start bitmap.

The initial intention was to use the arithmetic for the mixin
applications as those inherit from GCed.

Bug: chromium:1056170
Change-Id: Ib0ba82a8f98e0481d2879ebacc1ca9bd9e675858
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643395
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72262}
2021-01-22 16:20:46 +00:00
Junliang Yan
7938d3a6ca s390x: fix compilation error due to typo
Change-Id: I048f1f1ba6018681370681d5fca33bc09cfca47e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643135
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72261}
2021-01-22 15:56:56 +00:00
Mike Stanton
3fb206764d [TurboFan] Never serialize FeedbackCells
The compiler is only interested in the contents if it contains a
FeedbackVector. If one is discovered, it is serialized, and we
ensure we'll either return it or nothing if the contents of
the cell changed on the main thread.

FeedbackCells can be reset if the bytecode for the associated
function is flushed. We have guarantees only for functions we
choose to inline that this doesn't happen (by holding a strong
handle to the SharedFunctionInfo).

Bug: v8:7790
Change-Id: I9ecff3f4aef39169d84501feae9e47f2d118054e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2434324
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72260}
2021-01-22 15:45:16 +00:00
Andreas Haas
5654bf0de9 [wasm][liftoff] Add support for mutable imported externref globals
R=thibaudm@chromium.org

Bug: v8:7581
Change-Id: Iacc453588e93ad7afb46e388cdd3b763781b0485
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637860
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72259}
2021-01-22 15:37:51 +00:00
Santiago Aboy Solanes
aa0b5a42de [compiler] Better encapsulation of MapData and DescriptorArrayData
Maps and DescriptorArrays are intertwined, but we can separate the
DescriptorArray's information inside DescriptorArrayData. Also,
encapsulate DescriptorArrayData's content and don't return the ZoneMap
as a value.

Bug: v8:7790
Change-Id: Icc29737e4dd9dd33b887e93d4ecd1e3f5aac1153
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2624613
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72258}
2021-01-22 15:36:46 +00:00
Milad Fa
494a38006e PPC/s390: [wasm-simd] Move i64x2.widen_i32x4_{s,u} to mvp and remove ifdefs
Port ec8fbed745

Original Commit Message:

    These instructions were accepted into the proposal:
    https://github.com/WebAssembly/simd/pull/290

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

Change-Id: I69bbe90ab3af30d7748332a7e99b7812c95f96b4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644939
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72257}
2021-01-22 15:31:06 +00:00
Omer Katz
adda4c5f98 cppgc: Add UMA support
This CL introduces cppgc::HistogramRecorder api which is similar to the
v8::metrics::Recorder api and is used by cppgc to report histogram
samples to embedders. Embedders should implement the api if they want to
collect histograms and provide an instance of it on heap creation.

CppHeap uses an adaptor class that implements the HistogramRecorder api
and is used to forward the relevant info to the relevant
v8::metrics::Recorder.

The api used 3 data structures: 2 for incremental steps that need to be
reported as they come (marking and sweeping) and 1 for the end of a GC
cycle that aggregates statistics over the entire cycle.
The data structure only provide the "raw" samples (e.g. atomic mark
time, incremental mark time, etc...). The embedder is expected to
compute aggregate histogram on its own (e.g. overall marking time).

Bug: chromium:1056170
Change-Id: If63ef50a29a21594f654edb83084598980d221ce
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642258
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72256}
2021-01-22 15:04:35 +00:00
Jan Wilken Dörrie
987f0b75bb [C++17] Apply consistent use of noexcept
In C++17 noexcept becomes part of the type system and thus needs to be
consistently applied between function declarations and definitions.

Change-Id: Ia34faa9d9d1f18916655fd5a1a8ec9f6b414f1e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643391
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72255}
2021-01-22 14:27:49 +00:00
Peter Marshall
93f8a86766 Reland "[cpu-profiler] Use base::LeakyObject for static CodeEntry objects"
This is a reland of c594a20ed3

Moved the getters to the .cc file to avoid link problems as they
are not performance critical anyway.

Moved ProfileNode::source_type to cc as it uses the _entry() functions
which are no longer inline.

Original change's description:
> [cpu-profiler] Use base::LeakyObject for static CodeEntry objects
>
> This is preferred over the older LazyInstance based stuff, and has
> a lot less boilerplate and is easier to follow.
>
> Bug: v8:8600
> Change-Id: I7c5c5ae04c064b0fc598dc01f1ed5442dc21a17b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640475
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72224}

Bug: v8:8600
Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng
Change-Id: I0ad9118e6d3bd087707609714b20aee1cbc4f459
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642252
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72254}
2021-01-22 13:59:53 +00:00
Paolo Severini
51ecfaec3a Revert "Reland "Faster JS-to-Wasm calls""
This reverts commit 6ada6a90ee.

Reason for revert: Revert for link issue:
https://bugs.chromium.org/p/v8/issues/detail?id=11335

Original change's description:
> Reland "Faster JS-to-Wasm calls"
>
> This is a reland of 860fcb1bd2
>
> - Disabled the tests for this feature in V8-lite mode (the original
> change broke V8-lite tests)
> - Also modified test console-profile-wasm.js that was brittle with this
> change because it assumed that there was always a JS-to-Wasm wrapper
> but this is not the case when the TurboFan compilation completes before
> the Liftoff-compiled code starts to run.
>
> More changes in Patchset 8:
>
> - Moved inlining of the "JSToWasm Wrapper" away from simplified-lowering,
> into a new phase, wasm-inlining that reuses the JSInliner reducer.
> The doc
> https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit#
> describes the new logic.
>
> - Fixed a couple of small issues in wasm_compiler.cc to make sure that
> the graph "JSToWasm Wrapper" subgraph has a valid Control chain;
> this should solve the problem we had inlining the calls in functions
> that can throw exception.
>
>
> Original change's description:
> > Faster JS-to-Wasm calls
> >
> > This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/.
> >
> > Currently JS-to-Wasm calls go through a wrapper/trampoline, built on
> > the basis of the signature of a Wasm function to call, and whose task
> > is to:
> > - set "thread_in_wasm_flag" to true
> > - convert the arguments from tagged types into Wasm native types
> > - calculate the address of the Wasm function to call and call it
> > - convert back the result from Wasm native types into tagged types
> > - reset "thread_in_wasm_flag" to false.
> >
> > This CL tries to improve the performance of JS-to-Wasm calls by
> > inlining the code of the JS-to-Wasm wrappers in the call site.
> >
> > It introduces a new IR operand, JSWasmCall, which replaces JSCall for
> > this kind of calls. A 'JSWasmCall' node is associated to
> > WasmCallParameters, which contain information about the signature of
> > the Wasm function to call.
> >
> > WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid generating code to convert the types for the arguments
> > of the Wasm function, when the conversion is not necessary.
> > The actual inlining of the graph generated for this wrapper happens in
> > the simplified-lowering phase.
> >
> > A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage
> > lazy deoptimizations that can happen if the Wasm function callee calls
> > back some JS code that invalidates the compiled JS caller function.
> >
> > Bug: v8:11092
> > Change-Id: I3174c1c1f59b39107b333d1929ecc0584486b8ad
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557538
> > Reviewed-by: Igor Sheludko <ishell@chromium.org>
> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> > Reviewed-by: Georg Neis (ooo until January 5) <neis@chromium.org>
> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> > Reviewed-by: Maya Lekova <mslekova@chromium.org>
> > Reviewed-by: Andreas Haas <ahaas@chromium.org>
> > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> > Cr-Commit-Position: refs/heads/master@{#71824}
>
> Bug: v8:11092
> Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
> Change-Id: I7d8523fa916bf4029a31f8c7a72bbd93336dc0b9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596784
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#72147}

Tbr: ahaas@chromium.org, jgruber@chromium.org
Bug: v8:11092, v8:11335
Change-Id: Iab2908928dfe7ea353f70cb5d3bf2de4d3074db6
Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644758
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72253}
2021-01-22 13:16:21 +00:00
Andreas Haas
3a8a7e6184 [wasm] Implement pushing of externref parameters on the stack
On x64, reference types where not handled yet in LiftoffAssembler::push.
Note that the values pushed on the stack there do not have to be
handled by a safepoint. The reason is that stack parameters in general
are handled separately from safepoints.

R=thibaudm@chromium.org

Bug: chromium:1168116
Change-Id: Ie62479c13839f0ba240d0e41fa76d07a2cc48881
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642263
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72252}
2021-01-22 13:12:09 +00:00
Ulan Degenbaev
7d3f3d7fbb [heap] Fix alignment of large fixed double array.
This ensures that large objects have alignment suitable for a fixed
double arrays.

Bug: chromium:1161759
Change-Id: I64fe88d641fedbb5e27c2b38c1b9a4e75cab535a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639959
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72251}
2021-01-22 12:49:48 +00:00
Michael Lippautz
ee89feb102 cppgc: Allow tracing using raw pointers
There are several use cases related to collections that require
tracing a raw pointer.

Bug: chromium:1056170
Change-Id: I162b5380e7bddd7be62cbc74aa0031c8695220a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643385
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72250}
2021-01-22 12:28:58 +00:00
Mythri A
7ea641455a [turboprop] Add a new test variant for turboprop-as-toptier
Bug: v8:9684
Change-Id: Ie8c684998b9811c85ab385037d13604ac838b962
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637225
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72249}
2021-01-22 11:19:59 +00:00
Camillo Bruni
9e3822d0ac [codegen] Prevent duplicate register parameters
Prevent duplicate registers in interface descriptor parameter lists.

Change-Id: I160ada37f0d8308dd42a37b68fbf7c2d71ed8c8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642255
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72248}
2021-01-22 10:46:29 +00:00
Clemens Backes
82c3254de0 [wasm] Guard against huge code allocations
If a single background thread generates more code than
{kMaxCodeSpaceSize}, we cannot add them as one chunk. This CL adds a
CHECK to guard against that. If we find that this CHECK is hit in the
wild, we need to fix this for real.

R=ahaas@chromium.org

Bug: v8:11339
Change-Id: I549ecd79747bdf14a65b297c01779953e053abf2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643382
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72247}
2021-01-22 10:38:08 +00:00
Marja Hölttä
2ac866d9e1 [super speed] Ship --super-ic
Bug: v8:9237
Change-Id: I60b016617d468e6a04ef48998e59c80f58d16863
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642245
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72246}
2021-01-22 09:38:09 +00:00
Liu Yu
3f1177c5a0 [mips] Change kSpeculationPoisonRegister from a7 to t3
When kSpeculationPoisonRegister is a7, the test
TestFastJSWasmCall_MultipleArgs failed.

Besides, delete an unuse member named table_entry_size_.

Change-Id: Ic2c8b68d50c02dca7c41520ceb217fec33fe8cc4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644539
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@{#72245}
2021-01-22 09:05:08 +00:00
v8-ci-autoroll-builder
f94b8d46fc Update V8 DEPS.
Rolling v8/build: 2f05905..61eac11

Rolling v8/buildtools: 0c30db8..13547b9

Rolling v8/third_party/depot_tools: af0dca3..361ccce

Rolling v8/tools/clang: 3c71637..786cae1

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

Change-Id: Ibfde76d5ee8a85f0bb1f8cd39538f3edc7d589a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644142
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@{#72244}
2021-01-22 03:53:03 +00:00
Zhi An Ng
ec8fbed745 [wasm-simd] Move i64x2.widen_i32x4_{s,u} to mvp and remove ifdefs
These instructions were accepted into the proposal:
https://github.com/WebAssembly/simd/pull/290

Bug: v8:10972
Change-Id: Ia2cce2df575786babe770b043b1e90bf953c5f9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643658
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72243}
2021-01-22 00:16:21 +00:00
Ng Zhi An
67ff779e97 [wasm-simd][x64] Optimize i8x16.popcnt
Instead of loading the same mask twice, we load from an external
reference twice. This saves some some binary size and a bunch of
instructions.

Bug: v8:11002
Change-Id: Ice80bd10694dcca920e18b8043390d7631c65805
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643404
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72242}
2021-01-21 22:03:52 +00:00
Milad Fa
d46ea5523c PPC [wasm-simd]: Prototype sign select
Code fo Instruction Selection is added to the comments
and should be added when opcode is moved out of being a prototype.

Bug: v8:10983
Change-Id: I55948208e0ba0e903b267e0ca3e5815cb673d264
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642155
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72241}
2021-01-21 21:29:31 +00:00
Deepti Gandluri
9a534a207e [wasm-simd] Prototype prefetch for ia32
Bug: v8:11168
Change-Id: I6f697363d6f6d9b6a2303dec848f6d5200613f0a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641198
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72240}
2021-01-21 21:22:41 +00:00
Bill Budge
f605917363 [wasm] Add experimental wasm threads to COOP+COEP features.
Bug: chromium:1167733
Change-Id: Ie057068ee4ff08055d9dc7812a2e4f4dca9ec8d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2636844
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72239}
2021-01-21 21:15:21 +00:00
Deepti Gandluri
1f9fdbe3a1 [wasm-simd] Prototype prefetch for x64
Bug: v8:11168
Change-Id: I88fd086b83bd4a17aae145fb02280a4d36b31579
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641199
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72238}
2021-01-21 20:15:51 +00:00
Ng Zhi An
ae85cde159 [x64] Removed unused atomic instruction-codes
These are never generated by the instruction-selector, and don't need to
be defined.

Bug: v8:11074
Change-Id: I83a5760b6350155fd19d069be6aeeec5887e5880
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643396
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72237}
2021-01-21 18:59:51 +00:00
Santiago Aboy Solanes
2755e31c02 [object] Add string reader lock to StringCharacterStream
It acquires the string lock to avoid race conditions. It does so in a
slow way (by getting the isolate from the string) to avoid piping the
Isolate through.

Bug: v8:7790, chromium:1166095
Change-Id: I8b769b4e96ee780314359d1d15d712012aade88a
Fix: chromium:1166095
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637861
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72236}
2021-01-21 18:31:31 +00:00
Junliang Yan
8431f6e8f0 s390x: fix ptr-compr build break
Change-Id: I8c849e6259d60e8dc57a5b03f388cc9347488a1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642884
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Commit-Queue: Junliang Yan <junyan@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72235}
2021-01-21 17:37:03 +00:00
Clemens Backes
bb931403b0 [flags] Hide simulator flags in non-simulator builds
Those flags are only used in the simulators, hence hide them for
non-simulator builds.

Move the --log-colour flag out of the simulator block, because it
is also used in other components.

R=ahaas@chromium.org

Bug: v8:11074
Change-Id: Iafe3c6ba0ee78b2cf0b0dff7299a9b588d136ab8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642262
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72234}
2021-01-21 17:21:10 +00:00
Omer Katz
d1686fe884 cppgc: Remove deprecated enum values
Bug: chromium:1056170
Change-Id: I74c589171470296d310055ba3fe982fb3c9f25f4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642261
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72233}
2021-01-21 17:13:50 +00:00
Junliang Yan
0c2e9cb016 s390x: Implement Store LE version
Change-Id: I5422d4288eebedac86077a42286231e5c225232d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642877
Commit-Queue: Junliang Yan <junyan@redhat.com>
Reviewed-by: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#72232}
2021-01-21 17:12:01 +00:00
Seth Brenith
6c2a1394ce Use Torque-generated BodyDescriptor for ScopeInfo
With this change, the GC will compute the size for ScopeInfo instances
based on a combination of flags, context_local_count, and possibly
module_variable_count, rather than using the FixedArray-style length
field. After this change and a few more cleanups, we should be able to
remove that length field and save a few bytes.

Bug: v8:8952
Change-Id: Ica8e51ee106685b44fcc55556b4bb124afc91cfa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2598461
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72231}
2021-01-21 16:49:00 +00:00
Michael Lippautz
d37562e543 heap: Improve unified heap test coverage
Add test for Cpp->JS references.

Bug: chromium:1056170
Change-Id: I7240483b6ad7393346b55a9756fcd4721e238119
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642257
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72230}
2021-01-21 16:03:50 +00:00
Jakob Gruber
96b8ec759e [deoptimizer] Continue extracting classes
deoptimized-frame-info: Used only by the debugger.
translated-state: Combines translations and current frame states to
describe in- and output frames.
translation-array: Utils for accessing the on-heap TranslationArray
object.

Bug: v8:11332
Change-Id: I86757bed370d6d9e493862eb24a9e92533f80933
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640414
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72229}
2021-01-21 15:57:31 +00:00
Jakob Gruber
7eb88e4216 [deoptimizer] Begin splitting classes into files
This CL keep the Deoptimizer class in deoptimizer.{h,cc} and moves
everything else into translations.{h,cc}. Translations may be further
split up in follow-up work.

Drive-by: Remove dead code and clean up includes.

Bug: v8:11332
Change-Id: If774399843da1322c01e03d71c97b10fc88e45cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639955
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72228}
2021-01-21 15:14:10 +00:00
Michael Lippautz
df212a095b cppgc,api: Add support for JS->C++ write barriers
Provide a way to trigger a write barrier when updating the embedder
fields. In future, such a mechanism should be encapsulated into V8.

Bug: chromium:1056170
Change-Id: I4e43362993c3e58d5bebdd58a7d46a39c0aa4f06
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640419
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72227}
2021-01-21 14:28:00 +00:00
Dan Elphick
df5854c914 Reland "[build] Enable external flag header by default"
This is a reland of d1da9694d4

Relanding now that fixes for perfetto and cppgc are in:
https://chromium-review.googlesource.com/c/v8/v8/+/2640458
https://chromium-review.googlesource.com/c/v8/v8/+/2640480

Original change's description:
> [build] Enable external flag header by default
>
> Turns on v8_generate_external_defines_header.
>
> Bug: v8:11292
> Change-Id: I4b1d9b47390b560b7cbf677948310694d8b03367
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2610966
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Auto-Submit: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72201}

Bug: v8:11292
Change-Id: Ia47eeb6c45f4cc3db72c10782d677b69506fa3d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642249
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72226}
2021-01-21 14:20:40 +00:00
Clemens Backes
02459cce47 Revert "[cpu-profiler] Use base::LeakyObject for static CodeEntry objects"
This reverts commit c594a20ed3.

Reason for revert: Speculative revert for link issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14658/overview

Original change's description:
> [cpu-profiler] Use base::LeakyObject for static CodeEntry objects
>
> This is preferred over the older LazyInstance based stuff, and has
> a lot less boilerplate and is easier to follow.
>
> Bug: v8:8600
> Change-Id: I7c5c5ae04c064b0fc598dc01f1ed5442dc21a17b
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640475
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#72224}

TBR=petermarshall@chromium.org,clemensb@chromium.org

Change-Id: I2e4fce9bc58d289338814f3ee1b1520a97dfd3cf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8600
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2642251
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72225}
2021-01-21 13:43:52 +00:00
Peter Marshall
c594a20ed3 [cpu-profiler] Use base::LeakyObject for static CodeEntry objects
This is preferred over the older LazyInstance based stuff, and has
a lot less boilerplate and is easier to follow.

Bug: v8:8600
Change-Id: I7c5c5ae04c064b0fc598dc01f1ed5442dc21a17b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2640475
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72224}
2021-01-21 13:27:40 +00:00
Jakob Gruber
fa6b7a6970 Remove tebbi from OWNERS and TODOs
OWNERS files: removed tebbi's entry.
TODOs: replaced with 'turbofan'.

Change-Id: Ib7a90418b394f123b82051379f120f0323d04097
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639757
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72223}
2021-01-21 13:23:00 +00:00