Commit Graph

57063 Commits

Author SHA1 Message Date
Jakob Kummerow
97c75d37ad [wasm-c-api] Add test for globals
Change-Id: I05bfc6eb98ea31b559d4195364e722ddf472afee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687677
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62571}
2019-07-08 14:24:56 +00:00
Andreas Haas
5f97de9b8b [wasm] Implement table.get and table.set in the interpreter
R=mstarzinger@chromium.org

Bug: v8:7581
Change-Id: Ie5372e37acf31cd20f7914423fe4c802b5903b95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690944
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62570}
2019-07-08 13:48:56 +00:00
Clemens Hammacher
4c9d52e1c8 [wasm] Remove non-const reference args from fuzzers
R=ahaas@chromium.org

Bug: v8:9429, v8:9396
Change-Id: Ie6119ff58fdf48612d81fe0616986a4da95135d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690836
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62569}
2019-07-08 13:46:46 +00:00
Peter Marshall
edd383fbcd [tracing] Use the new perfetto client API
The client API provides a much simpler interface so that we don't have
to deal with producers, consumers etc. directly. This CL removes all the
code that dealt with the more complex API used previously.

The architecture used here requires that the embedder call into
Tracing::Initialize() to set up the tracing backend. The tracing
controller then connects to this backend when calling
DataSource::Register() and Tracing::NewTrace(). This will ultimately
avoid the need for a virtual call (or two) for every trace event that
need to be dispatched over the API - chrome can provide a backend
and V8 will connect to it opaquely with the same code when tracing is
enabled.

Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Bug: v8:8339
Change-Id: I6b74fbb49ffcc89638caeb59ed3d5cc81238f3e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1634916
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62568}
2019-07-08 13:37:16 +00:00
Michael Starzinger
326f23782b [cleanup] Fix NOLINT(runtime/references) for asm.js parser.
R=clemensh@chromium.org
BUG=v8:9429,v8:9396

Change-Id: I35c6ef903e760ac3797ebe51722b4e6bccd4d105
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690945
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62567}
2019-07-08 13:30:26 +00:00
Ulan Degenbaev
5c6e407d9d [heap] Spawn parallel scavenging task per page in the from space
This makes the heuristic for computing the number of parallel tasks
in Scavenger consistent with that in Mark-Compactor.

The patch helps mobile devices where even 1 MB new space can take
10ms to scavenge.

Change-Id: I979de5e8485b93808ea079af2756f53d9b720e10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1685612
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62566}
2019-07-08 13:21:06 +00:00
Tamer Tas
1db33e5fff [browser-stories] gate features behind {experimental} flag
Performance infra recipes use callstats.py to run web page replays. Split (v8,
infa, perf-infra) repositories make experimenting with callstats.py hard.

This CL creates feature gating for simplifying performance infra experiments.

R=ulan@chromium.org

No-Try: true
Bug: v8:9448
Change-Id: I2c3e139f4b9d6bce1ea4fdda1a44960d74d7d414
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690950
Auto-Submit: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62565}
2019-07-08 13:09:46 +00:00
Clemens Hammacher
1f237492f9 [base] Remove non-const reference
This fixes the only violation of the 'runtime/references' warning in
src/base by using a forwarding reference.

R=mlippautz@chromium.org

Bug: v8:9429, v8:9396
Change-Id: Ide2d28ab647e1cec78979c3f6d664b53c92a7d6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690839
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62564}
2019-07-08 13:03:08 +00:00
Andreas Haas
9efaf55495 [wasm] Rename (Get|Set)Table to Table(Get|Set)
When I implemented these instructions, I copied the naming scheme of
{GetGlobal}. That's not appropriate for the table.get instruction
though, and I decided I suffered enough from that bad name now.

R=clemensh@chromium.org

Bug: v8:7581, v8:9396
Change-Id: Id1796425458f3d06a2da774374f02c49d665d2c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690835
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62563}
2019-07-08 12:55:14 +00:00
Peter Marshall
011a6f35d7 Add myself as libplatform/tracing/* owner
Change-Id: Iee9967b419fbb7cb7a20137a8325097ce9525ee1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690840
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62562}
2019-07-08 12:46:54 +00:00
Clemens Hammacher
5aa15fd822 [zone] Fix allocate method of ZoneAllocator
This removes two unneeded casts and an unused parameter.
Note that according to the specification, {Allocator}s need to provide
an {allocate} method receiving the size {n}, and *optionally* they can
support {allocate} with a second pointer parameter which they can use
in an unspecified manner. Since we do not use the second argument, we
should just not provide that method.

Drive-by: Remove else-after-return.

R=mlippautz@chromium.org

Bug: v8:9396
Change-Id: I776c5ae2f6652e20c9f9bfd511c41ce6ad1c1329
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690831
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62561}
2019-07-08 12:31:34 +00:00
Simon Zünd
b658d9c749 Reland "[snapshot] Add '.note.GNU-stack' marker section for ELF snapshots"
This is a reland of f24e995809

Speculatively relanding the CL. LLD ignores the added section, so the
output should not be any different. The issue was also not reproducible
locally. Keeping an eye on the bot/roll to quickly revert, in case this
CL really breaks the deterministic build.

Original change's description:
> [snapshot] Add '.note.GNU-stack' marker section for ELF snapshots
>
> This snapshot adds a marker section to the output assembly of
> mksnapshot. Omitting this section can imply an executable stack, which
> can result in linker warnings.
>
> R=jgruber@chromium.org
>
> Change-Id: I6f5dacb24de3a852faf6ce0caf18c32b499ba5a9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687669
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62504}

TBR=jgruber@chromium.org

Bug: chromium:981138
Change-Id: I2ddbaa7aa33f125ea0a0854cd9a94108c3a3845f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690825
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62560}
2019-07-08 12:29:38 +00:00
Clemens Hammacher
a495c35e99 [zone] Remove unneeded ZoneAllocator::address
This method is not specified as part of the Allocator requirement, as
is deprecated on std::allocator since C++17.

This also removes the only violation of the 'runtime/references'
cpplint check in the zone directory.

R=mlippautz@chromium.org

Bug: v8:9429, v8:9396
Change-Id: I77c28afbf3c0e122c5ac27796b9f46b6c9455e61
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690830
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62559}
2019-07-08 12:26:38 +00:00
Georg Neis
6786707fb7 Prefer type NativeContext over Context in more places
Change-Id: Ie0f54dd36a7af9503306d756182d98fc2273b48a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690828
Auto-Submit: Georg Neis <neis@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62558}
2019-07-08 12:24:28 +00:00
Santiago Aboy Solanes
bda32bcbd0 [ptr-compr] Specialize CompressedSigned -> Word32 conversion
This CL aims to address the regressions that we saw in Octane 2.1,
particularly in the DeltaBlue test.

This CL brings a 5% improvement in said test by doing
CompressedSigned -> Word32 conversion (instead of
CompressedSigned -> TaggedSigned -> Word32).

There seems to be room for optimizations doing more specialized conversions
regarding representation changes.

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:7703
Change-Id: I24e5b6c06436fdda9fa6a1ac4699dc55c3d67abd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684075
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62557}
2019-07-08 12:21:58 +00:00
Clemens Hammacher
af4905d391 [wasm] Remove non-const arguments from decoder
R=ahaas@chromium.org

Bug: v8:9429, v8:9396
Change-Id: I79e5d707f6c3970c96eb2186604d8b26fda787e5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687897
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62556}
2019-07-08 12:18:58 +00:00
Michael Starzinger
7a08b0337b [wasm] Test {WebAssembly.Function} in non-zero tables.
This adds a test case for using constructed {WebAssembly.Function}
objects in non-zero tables. Due to a recent refactoring that unifies
handling of dispatch tables, this works out of the box. The test
coverage however is still useful, since code paths are slightly
different for non-zero tables.

R=ahaas@chromium.org
TEST=mjsunit/wasm/type-reflection-with-anyref
BUG=v8:7742

Change-Id: I0cf4b0a8039bbef0422b06ee23744a949be8f1b1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690821
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62555}
2019-07-08 12:14:08 +00:00
Clemens Hammacher
bcdf2e2a54 [wasm] Remove non-const arguments from module builder
R=ahaas@chromium.org

Bug: v8:9429, v8:9396
Change-Id: I2a66142c04b2ec0e3ed57ea2392dda6d17d53b38
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687895
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62554}
2019-07-08 11:42:59 +00:00
Ross Kirsling
7fc00d8aa6 Reland "Reland "Let all early errors be SyntaxErrors.""
This is a reland of 89d93e3851

Original change's description:
> Reland "Let all early errors be SyntaxErrors."
> 
> This is a reland of 99fd5b9b9d which includes a missed update to
> test/test262/test262.status.
> 
> Implement the spec change from the following TC39 PR:
> https://github.com/tc39/ecma262/pull/1527
> 
> Bug: v8:9326
> Change-Id: Ie3aac60db550e90fb648fc30886a05419fa41afe
> TBR: adamk@chromium.org
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682989
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62500}

Bug: v8:9326
Change-Id: Ic30280400dfa5b83a4a397888e563eee479446c5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688271
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62553}
2019-07-08 10:15:46 +00:00
Clemens Hammacher
e0e076c044 Add missing NOLINT annotations
Due to a rebase, those annotations were missing in
https://crrev.com/c/1687891.

TBR=mlippautz@chromium.org

Bug: v8:9429
Change-Id: I78ff2903dbbe1054499d4768e9ff5fb0c5f4b708
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690826
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62552}
2019-07-08 10:14:36 +00:00
Clemens Hammacher
8e11cc395a Enable cpplint 'runtime/references' warning
Cpplint usually checks for non-const reference arguments. They are
forbidden in the style guide, and v8 does not explicitly make an
exception here.
This CL re-enables that warning, and fixes all current violations by
adding an explicit "NOLINT(runtime/references)" comment. In follow-up
CLs, we should aim to remove as many of them as possible.

TBR=mlippautz@chromium.org

Bug: v8:9429
Change-Id: If7054d0b366138b731972ed5d4e304b5ac8423bb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687891
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62551}
2019-07-08 09:59:36 +00:00
Yutaka Hirano
46c3ea3154 Introduce ErrorUtils::StackTraceCollection
Introduce the enum class to expand a boolean parameter in
ErrorUtils::Construct. This is a preliminary change for error
serialization: we want to create an error with the given stack string.

Bug: chromium:970079
Change-Id: Ic55993d39d5d7b92197e2062a2be7cd8e87e552a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1689674
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62550}
2019-07-08 09:50:46 +00:00
Simon Zünd
c14f209fe6 [stack-trace] Mitigate stack trace symbolization performance regression
This CL mitigates the worst performance regressions for stack trace
symbolization.

The first fix is to hold the StackFrameBase instance in a local
variable. The instance is produced by an iterator but newly created
everytime FrameArrayIterator::Frame is called.

The second fix is to skip symbolization of "MethodName" and
"TypeName" for non-method calls.

R=ulan@chromium.org

Bug: chromium:981541,v8:8742
Change-Id: I58b2e0c87693c3914cf1946ce56341fbd4a797ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688927
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62549}
2019-07-08 09:22:37 +00:00
Nico Hartmann
779540c6ce Move feedback for BigIntTooBig from deoptimizer to interpreter
Feedback shall not be updated by the deoptimizer. Although this
mechanism exists, it shall not be used if possible. This CL changes
how V8 learns from BigInt deopts: Previously we updated feedback on
the BinaryOperations in the deoptimizer, now we let the interpreter
widen the feedback type from BigInt to Any after the deopt has occurred.

Bug: v8:9407
Change-Id: I92e5e733085b433fd8ab452674d02404b81b2796
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687419
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@google.com>
Cr-Commit-Position: refs/heads/master@{#62548}
2019-07-08 08:48:39 +00:00
Simon Zünd
7e0f961e4d [deoptimizer] Handle continuation frames that are not preceded by adapter frames
This CL teaches the deoptimizer about JavaScriptBuiltinContinuation
frames that are not preceded by argument adapter frames. This pattern
is used when calling C++ API functions from TurboFan.

This CL fixes a crash when the deoptimizer encounters the pattern
described above. The crash was caused when the deoptimizer tried to
read the arguments of the continuation frame. As no adapter frame
was present, the argument count was read from the SharedFunctionInfo
which had the kDontAdaptArgumentsSentinel value. This translated to
an argument count of ~65000 later down the line, which caused a
FATAL error when the deoptimizer tried to re-construct ~65000
non-existent values.

Bug: chromium:980529
Change-Id: Id2de3bf7607102ab5a16de344c649015e968b185
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687417
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62547}
2019-07-08 08:39:04 +00:00
Georg Neis
ec53cff9c8 Prefer NativeContext type over the less precise Context
Change-Id: I9285052dfe21df8e0eaf0e0493458532f82504ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687421
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Auto-Submit: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62546}
2019-07-08 08:36:51 +00:00
v8-ci-autoroll-builder
648af01c26 Update V8 DEPS.
Rolling v8/build: e10ba67..bd69e87

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

Change-Id: I7a6ed22c9ff03cf3ccee1092a6a008527aa8bddb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690690
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@{#62545}
2019-07-08 04:04:03 +00:00
v8-ci-autoroll-builder
50f09f4922 Update V8 DEPS.
Rolling v8/build: 7001f69..e10ba67

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

Change-Id: I8363e4afe58742ae37fa5cb473772e2dbae36307
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688007
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@{#62544}
2019-07-07 03:23:01 +00:00
v8-ci-autoroll-builder
e68d8983b8 Update V8 DEPS.
Rolling v8/build: 2bdfcbd..7001f69

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4303074..dd686e3

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

Change-Id: I0a13e552cb4d7a20c25b230f5b03dfac22195111
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688004
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@{#62543}
2019-07-06 07:25:40 +00:00
Michael Achenbach
639dd5ce3b Switch gcmole to run on Xenial
Bug: v8:9440
Change-Id: I0428ddbc26c06106fc504554f85c5f9c08871c18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687418
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62542}
2019-07-05 16:21:20 +00:00
Maya Lekova
180ba0c053 [turbofan] Disentangle header include chains
Got rid of the following circular header dependency chains:
compilation-dependencies <-> js-heap-broker <-> access-info
types <-> js-heap-broker <-> access-info

Extracted former CompilationDependencies::Dependency class into its own header.
Extracted *Ref classes into their own header.

This should enable building on older GCC versions, e.g. 5.4.0.

Bug: v8:9440
Change-Id: Ia345bc227d8f7806d0b8622b706346a7ce6d01ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687415
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62541}
2019-07-05 14:26:05 +00:00
Maciej Goszczycki
3e546664e6 [roheap] Move read_only_heap() from heap to isolate
Once read-only space is not a Heap space it makes little sense to have
it in the Heap class.

Bug: v8:7464
Change-Id: I2230ce7cbf1cec3c83065c91bc14a9c23f72478b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688841
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Cr-Commit-Position: refs/heads/master@{#62540}
2019-07-05 14:25:00 +00:00
Leszek Swirski
347092ac2b [ic] Load name/context lazily in LdaNamedProperty
Introduces LazyLoadICParameters which allow a LazyNode for context and
name. These aren't used on the fast path, so we want to avoid reading
them for both performance and register pressure reasons.

Change-Id: Ifb637cf4782ce984feee9af503998e7539beb823
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1686665
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62539}
2019-07-05 14:07:30 +00:00
Sigurd Schneider
27998dbe5d [arm64] Replace {Get,Add}CodeTarget with {Get,Add}EmbeddedObject
The functionality is identical and AddEmbeddedObject makes more effort
to deduplicate handles.

Change-Id: I3d0468da28596aad09ceceb320ca4038aed60bd4
Bug: v8:8054, v8:8977, v8:7703
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672925
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62538}
2019-07-05 13:20:31 +00:00
Georg Neis
6e09956539 [turbofan] Various cleanups/fixes in inlining heuristics
- Always account for small functions.
- Always check against the hard limit.
- Rename some things for clarity.

Change-Id: Iad98ee625d4385dfab02fb7d5e0cb2c25eb5d67a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1686664
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62537}
2019-07-05 12:59:11 +00:00
Sigurd Schneider
1378106058 [regalloc] Rename --trace-alloc to --trace-turbo-alloc
And make --trace-turbo-alloc honor --trace-turbo-filter

This is useful to filter out a specific compile job, e.g.
if mksnapshot is crashing it easily produces 5GB of logs
without filter.

TBR=bmeurer@chromium.org

Change-Id: Ic7dea0a4cef793b517d98ca2ba1f6ea6eeac63ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521111
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62536}
2019-07-05 12:47:41 +00:00
Clemens Hammacher
e9d93babca [wasm] Register trap handler data early enough
Registration of trap handler data has to happen *before* updating the
jump table, otherwise other threads might start using the code right
away, and if they hit a memory OOB, they just segfault if the trap
handlers have not been registered yet.

R=ahaas@chromium.org

Bug: v8:9375, chromium:980843
Change-Id: Ifac5c0681ce133b7af730a87beaede9d3c223f50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687414
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62535}
2019-07-05 12:44:41 +00:00
Maya Lekova
a80a6e31aa Revert "[snapshot] Add '.note.GNU-stack' marker section for ELF snapshots"
This reverts commit f24e995809.

Reason for revert: Speculative revert for https://bugs.chromium.org/p/chromium/issues/detail?id=981138

Original change's description:
> [snapshot] Add '.note.GNU-stack' marker section for ELF snapshots
>
> This snapshot adds a marker section to the output assembly of
> mksnapshot. Omitting this section can imply an executable stack, which
> can result in linker warnings.
>
> R=​jgruber@chromium.org
>
> Change-Id: I6f5dacb24de3a852faf6ce0caf18c32b499ba5a9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687669
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62504}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:981138
Change-Id: Iad05bb8e4222d62db8266ae250d79a37259f3008
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687416
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62534}
2019-07-05 12:30:11 +00:00
Andreas Haas
59c7be9d9f [wasm] Do not allocate a WasmIndirectFunctionTable for table 0
No WasmIndirectFunctionTable is needed for table 0, because table 0 is
handled specially: The WasmIndirectFunctionTable gets inlined into the
instance in this case.

R=mstarzinger@chromium.org

Bug: chromium:980854
Change-Id: I604a52e0f3b9a8fff1b2e8190c76178d2f1052c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687894
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62533}
2019-07-05 12:19:21 +00:00
Benedikt Meurer
f3774fdeff [debugger] Fix debug-evaluate for context-allocated this.
When `this` is context allocated inside a class constructor (strict mode
function), due to an arrow function, debug evaluate was unable to locate
the value. This is quick fix for the issue, which probably deserves a
more general rewrite at some later point in time (with more domain
expertise).

Bug: chromium:760225
Change-Id: I5208d8a202ad69439f60ada480599d0efcdc4ce4
Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687412
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62532}
2019-07-05 12:14:35 +00:00
Michael Achenbach
c72b5be001 Use xenial bot to run v8 tests
But does not change to xenial for test using armv7l cpu.

Bug: chromium:954890
Change-Id: I02268f469001f197210cde9c63804a3dcea06a7f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687831
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62531}
2019-07-05 07:52:25 +00:00
v8-ci-autoroll-builder
cf4eec5b00 Update V8 DEPS.
Rolling v8/build: 293721c..2bdfcbd

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/c2577db..4303074

Rolling v8/third_party/depot_tools: 2aa3ab5..92afaf5

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

Change-Id: I0c4bc52e340d44b66a3c75774480cf097e00b662
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687995
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@{#62530}
2019-07-05 03:51:49 +00:00
Milad Farazmand
ef4b29705f Revert "s390: cleanup TM family instructions"
This reverts commit fb3445dc07.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> s390: cleanup TM family instructions
> 
> Change-Id: I6ba7a4d72c79b8237c63eef750d7991c4f82ab12
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1685030
> Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
> Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#62524}

TBR=jyan@ca.ibm.com,yang.qin@ibm.com

Change-Id: Ibedeeb51d4acd7ca089fda6d80ce5b49bc210974
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687021
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#62529}
2019-07-04 15:18:41 +00:00
Leszek Swirski
cb0819200f [ic] Iterate polymorphic feedback backwards
Reduce register pressure (and therefore spills) across the loop
iterating over the LoadIC polymorphic feedback array by starting at
length - 1 and iterating down to 0.

Might give a tiny recency boost too.

Change-Id: I1295a8136212c339b9d3974e2d49b3ecfe1ce543
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687545
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62528}
2019-07-04 14:35:39 +00:00
Santiago Aboy Solanes
1f872cbc4c [IC] Add calls micro-benchmark tests
This will be used to test InterpreterEntryTrampoline

Change-Id: I2ee2cffea0741e15597a7e31f70e156e9aaa1c2d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688890
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62527}
2019-07-04 14:26:09 +00:00
Leszek Swirski
552073345f [ic] Defer uncommon load cases to avoid frame allocation
Change-Id: If92be5414d42e127df80de1695cb1ebb5d454fab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687890
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62526}
2019-07-04 13:38:00 +00:00
Dan Elphick
e8d865973f [parsing] Improve elision of hole checks for default parameters
Use the position of the next parameter to be declared as the end of the
initializer for default parameters, so that hole checks can be elided
for initializers using previous parameters in arrow functions.

This fixes a source of bytecode mismatches when collecting source
positions lazily.

Bug: chromium:980422, v8:8510
Change-Id: I5ab074231248b661156e7d8e47c01685448b56d5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1683267
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62525}
2019-07-04 13:10:29 +00:00
Yang Qin
fb3445dc07 s390: cleanup TM family instructions
Change-Id: I6ba7a4d72c79b8237c63eef750d7991c4f82ab12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1685030
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#62524}
2019-07-04 13:01:29 +00:00
Santiago Aboy Solanes
f39f76d637 [IC] Add LdaNamedProperty micro-benchmark tests
Change-Id: I154b7705fe9750ed16166c50a22cd16b0abc0425
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687889
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62523}
2019-07-04 11:06:19 +00:00
Simon Zünd
db24e2000a [stack-trace] Separate stack-trace symbolization and serialization
This CL moves the code responsible for serializing a stack trace frame into
a string, out of messages.cc and into stack-frame-info.cc. Instead of
symbolizing the stack trace frame while serializing, the code is changed to
work on top of StackTraceFrame and StackFrameInfo objects.

The result is that the serialization code no longer cares when a stack trace
frame is symbolized. Symbolization could happen eagerly during capturing, or
lazily the first time any of StackFrameInfo fields are accessed.

Drive-by: Existing users of StackFrameBase::ToString are adapted to the
new SerializeStackTraceFrame API. This includes Isolate::PrintCurrentStackTrace,
which is changed to re-use the existing capturing and serializing mechanism.

Bug: v8:8742
Change-Id: Ic7fd80668c9d993e99d586ef7fe022850104c34f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631414
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62522}
2019-07-04 07:34:53 +00:00