Commit Graph

64020 Commits

Author SHA1 Message Date
v8-ci-autoroll-builder
e8882e324f Update V8 DEPS.
Rolling v8/build: 134058c..c97da98

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

Change-Id: Ic02d3f8415af6afc1cdfe372d04f8cbef0113a55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370822
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@{#69528}
2020-08-23 03:42:58 +00:00
v8-ci-autoroll-builder
736bb07e21 Update V8 DEPS.
Rolling v8/build: d2b7ca1..134058c

Rolling v8/buildtools: b00ad0a..ff93f3e

Rolling v8/buildtools/linux64: git_revision:e327ffdc503815916db2543ec000226a8df45163..git_revision:6f13aaac55a977e1948910942675c69f2b4f7a94

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7f34313..e6244cc

Rolling v8/third_party/depot_tools: 87a7605..4909610

Rolling v8/tools/clang: a4bb1c6..9784c4f

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

Change-Id: I5979068c4c7066b845adc8576281de66a36fdc6d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370070
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@{#69527}
2020-08-22 03:45:27 +00:00
Francis McCabe
ffb2a6423f Revert "[atomics] Missing detach check in Atomics.store on MIPS"
This reverts commit 8358094d81.

Reason for revert: Closed the tree on arm pointer compression:
https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20arm64%20-%20sim%20-%20pointer%20compression/6256?


Original change's description:
> [atomics] Missing detach check in Atomics.store on MIPS
> 
> There was a missing detach check in the runtime implementation of
> Atomics.store on BigInt TypedArrays. This runtime function is only used
> on MIPS.
> 
> Bug: v8:10687
> Change-Id: I77946d2ab0abf70c583af514ddaba0d384a21309
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369663
> Auto-Submit: Shu-yu Guo <syg@chromium.org>
> Commit-Queue: Ben Smith <binji@chromium.org>
> Reviewed-by: Ben Smith <binji@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69525}

TBR=binji@chromium.org,syg@chromium.org

Change-Id: I955cdbf5d83674b8acb5b67bbe8754f3d39261aa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10687
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369973
Reviewed-by: Francis McCabe <fgm@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69526}
2020-08-22 01:43:00 +00:00
Shu-yu Guo
8358094d81 [atomics] Missing detach check in Atomics.store on MIPS
There was a missing detach check in the runtime implementation of
Atomics.store on BigInt TypedArrays. This runtime function is only used
on MIPS.

Bug: v8:10687
Change-Id: I77946d2ab0abf70c583af514ddaba0d384a21309
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369663
Auto-Submit: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69525}
2020-08-21 23:48:37 +00:00
Frank Tang
e8a5793abc Skip tests on Andriod dep on Chinese dict.
Bug: v8:10819
Change-Id: I91cf658d9fdcbaf58d6b2e5734c59d7248b8393e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369461
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69524}
2020-08-21 20:57:47 +00:00
Seth Brenith
7aeafdee2f [x64] Avoid movl before table jump when possible
If the input to a Switch happens to be something that we already know to
be zero-extended, then we don't need to emit a movl to zero-extend it.
This is a tiny optimization, but speeds up the Mono interpreter by 3%
because it's heavily dependent on switch dispatch speed.

Bug: v8:10606
Change-Id: I67ab6b6aeb93df4e420ea2afef41a2234d7da979
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2368195
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#69523}
2020-08-21 17:30:07 +00:00
Ross McIlroy
24e795166d [interpreter] Fix some comment typos.
Also removes bmeurer@ from interpreter/OWNERS.

BUG=v8:10806

Change-Id: I97cb77350271f773600e92d4ce787080388eb14c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369179
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69522}
2020-08-21 17:12:07 +00:00
Mythri A
3551cac6da [turboprop] For double data fields check loaded value is HeapNumber
With in-place representation changes we can transition from a double
field to a Tagged field without changing the map. So it is not always
safe to assume the loaded value would be a HeapNumber. TurboFan takes a
dependency on the field representation to ensure the code is deoptimized
on any changes. With dynamic map checks, it is not possible to take such
a dependency. Hence check the loaded value is a HeapNumber and
deoptimize otherwise.

Bug: chromium:1112155,v8:10582
Change-Id: I910ac1c0781ac8842fdbf272f9173b55b02923ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354810
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69521}
2020-08-21 17:00:47 +00:00
Santiago Aboy Solanes
41e307c194 [csa][cleanup] Remove unused UnsafeStoreFixedDoubleArrayElement
Bug: v8:9708, v8:6949
Change-Id: I2a60a3970adf3020b42ee1b1264ca3c11f9f88c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362955
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69520}
2020-08-21 16:29:07 +00:00
Santiago Aboy Solanes
e0973e6e80 [csa][cleanup] TNodify/Remove ParamenterMode from BuildFastArrayForEach
The array can be FixedArrayBase, PropertyArray or HeapObject. That
HeapObject has to be either a FixedArray or a PropertyArray since we
have an assert for it. However, due to how the code is structured it
is not so simple to remove HeapObject from the Union.

Drive-by: deleted unused version of BuildFastArrayForEach.

Bug: v8:9708, v8:6949
Change-Id: I980f759dad9c76f0c765622cbdda37e33709f53f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362954
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69519}
2020-08-21 16:25:27 +00:00
Thibaud Michaud
1c8c657908 [wasm] Stage tail calls
R=ahaas@chromium.org
CC=ecmziegler@chromium.org

Bug: v8:7431
Change-Id: Ia6303984be4b4f23051fe39a80cdff3143811bb2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2367867
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69518}
2020-08-21 13:59:07 +00:00
Ulan Degenbaev
e0ad32cec8 Reland "[heap] Add concurrent marking write barrier"
This is a reland of 1dd7f3a953

Original change's description:
> [heap] Add concurrent marking write barrier
> 
> A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to
> the marking barrier is set to a thread_local variable for a quick access.
> 
> WriteBarrier::MarkingSlow fetches the thread_local variable and invokes
> the write barrier if it is set. Otherwise, it invokes the main thread
> heap()->marking_barrier().
> 
> Each marking barrier has its own local marking worklist that is
> published during scavenge (for updating pointers) and at finalization
> of incremental marking.
> 
> Typed-slot recording does not work yet because it is not thread-safe.
> It will be fixed in a subsequent CL.
> 
> Bug: v8:10315
> Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69448}

Bug: v8:10315
Change-Id: I155bb0aadd53a5333672fb085b33d8da86f3f336
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364509
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69517}
2020-08-21 11:24:16 +00:00
Lutz Vahl
7d61ba0c7d Adding vahl@ to the common owners to be able to handle
the V8 branch cut

TBR=hablich@chromium.org

Change-Id: Iddc7173833f266fe43f0d5e2e618eeeb534d6f21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366783
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Michael Hablich <hablich@chromium.org>
Commit-Queue: Michael Hablich <hablich@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69516}
2020-08-21 09:04:56 +00:00
Dominik Inführ
480128efbf [heap] Lock Mutex in ForceEvacuationCandidate
Lock the mutex of PagedSpace before invoking FreeLinearAllocationArea().

Bug: v8:10315
Change-Id: If96b9b8b72932590daf3d548be41c20796ed524f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2367857
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69515}
2020-08-21 08:38:46 +00:00
v8-ci-autoroll-builder
3d35229d39 Update V8 DEPS.
Rolling v8/build: 183d29c..d2b7ca1

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/c244e33..7f34313

Rolling v8/third_party/depot_tools: 25f1303..87a7605

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

Change-Id: I0deda41eaae7b80cd99c1a8952817154e72d385d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2367668
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@{#69514}
2020-08-21 03:48:06 +00:00
Andreas Haas
ab1e4eacbc [wasm] Update spec tests
Some tests are failing now and have been marked as failing to
investigate them.

R=jkummerow@chromium.org

Change-Id: I1242ccf3bdc8f4d2ff55bc016c43fa51c556376e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366696
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69513}
2020-08-20 17:52:55 +00:00
Thibaud Michaud
3acfd3b5ad [wasm] Fix nullptr dereference
Skip code spaces that do not have a far jump table in GetRuntimeStubId.

R=clemensb@chromium.org

Bug: chromium:1116141
Change-Id: Id0fcec691a2729f67750d2da15eea9f521075743
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366763
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69512}
2020-08-20 17:34:55 +00:00
Victor Gomes
b0224d39da [ppc][s390] Disable v8_reverse_jsargs
ppc and s390 do not currently support this feature.

Change-Id: I5ea840e20f9aa77d63d19652bd826c812caae0b4
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366762
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69511}
2020-08-20 17:14:45 +00:00
Victor Gomes
b7079cd08c [BUILD] Enable v8_reverse_jsargs
Change-Id: Ic530de3d2dff626137c3d0a195cde71b99062203
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366779
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69510}
2020-08-20 15:38:54 +00:00
Maya Lekova
59076a3baa Revert "[wasm][ukm] Add tests for Wasm events"
This reverts commit d7b20edcb3.

Reason for revert: Introduces data races - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32898

Original change's description:
> [wasm][ukm] Add tests for Wasm events
> 
> Ensure that events are triggered when a module is decoded, compiled,
> instantiated and tiered-up.
> 
> R=​clemensb@chromium.org
> 
> Bug: chromium:1092417
> 
> Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676
> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69508}

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

Change-Id: I9bcfeda1048939a8142f5003b03feab399f9de96
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1092417
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366785
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69509}
2020-08-20 15:23:33 +00:00
Emanuel Ziegler
d7b20edcb3 [wasm][ukm] Add tests for Wasm events
Ensure that events are triggered when a module is decoded, compiled,
instantiated and tiered-up.

R=clemensb@chromium.org

Bug: chromium:1092417

Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676
Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69508}
2020-08-20 14:13:40 +00:00
Omer Katz
c6fb303f8a cppgc: Add marking on allocation
Perform a small marking step whenever we allocate a new lab.

Bug: chromium:1056170
Change-Id: I2a09480a254ddb1afc95bf5ef9a70ec27f512d79
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366698
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69507}
2020-08-20 14:00:30 +00:00
Omer Katz
808a775f97 cppgc: Add marked bytes deadline
This CL adds a bytes based deadline to draining of worklist.
The time based deadline is also kept because:
1) Unified heap can't transition to bytes-based deadlines yet.
2) Unified heap with concurrent marking needs to flush v8 references
   which don't count as marked_bytes and can cause very long incremental
   pauses.

Bug: chromium:1056170
Change-Id: I5ab57754e7ff0b5821f3acb76e1e6f59fc9d68b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2299374
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69506}
2020-08-20 13:57:00 +00:00
Lutz Vahl
2afdb4ab0b Changed version number to 8.7
TBR=vahl@chromium.org

Change-Id: Ie869b55eccd0bd0d23cc62c7ec7884dbaa8e7c4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366701
Reviewed-by: Lutz Vahl <vahl@chromium.org>
Commit-Queue: Lutz Vahl <vahl@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69505}
2020-08-20 13:54:00 +00:00
Victor Gomes
7a4148005e [wasm] Fix access first parameter in GenericJSToWasmWrapper
Adapt GenericJSToWasmWrapper to support reversed arguments stack.

Change-Id: I46f6492cd8a933a7670eb2ad436a1ac84b055e60
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366702
Auto-Submit: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69504}
2020-08-20 13:29:50 +00:00
Ulan Degenbaev
94453a6264 Add ulan@ to owners of src/libplatform
Change-Id: I328dde4ef8265fa15e2dfc7ac689e175465edebd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366700
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69503}
2020-08-20 13:24:40 +00:00
Milad Farazmand
0589a2a209 AIX: Fix DeclareSymbolGlobal on AIX
Port 929dd3748e

Original Commit Message:

    When CFI is enabled this adds a check against this list whenever a new
    return address must be set in a deoptimized frame, as a mitigation for
    ROP attacks.
    The list is known at linking time so that its content and the pointer
    to it can be stored in a read-only memory section.
    The check is performed in the signing function, which is no longer
    generic, as well as when setting the current pc of the frame.
    Since the pc is now only signed when setting the caller's pc, there
    is no need for ReplaceContext anymore.

R=salome.thirot@arm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I5005096811c289707e2d080477c60ae2ed4bf38b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2365372
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#69502}
2020-08-20 12:55:50 +00:00
Jakob Gruber
faed29869f [nci] Change testing mode to --turbo-nci-as-midtier
To properly test tier-up in the V8 test suite, change the test variant
previously called --turbo-nci-as-highest-tier to
--turbo-nci-as-midtier.  As a midtier (between ignition and turbofan),
all major parts of the NCI pipeline (codegen, caching inside the same
native context, tier-up) are exercised by test suite.

Bug: v8:8888
Change-Id: Ic8ee2f3e3d72768c3869f5e0b25800dd0a5f25b7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2361462
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69501}
2020-08-20 12:54:40 +00:00
Andreas Haas
1e6d2cb319 [wasm][fuzzer] Enable trap handlers
On x64, trap handlers are enabled as part of the default configuration.
However, each embedder has to enable trap handlers explicitly, and in
the wasm fuzzers, trap handlers were not enabled. This CL enables trap
handlers now in all wasm fuzzers.

Drive-by change: enable all staged wasm features in the wasm-async
fuzzer.

R=clemensb@chromium.org

Change-Id: Ib7c2addb092551b5554a2b74830e5b67db077909
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362957
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69500}
2020-08-20 12:24:40 +00:00
Dominik Inführ
cf929eba0f [heap] Make Heap::UnregisterStrongRoots work in constant time
Heap::UnregisterStrongRoots needs to iterate the list of all strong
roots to delete the given slot. This CL changes
Heap::RegisterStrongRoots to return the pointer to the linked list node.
Heap::UnregisterStrongRoots gets the node as argument and can directly
delete it in constant time.

The CL also introduces Heap::UpdateStrongRoots which can update a
node without locking the mutex.

Bug: v8:10315
Change-Id: I2c021517c010a659821f8c10de758bb49b28449f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364511
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69499}
2020-08-20 12:15:20 +00:00
Zeynep Cankara
2afb2dcd90 [tools][system-analyzer] Add stats table to timeline-tracks
This CL adds a table to the right side of the each
timeline-tracks to display statistics about the log
events. Double clicking on an event type notifies other
panels about the selected log events with the selected type.

Bug: v8:10644

Change-Id: Iae523d46da4f0b6a007b02a2beac23d9c48aca02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2353457
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69498}
2020-08-20 09:42:40 +00:00
Victor Gomes
db15c5e3a4 [builtin] Fix CallOrConstructForwardVarargs to handle reversed JS stack
Change-Id: Idc204cffce49b564d134a93114a03939c3e75f20
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2307313
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69497}
2020-08-20 09:35:00 +00:00
Santiago Aboy Solanes
5665d835a6 Reland "[compiler] Remove unused holder parameter from IF_ACCESS_FROM_HEAP(_C)"
This is a reland of ad68de6f5b

Reason for reland: Reverted since another CL got reverted. This cleanup
is independent though and can be relanded.

Original changes description:
> [compiler] Remove unused holder parameter from IF_ACCESS_FROM_HEAP(_C)
>
> Bug: v8:7790
> Change-Id: I44849f45d1049b8a3c794dd0558b734c1e7061fd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362919
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69482}

Bug: v8:7790
Change-Id: Ib650ef1701168be7a910ff51e30a90e239d5f5c8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366774
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69496}
2020-08-20 09:17:50 +00:00
Dominik Inführ
41d2e5c9c0 [logging] Make Log::IsEnabled() atomic
With concurrent allocation background threads invoke Log::IsEnabled()
as well. Fix data race here by making is_enabled_ atomic, such that
IsEnabled() remains cheap.

After locking the mutex in MessageBuilder, IsEnabled() needs to be
checked again in case an old value was read. Otherwise we might log
even though logging was already disabled on another thread.

The other direction where a log message isn't logged is deemed
acceptable.

Bug: v8:10315
Change-Id: I32c9dd2e9879fbdb4ca94e080a16ddd875de7c30
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362948
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69495}
2020-08-20 07:24:31 +00:00
Clemens Backes
10a434f37e Revert "[test] Disable asm-wasm regression test"
This reverts commit f0bade979d.

Reason for revert: Culprit CL reverted: https://crrev.com/c/2364504

Original change's description:
> [test] Disable asm-wasm regression test
> 
> Bug: v8:10813
> Change-Id: Ib7b3949147706552a6d569ad5fcd22f2f63d7977
> No-Try: True
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364496
> Auto-Submit: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Clemens Backes <clemensb@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69479}

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

Change-Id: I8047db66eba1e2221654d7018c661551950f2194
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10813
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366712
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69494}
2020-08-20 06:27:42 +00:00
v8-ci-autoroll-builder
5f21d72a27 Update V8 DEPS.
Rolling v8/build: 04505d9..183d29c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/abfdfbb..c244e33

Rolling v8/tools/clang: 299e8a2..a4bb1c6

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

Change-Id: Ifb0321f65a8d3e2e96bb216f24641aeb1e11d49a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366273
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@{#69493}
2020-08-20 03:48:50 +00:00
v8-ci-autoroll-builder
710214529b Update V8 DEPS.
Rolling v8/build: 78b2991..04505d9

Rolling v8/third_party/depot_tools: 5cff4e3..25f1303

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

Change-Id: I76a41e93419494919d8ed64a300e2ee4d530c615
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364933
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#69492}
2020-08-19 22:10:06 +00:00
Liviu Rau
cde4b2c75f Revert "Whitespace to trigger builders"
This reverts commit dc36a31e32.

Reason for revert: to trigger builders

Original change's description:
> Whitespace to trigger builders
> 
> The plan for V8 switch to Starlark: https://docs.google.com/document/d/10zEulEuM9UWMkaU8ZMGT5Nvyg1-fJ6fnGAW5jn4wyVY/edit#heading=h.ux9y8574985
> 
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: v8:10661
> Change-Id: I56edc347ae3adc9eba306e20268745687d7c21b8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364500
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Liviu Rau <liviurau@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69490}

TBR=clemensb@chromium.org,mslekova@chromium.org,liviurau@chromium.org

Change-Id: I458560eaefacece3faab0c075e749417be1a814d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10661
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2365113
Reviewed-by: Liviu Rau <liviurau@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69491}
2020-08-19 22:00:39 +00:00
Liviu Rau
dc36a31e32 Whitespace to trigger builders
The plan for V8 switch to Starlark: https://docs.google.com/document/d/10zEulEuM9UWMkaU8ZMGT5Nvyg1-fJ6fnGAW5jn4wyVY/edit#heading=h.ux9y8574985

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10661
Change-Id: I56edc347ae3adc9eba306e20268745687d7c21b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364500
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69490}
2020-08-19 20:58:30 +00:00
Ng Zhi An
a85b5a63f6 [wasm-simd] Fix bounds check for load extends
Load extends always load 8 bytes, so the access size does not depend on
MachineType of the load. The MachineType is used for classifying the
lane shape of the 8-byte load.

Also add cctest to load splats and load extends to test OOB. (Note that
load splats access size depends on MachineType).

Add regression test from clusterfuzz, minimized by ahaas@. Remove the
`--no-wasm-trap-handler` flag since we have a no_wasm_traps variant that
should test this flag.

Bug: chromium:1116019
Change-Id: I27ba051d0536ca0f6fd75dd641ca9b78132dafed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2363291
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69489}
2020-08-19 18:26:17 +00:00
Dominik Inführ
a61393a332 [heap] Make RegisterStrongRoots thread-safe
CanonicalHandleScope is now also used on background threads. Therefore
Heap::RegisterStrongRoots and Heap::UnregisterStrongRoots are not
exclusively used on the main thread anymore. Simply protect this list
with a mutex.

Bug: v8:10315, v8:10814
Change-Id: Id08269c9f7fecae8c570ab711c522d111b06b005
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364503
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69488}
2020-08-19 17:16:25 +00:00
Clemens Backes
536092f779 Revert "[compiler] Replace ScopeInfoData with direct reads"
This reverts commit 7b9a0c20f3.

Reason for revert: Different tests start flaking, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/29532

Original change's description:
> [compiler] Replace ScopeInfoData with direct reads
> 
> As part of this, introduce a new ObjectData kind for objects that we
> want to read directly from the background thread rather than serialize.
> ScopeInfoRef is the first user of that.
> 
> For details, see:
> https://docs.google.com/document/d/1U6x6Q2bpylfxS55nxSe17yyBW0bQG-ycoBhVA82VmS0/edit?usp=sharing
> 
> Bug: v8:7790
> Change-Id: Ia3cda4f67d3922367afa4a5da2aeaae7160cf1f2
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346405
> Auto-Submit: Georg Neis <neis@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69473}

TBR=neis@chromium.org,solanes@chromium.org,nicohartmann@chromium.org

Change-Id: Ide5a4a583547b63cc9accfb93fcadb97b8100e8a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7790
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364504
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69487}
2020-08-19 16:25:27 +00:00
Clemens Backes
45f296f7f9 Revert "[compiler] Remove unused holder parameter from IF_ACCESS_FROM_HEAP(_C)"
This reverts commit ad68de6f5b.

Reason for revert: Previous CL needs to be reverted (https://crrev.com/c/2364504)

Original change's description:
> [compiler] Remove unused holder parameter from IF_ACCESS_FROM_HEAP(_C)
> 
> Bug: v8:7790
> Change-Id: I44849f45d1049b8a3c794dd0558b734c1e7061fd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362919
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#69482}

TBR=solanes@chromium.org,nicohartmann@chromium.org

Change-Id: Iffc7a44faec8a03583aa968271a5d0e6317317a7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7790
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364506
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69486}
2020-08-19 16:23:36 +00:00
Clemens Backes
1a911e6cbe [liftoff] Materialize constants before conditional branches
The number of constants stored in locals and the merge region can be
arbitrarily big, thus generating arbitrarily long code for a single
`br_if`. This happened in particular for unoptimized code.

This CL solves this by materializing all constants (in registers or on
the stack) before doing a conditional branch. This ensures that in a
series of `br_if`s, each constant is only spilled once instead of on
each single branch.

For the linked bug, this reduces the total generated code size by ~36%.

R=thibaudm@chromium.org

Bug: chromium:1117033
Change-Id: I84ea2ea9ba4d3de9b042ceb223af15c3d73dc5b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364498
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69485}
2020-08-19 15:31:51 +00:00
Jakob Gruber
1096e03159 [nci] Implement tier-up, part 2 (marking)
This is part two of the implementation (part 1: heuristics in NCI code
to call the runtime profiler, part 2: heuristics in the runtime
profiler to mark the function for optimization, part 3: the final
part, recognizing and acting upon the marked function).

The runtime profiler heuristics added here remain very similar to what
we have for ignition, except that we now inspect optimized frames with
NCI code, and that we (currently) do not OSR from NCI to TF.

Bug: v8:8888
Change-Id: Ie88b0a0dcee16334cea585c771a4b505035f2291
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2358748
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69484}
2020-08-19 15:22:02 +00:00
Santiago Aboy Solanes
8f87753f14 [csa][cleanup] Remove ParameterMode/TNodify FillFixedArrayWithValue
Bug: v8:9708, v8:6949
Change-Id: I1e06f7c87ea05ccb8c73571e9148ff0cb9f574a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362951
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69483}
2020-08-19 14:28:51 +00:00
Santiago Aboy Solanes
ad68de6f5b [compiler] Remove unused holder parameter from IF_ACCESS_FROM_HEAP(_C)
Bug: v8:7790
Change-Id: I44849f45d1049b8a3c794dd0558b734c1e7061fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362919
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69482}
2020-08-19 14:12:21 +00:00
Santiago Aboy Solanes
33e80ccd5d [csa][cleanup] Remove ParameterMode/TNodify UnsafeStoreFixedArrayElement
Drive-by: Remove a parameter that had to be SKIP_WRITE_BARRIER.

Bug: v8:9708, v8:6949
Change-Id: Ib5d0521f255a92749440a5001dab8b59eb078bf9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362950
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69481}
2020-08-19 14:08:21 +00:00
Omer Katz
132727fd46 cppgc: Initial incremental marking implementation.
This CL adds a basic implementation of incremental marking for standalone GC.
Followup CLs include:
* Use bytes instead of time as deadline
* Port incremental marking schedule from blink
* Mark on allocation
* Guarantees for progres/termination for standalone GC
* etc...

Calling StartIncrementalGarbageCollection triggers StartMarking which
schedules incremental marking as non-nestable tasks.
For unified heap, marking will continue running until it runs out of
work but it won't finalize independently.
For standalone, when incremental runs out of work it will schedule a new
task in which it will finalize marking and trigger the rest of the GC.
Users of standalone can also force finalization before incremental
marking as finished using FinalizeIncrementalGarbageCollectionIfRunning.
Calling CollectGarbage would also finalize an on-going incremental GC
if one exists. Otherwise it will trigger an atomic GC.

See the following doc for explanation of the various methods:
https://docs.google.com/document/d/1ZhJY2fOoD8sH53ZxMh2927Zl8sXqA7azJgcQTWx-YKs/edit?usp=sharing

Bug: chromium:1056170
Change-Id: I75ead414eb9da9f8b7f71c4638b9830fce7708ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2298009
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69480}
2020-08-19 13:50:16 +00:00
Maya Lekova
f0bade979d [test] Disable asm-wasm regression test
Bug: v8:10813
Change-Id: Ib7b3949147706552a6d569ad5fcd22f2f63d7977
No-Try: True
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364496
Auto-Submit: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69479}
2020-08-19 13:49:11 +00:00