Commit Graph

49495 Commits

Author SHA1 Message Date
v8-ci-autoroll-builder
cc67e69681 Update V8 DEPS.
Rolling v8/build: e9eade2..cc35cac

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/5c2d9e7..2acd8e0

Rolling v8/third_party/proguard: 63f6c0b..d901b76

Rolling v8/tools/clang: af36d66..bb4cc1a

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

Change-Id: Ib6fa819faf6a542c60bd4ef51d362abe133ef9ad
Reviewed-on: https://chromium-review.googlesource.com/1159847
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54853}
2018-08-02 06:01:07 +00:00
Deepti Gandluri
8301530dbb Add I64Atomic {Exchg, CmpExchg} operations for ia32
Bug: v8:6532
Change-Id: Ib486a1c0d80a14b778dde5ef6655e11d326b4c73
Reviewed-on: https://chromium-review.googlesource.com/1157068
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54852}
2018-08-02 01:09:19 +00:00
Sergiy Byelozyorov
8dc41a581c [tools] Refactor run_perf.py to use logging module for all status messages
All status messages will be printed into STDERR and only the results will
continue to be written to STDOUT as documentation suggests. Additionally the
following changes are made:
 - on Buildbot each log entry will have a timestamp to make it easy to measure
   time between status messages printed by test runner, users will continue to
   see just the message itself
 - when devil (or any other module) logs error, they will not be interleaved
   with our own output since logging module is thread-safe
 - critical logs replaced with warning since they do not immediately stop
   the test runner
 - logging.exception is used for all exceptions to get formatted stack trace

TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: I197fcc3bc5890130ce8b35c3e21237f9614fc468
Reviewed-on: https://chromium-review.googlesource.com/1159361
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54851}
2018-08-01 23:12:15 +00:00
Wez
262c6c3bf6 Migrate to the zx_task_suspend_token() API.
This is a temporary rename of zx_task_suspend(), to allow the API
signature to be updated. It will be followed by a rename back to the
old name, with the new signature.

Change-Id: I896d714e556dad2e0740891ff99cb0b51c6c1943
Reviewed-on: https://chromium-review.googlesource.com/1158998
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54850}
2018-08-01 18:31:18 +00:00
Clemens Hammacher
94087c8038 [cleanup] Inline one-line CancelAndWait method
Very minor cleanup to reduce code complexity.

R=mstarzinger@chromium.org

Bug: chromium:869420
Change-Id: I53d1776792b3918d489fe002e2cb17b7a3e0ff73
Reviewed-on: https://chromium-review.googlesource.com/1158686
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54849}
2018-08-01 15:47:46 +00:00
Toon Verwaest
2d40e2f445 [scanner] Prepare CharacterStreams for specializing scanner and parser by character type
This templatizes CharacterStream by char type, and makes them subclass ScannerStream.
Methods that are widely used by tests are marked virtual on ScannerStream and final on
CharacterStream<T> so the specialized scanner will know what to call. ParseInfo passes
around ScannerStream, but the scanner requires the explicit CharacterStream<T>. Since
AdvanceUntil is templatized by FunctionType, I couldn't mark that virtual; so instead
I adjusted those tests to operate directly on ucs2 (not utf8 since we'll drop that in
the future).

In the end no functionality was changed. Some calls became virtual in tests. This is
mainly just preparation.

Change-Id: I0b4def65d3eb8fa5c806027c7e9123a590ebbdb5
Reviewed-on: https://chromium-review.googlesource.com/1156690
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54848}
2018-08-01 15:11:50 +00:00
Clemens Hammacher
65e3cea37f [wasm] Remove dead {NumberOfBackgroundTasks} method
The background compilation logic moved to the {CompilationState}, so
the {NumberOfBackgroundTasks} is now always 1.

R=mstarzinger@chromium.org

Bug: chromium:869420
Change-Id: I5860f46db953778890c842af4507e8d989e34784
Reviewed-on: https://chromium-review.googlesource.com/1158581
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54847}
2018-08-01 15:01:04 +00:00
Clemens Hammacher
269ea5aec2 [wasm] Remove AsyncCompileJob even if a foreground task is pending
We have complicated logic in place to ensure that an {AsyncCompileJob}
is not removed as long as a foreground task is still pending.
This CL changes that to just cancel the pending foreground task and
remove the {AsyncCompileJob} immediately.

R=mstarzinger@chromium.org

Bug: chromium:869420
Change-Id: Ia064dae4a0e31416675e5d77c46879254fc817c4
Reviewed-on: https://chromium-review.googlesource.com/1158578
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54846}
2018-08-01 14:58:07 +00:00
Sigurd Schneider
2f6966939f [cleanup] Clean up uses of IsShareableRelocMode
uses of the function where that was assumed to not be the case.

RelocInfo: :NONE satisfies IsShareableRelocMode; this cleans up some
Change-Id: Iafd7262496edc389131966f07f4e5b4fa8b5c1e6
Reviewed-on: https://chromium-review.googlesource.com/1158574
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54845}
2018-08-01 14:03:17 +00:00
Michael Starzinger
a05410336d [wasm] Fix inconsistency in HasRunningCompileJob predicate.
This changes the predicate in question to only check for async compile
jobs belonging to a given Isolate, having an engine-wide predicate is
not desirable for draining message queues.

R=clemensh@chromium.org
BUG=v8:7424

Change-Id: If990378400cc4484d413c4d7771ec6deb6bfd244
Reviewed-on: https://chromium-review.googlesource.com/1158565
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54844}
2018-08-01 13:22:08 +00:00
Clemens Hammacher
8332c0ff11 Revert "Applied noexcept to all mctors and massigns"
This reverts commit baa055c7a6.

Reason for revert: mips compile failure: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mips%20-%20builder/18458

Original change's description:
> Applied noexcept to all mctors and massigns
> 
> Refactoring the code base to use noexcept for their move constructors and move
> assignment operators.
> 
> Bug: v8:7999
> 
> Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I13d24eddba3bfa601cff26fd680a040cf4e71426
> Reviewed-on: https://chromium-review.googlesource.com/1152817
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Florian Sattler <sattlerf@google.com>
> Cr-Commit-Position: refs/heads/master@{#54841}

TBR=marja@chromium.org,yangguo@chromium.org,ahaas@chromium.org,jgruber@chromium.org,sattlerf@google.com

Change-Id: I49757025daac368a647887a63164e927f0106803
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7999
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1158644
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54843}
2018-08-01 13:19:09 +00:00
Ben L. Titzer
98728e581d [wasm] Inline VerifyWasmCodeWithStats
This removes the need to pass Counters into the function body decoder
by making timing happen in the callers.

R=mstarzinger@chromium.org

Change-Id: I05c8d2c85b1c315150cbf9e9b3f68efa03114b75
Reviewed-on: https://chromium-review.googlesource.com/1156700
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54842}
2018-08-01 13:01:40 +00:00
Florian Sattler
baa055c7a6 Applied noexcept to all mctors and massigns
Refactoring the code base to use noexcept for their move constructors and move
assignment operators.

Bug: v8:7999

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I13d24eddba3bfa601cff26fd680a040cf4e71426
Reviewed-on: https://chromium-review.googlesource.com/1152817
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Florian Sattler <sattlerf@google.com>
Cr-Commit-Position: refs/heads/master@{#54841}
2018-08-01 13:00:30 +00:00
Clemens Hammacher
e4f595c25e [wasm] Remove redundant cancelling of compile tasks
All compile tasks are already canceled when the {CompilationState}
dies. This happens when the {NativeModule} dies, and all
{NativeModule}s die before the {WasmEngine} dies. Thus, the WasmEngine
does not need to cancel any compile jobs, because there are none anyway.

R=mstarzinger@chromium.org

Bug: chromium:869420
Change-Id: I7e006392a1f9126333733c81c4c19985f626a470
Reviewed-on: https://chromium-review.googlesource.com/1158411
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54840}
2018-08-01 12:21:57 +00:00
Clemens Hammacher
91ab657e36 Enable TurboAssembler tests on native android
We currently don't execute the tests on android, because the error
message is redirected to the android log. What we can still to though
is ensuring that the call aborts the process, but just ignore the error
message.

R=mstarzinger@chromium.org

Bug: chromium:863799
Change-Id: I54b503849358133ffe647be83eae7a964c2ac49e
Reviewed-on: https://chromium-review.googlesource.com/1148444
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54839}
2018-08-01 12:20:17 +00:00
Michael Starzinger
c90dd37eee [wasm] Make native module serialization thread safe.
This changes the WebAssembly serializer to take a full snapshot of the
code table before measuring and serializing the module. It allows other
threads (or other Isolates) to mutate the native module while the main
thread is serializing the module.

R=clemensh@chromium.org
BUG=v8:7424

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I64bc27600452880f37f4fbb2f40c77c79975358f
Reviewed-on: https://chromium-review.googlesource.com/1156596
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54838}
2018-08-01 12:06:32 +00:00
Clemens Hammacher
c3a378ddc9 [cleanup] Move memory-related functions to v8memory.h
This moves the {ReadUnalignedValue} and {WriteUnalignedValue} methods
from utils.h to v8memory.h.

R=titzer@chromium.org

Bug: v8:7754, v8:7490
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I8becfc3ac169427968c11e24b035a90856f51e8e
Reviewed-on: https://chromium-review.googlesource.com/1158405
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54837}
2018-08-01 10:58:36 +00:00
Clemens Hammacher
d065807971 [iwyu] Fix includes in v8memory.h
R=titzer@chromium.org

Bug: v8:7754, v8:7965
Change-Id: I9389bc60eab8283d9b70a49a9a71c6d092146de0
Reviewed-on: https://chromium-review.googlesource.com/1158071
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54836}
2018-08-01 10:30:35 +00:00
Georg Neis
24beac317b Remove misleading "_index" suffix from some native context slots.
R=jarin@chromium.org

Change-Id: I9b54049852696680fb7fde26813638aae727b5d3
Reviewed-on: https://chromium-review.googlesource.com/1158231
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54835}
2018-08-01 09:05:53 +00:00
Andreas Haas
b556c9eaa6 [wasm] Implement the new API for WebAssembly.instantiateStreaming
This is the second V8 CL to refactor WebAssembly.instantiateStreaming to
make it spec compliant again. The design doc where the whole change is
discussed is available in the tracking bug. The tracking bug also
references prototype implementations of the whole change, which includes
the changes in this CL.

R=mstarzinger@chromium.org

Bug: chromium:860637
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I776c0f24959ab5663727d3dfee0248a9b0642a42
Reviewed-on: https://chromium-review.googlesource.com/1143187
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54834}
2018-08-01 08:56:21 +00:00
Andreas Haas
8c3c1b6c0f [mjsunit] Move the implementation of testAsync into a separate file
The original implementation of 'testAsync' in mjsunit.js required to
put the call to '%AbortJS' into an 'eval' statement. The reason is that
this call requires the flag --allow-natives-syntax to be set, but the
flag is not set in all mjsunit tests. With the use of 'eval'
compilation errors can be avoided.

The problem with this approach was that the fuzzer started to produce
test cases which include the line 'eval("%AbortJS(message)");', and
this line crashes intentionally. Different to the line
'%Abort(message)', however, the 'eval' statement cannot be filtered
so easily in the fuzzer. Therefore I pulled the implementation of
'testAsync' into a separate file to avoid the 'eval'.

Additional changes: I use '===' now instead of 'deepEquals' in
AsyncAssertion.equals because 'deepEquals' is not available outside
mjsunit.js. Using '===' seems more appropriate anyways because for
all tests but one it is sufficient, and it is more precise than
deepEquals.

R=gsathya@chromium.org

Bug: chromium:774841
Change-Id: I47270aa63ff5a1d6aa76a771f9276eaaf579c5ac
Reviewed-on: https://chromium-review.googlesource.com/1156598
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54833}
2018-08-01 08:46:24 +00:00
Sathya Gunasekaran
d9c3867afe [objects] Add CreateDataProperty helper
Similar to existings helpers like SetProperty,
WriteToReadOnlyProperty, etc, this create an helper for
CreateDataProperty that abstracts away the LookupIterator.

Bug: v8:5751
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I5ca02a2bad982adf233f3ea9de799e5706cd248a
Reviewed-on: https://chromium-review.googlesource.com/1156400
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54832}
2018-08-01 08:30:07 +00:00
v8-ci-autoroll-builder
3951947557 Update V8 DEPS.
Rolling v8/build: 3e09e23..e9eade2

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/65f883b..5c2d9e7

Rolling v8/third_party/depot_tools: b0e855a..6f812e1

Rolling v8/tools/clang: 24c4916..af36d66

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

Change-Id: I80e0c172cd95e10c9d445ebe8ae563c9c799c047
Reviewed-on: https://chromium-review.googlesource.com/1157881
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54831}
2018-08-01 03:57:05 +00:00
Caitlin Potter
5caee70b66 Reland "Reland [CloneObjectIC] overwrite monomorphic/polymorphic feedback if deprecated"
An object with a deprecated Map which has already been cached in
CloneObjectIC feedback is still a valid Map for fast cloning --- but
to be consistent with other ICs, deprecated maps are ignored, and are
expected to be transitioned away from.

If the source object has a deprecated map, the instance is migrated.

BUG=v8:7611, chromium:867958, chromium:868586, chromium:869342, chromium:869347, chromium:869293
R=jkummerow@chromium.org, mvstanton@chromium.org

Reviewed-on: https://chromium-review.googlesource.com/1154143
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#54799}
Change-Id: I6e2f7b28c41bb9bd6255441da0f209a97bce5e8f
Reviewed-on: https://chromium-review.googlesource.com/1157142
Cr-Commit-Position: refs/heads/master@{#54830}
2018-08-01 00:30:11 +00:00
Jungshik Shin
f24b575d6c Fix canonicalization of grandfathered tags
ICU maps a few grandfathered tags to made-up values even when there
is no preferred value entry in the IANA language tag registry. [1]

1. Check for grandfathered tags without preferred value upfront
   and return them as they're.
2. Lowercase the input before structural validity check to simplify
   check for grandfathered tag without preferred value as well
   as regexps used in the structural validity check.

intl/general/grandfathered_tags_without_preferred_value is added and
intl/general/language_tags_with_preferred_values is changed to check
for case-insensitive matching of grandfathered tags.

[1] https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

Bug: v8:7669
Test: test262/intl402/Intl/getCanonicalLocales/preferred-grandfathered
Test: intl/general/grandfathered_tags_without_preferred_value
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ie0520de8712928300fd71fe152909789483ec256
Reviewed-on: https://chromium-review.googlesource.com/1156529
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54829}
2018-07-31 23:49:45 +00:00
Junliang Yan
cd4b722835 PPC/s390: Fix undefined behaviour on CommentOperator
Port 199533558e

Original Commit Message:

    The {CommentOperator}, used for implementing the --code-comments flag,
    is not UBSan-safe. This CL fixes this and adds a test which uses code
    comments.

R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ia7976ec9a726fdeb7d8bfbb99c8a16d473aa0da4
Reviewed-on: https://chromium-review.googlesource.com/1157230
Reviewed-by: Muntasir Mallick <mmallick@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#54828}
2018-07-31 22:03:22 +00:00
Tobias Tebbi
f95b263249 [torque] fix assignment with operator
Change-Id: I4710d317cf9f5686551a3df6e98619bab79387fa
Reviewed-on: https://chromium-review.googlesource.com/1156698
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54827}
2018-07-31 19:12:22 +00:00
Jaroslav Sevcik
6d0c017e24 [turbofan] Use the instance type checker for broker's type checker.
Bug: v8:7790
Change-Id: I99c0a72c40133532acfa09cd809b695052b91ea1
Reviewed-on: https://chromium-review.googlesource.com/1156547
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54826}
2018-07-31 19:04:02 +00:00
Georg Neis
64290afcd0 [turbofan] Disable broker in JSContextSpecialization test.
The test uses an incomplete native context, so the broker fails during
serialization.

Bug: v8:7790
Change-Id: I33e9e37df4e4acce62829123a8d16087d4fdc76d
Reviewed-on: https://chromium-review.googlesource.com/1156693
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54825}
2018-07-31 18:34:35 +00:00
Georg Neis
231c83edac [turbofan] Weaken --concurrent-compiler-frontend.
For the sake of incremental development it makes sense to still allow
serialization to happen even when the broker is in mode 'kSerialized'.
To locally obtain the stricter behavior, I'm adding the temporary flag
--strict-heap-broker.

Bug: v8:7790
Change-Id: Ie92f4f13d76bac9ce1f98bdd245829984d436d77
Reviewed-on: https://chromium-review.googlesource.com/1156603
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54824}
2018-07-31 18:28:12 +00:00
Georg Neis
bb9cf1cb03 [turbofan] Put some tests under a canonical handle scope.
The heap broker expects that handles get canonicalized.

R=jarin@chromium.org

Bug: v8:7790
Change-Id: If6162316bb2a256e783a8175ac7d4172d040b28b
Reviewed-on: https://chromium-review.googlesource.com/1155123
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54823}
2018-07-31 18:20:53 +00:00
Georgia Kouveli
c26c333819 [test] Remove superflous FlushICache calls.
MakeAssemblerBufferExecutable now flushes the i-cache, so we do
not need to do that again.

Change-Id: I46f5619167114cdb84064ef363106bee64282d1f
Reviewed-on: https://chromium-review.googlesource.com/1152813
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#54822}
2018-07-31 18:19:42 +00:00
Camillo Bruni
c608122b85 [api][keys] Allow skipping indices for Proxies with GetPropertyNames
Bug: v8:7942
Change-Id: I7b3740b04cbcaa56dc809150900ab8d821b054ce
Reviewed-on: https://chromium-review.googlesource.com/1156544
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54821}
2018-07-31 16:16:08 +00:00
Clemens Hammacher
0e6129b7ee [iwyu] Fix includes in elements-inl.h
R=titzer@chromium.org

Bug: v8:7754, v8:7965
Change-Id: I5cb76b4e989fbe6d4d08bafb60dbbb26c3d58e2d
Reviewed-on: https://chromium-review.googlesource.com/1156515
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54820}
2018-07-31 14:09:29 +00:00
Sathya Gunasekaran
43da50361c [builtins] Move IterableToList to iterator-gen
... So that this can be re-used in the intl code. Also, add a helper
method that loads the iterator if it's not provided.

Bug: v8:5751
Change-Id: Ifc1142a486b2cdf1c33a813c5446b206ad9f81ef
Reviewed-on: https://chromium-review.googlesource.com/1156390
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54819}
2018-07-31 14:01:16 +00:00
Ben L. Titzer
27cd5d0384 [iwyu] Make string-builder.h an inline file
As discussed offline, this header is not really useful without its
inline definitions. So instead of trying to split it (unnaturally),
declare defeat and make it an inline header file.

Also remove two unnecessary uses of it, move the JSON stringifier
class into its .cc file (because it needs IncrementalStringBuilder
inline) and forward declare in prettyprinter.h.

R=petermarshall@chromium.org, mstarzinger@chromium.org
BUG=v8:7965

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I7ba032ca718a195e156ec3e59f8e858a25423450
Reviewed-on: https://chromium-review.googlesource.com/1156401
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54818}
2018-07-31 12:52:22 +00:00
Georg Neis
6034d2f88f Remove unnecessary 'size' argument from TYPED_ARRAYS macro.
Use sizeof of the C type instead.

Also fix a few #undef's that got reported after my changes.

R=jarin@chromium.org

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I30a43b3d93e6df04fb9fb33050b52988edd7fdb1
Reviewed-on: https://chromium-review.googlesource.com/1155108
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54817}
2018-07-31 12:29:13 +00:00
Michael Starzinger
c1994e688b [wasm] Record stats for each code individually.
This changes recording of compilation stats (i.e. code and reloc info
size) for each code object individually after it is finished, instead of
for the entire module. It avoids needed to iterate the code table which
would race with background tasks performing tier-up.

R=clemensh@chromium.org

Change-Id: Ic196fccb38b069a07e79fed4633d01dfc2639cd7
Reviewed-on: https://chromium-review.googlesource.com/1156396
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54816}
2018-07-31 12:20:27 +00:00
Michael Starzinger
4a339958e9 [wasm] Stage --wasm-shared-engine behind --future.
R=titzer@chromium.org
BUG=v8:7424

Change-Id: I49f0f31e19d9242ac6eb26406a0aecd4d60ad869
Reviewed-on: https://chromium-review.googlesource.com/1148396
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54815}
2018-07-31 12:08:43 +00:00
Peter Marshall
d19445ef5d [cpu-profiler] Remove incorrect dchecks from the CPU profiler
There are still some cases where entry->instruction_start() is 0,
meaning that computing pc_offset makes no sense. We don't care about
those cases really; the dcheck in CodeMap::FindEntry will find the
interesting cases.

Bug: v8:7983, v8:8002
Change-Id: I7369f32da15e858f1c7af88f88cede60751b7eea
Reviewed-on: https://chromium-review.googlesource.com/1156398
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54814}
2018-07-31 11:56:25 +00:00
jgruber
f15652b45a [builtins,arm64] Isolate-independent calls to external references
This changes Call(ExternalReference) to use the correct Mov() overload,
which contains logic to load external references indirectly (i.e. in an
isolate-independent way).

Bug: v8:6666, v8:7985
Change-Id: Ib6f3931308c7d13fd4ef0563b7e1e83db3a760eb
Reviewed-on: https://chromium-review.googlesource.com/1152730
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54813}
2018-07-31 11:27:17 +00:00
Dan Elphick
85cef38d2a Add v8::String::StringEquals to API
This new method only compares Strings and so doesn't need a Context. It
also can't throw so it returns bool. Can be used in place of the
deprecated Equals method and many Equals call currently taking a
Context.

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I4cfe7747aa140e5a55d9513681ee4704414e1545
Reviewed-on: https://chromium-review.googlesource.com/1151321
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54812}
2018-07-31 11:22:57 +00:00
Ben L. Titzer
bf066d8584 [wasm] Use "wasm-function[i]" for wasm function name
BUG=chromium:863205
R=clemensh@chromium.org

Change-Id: I15f3a09e15210a80b155def5761d9aead95d19b7
Reviewed-on: https://chromium-review.googlesource.com/1156386
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54811}
2018-07-31 11:20:44 +00:00
Andreas Haas
bfbaefd863 [wasm] Add estimate size for the WasmInterpreter
The lifetime of the WasmInterpreter is managed by the GC. However, we
did not tell the GC the amount of memory consumed by the interpreter.
Therefore it was possible to fill up memory with instances of the
interpreter without triggering a GC to free memory. With this CL we pass
the size of the stack as an estimate for the size of the interpreter. At
least in the fuzzer the stack is the dominating factor for memory
consumption.

R=clemensh@chromium.org

Bug: chromium:863198
Change-Id: Ic5cb0bd364500bcff793a1fd53d2d0113196dfe2
Reviewed-on: https://chromium-review.googlesource.com/1156385
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54810}
2018-07-31 11:08:46 +00:00
Peter Marshall
56baf56790 [cpu-profiler] Add flag to always generate accurate line info.
For optimized code there are two modes. This is controlled by
NeedsSourcePositionsForProfiling(). The problem we currently have is
that this mode must be enabled before the code is optimized, otherwise
the source position information will be low quality, even once the CPU
profiler is turned on.

Also add an implication from --future to this new flag, to gather
perf & memory data from the bots.

Bug: v8:7983
Change-Id: I993fc03df83028529eea365b6d336d9f4c0dcd2b
Reviewed-on: https://chromium-review.googlesource.com/1156309
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54809}
2018-07-31 10:33:20 +00:00
Michael Starzinger
8b450f5950 [wasm] Add test for async compilation with shared WasmEngine.
R=ahaas@chromium.org
TEST=cctest/test-wasm-shared-engine
BUG=v8:7424

Change-Id: Idad7bcfe2734df7395c62ec56fb737e180035c76
Reviewed-on: https://chromium-review.googlesource.com/1152918
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54808}
2018-07-31 10:30:20 +00:00
Michael Achenbach
5ce32920cc Revert "[build] Add MB config for deprecation warning bot"
This reverts commit 23cb219fb2.

Reason for revert: https://crbug.com/v8/7996

Original change's description:
> [build] Add MB config for deprecation warning bot
> 
> TBR=yangguo@chromium.org
> NOTRY=true
> 
> Bug: v8:7963
> Change-Id: I1a91047b2a3c7d128f3b01a0970ce53a63c196d6
> Reviewed-on: https://chromium-review.googlesource.com/1145187
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54585}

TBR=machenbach@chromium.org,yangguo@chromium.org
NOTRY=true

Bug: v8:7996
Change-Id: Ib6a0c972cd9bdf864295f70ebeda50f9f23ca314
Reviewed-on: https://chromium-review.googlesource.com/1156404
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54807}
2018-07-31 10:13:56 +00:00
Michael Starzinger
30ce1ba660 [wasm] Avoid serializing {TransferrableModule} if possible.
This avoids serializing and deserializing the sharable part of a module
when it is transferred via {TransferrableModule}, which is possible when
all Isolates run off the same engine via the --wasm-shared-engine flag.

This adds a new --wasm-shared-code flag to enable this feature.

R=ahaas@chromium.org
BUG=v8:7424

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I099d581d7ccc4d058a4646f545a011745fd84eb4
Reviewed-on: https://chromium-review.googlesource.com/1142144
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54806}
2018-07-31 09:17:39 +00:00
Sigurd Schneider
ec06732236 [utils] Change ReadFile interface
ReadFile returned a Vector with ownership transfer, i.e. the client
needed to call Dispose to free the memory. This CL changes the interface
to return a std::string instead, which manages ownership. As it turns
out, there is only one user of ReadString that sometimes calls an API
function which expects to take ownership of its Vector argument.

Bug: v8:7932
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ie624a7a65cf5814fddce7a57bc557e4b9876bc53
Reviewed-on: https://chromium-review.googlesource.com/1155115
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54805}
2018-07-31 08:59:00 +00:00
Georg Neis
994223114a [turbofan] Introduce broker modes.
Also define some infrastructure for serialization.

Bug: v8:7790
Change-Id: Icaa3d5b877dca41dfd5554683d05667fda115e80
Reviewed-on: https://chromium-review.googlesource.com/1150531
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54804}
2018-07-31 08:57:08 +00:00