Commit Graph

63344 Commits

Author SHA1 Message Date
Ross McIlroy
a90596329f [TurboProp] Add framework to pipeline.cc for a fast register allocator.
Adds basic framework to pipeline.cc to enable a seperate fast register
allocator for the TurboProp mid-tier. As part of this, common logic as
well as a base class for RegisterAllocationData is moved to a seperate
register-allocation.h header file. The current register allocator's
RegisterAllocationData is renamed to TopTierRegisterAllocationData, and
the former name is the new base class held in PipelineData.

BUG=v8:9684

Change-Id: I28285b7d6112505bf90e88ea3cda66d03dfabc74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295359
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68852}
2020-07-14 20:38:34 +00:00
Daniel Bevenius
c8679386bd [snapshot] enable mksnapshot usage to be displayed
Currently, when specifying '--help' with mksnapshot it will only
print the v8/d8 help message and options and then exit the process.
This means that the usage message from mksnapshot will never be
displayed.

This commit suggests adding an option to SetFlagsFromCommandLine that
can disable this printing and exiting. This allows mksnapshot to display
the usage and print the options after that.

While this works, it does seems a little strange that
SetFlagsFromCommandLine prints the help message and exits the process
but I'm probably missing some background details around this.

Change-Id: I28932adf3478b88b05eed4db70bf74946f8abf2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2290852
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68851}
2020-07-14 17:58:27 +00:00
Ng Zhi An
7c10560da2 [wasm-simd][arm64][arm] Fix v128.const
There is a sign-extension bug happening when packing 2 32-bit ints into
a 64-bit int. We are OR-ing int32_t with a uint64_t, so an integral
conversion converts int32_t to uint64_t, which is a sign extension, and
this gives unexpected results for a negative value:

    0x80000000 | uint64_t{0} -> 0xffffffff80000000

What we want is 0x0000000080000000.

Created a helper function to do this work of combining two uint32_t
into one uint64_t. The use of this function will also ensure that
if callers passed a int32_t, it would first be converted to a
uint32_t, and will not have this sign extension bug.

Sneaked a small regression test into the existing v128.const cctest,
and also cleanup the loop to reset `expected` array to 0.

Bug: chromium:1104033
Change-Id: Icaca4c5ba42077dd4463697b9220cdbca9974b5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2293044
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68850}
2020-07-14 17:51:47 +00:00
Zeynep Cankara
e8d24c66b9 [tools][system-analyzer] Support time logging for IC Events
This CL modifies the logging pipeline of V8 to track
timestamps of the IC events across the log file.

Modifies the current IC-explorer's code to make it
compatible with the IC event time processing.

Change-Id: I2a0f652e2657bdebe8cecd7862a7545f7b050cdb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2274613
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68849}
2020-07-14 17:13:33 +00:00
Ulan Degenbaev
443230c20d [heap] Fix an assertion in MarkingBarrier::MarkValue
The host object may have an impossible markbit pattern if it is a
one-word filler followed by an already marked object.

Bug: v8:10698
Change-Id: I498e6f0768fbdb181fc893f98f224dd3cd0e37e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295600
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68848}
2020-07-14 15:58:44 +00:00
Zeynep Cankara
832fac51ad [tools][system-analyzer] Convert modules to ES6
This CL identifies dependencies between modules
and convert existing javascript files to ES6
standard modules.

It cleans the unused code and remove duplicate
code throughout the app.

Bug: v8:10670

Change-Id: I787de8ca0d76c56aec5aeb3faa94a9e158a94c72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292237
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68847}
2020-07-14 15:34:54 +00:00
Maya Lekova
a21c84cb88 Revert "[Atomics.waitAsync] Implement Atomics.waitAsync"
This reverts commit 2a1abac52c.

Reason for revert: Breaking Arm CFI bot - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/1354?

Original change's description:
> [Atomics.waitAsync] Implement Atomics.waitAsync
> 
> Original design doc:
> https://docs.google.com/document/d/1dthXsVHMc1Sd_oYf9a-KZSFOd_a8dUgnt4REAG8YIXA
> 
> Design changes:
> https://docs.google.com/document/d/1aeEGDm1XSqoJkQQKz9F75WqnuAa2caktxGy_O_KpO9Y
> 
> 
> Bug: v8:10239
> Change-Id: Iab94ccab85d7b4ff23cff1955774b42edf5be541
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202981
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Shu-yu Guo <syg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68844}

TBR=ulan@chromium.org,marja@chromium.org,ahaas@chromium.org,ishell@chromium.org,syg@chromium.org

Change-Id: I1a1164ab29112bd0113b8b1823c78a3895cfd6cc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10239
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297469
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68846}
2020-07-14 14:00:20 +00:00
Zeynep Cankara
1c083f41f5 [tools][system-analyzer] Add time filtering functionality
This CL adds input fields to the IC Panel to filter
IC events based on the event creation time.

Filtered events across time reflected back to the IC-panel
statistics which helps to examine statistics about
the events in the selected time range.

Change-Id: Ib2d66caab25140b09daa4d6249758254f8c75ce8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295601
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Cr-Commit-Position: refs/heads/master@{#68845}
2020-07-14 13:51:14 +00:00
Marja Hölttä
2a1abac52c [Atomics.waitAsync] Implement Atomics.waitAsync
Original design doc:
https://docs.google.com/document/d/1dthXsVHMc1Sd_oYf9a-KZSFOd_a8dUgnt4REAG8YIXA

Design changes:
https://docs.google.com/document/d/1aeEGDm1XSqoJkQQKz9F75WqnuAa2caktxGy_O_KpO9Y


Bug: v8:10239
Change-Id: Iab94ccab85d7b4ff23cff1955774b42edf5be541
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202981
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68844}
2020-07-14 13:19:04 +00:00
Dominik Inführ
1f4e8c7c29 [heap] Background allocation supports sweeping
Before actually failing to allocate, let the background thread help to
sweep all pages of that space.

As a drive-by also rename allocation functions to make background and
main thread allocation more similar.

Bug: v8:10315
Change-Id: I26d4b622de949d4943e35071cee1df8b3d2889c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297383
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68843}
2020-07-14 13:00:33 +00:00
Dominik Inführ
3d3fd945d4 [heap] Finish sweeping without refilling free lists on shutdown
Help sweeper tasks complete sweeping sooner but do not refill free
lists on shutdown.

This races with allocating background threads. Background threads will
refill free lists themselves if more memory is required.

Bug: v8:10315
Change-Id: Ie615983229701e8c9434b4352bd055e9dbbb8671
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297466
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68842}
2020-07-14 12:50:04 +00:00
Santiago Aboy Solanes
12d04ed271 [csa][cleanup] Remove unused TaggedToFastJSArray method
Bug: v8:7703
Change-Id: I685ad610e29f277381103c4be2c374bf0b7336ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2294979
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68841}
2020-07-14 12:11:24 +00:00
Jakob Kummerow
c90353e3c7 Fix "named" loads for large TypedArray indices
The named LoadIC code was missing a check for "names" that
convert to TypedArray indices. This was flushed out by the
recent bump of the max TypedArray size from 2^32-1 to 2^32.
Named StoreICs had the same bug; fixed here as well.

Bug: v8:4153
Fixed: chromium:1104608
Change-Id: I6bd2552d6ccc238104f92e7b95d19970d4a75dae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295606
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68840}
2020-07-14 12:09:04 +00:00
Dominik Inführ
b863810b45 Reland^2 "[heap] Move start of incremental marking in allocation"
This is a reland of fc48a2283c

Original change's description:
> Reland "[heap] Move start of incremental marking in allocation"
>
> This is a reland of d6a14abe05
>
> Test wasn't written with incremental/concurrent marking in mind, so
> simply disabling it for this particular unittest.
>
> Original change's description:
> > [heap] Move start of incremental marking in allocation
> >
> > Move start of incremental marking out of
> > RefillLinearAllocationAreaFromFreeList. This avoids a potential
> > safepoint while holding allocation_mutex_.
> >
> > Bug: v8:10315
> > Change-Id: Ieb60ac68f26199eea7b6b7ad6d874851382f3d69
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287496
> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#68751}
>
> Bug: v8:10315
> Change-Id: I2a665400d9a784b1557474a051839d5c8b45e9e2
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292241
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68818}

Bug: v8:10315
Change-Id: I7873c6c20e39d6636bd95a26d0c1cfc8f89366bd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295363
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68839}
2020-07-14 12:07:34 +00:00
Santiago Aboy Solanes
b9c3e8c7fd [compiler] Test to search TransitionArrays on background and main thread
For the first test, we just test that we can search on two threads at
the same time. This CL sets the base for the future tests for more
complicated cases.

Bug: v8:7790
Change-Id: I1becf4493897b55e7ee0a7f37ab5bf1203bf14eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2241530
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68838}
2020-07-14 11:55:24 +00:00
Jakob Gruber
130d95eff9 Refactor SafepointTable and create a chokepoint
... on Code objects.

Refactors: create a dedicated WasmCode constructor, hide the internal
constructor, constify members, and let SafepointTable handle
out-of-line tables.

Expose a new Code::SafepointTableAddress() helper as the source of
truth. Some safepoint tables may move out-of-line in the near future.

Bug: v8:7777,v8:10707
Change-Id: I4e2d954ed2d157235e9dfa3e7a5ca08800896683
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297459
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68837}
2020-07-14 11:16:10 +00:00
Santiago Aboy Solanes
2b873b94e9 [compiler] Don't serialize BytecodeArrayData's source_positions_
This CL adds functionality to read the source positions directly
from the JS heap rather than from serialized data.

In order to do this, we create a PersistentHandles container in the
OptimizedCompilationInfo which gets passed onto the JSHeapBroker. This
allows us to create the handles in the main thread and pass them safely
to the background thread.

In order to read safely from the background thread, we need a LocalHeap
which blocks the GC from running and potentially moving the handles.
This LocalHeap is created only when the JSHeapBroker has finalized
serializing and destroyed when retiring it.

Bug: v8:7790
Change-Id: I19f8b08d12e5be0a3df34d6af2043310c0c7b6fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277802
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68836}
2020-07-14 11:01:44 +00:00
Jakob Gruber
6a852c4127 Create a chokepoint for HandlerTable access on Code objects
Handler tables (and other inlined Code metadata) will have to move
outside the .text section. This CL creates Code::HandlerTableAddress()
as a single chokepoint for accessing the handler table of a Code
object.

Drive-by: Create a dedicated constructor for WasmCode handler tables.

Bug: v8:7777
Change-Id: I01c5157b732ba509b2c76f2744fde271c2ba1411
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295605
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68835}
2020-07-14 10:41:41 +00:00
Zhao Jiazhong
0c8a5a8659 [mips][liftoff] Fix zeroing the stack.
The Sw/Sd in FillStackSlotsWithZero should't use kSystemPointerSize as
address offset, because the start address should be inclusive, and
the end address should be exclusive.

The skip-stack-guard-page test case failed due to this bug, and besides,
it also needs larger stack size on mips simulator.

Change-Id: Ieff55fe2c5a13e6dad1c5d073e1c0d22fe789d41
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2282663
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68834}
2020-07-14 10:34:41 +00:00
Zeynep Cankara
81521dd1a3 [tools][system-analyzer] Establish dark theme compatibility
This CL changes color of the timeline
and map panel to decrease eye strain and follow
material design guidelines.

Material design guidelines ensures to enhance
accessibility and conserve energy.

Bug: v8:10673, v8:10672
Change-Id: Iea8f487fa5b73437888e88d6e1d694d5bfaf830c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292239
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@{#68833}
2020-07-14 10:27:41 +00:00
Jakob Gruber
b342a1203c [objects] Add shared-function-info.cc
.. and move all SharedFunctionInfo implementations from objects.cc to
the dedicated shared-function-info.cc.

Drive-by: Also move remaining JSRegExp impls.

Bug: v8:8888
Change-Id: I59adc3928f379eeb8b70f26d7e51d01c889c9a47
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292240
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68832}
2020-07-14 09:36:41 +00:00
Frank Tang
0bebb1ad02 Roll test262
281eb10..8575a6e
Fix for https://crbug.com/v8/10623 is in
https://chromium-review.googlesource.com/c/v8/v8/+/2291617

Bug: v8:7834
Change-Id: Ia6f6f36b99719ca873702b78ac7aa8284e8ce040
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295636
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68831}
2020-07-14 07:31:39 +00:00
v8-ci-autoroll-builder
bc78427110 Update V8 DEPS.
Rolling v8/build: 3fd005e..b8f14c0

Rolling v8/third_party/aemu-linux-x64: s9pb0zCLuc3Aj9A3n8IG3qBVpc2wOmQ1A32bDtG1idwC..sruBLlVcbmt9F1gAt88JIykKImWZUcWy2HLp9bT1IBYC

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/e4221b4..09e01d1

Rolling v8/third_party/depot_tools: 9af33fa..6897807

Rolling v8/tools/clang: 21dcb28..d027d75

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

Change-Id: I55262afcfef2a5328d2bd4fdeffd94b582900ba4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295663
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@{#68830}
2020-07-14 03:48:59 +00:00
Milad Farazmand
e7351c5e38 PPC: [wasm-simd] Implement simd conversion operations
Change-Id: I0eb2046d4bbb4305873866e99053d520d5e402f6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295882
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#68829}
2020-07-13 23:04:09 +00:00
Dominik Inführ
53e295ba57 [heap] Rename main thread allocation functions
Rename functions for main thread allocation to indicate that they are
used for main thread allocation.

Bug: v8:10315
Change-Id: Idd359a7a439ec2e93f0bdc2f1bed987755790bbe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292308
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68828}
2020-07-13 19:20:39 +00:00
Frank Tang
426af6c01c Sync w/ fractionalSecondDigits
Sync the implementation with the latest version of https://github.com/tc39/ecma402/pull/347

Bug: v8:10692
Change-Id: I4e2144da9f770607b4d79e7ce32f079dd2eef54c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2290627
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68827}
2020-07-13 17:43:28 +00:00
Sathya Gunasekaran
c399fdc5fb Revert "Reland "[heap] Move start of incremental marking in allocation""
This reverts commit fc48a2283c.

Reason for revert: fails tsan: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20concurrent%20marking/13871

Original change's description:
> Reland "[heap] Move start of incremental marking in allocation"
> 
> This is a reland of d6a14abe05
> 
> Test wasn't written with incremental/concurrent marking in mind, so
> simply disabling it for this particular unittest.
> 
> Original change's description:
> > [heap] Move start of incremental marking in allocation
> >
> > Move start of incremental marking out of
> > RefillLinearAllocationAreaFromFreeList. This avoids a potential
> > safepoint while holding allocation_mutex_.
> >
> > Bug: v8:10315
> > Change-Id: Ieb60ac68f26199eea7b6b7ad6d874851382f3d69
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287496
> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#68751}
> 
> Bug: v8:10315
> Change-Id: I2a665400d9a784b1557474a051839d5c8b45e9e2
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292241
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68818}

TBR=ulan@chromium.org,dinfuehr@chromium.org

Change-Id: I9063a942c050b79cd3b66226dc25651ccf9fa60a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:10315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295361
Reviewed-by: Sathya Gunasekaran  <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68826}
2020-07-13 16:33:42 +00:00
Igor Sheludko
d81f7c6e16 [zone] Cleanup ZoneList and ScopedList classes
Also make ScopedList class Zone-agnostic and move it to src/utils.

Bug: v8:10506
Change-Id: Ibf0869566caa767809bdf95cb03c01e599613938
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292234
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68825}
2020-07-13 15:36:28 +00:00
Jakob Gruber
010667b4be [nci] Cache NCI code in the compilation cache
This adds a new Code section to the compilation cache (aka isolate
cache), and inserts generated native context independent code into it.

Cache consumption will be implemented in a following CL.

Bug: v8:8888
Change-Id: I997c13da0fe547f395627a48f1cb7e5f19dfc3ba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288851
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68824}
2020-07-13 14:55:12 +00:00
Milad Farazmand
7286f38822 [nci] Fix compilation error on PPC and MIPS64
Currently the compilation may fail with the following error:

loop will run at most once (loop increment never executed)

Change-Id: I79dd1c5212475647c42e803858fe589cd9a05b7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2294916
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#68823}
2020-07-13 14:54:07 +00:00
Dominik Inführ
5a779ecd8b [heap] Finish sweeping only for particular space
Instead of completely finishing sweeping in the slow path of allocation,
just sweep all pages for the current PagedSpace. This will help
in making main thread allocation concurrent, since there is no need
anymore to lock the allocation mutexes of other PagedSpaces.

Bug: v8:10315
Change-Id: I1cf76d94fa7a22e726fc71f49c2d5669e4a0598c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292306
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68822}
2020-07-13 14:50:57 +00:00
Alexey Kireev
e87484c6d5 Enable full WASM function names with arguments for Intel VTune
If WASM code is profiled with Intel VTune Profiler then the user sees 
incomplete function name - a function name is cut when a space is met.
This patch fixes the issue to show a complete function name including 
arguments.

Change-Id: I0e550e921acb703ec14fe83d67e7bb47035f739d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2246575
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68821}
2020-07-13 14:01:27 +00:00
Santiago Aboy Solanes
33baade2b2 [csa][cleanup] Remove unused IsValid(SmiIndex)
Bug: v8:7703
Change-Id: Ia4df2637873df5dc7b4beb6aaa781c7b4d32a54c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292249
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68820}
2020-07-13 13:35:18 +00:00
Igor Sheludko
c7e26acae8 [zone] Cleanup zone allocations in src/parsing and src/diagnostics
... by migrating old-style code
  MyObject* obj = new (zone) MyObject(...)

to the new style
  MyObject* obj = zone->New<MyObject>(...)

Bug: v8:10689
Change-Id: I08e513911a6b4e5d564cab42720a197d1244dd2e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292238
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68819}
2020-07-13 12:42:37 +00:00
Dominik Inführ
fc48a2283c Reland "[heap] Move start of incremental marking in allocation"
This is a reland of d6a14abe05

Test wasn't written with incremental/concurrent marking in mind, so
simply disabling it for this particular unittest.

Original change's description:
> [heap] Move start of incremental marking in allocation
>
> Move start of incremental marking out of
> RefillLinearAllocationAreaFromFreeList. This avoids a potential
> safepoint while holding allocation_mutex_.
>
> Bug: v8:10315
> Change-Id: Ieb60ac68f26199eea7b6b7ad6d874851382f3d69
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287496
> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#68751}

Bug: v8:10315
Change-Id: I2a665400d9a784b1557474a051839d5c8b45e9e2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292241
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68818}
2020-07-13 12:26:07 +00:00
Victor Gomes
62e06b3965 [builtins] Adapt CallOrConstructForwardVarargs to handle V8_REVERSE_JSARGS
This CL adapts the builtin for architectures ia32, x64 and arm.

Change-Id: Ib191e66a75eaddaee505e30b8cafb0c5e5bf42ce
Bug: v8:10201
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292246
Auto-Submit: 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@{#68817}
2020-07-13 11:48:01 +00:00
Zeynep Cankara
1f428bc405 [tools][system-analyzer] Add instructions to index.html
This CL adds instructions for easier navigation in the app.

Change-Id: I4c5332d400d51f2c7664a45efb7fbf700041c4eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292244
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Zeynep Cankara <zcankara@google.com>
Cr-Commit-Position: refs/heads/master@{#68816}
2020-07-13 10:27:17 +00:00
Jake Hughes
fc2d1d090d [heap] Add flag for pinning pages
In order to support conservative stack scanning, we need to be able to
pin pages if they're pointed to by an ambiguous pointer. This CL lets us
do this by providing an IS_PINNED flag which, when enabled, prevents a
page from being selected as an evacuation candidate during compaction.

Bug: v8:10614
Change-Id: I45d1c74b83aad1b56e078cc270749a0aee804716
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2278465
Commit-Queue: Jake Hughes <jakehughes@google.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68815}
2020-07-13 10:03:57 +00:00
Marja Hölttä
ce4755a1f1 [test262] Remove obsolete lines from test262.status
test262 has updated the tests in question.

Bug: v8:9808
Change-Id: Ia4d257f230d7ae5412acab133f43ebe3467c21d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292242
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68814}
2020-07-13 09:18:57 +00:00
Michael Lippautz
9a11ada5fc heap: Add atomic unified-heap support
Adds support for main-thread handling of JSMember during the
atomic pause.

Follow-ups for later:
- Copy/Move/Heterogenous assignment
- Write barrier
- Atomic handling for concurrent processing.

Bug: chromium:1056170
Change-Id: Ia9ac4599ca85cf7cc2d67066e89485744d7d56b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289781
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: 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@{#68813}
2020-07-10 20:50:06 +00:00
Adam Klein
b212db2d9d [respect] Stop using "blacklist" in several python tools
Bug: v8:10619
Change-Id: I644c3421085b029aaf9b4de3b262ca8a4734539e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292916
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68812}
2020-07-10 19:11:36 +00:00
Jakob Kummerow
0a7d77ecba [wasm-gc] Implement rtt global initializers
Bug: v8:7748
Change-Id: I925be7942f4825aeac7364bc7c899b6bef8001c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284985
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68811}
2020-07-10 19:07:50 +00:00
Ng Zhi An
0a825922d0 [wasm-simd] Fix constant used in test
This was pointed out in https://crrev.com/c/2290623 but was missed.

Change-Id: I1f0206d1dbc067ee57061f1b5e7085ebe1643906
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292738
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68810}
2020-07-10 17:49:35 +00:00
Ng Zhi An
0317c53bac [Py3] Fix flake8 warnings
- was missing an import sys
- check for long
- check for xrange

This file is now flake8 warning free, and should work on both Py2 and
Py3.

$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

Bug: v8:8594
Change-Id: Iae857f4686bcad509fa700954b7f30f86150739f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288177
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68809}
2020-07-10 16:57:15 +00:00
Igor Sheludko
1511d95ea4 [zone] Cleanup zone allocations in src/compiler and tests, pt.3
... by migrating old-style code
  MyObject* obj = new (zone) MyObject(...)

to the new style
  MyObject* obj = zone->New<MyObject>(...)

Bug: v8:10689
Change-Id: I55c686bbedfa1fd1955a5927df3f72b366312fd4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288867
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68808}
2020-07-10 16:39:05 +00:00
Leszek Swirski
82726b64b7 [hashtable] Allow GlobalDictionary to have holes
Rather than marking deleted GlobalDictionary entries with a "The Hole"
valued PropertyCell, we now remove those PropertyCells entirely and
use the standard HashTable deleted item marker (also the Hole).

This comes with several simplifications:

  1) We no longer need a customizable IsKey method on HastTable shapes,
     which was only used by GlobalDictionary to mark "The Hole" cells
     as not real keys,
  2) We can get rid of IsLive/IsKey from the Shape entirely, and define
     it directly in the HashTable, which will also allow us (in the
     future) to encourage caching of "undefined" and "Hole" where used
     for IsKey checks,
  3) PropertyCell invalidation doesn't necessarily have to allocate a
     new replacement cell (specifically, on deletion), nor does it have
     to deal with cells that contain the Hole,
  4) kNeedsHoleCheck is renamed to kMatchNeedsHoleCheck (to be explicit
     that this is only needed to guard IsMatch, which may do an
     indentity comparison and thus not need the HoleCheck guard). It's
     also moved out of BaseShape and into the various shapes that
     define IsMatch, to make them more explicitly think about the
     value,
  5) Modified some while loops into for loops to allow clearer use of
     "continue" on successful hole checks.

Change-Id: If591cbb6b49d59726bdc615413aba4f78fd64632
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292230
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68807}
2020-07-10 16:31:26 +00:00
Ng Zhi An
dc82799d24 [wasm-simd][liftoff] Implement v128.const
This implements v128.const for ia32, x64, arm, and arm64.

Moves one of the test case under the correct header.

Bug: v8:9909
Change-Id: I93eb179ac5fd0bc22e3dd5277f7d73699ac8b452
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2290623
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68806}
2020-07-10 16:24:45 +00:00
Leszek Swirski
ae53e49195 [cleanup] Move GetMap to HashTable from Shape
The map of the HashTable is more a property of the HashTable than part
of its shape, so we can move its static map getter (for construction)
to to HashTable class itself.

Change-Id: I73f4aa7260d6ce749ef51961767fd37d1ab520e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289782
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68805}
2020-07-10 16:11:26 +00:00
Jakob Kummerow
4f50c554ba [wasm-gc] Add null checks to ref.cast and ref.test
Bug: v8:7748
Change-Id: I43384d10805b62745a4bc19fa0a4174e6ee94f0f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289777
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68804}
2020-07-10 15:54:45 +00:00
Igor Sheludko
1540a0143a [zone] Cleanup zone allocations in src/compiler and tests, pt.2
... by migrating old-style code
  MyObject* obj = new (zone) MyObject(...)

to the new style
  MyObject* obj = zone->New<MyObject>(...)

Bug: v8:10689
Change-Id: Iec2b3102bd35ad7e50b90882ade78d27999a71f2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2288866
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#68803}
2020-07-10 15:51:15 +00:00