Commit Graph

64594 Commits

Author SHA1 Message Date
Ng Zhi An
ee63b8427a [scalar-lowering][wasm-simd] Remove unnecessary equal
We are comparing equals to 0, we can remove this equality comparison,
and invert the phi outputs. This saves 1 op/node for every lowered
comparision.

Bug: v8:10824
Change-Id: I4957bed635c34d47fff98c5556ab55754d3fd91e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391911
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69702}
2020-09-03 17:37:36 +00:00
Santiago Aboy Solanes
ba797ba204 [compiler] Modify NeverSerialized macros for direct access to the heap
There are some objects that are serialized with concurrent inlining off
even when they are part of HEAP_BROKER_NEVER_SERIALIZED_OBJECT_LIST.

Bug: v8:7790
Change-Id: I91aa0e9d93cf86e2765f1f56bcfb8456c4b7685e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2382310
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69701}
2020-09-03 17:17:06 +00:00
evih
17cda1e6f1 [wasm] Use generic js-to-wasm wrapper for 0 or 1 int32 return case
The generic wrapper can be used for Wasm functions with int32 parameters
and 0 or 1 int32 return values.

Added tests for cases when the return value can & cannot be converted to
a Smi.

Bug: v8:10701
Change-Id: I470954ed0aced0e4ec6e65a9f38caac19c576549
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390141
Commit-Queue: Eva Herencsárová <evih@google.com>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69700}
2020-09-03 14:47:00 +00:00
Dominik Inführ
c878e00db8 [heap] Do not use always_allocate() when starting tear down
Do not use the already existing always_allocate() method for allowing
all allocations after tear down was started. Use explicit checks
of gc_state() == TEAR_DOWN instead.

This ensures that background threads extend the heap beyond its limits
only when tearing down the isolate. always_allocate() is also used
during regular execution in C++ code.

Bug: v8:10315
Change-Id: I66b5bfb06fa854048f37305a5d0cb7d60fadb30f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390764
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69699}
2020-09-03 14:31:20 +00:00
Dominik Inführ
d02ab0e13b [heap] Ensure Isolate::GetHeapStatistics uses space mutex
PagedSpace::CommittedPhysicalMemory() needs to use mutex when iterating
chunks due to concurrent allocations.

Also reorder sampling of memory statistics according to this order:

1) used memory
2) committed physical memory
3) committed memory

That way, used <= committed physical <= committed should hold.

Bug: v8:10315
Change-Id: Ie922ecc4846f724a09c71667a898bf74a8652220
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390768
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69698}
2020-09-03 14:20:10 +00:00
Milad Farazmand
b469661e51 PPC/S390: [execution] Add argument count to the standard frame
Port: a2fd94f014

Change-Id: I174ef5523806d23a0425e546ffe557b2c21defe7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390828
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#69697}
2020-09-03 14:02:10 +00:00
Dominik Inführ
a8ffcacb5f [heap] Enforce safepoint in unittest when iterating chunks
HeapWithPointerCompressionTest.HeapLayout sometimes raced with
background threads. When iterating chunks, background threads might add
chunks concurrently. Prevent this by enforcing safepoint during
iteration.

Bug: v8:10315
Change-Id: I2852ec3ea18905b669e60eadc660d9343ea35f48
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390767
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69696}
2020-09-03 12:43:10 +00:00
Santiago Aboy Solanes
634c2a63e0 [csa][cleanup] Remove non-Tnodified IntPtrT version of LoadObjectField
There is an int version that will be TNodified in a follow-up CL.

Bug: v8:9708, v8:6949
Change-Id: I3a47cb352396dfe9dea426b6396216c06e0e3254
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387963
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69695}
2020-09-03 11:53:20 +00:00
Ulan Degenbaev
f20a63d1bf Reland "[heap] Add concurrent typed slot recording"
This is a reland of 9eb090d261

The android-pie-arm64-dbg compiler error was fixed in:
https://chromium-review.googlesource.com/c/v8/v8/+/2381450

Original change's description:
> [heap] Add concurrent typed slot recording
>
> Since the typed slot set is not thread-safe, each concurrent marking
> barrier collects typed slots locally and publishes them to the main
> typed slot set in safepoints.
> Bug: v8:10315
>
> Change-Id: If1f5c5df786df88aac7bc27088afe91a4173c826
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370302
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69576}

Bug: v8:10315
Change-Id: Iae2882bad1cd0ffcae28c96318ba5fd7937f2215
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390763
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69694}
2020-09-03 11:16:44 +00:00
Ulan Degenbaev
8832a9e1f7 Disable --stress-concurrent-allocation for tests that change free lists
Tests that use SimulateFullSpace and SealCurrentObjects do not work
if there is a background thread allocating concurrently.

Bug: v8:10315
Change-Id: I73a4c9db8eb32fdf3e07fcb8f5dda309de797709
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390765
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69693}
2020-09-03 11:15:39 +00:00
Santiago Aboy Solanes
92993c1baf [csa][cleanup] TNodify LoadMap
This used to break x64 no embed bot due to it being Large code objects
but no embed no longer exists so this isn't a problem anymore.

Bug: v8:9708, v8:6949, v8:9637
Change-Id: I83836a94ff1747841315d46ca0e7ec5c73bbaf0d
Fix: v8:9637
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387962
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69692}
2020-09-03 10:21:49 +00:00
Ulan Degenbaev
d2d3256131 [heap] Disable --stress-concurrent-allocation in ManualGCScope
ManualGCScope is used in tests that perform GC manually. Stressing
concurrent allocation interferes with that and may trigger more GCs
than the test expects.

Bug: v8:10315
Change-Id: I6705f0b7cc555074b319a41d29810936b5a2a556
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2392242
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69691}
2020-09-03 09:06:00 +00:00
Jakob Gruber
4b26001c78 Reland "[compiler] Add a StartNode wrapper class"
This is a reland of 453cf21977

Original change's description:
> [compiler] Add a StartNode wrapper class
>
> .. to make implicit semantics of output nodes explicit.
>
> Bug: v8:8888
> Change-Id: I2ea5f5fa02f3d1f51196ea1e1e46b526dd9dc7d6
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388117
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69681}

Tbr: tebbi@chromium.org
Bug: v8:8888
Change-Id: I7ff3fc64c607a5289981a0762ad3a2b1de5a284d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2392241
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69690}
2020-09-03 07:15:09 +00:00
Jakob Gruber
6cf10c809c [snapshot] Fix clearing compiled code from JSFunction
JSFunctions with an attached InterpreterEntryTrampoline should also be
reset to CompileLazy, but this was recently broken by
https://crrev.com/c/2345966.

This CL introduces a new JSFunction::CanDiscardCompiled helper to
mirror SFI::CanDiscardCompiled, and uses it during serialization.

Bug: v8:10869
Change-Id: I176b77278d2d40d34db671638232faec4dda1d9c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390145
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69689}
2020-09-03 06:01:49 +00:00
v8-ci-autoroll-builder
214d26d43e Update V8 DEPS.
Rolling v8/build: 6d55754..7cbd827

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/156bfc1..8584a9d

Rolling v8/third_party/depot_tools: ed15af5..56048e6

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

Change-Id: I64ddc2caa6feae1432aa3a7cba4e854de98acf38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391803
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@{#69688}
2020-09-03 03:45:29 +00:00
Ng Zhi An
b72bd14f13 Force test to not run on unsupported SIMD platforms
Due to the way SSE flags work, we need to enable all versions prior to
SSE 4.1 as well.

Bug: v8:10863
Change-Id: I50ddd3f486641e7bf22c651fc2c9a8a4ccbc2b46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391325
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69687}
2020-09-02 23:07:49 +00:00
Zequan Wu
0b3a4ecf70 Fix implicit conversion loses integer precision warning
The type of m is long in 64 bits build, and results implicit conversion
loses integer precision, which was found by improved clang warning
(-Wshorten-64-to-32)

Bug: chromium:1124085
Change-Id: Ic9f22508bd817a06d5c90162b1ac3554a7171529
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391323
Commit-Queue: Zequan Wu <zequanwu@google.com>
Auto-Submit: Zequan Wu <zequanwu@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69686}
2020-09-02 22:22:49 +00:00
Ng Zhi An
c52b3bf2ad Remove nosse41 condition
This was added to try and skip tests when run on platforms without
sse41, but it doesn't work fuzz tests, since they add the flags on
command line. With https://crrev.com/c/2389982 we are now adding the
flag in the js test file itself.

Remove this condition since it's likely to be confusing and not work
correctly for all tests.

Bug: v8:10863
Change-Id: Ieeadade05dfc04ce250710d09a6a272775ce98c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391321
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69685}
2020-09-02 21:06:59 +00:00
Ng Zhi An
78b2a154d8 Revert the change to skip test using nosse41 check
With https://crrev.com/c/2389982 we are now forcing the sse flag in this
test, so we no longer need the flag check. Keep it around for the other
archs.

The nosse41 condition will be removed from the test runner in the next
patch.

Bug: v8:10863
Change-Id: I7eacb21803e6cc810384d3e4881d2a965dc1ad69
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391320
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69684}
2020-09-02 21:04:19 +00:00
Etienne Pierre-doray
3f315b0088 [Jobs API]: Cleanup migration of missing Jobs pieces.
- JobHandle::IsCompleted()
- JobDelegate::GetTaskId()
- worker_count passed as argument to GetMaxConcurrency().
  Jobs implementation must call the new GetMaxConcurrency(), but Jobs
  users aren't migrated yet.

Bug: chromium:1114823
Change-Id: Ie09a8847d1cb884b1e388903370e49f33fa25a64
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2374308
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69683}
2020-09-02 20:51:29 +00:00
Clemens Backes
1e85070592 Revert "[compiler] Add a StartNode wrapper class"
This reverts commit 453cf21977.

Reason for revert: Multiple compile errors, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug%20builder/45301

Original change's description:
> [compiler] Add a StartNode wrapper class
> 
> .. to make implicit semantics of output nodes explicit.
> 
> Bug: v8:8888
> Change-Id: I2ea5f5fa02f3d1f51196ea1e1e46b526dd9dc7d6
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388117
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69681}

TBR=jgruber@chromium.org,tebbi@chromium.org

Change-Id: Ic81321960da36e8ddcdc8e0072b2e9cd41206478
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8888
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390646
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69682}
2020-09-02 18:40:01 +00:00
Jakob Gruber
453cf21977 [compiler] Add a StartNode wrapper class
.. to make implicit semantics of output nodes explicit.

Bug: v8:8888
Change-Id: I2ea5f5fa02f3d1f51196ea1e1e46b526dd9dc7d6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388117
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69681}
2020-09-02 18:16:43 +00:00
Jakob Gruber
93299166ce [nci] Enable --print-nci-code flag
Pass this flag to print all generated nci code.

Bug: v8:8888
Change-Id: I12a5e7433278c72da4a973c5890b2fb2d7857e70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388115
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69680}
2020-09-02 18:15:38 +00:00
Marcel Laverdet
825c61d8b4 Check interrupts in runtime BigInt parser
The BigInt constructor has quadratic complexity while parsing strings,
and the input is unbounded. Interrupts should be checked during this
operation to ensure the host has control over runaway execution.

Change-Id: I15db9adeeafadc7b866a395dd8263aa8c2109ce8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2384166
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69679}
2020-09-02 16:04:28 +00:00
Jeremy Roman
018e370041 [api] Correct comment on deprecated v8::String::IsExternal.
Bug: v8:10641
Change-Id: I9248c6877ead34e622b94cd32959b6570f824e15
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390442
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Auto-Submit: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69678}
2020-09-02 15:18:48 +00:00
HyeockJinKim
02a42939e7 Fixed bytecode generation of spread operation
During spread operation, after VisitForAccumulatorValue,
set the position of the current expression again

Bug: chromium:929844
Change-Id: I6e9ca87587789f9cb21e939d4405414c8170b232
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2379531
Commit-Queue: HyeockJin Kim <kherootz@gmail.com>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69677}
2020-09-02 14:30:48 +00:00
Zeynep Cankara
78b04f24d0 [tools][system-analyzer] Unify map-processor and ic-processor
This CL unifies the map-processor and ic-processor into a
single log processing pipeline. Unified processing pipeline
prevents doing 2 pass over the data.

Bug: v8:10644

Change-Id: Ic0221a9bb32901f43202390b98fded4830a50f70
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2385496
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69676}
2020-09-02 13:59:18 +00:00
Jakob Gruber
d4cf7d1f6a Fix various typos (and add one DCHECK)
A random grab-bag of trivial fixes I came across while working on
another CL.

Bug: v8:8888
Change-Id: I6e46e1fe5a547854d8afbac19f7e049f1661c406
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388113
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69675}
2020-09-02 13:56:20 +00:00
Camillo Bruni
9d413c635d [api] Deprecate misleading v8::String::IsExernal method
v8::String::IsExternal is confusing since it only checks for external
two byte strings. The goal is to reintroduce String::IsExternal which
checks for one and two byte external strings after removing the old,
misleading api method.

- Add String::IsExternalTwoByte
- Deprecate String::IsExternal for now since it is misleading


Bug: v8:10641
Change-Id: I8989de7576c823846e0536fc1898e769b6d68c87
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284495
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69674}
2020-09-02 13:35:20 +00:00
Zeynep Cankara
a73ffca3a4 [tools][system-analyzer] Find Unique IC/Map types and improve Map panel
This CL enables showing map details of the selected map coming from
FocusEvent. It also improves UI experience of selecting a map from
map transitions, highlighting selected map.

Additionally, stores information about unique map/IC events in model
for the timeline-track legend.

Bug: v8:10644
Change-Id: Ieb8a2ac0bf1af282d55bce18130192d7178538da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387564
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Cr-Commit-Position: refs/heads/master@{#69673}
2020-09-02 13:07:40 +00:00
Ulan Degenbaev
473b388197 Skip no-op stores when enforcing flag implications
The d8 shell modifies compiler flags in PrepareStressRun after isolate
was already set up and has run some JS code. Updating these flags
forces recomputation of implications for all flags.

This causes no-op stores to some unrelated flags that are accessed
from background threads leading to benign data races.

Bug: v8:10315
Change-Id: I568445d4382ae392970deccbf9588c98e46a4a4e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390140
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69672}
2020-09-02 12:55:50 +00:00
Marja Hölttä
7dc8d1f380 [IC] Clarify receiver vs holder some more
This is a follow up for
https://chromium-review.googlesource.com/c/v8/v8/+/2362918 .

The "slow" path in HandleLoadICSmiHandlerLoadNamedCase was using
only "receiver", even though it should've considered both "receiver"
and "holder".

Bug: v8:9237
Change-Id: I5d7ba1f72e8bf55f9533f648054abf5d25c85533
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387576
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69671}
2020-09-02 12:40:10 +00:00
Michael Lippautz
1083a6e2ca cppgc: Fix MarkingVerifier for in-construction objects
- Avoid invoking Trace() for in-construction objects as the method may
  access uninitialized fields, e.g., fields that have bogus state with
  zeroed memory like std::list.
- Conservatively scan in-construction objects for pointers.
- Verify that stack scan indeed finds all in-construction objects that
  are present on the heap and vice versa.

Bug: chromium:1056170
Change-Id: I2c68da2b8072f715b5a0dcdb1202d5f874c6c6e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388106
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69670}
2020-09-02 11:54:20 +00:00
Zeynep Cankara
fec33d84cd [tools][system-analyzer] Implement drag-handlers to timeline panel
This CL adds drag handlers to the timeline panel
to filter events based on the selected portion
of the timeline tracks.

Bug: v8:10644
Change-Id: Ic8a38493eacb62844b3fed5a027f8b1367f2bb59
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346275
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69669}
2020-09-02 11:33:40 +00:00
Martin Bidlingmaier
943f78a4ec [regexp] Fix usage of {Is,Mark}PcProcessed in NfaInterpreter
Previously we checked whether a thread's pc IsPcProcessed before pushing
to the stack of (postponed) active_threads_.  This commit moves the
IsPcProcessed check and corresponding MarkPcProcessed call to when the
thread is actually processed, i.e. when it is popped from the
active_threads_ stack again.

This fixes two issues:
- Consider what used to happen in the following scenario:
1. An active thread t is postponed (e.g. because it is a fork) and
 pushed on active_threads_.  IsPcProcessed(t.pc) is false, so t is
 not discarded and does actually end up on active_threads_.
2. Some other thread s is executed, and at some point s.pc == t.pc,
 i.e. t.pc is marked as processed.
3. t is popped from active_threads_ for processing.

In 3 we don't want to continue execution of t: After all, its pc is
already marked as processed.  But because previously we only checked
for IsPcProcessed in step 1 before pushing to active_threads_, we used
to continue execution in 3.  I don't think this is a correctness
issue, but possibly a performance problem.  In any case, this commit
moves the IsPcProcessed check from 1 to 3 and so fixes this.
- After flushing blocked_threads_, we push them to active_threads_
again.  While doing so, we used to mark these thread's pcs as processed.
This meant that sometimes a (fork of a) high priority thread was
cancelled by the IsPcProcessed check even though its pc was only
marked as processed by a thread with lower priority during flushing.
We need it to be the other way round:  The low priority thread should
be cancelled after its pc is processed by a thread with higher
priority.
With this commit we don't MarkPcProcessed during flushing, it's
postponed to when we're actually processing.  This was a correctness
issue, and there's a new corresponding test case.


Bug: v8:10765
Change-Id: Ie12682cf3f8a04222d907edd8a3ad25baa69465a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388112
Commit-Queue: Martin Bidlingmaier <mbid@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69668}
2020-09-02 11:32:35 +00:00
Andreas Haas
aaff9d37a0 [test] Disable wasm-js/limits for sanitizers
The test is slow and checks the limits of the WebAssembly
implementation. Sanitizers are slower and therefore sometimes run into
timeouts. Therefore we just disable the test for sanitizers.

R=leszeks@chromium.org

Change-Id: I4a0cb994dfc34097849f0dd8528dc158883fbc8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389980
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69667}
2020-09-02 11:31:30 +00:00
Ulan Degenbaev
1d53ad7ecc [heap] Allow background threads to expand the heap on tear down
Garbage collection requests from background threads are ignored if
the heap is tearing down. This fixes CanExpandOldGenerationBackground
to check for that case.

Bug: v8:10315
Change-Id: I79b6a4446bf3c9037dbca54849c87f022be76b49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387964
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69666}
2020-09-02 10:47:30 +00:00
Michael Achenbach
b22aa7865a [test] Make test compatible with numfuzz
The test is incompatible with --noenable-sse4-1, which is randomly
added by numfuzz (and possibly other fuzzers).

The "Flags" from the test files are always passed last and are often
used to neuter incompatible flags.

Bug: v8:10863
Change-Id: I8fd11b4d38586f25f5af63ab8ef83873dc250557
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389982
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69665}
2020-09-02 10:28:20 +00:00
Cong Zuo
67206a6ce9 [runtime] Fix PrintRegisters should not output to default stdout
PrintRegisters() should print output to `os` argument for unification,
and in case of the function would be used by other files.

Bug: v8:10821
Change-Id: Ia825c4deaf89ec454b7c293367cfa362acd4cccc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2371543
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69664}
2020-09-02 10:05:22 +00:00
Victor Gomes
a2fd94f014 [execution] Add argument count to the standard frame
This adds the argument count (as intptr) to the standard frame.
StandardFrames are now in the same shape as OptimizedFrames.

The argument count in the stack will be used to tear down the arguments when we remove the arguments adaptor frame.

Change-Id: If9cc2946321bc1bb0abb776521e2d5b683ab0532
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2312783
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69663}
2020-09-02 09:27:30 +00:00
Leszek Swirski
88619ce5cd [serializer] Fix missing changes to bytecode value encoding
https://crrev.com/c/2369172 had a few remaining comments that
accidentally weren't addressed in the final submitted patch.

Tbr: jgruber@chromium.org
Change-Id: If0cff18f5078f17a6f70d27c71090dcc64f23ddd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388114
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69662}
2020-09-02 08:55:40 +00:00
Michael Lippautz
42d2cd757d cppgc: Typo and signature fix
Change-Id: I4e2a0ddbeba68a4cc136bb6d56383b0a7e4f1dff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388107
Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69661}
2020-09-02 07:34:20 +00:00
v8-ci-autoroll-builder
120f0b4c37 Update V8 DEPS.
Rolling v8/build: 482dd77..6d55754

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1eb42f5..156bfc1

Rolling v8/third_party/requests: https://chromium.googlesource.com/external/github.com/kennethreitz/requests/+log/refs/ta..bfb93d4

Rolling v8/third_party/zlib: d53accf..59187e1

Rolling v8/tools/clang: fcef86e..03bacc3

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

Change-Id: Iceea7cbadbbe4e8a480517051425d1a44d76066d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388173
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@{#69660}
2020-09-02 03:55:00 +00:00
Ng Zhi An
1f9103e5a9 [wasm-simd][arm] Fix i64x2.neg
We were using vqsub incorrectly (which saturates), we need vsub
(wraparound).

Found this issue while running spec test simd_i64x2_arith.js.

Bug: v8:10835
Change-Id: Ic9d45d69e64fa5ff9ddad5de4690f3dd32d1384e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389100
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69659}
2020-09-01 22:47:21 +00:00
Seth Brenith
3017f895f1 Revert "[regalloc] Run SpillPlacer on any value defined in a loop"
This reverts commit 7f05467914.

Reason for revert: regressions on Emscripten/Fannkuch and
JetStream/richards

Original change's description:
> [regalloc] Run SpillPlacer on any value defined in a loop
> 
> I previously wrote a comment that said "We haven't seen any indication
> of performance improvements from seeking optimal spilling positions
> except on loop-top phi values". That statement is no longer true, now
> that I've looked a little harder. In the latest version of the Mono
> interpreter, we can improve performance by 2.5% by enabling SpillPlacer
> for any value defined within a loop.
> 
> Bug: v8:10606
> Change-Id: I25e06458c87ad4ffcefe52be3042032e05a47b35
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2381557
> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#69646}

TBR=rmcilroy@chromium.org,seth.brenith@microsoft.com,thibaudm@chromium.org

Change-Id: Ic3e74485f42bafedfe1890c0be32a29c3455afe5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10606, chromium:1124028
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388745
Reviewed-by: Seth Brenith <seth.brenith@microsoft.com>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#69658}
2020-09-01 21:54:46 +00:00
Ng Zhi An
d77e016e98 [wasm-simd][liftoff][ia32][x64] Fix swizzle
Swizzle codegen was incorrect when mask == dst, which can happen since
we did not pin dst. We can simplify this by using scratch register for
mask.

This bug was encountered while trying to run the spec test simd-lane.js.

Bug: v8:10835
Change-Id: Ie9c8f383bb6f336f9b74955fb7a9aee0e6774bf2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388743
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69657}
2020-09-01 21:53:42 +00:00
Bill Budge
b7704fb184 [wasm][simd] Revert changes to F32x4 Min/Max
- Restores the old inline code sequence, since the branching version
  doesn't set the NaN high bit.

Bug: v8:10862
Change-Id: Iad8ee47b678cc1c6c04222dd83b2fa588ea9136c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387557
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69656}
2020-09-01 21:42:29 +00:00
Arno Renevier
d022b74c4e [builtins] Use fast path for JSArray source in TypedArray.from()
For TypedArray, a fast path is used when using the builtin iterator, and
next method has not been overriden. If we use that fast path for JSArray
too, the method will be about 200x times faster on a large array.

This patch also fixes a bug when a typed array is modified during the
mapper execution. In that case, the modification should not be taken
into account.

Bug: v8:10802

Change-Id: I74e2cbcd6a654def318585b4e08745037584669a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2358749
Commit-Queue: Arnaud Renevier <arenevier@fb.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69655}
2020-09-01 20:53:19 +00:00
Michael Achenbach
463ccd0eeb [test] Bump shards on slow builder
NOTRY=true
TBR=leszeks@chromium.org

Change-Id: I5abb432e42168484aabf04600e8e2cf6e3511630
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388105
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69654}
2020-09-01 19:36:59 +00:00
Michael Lippautz
aa4b47b978 cppgc: Fix GCInvoker task handle
The handle was always created empty which resulted in a DCHECK crash
in debug builds and in never-cancelled tasks in release builds.

Bug: chromium:1056170
Change-Id: I798ce65c37738bbe9c60b44b692ff04536f6d830
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2388101
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69653}
2020-09-01 19:15:09 +00:00