Commit Graph

56252 Commits

Author SHA1 Message Date
Mathias Bynens
b17b72e0a3 Roll Test262 to update RegExp/Unicode tests
https://github.com/tc39/ecma262/issues/1530
https://github.com/tc39/test262/pull/2161

Bug: v8:7834, v8:9131
Change-Id: I9c5efe9d6eec6c5dabc120d1b1089341ed5b1088
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625992
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61760}
2019-05-22 21:57:03 +00:00
Frank Tang
9f7dec9380 Stage calendar/numberingSystem options.
Adds
"calendar" and "numberingSystem" options for Intl.DateTimeForamt and
"numberingSystem" for Intl.NumberFormat.

Plan to flip to ship in early June (after m76 branch) for chrome m77.
Spec: https://github.com/tc39/ecma402/pull/175
I2I: https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!searchin/v8-dev/ftang%7Csort:date/v8-dev/7sk-rEHuCY4/n7kH0WzyAwAJ

Tests:
test262/intl402/NumberFormat/numbering-system-options
test262/intl402/DateTimeFormat/numbering-system-calendar-options
intl/number-format/check-numbering-system
intl/date-format/check-numbering-system
intl/date-format/check-calendar

Bug: v8:9154
Change-Id: I80020b9af6bf9c87f5a1efc7aac3080e723eea34
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622728
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61759}
2019-05-22 17:22:47 +00:00
Toon Verwaest
4f6bcc1d34 [unicode] Fix Utf8Decoder::is_one_byte to actually include latin1
Change-Id: Ibb3f6d5a0f2f24ff5359ca280f058a20c8215ac1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624801
Auto-Submit: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61758}
2019-05-22 17:01:37 +00:00
Paolo Severini
c6bf94fa05 Fix a race condition in win64_unwindinfo::RegisterNonABICompliantCodeRange
Function win64_unwindinfo::RegisterNonABICompliantCodeRange() calls
LoadNtdllUnwindingFunctions() to dynamically load from ntdll a couple of
functions that are not available on Windows 7. Unfortunately there is a
race condition in LoadNtdllUnwindingFunctions() that can cause a crash
when multiple isolates are initialized concurrently.
This can be fixed using base::CallOnce().

Bug: v8:9204
Change-Id: I5c57708ab5f16e9ef9f897efce1ccdf591e2f828
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1623592
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#61757}
2019-05-22 16:59:03 +00:00
Z Duong Nguyen-Huu
aaecb43329 Port StringPrototypeConcat to Torque
Bug: v8:8996
Change-Id: Icb454f8ff5f0964b019f360e71119158341307de
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622743
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61756}
2019-05-22 16:57:57 +00:00
Clemens Hammacher
5d0b4ad649 Reland "[wasm] Compile big functions first"
This is a reland of 2ce5da9a70

Original change's description:
> [wasm] Compile big functions first
>
> Add a special queue to {CompilationUnitQueues} to handle big functions
> specially. They are organized in a priority queue (ordered by their
> body size), and all threads check this queue first, before executing
> the tasks from their own queue. In some benchmarks, this shortens
> overall compilation time by 10-20 percent.
>
> R=ahaas@chromium.org
>
> Bug: v8:8916, chromium:950493
> Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61746}

Bug: v8:8916, chromium:950493
No-Presubmit: true
Change-Id: I26c949ce6a0f5efee684561dc0b4eba44921cddf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624799
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61755}
2019-05-22 16:43:40 +00:00
Clemens Hammacher
2de2bc8838 Revert "[tracing] Add a configurable output stream for perfetto tracing"
This reverts commit a03ed62679.

Reason for revert: Fails on win32: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/21252

Original change's description:
> [tracing] Add a configurable output stream for perfetto tracing
> 
> Add the ability to provide perfetto with an output stream for the JSON
> consumer rather than hardcode it. D8 will use this interface exclusively
> once the old trace controller is removed.
> 
> Also add a test for scope-managed trace events and their duration - this
> was leftover from a previous CL.
> 
> Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
> Bug: v8:8339
> Change-Id: I1c45e17e528b549a4cfdaecabd33c7ac4ab4af77
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611801
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61753}

TBR=ulan@chromium.org,yangguo@chromium.org,jgruber@chromium.org,petermarshall@chromium.org

Change-Id: Ie7dbe4fc5f9e496fafc8e3ad2b05011b88c9e2c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8339
Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1625465
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61754}
2019-05-22 15:58:11 +00:00
Peter Marshall
a03ed62679 [tracing] Add a configurable output stream for perfetto tracing
Add the ability to provide perfetto with an output stream for the JSON
consumer rather than hardcode it. D8 will use this interface exclusively
once the old trace controller is removed.

Also add a test for scope-managed trace events and their duration - this
was leftover from a previous CL.

Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Bug: v8:8339
Change-Id: I1c45e17e528b549a4cfdaecabd33c7ac4ab4af77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611801
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61753}
2019-05-22 15:25:31 +00:00
Andreas Haas
d56ee2e3df [wasm][anyref] Cache export wrappers per signature
Up until now, we cached export wrappers per export index. With the
anyref proposal potentially many more functions will need export
wrappers, e.g. any function that is stored in a table, and any
function accessed by the new ref.func instruction.

With this CL, we change the caching scheme an do the caching per
signature. Thereby we can guarantee that any export wrapper which
potentially exists can be stored in the cache.

For cctests which use wasm-run-utils, we don't know the size of the
cache anymore ahead of time. However, we assume that no more than
5 signatures will be used in any cctest. If this assumption is not
true, we can just adjust the number.

The cache is now accessed in all code paths where we need an export
wrapper.

Bug: chromium:962850

Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61752}
2019-05-22 14:59:50 +00:00
Andreas Haas
4088c521f6 [wasm] Update spec tests
The core spec tests need to be generated manually for now, because our
bots don't have an ocaml installation.

This CL was created automatically by running
./tools/wasm/update-wasm-spec-tests.sh.

R=adamk@chromium.org

Change-Id: I4c6199b51f30b29f150914a9bffe6009452c8c47
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624794
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61751}
2019-05-22 14:58:45 +00:00
Clemens Hammacher
f5f63d0e3b [torque] Use "." instead of "->" on Object
{Object::operator->} will be removed soon.

R=tebbi@chromium.org

Bug: v8:9183, v8:3770
Change-Id: Ifb7754c16055aec41dd30a92e81521a830de4f26
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624210
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61750}
2019-05-22 14:57:40 +00:00
Clemens Hammacher
a69be08a9e Revert "[wasm] Compile big functions first"
This reverts commit 2ce5da9a70.

Reason for revert: Fails on several bots, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/26607

Original change's description:
> [wasm] Compile big functions first
> 
> Add a special queue to {CompilationUnitQueues} to handle big functions
> specially. They are organized in a priority queue (ordered by their
> body size), and all threads check this queue first, before executing
> the tasks from their own queue. In some benchmarks, this shortens
> overall compilation time by 10-20 percent.
> 
> R=​ahaas@chromium.org
> 
> Bug: v8:8916, chromium:950493
> Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61746}

TBR=ahaas@chromium.org,clemensh@chromium.org

Change-Id: Ib47b23ff878d4a561df1993d532e5eeafea64ff6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8916, chromium:950493
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624797
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61749}
2019-05-22 14:56:36 +00:00
Jakob Gruber
f0bb837f1b [mksnapshot] Hide details of the embedded file writer
Refactor-only: move the more involved EmbeddedFileWriter methods into
the .cc file.

Bug: v8:9103
Change-Id: I546c23544a0425a32cbd04cecc759f9b553b7071
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624207
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61748}
2019-05-22 14:25:35 +00:00
Georg Neis
30a1def786 [turbofan] Avoid using LookupIterator to read constant field
Use JSObject::FastPropertyAt instead. Also, to avoid adding an
immutable-flag to PropertyAccessInfo, use DataConstant (instead of
DataField) for properties that are immutable according to their
attributes.

This is in preparation for serializing the property value for
concurrent inlining.

Bug: v8:7790
Change-Id: Ib40059bde2e5eb14b26400bcab72d6ea6bb57666
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624790
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61747}
2019-05-22 14:14:43 +00:00
Clemens Hammacher
2ce5da9a70 [wasm] Compile big functions first
Add a special queue to {CompilationUnitQueues} to handle big functions
specially. They are organized in a priority queue (ordered by their
body size), and all threads check this queue first, before executing
the tasks from their own queue. In some benchmarks, this shortens
overall compilation time by 10-20 percent.

R=ahaas@chromium.org

Bug: v8:8916, chromium:950493
Change-Id: I45f36a05304e2f1c4f3ce6b8821ddd4bd08fbba3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622122
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61746}
2019-05-22 14:10:04 +00:00
Jakob Gruber
a35e79ee58 [mksnapshot] Add abstract base class for platform embedded file writers
This is in preparation for better cross-compile support in mksnapshot.
Specifically, this CL series will introduce runtime switches to select
the target platform for generated embedded.S assembly.

Each platform writer will derive from the abstract base class
PlatformEmbeddedFileWriterBase. Currently, the code remains
functionally unmodified and was just moved to
PlatformEmbeddedFileWriterGeneric. This will be split up in future
CLs.

Bug: v8:9103
Change-Id: Ie7e29bb60ba5a8ff6c0c1edec676943b80a1781b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622854
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61745}
2019-05-22 14:01:00 +00:00
Ross McIlroy
6908209dbb [OWNERS] Add solanes@ to COMMON_OWNERS
Change-Id: I68e716ee664ae2295089ee4d6af6a0ea6dbf1c1e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624789
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61744}
2019-05-22 13:50:51 +00:00
Mythri A
6cb093cd4c [ic] In KeyedStoreIC use the new receiver map instead of computing transitions
KeyedStoreIC computes the expected transition to the map based on the
incoming receiver map, the index and the value that is being stored.
Since we already store the element into the object, the runtime would
have already computed these transitions and it is possible to use the
new map of the object instead of recomputing the map. Though we would
need additional checks to see the newly transitioned map is indeed
a more generic elements transition and not an unexpected transition.

Bug: v8:8394
Change-Id: If6819895e5d20dd76bb062c6064593bf3a920778
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621937
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61743}
2019-05-22 13:32:39 +00:00
Simon Zünd
5c6fd450e5 [cleanup] Remove ExitFrameType enum on the Builtins class
This CL also removes the AdaptorWithExitFrame builtin and simplifies
respective use-sites.

Bug: v8:9183
Change-Id: I97c4e35aa551f586faedcb09cc0b2b837e5307f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624215
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61742}
2019-05-22 13:23:52 +00:00
Mythri A
7b10b36fdb [map] In FindElementsKindTransitionedMap only check for required element kinds
FindElementsKindTransitionedMap checks if we could transition from
the source map to one of the target maps without requiring any instance
rewriting. It does this by replaying all the property transitions of the
source map on each elements kind map and seeing if it needs a instance
rewrite. Since we already know the elements kind of the target maps, we can
avoid doing this for element kinds that are not in target map.

Change-Id: Ief9ba89992a411535a0335c3b67221666647f55e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624208
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61741}
2019-05-22 13:01:18 +00:00
Igor Sheludko
1f0543af7a Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64""
This reverts commit 2d7102004f.

Reason for revert: It's not ready for shipping in M76.

> Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
>
> This is a reland of d61a9347c8
>
> 6th attempt. Relanding after fixing TSan/UBSan issues.
>
> Original change's description:
> > [ptr-compr][x64] Temporarily enable pointer compression on x64
> >
> > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
> > pointer compression in order to keep testing the full pointer mode.
> >
> > Bug: v8:7703
> > Change-Id: Ib1498609603cb03be2464043658131d5a2f1e012
> > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
> > Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel,mac-rel
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1559850
> > Commit-Queue: Igor Sheludko <ishell@chromium.org>
> > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#61416}
>
> Bug: v8:7703
> Change-Id: I1fa0989aef9ea08e54fd6dfd32d6989367332ce3
> Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
> Cq-Include-Trybots: luci.v8.try:v8_linux64_cfi_rel_ng
> Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel,mac-rel
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1607654
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61559}

Tbr: machenbach@chromium.org
Bug: v8:7703
Change-Id: Ic73b57203bbcb637e33b3577ce8142d43c364796
Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
Cq-Include-Trybots: luci.v8.try:v8_linux64_cfi_rel_ng
Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel,mac-rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621942
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61740}
2019-05-22 12:51:53 +00:00
Jakob Gruber
8b5c2bdd68 [mksnapshot] Add runtime flag to specify the target architecture
The mksnapshot-specific runtime flag --target-arch, together with
--target-os, specifies the target platform for the generated embedded.S
file.

Bug: v8:9103
Change-Id: Icb03a381101e7ab0db4a5fbbf3be8e23ed0b1a1c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624165
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61739}
2019-05-22 12:38:12 +00:00
Santiago Aboy Solanes
af1b77b1a2 [ptr-compr][Turbofan] Adding the TypedStateValues decompress reduction
Decompressions before TypedStateValues can be safely skipped since
TypedStateValues always decompresses values.

Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:8977, v8:7703
Change-Id: Ic3d43c21183c0decda123cb377706ee5c3c12f87
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617939
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61738}
2019-05-22 12:25:52 +00:00
Clemens Hammacher
dcf881de5c Remove redundant {Handle<T>::location()} definition
Since {Handle<T>::location()} just returns the value of
{HandleBase::location()}, we can just publicly expose the latter and
save some compile time and object file size.

R=jkummerow@chromium.org

Bug: v8:9183
Change-Id: I9cddba2c9f8b097c26cf1a4e7dbfbe72b03d79c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624211
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61737}
2019-05-22 12:07:23 +00:00
Santiago Aboy Solanes
b05ab0af10 [ptr-compr][Turbofan] Word64Equal reducing between decompress and constant
Adding the case of having a decompress and a constant (both HeapConstant
and Int64Constant).

Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:8977, v8:7703
Change-Id: Ic9475e9762575e7f6ca2937d832638f7c9897e1d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613253
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61736}
2019-05-22 11:50:03 +00:00
Michael Lippautz
880c3202e0 Reland "[heap] Add global memory controller"
Provide a global memory controller used to compute limits for combined
on-heap and embedder memory. The global controller uses the same
mechanism (gc speed, mutator speed) and growing factors as the regular
on-heap controller.

Rely on V8's mechanisms for configured state that stops shrinking the
limit.

Reland:
- API fixes with overrides and default versions.
- Fix of depending on uninitialized values when using the old API.
- GCTracer: Fixed issue in speed computation.
- GCTracer: Added unittests.

This reverts commit 5e043f2773.

Bug: chromium:948807
Change-Id: I0f81253b3e1a8b49a7ac107c012a15e33cb514d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622852
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61735}
2019-05-22 11:32:55 +00:00
Clemens Hammacher
1413e4f53f Avoid Object::operator-> from Handle
Add an {ObjectRef} class to Handle which is returned by {operator->}.
Before, it returned {T} directly, and then used {T::operator->} for
the chained {operator->}.
As a drive-by, this CL also removes {HandleBase::operator*} and
implements this in {Handle<T>} directly.

R=jkummerow@chromium.org

Bug: v8:9183, v8:3770
Change-Id: I0a79fbbc393539543a62773c98a39c7bc2a84b77
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624206
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61734}
2019-05-22 11:13:49 +00:00
Mike Stanton
1d1567a319 [turbofan] Make serializer environment tracing more readable
Also, when --trace-heap-broker-verbose is on, we trace
bytecode-by-bytecode alterations to the environment.

Change-Id: I535a063cefd57f055711fdd7d7473cb63c963c7f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622851
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61733}
2019-05-22 11:09:12 +00:00
Mike Stanton
1aac6a435a [TurboFan] Tracing inlining crashes when --concurrent-inlining is on.
This CL adjusts the tracing to print addresses of interesting
SharedFunctionInfos instead of dereferencing the handles to look
at the name.

Bug: v8:7790
Change-Id: I25d6f96728bd78d8a8becac6f2212f4f7a030c5c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622969
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61732}
2019-05-22 11:08:07 +00:00
Yang Guo
78ed3456cb Fix file list belonging to libbase
R=mstarzinger@chromium.org

Bug: v8:9247
Change-Id: I6819489dd8ed6d5a6f8e2631a5901c7d4b460960
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621943
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61731}
2019-05-22 10:39:46 +00:00
Tobias Tebbi
52636535fa [turbofan] fix deopt-loop for specuative Boolean to Number conversion
Bug: chromium:965513
Change-Id: I18ff91c98ad6106c5d4df260e6ead6a9e2425dbb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622119
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Auto-Submit: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61730}
2019-05-22 10:38:39 +00:00
Mythri A
9188d54941 [ic] Decouple transitions from KeyedAccessStoreMode
KeyedAccessStoreMode is used when creating store handlers to determine
which cases to handle (ex: handle cow, grow) and hence choose an
approriate builtin. It is also used to specify elements kind transitions
which is used when computing ic transitions. The store mode and the
transition mode are independent of each other and it would be cleaner to
use different enums to represent them. This also reduces the total number
of cases in each enum.

Change-Id: I96aeff7a765b312b8088e831776743c67c533bd9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619751
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61729}
2019-05-22 09:58:30 +00:00
Michael Achenbach
45bfa681f9 [foozzie] Add interrupt-budget trial
NOTRY=true

Bug: v8:9276
Change-Id: Ifd0ec8d86d880ce29101260833528e1aa230de01
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624205
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61728}
2019-05-22 09:49:40 +00:00
Sigurd Schneider
f438f15484 [torque] Define field offsets for Torque generated C++ classes..
..without relying on macros directly inside the class.

Change-Id: If06934e3b54cdd65b393c23ec6bf62af2fd39dfa
Bug: v8:7793
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615256
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61727}
2019-05-22 09:07:58 +00:00
Santiago Aboy Solanes
e8b5eb4698 [ptr-compr][turbofan] Adding tests in Word64Equal decompression when lhs == rhs
This is a border case that appeared in one of our tests. It seems a good
idea to test for it. It does not seem to be common enough to handle it
specifically (i.e replacing the Word64Equal with a true bool constant)

Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:8977, v8:7703
Change-Id: I27e85a2493ab03b92591e788a185d6109904eef1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613252
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61726}
2019-05-22 08:42:14 +00:00
Yang Guo
0fa243af70 Move relevant files to src/execution
Bug: v8:9247
Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61725}
2019-05-22 08:36:33 +00:00
Michael Achenbach
6207d75e91 [foozzie] Add no-ic configurations
NOTRY=true

Bug: v8:9277
Change-Id: If385439e2bdd8146fe3ba5734920b2096b6c1789
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622853
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61724}
2019-05-22 08:28:53 +00:00
Simon Zünd
01575eb1f4 [cleanup] Remove API builtins
The HandleApiCall uses BUILTIN_EXIT frames now instead of EXIT frames,
so API calls show up in stack traces. We no longer need API builtins
and this CL removes them and the corresponding C++ macros.

Bug: v8:9183
Change-Id: Ifa2e842123ef7e96b2ff296116f46d5d799a63ad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617249
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61723}
2019-05-22 08:23:33 +00:00
Sigurd Schneider
52a56becf0 Cleanup handling of {Strong,Weak}Fields sections
This is mainly a torque change, but as a drive-by we get rid of
kStartOfPointerFieldsOffset
kEndOfTaggedFieldsOffset
which often are used to enclose a section of pointers in an object.

Bug: v8:7793
Change-Id: I52d83d09249a3cc6a99e7e7506e154ccfca53a12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615249
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61722}
2019-05-22 08:10:43 +00:00
Michael Achenbach
90059ee5a0 [test] Skip slow test on ppc64
TBR=mythria@chromium.org
NOTRY=true

Bug: v8:9246
Change-Id: I18d6c22da5746d3af34c65ea22fd5ef80e4f13fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622850
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61721}
2019-05-22 06:56:53 +00:00
Andrey Lushnikov
42f60d8d78 [DevTools] Roll inspector-protocol to v8
New revision: fe0467fd105a9ea90fbb091dc2a7b4cdbf539803

Change-Id: I0c53935b719194f16ade131f703d656749ace3d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1623586
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Alexei Filippov <alph@chromium.org>
Auto-Submit: Andrey Lushnikov <lushnikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61720}
2019-05-22 06:15:38 +00:00
v8-ci-autoroll-builder
6e192dbdb0 Update V8 DEPS.
Rolling v8/build: 12e7bf6..0742a14

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5655d8f..535dc1d

Rolling v8/third_party/depot_tools: 5716400..c7e440c

Rolling v8/third_party/googletest/src: 9d4cde4..f71fb4f

Rolling v8/tools/clang: 5b1310e..2db48c7

TBR=machenbach@chromium.org,sergiyb@chromium.org,tmrts@chromium.org

Change-Id: Icfaca034cd7956805b8ba7815c97bc4ba219ca3a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1623633
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@{#61719}
2019-05-22 06:14:33 +00:00
Andreas Haas
84b55f9d7b [wasm] Add check for table.init table index
At the moment the implementation of LoadElemSegmentImpl is not ready
to support the loading of passive element segments into tables with
index > 0. I added a check so that we notice when somebody starts to
implement it.

R=binji@chromium.org

Bug: v8:9270
Change-Id: I118da434cc379bbdb7bcef4af847216f5124551f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622105
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61718}
2019-05-22 06:13:28 +00:00
Andrew Comminos
245a5b38e7 [cpu-profiler] Remove redundant record_samples option
Now that we support a max_samples parameter, it isn't actually necessary
to have a record_samples flag (as it can just be modeled by 0).

Change-Id: I578ecc9f6ee73ecbe1f93d0d04ee8028a9a2716d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611015
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61717}
2019-05-22 06:12:24 +00:00
Clemens Hammacher
7a1f7e8861 Revert "Reland "[heap] Add global memory controller""
This reverts commit dac86be251.

Reason for revert: Still failing msan: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/26904

Original change's description:
> Reland "[heap] Add global memory controller"
> 
> Provide a global memory controller used to compute limits for combined
> on-heap and embedder memory. The global controller uses the same
> mechanism (gc speed, mutator speed) and growing factors as the regular
> on-heap controller.
> 
> Rely on V8's mechanisms for configured state that stops shrinking the
> limit.
> 
> This reverts commit 5e043f2773.
> 
> Tbr: ulan@chromium.org
> Bug: chromium:948807
> Change-Id: Id4f94e7dcb458d1d0d2f872194f8f3ea0959a73f
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622968
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61715}

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

Change-Id: If30649f158a08fd185f2771a13b8e09cf53fb667
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:948807
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622849
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61716}
2019-05-22 06:10:45 +00:00
Michael Lippautz
dac86be251 Reland "[heap] Add global memory controller"
Provide a global memory controller used to compute limits for combined
on-heap and embedder memory. The global controller uses the same
mechanism (gc speed, mutator speed) and growing factors as the regular
on-heap controller.

Rely on V8's mechanisms for configured state that stops shrinking the
limit.

This reverts commit 5e043f2773.

Tbr: ulan@chromium.org
Bug: chromium:948807
Change-Id: Id4f94e7dcb458d1d0d2f872194f8f3ea0959a73f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622968
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61715}
2019-05-21 21:50:21 +00:00
Fabrice de Gans-Riberi
7d36961fbe Reland "[fuchsia] Replace zx_clock_get() with zx_clock_get_new()."
This is a reland of 748de1e56a

Original change's description:
> [fuchsia] Replace zx_clock_get() with zx_clock_get_new().
>
> zx_clock_get() signature is being replaced to report errors.
> As part of a soft transition, zx_clock_get_new() is introduced with
> the final function signature.
>
> Bug: chromium:963956
> Change-Id: Ia6d0f4fc560bd9149683011099b064540b54edd6
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1616545
> Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
> Reviewed-by: Wez <wez@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61591}

Bug: chromium:963956
Change-Id: I555df23d448fa246e4edec36b349a3c0aaad66ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617805
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61714}
2019-05-21 21:37:19 +00:00
Michael Lippautz
5e043f2773 Revert "[heap] Add global memory controller"
This reverts commit cfe281f3db.

Reason for revert: Fails on gcc bots

Original change's description:
> [heap] Add global memory controller
> 
> Provide a global memory controller used to compute limits for combined
> on-heap and embedder memory. The global controller uses the same
> mechanism (gc speed, mutator speed) and growing factors as the regular
> on-heap controller.
> 
> Rely on V8's mechanisms for configured state that stops shrinking the
> limit.
> 
> Bug: chromium:948807
> Change-Id: I3283a2c28e6ab889f8d2ad85c9b67b8f234b9900
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619762
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61712}

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,bikineev@chromium.org

Change-Id: I503d5a1436eb9156556b5bca852d2b2f9da2446f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:948807
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1622967
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61713}
2019-05-21 19:47:13 +00:00
Michael Lippautz
cfe281f3db [heap] Add global memory controller
Provide a global memory controller used to compute limits for combined
on-heap and embedder memory. The global controller uses the same
mechanism (gc speed, mutator speed) and growing factors as the regular
on-heap controller.

Rely on V8's mechanisms for configured state that stops shrinking the
limit.

Bug: chromium:948807
Change-Id: I3283a2c28e6ab889f8d2ad85c9b67b8f234b9900
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619762
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61712}
2019-05-21 19:06:01 +00:00
Ben Smith
76537bea86 [wasm] Use new names for instructions
These instructions were renamed in the October 2, WebAssembly CG meeting. The
issue describing the change is here:

https://github.com/WebAssembly/spec/issues/884

Change-Id: Ia9e8733156b5ed5db7fc9ab1681c1a51b874dd71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1620681
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61711}
2019-05-21 18:33:21 +00:00