Commit Graph

56478 Commits

Author SHA1 Message Date
Benedikt Meurer
571cc43c39 [constant-tracking] Restore delete optimization.
We disabled the `delete` optimization, where `delete` on a fast-mode
object goes back in the transition tree, because that optimization
didn't pay attention to constant field tracking.

This change now does the proper fix, which is to invalidate the
constness and properly deoptimize all code that depends on it.

Drive-by-fix: Handlify the DeleteObjectPropertyFast helper.

Bug: chromium:962588, chromium:963999, v8:9233
Change-Id: I5978c32a48d1635b3ce42dc08b00bb2654baa36a
Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617251
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61636}
2019-05-20 08:34:47 +00:00
Simon Zünd
b2d0d24ea9 [cleanup] Remove unused TrySimpleSlice array runtime function
This CL also removes the ElementsAccessor "slice" implementation, as
the runtime function is the last use site.

R=verwaest@chromium.org

Bug: v8:9183
Change-Id: If268e20120e7c7bb4a58d9560482b35896b0992f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617662
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61635}
2019-05-20 08:29:42 +00:00
Georg Neis
d1d61ea8c5 [turbofan] Further tune MapInference in ReduceCallApiFunction
If speculation is disallowed, this change lets us still do the
optimization if (a) the maps were already reliable or
(b) we are able to take stability dependencies.

Bug: v8:8820
Change-Id: I08340fc19ac87b80aa2b7ed77753dd642e89804f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617663
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61634}
2019-05-20 08:25:52 +00:00
Benedikt Meurer
20d90b769b [cleanup] Remove obsolete and broken --log-timer-events
The --log-timer-events doesn't work anymore, since it cannot be enabled
after the snapshot was created ever since the CallApiCallback stub was
turned into a builtin.

Bug: v8:9183
Change-Id: I6e0b92141f1986fc791943ffef42dd4961aea0a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617931
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61633}
2019-05-20 07:51:48 +00:00
Simon Zünd
90b39673c3 [cleanup] Remove three unused proxy runtime functions
R=jgruber@chromium.org

Bug: v8:9183
Change-Id: I789295e5bbea682b2e46ccf5a55c69dc74f0ed72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617669
Auto-Submit: Simon Zünd <szuend@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61632}
2019-05-20 07:44:08 +00:00
v8-ci-autoroll-builder
272ff465fe Update V8 DEPS.
Rolling v8/build: 94dc55b..eaddee0

Rolling v8/buildtools: 1f329a6..9ea486b

Rolling v8/buildtools/linux64: git_revision:64b846c96daeb3eaf08e26d8a84d8451c6cb712b..git_revision:81ee1967d3fcbc829bac1c005c3da59739c88df9

Rolling v8/tools/clang: aae7fec..5b1310e

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

Change-Id: If8fa5df7ce2c78a8eb0eb1753b84c96bef1cf262
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619147
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@{#61631}
2019-05-20 03:36:08 +00:00
v8-ci-autoroll-builder
00f3c73dde Update V8 DEPS.
Rolling v8/build: 0395ad5..94dc55b

Rolling v8/tools/clang: 2d0ea0b..aae7fec

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

Change-Id: Icd2483f721844555c52d1212b8899b8971960020
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1618651
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@{#61630}
2019-05-19 03:45:46 +00:00
Michael Achenbach
2c355e54d8 Revert "[torque] Convert few class layout to torque and updated torque code formatter."
This reverts commit b9bfd006f6.

Reason for revert: 
The updated formatter violates some existing files that now require
new formatting:
https://ci.chromium.org/p/v8/builders/ci/V8%20Presubmit/4411

Original change's description:
> [torque] Convert few class layout to torque and updated torque code formatter.
> 
> 1. Converted Module, JSModuleNameSpace, JSCollator, JSV8BreakIterator,
>       TemplateList,
>       JSStrictArgumentsObject to torque.
> 2. Updated torque code formatter to now handle multi-line
>             declarations correctly.
> 
> Bug: v8:8952
> Change-Id: I97846b1bc0d2cba5d7a68468fc263423b1b55d19
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1536988
> Reviewed-by: Simon Zünd <szuend@chromium.org>
> Commit-Queue: Suraj Sharma <surshar@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#61624}

TBR=jgruber@chromium.org,tebbi@chromium.org,surshar@microsoft.com,szuend@chromium.org

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

Bug: v8:8952
Change-Id: I98424deb8002ba9b92262c4b7a1f753bd7c4f7c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617927
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61629}
2019-05-18 21:29:56 +00:00
v8-ci-autoroll-builder
c93858abcd Update V8 DEPS.
Rolling v8/build: 747602a..0395ad5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fd64d5d..4d85003

Rolling v8/third_party/depot_tools: 5737f02..cf6269b

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

Change-Id: Ie8a5530c9dd1598fbe11de0e3d834fd23fbaba62
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1618647
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@{#61628}
2019-05-18 03:37:37 +00:00
Johannes Henkel
889b4ded6e [DevTools] Roll inspector_protocol.
New Revision: 8ec18cf0885bef0b5c2a922c5dc3813cbf63e962

Change-Id: I65e271066599ed1aa1f9f8281be5b76e424d548d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1618159
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61627}
2019-05-18 02:08:27 +00:00
Michael Lippautz
781fa664d7 [heap] Refactor MemoryController and HeapController
- Move generic pieces into MemoryController.
- Keep V8's specific factor computations in HeapController.

Bug: chromium:948807
Change-Id: I1c1fc0516a429b19ce6458f75888b3f9d51824ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617678
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61626}
2019-05-17 20:17:37 +00:00
Frank Tang
38f458180d Reland "[Intl] Ship Intl.DateTimeFormat#formatRange"
This is a reland of 3c2103bd8b

The fix of the issue is in https://chromium-review.googlesource.com/c/v8/v8/+/1617674

Original change's description:
> [Intl] Ship Intl.DateTimeFormat#formatRange
>
> Design Doc: https://goo.gl/PGUQ1d
> Chrome Status: https://www.chromestatus.com/feature/5077134515109888
> I2S: https://groups.google.com/a/chromium.org/d/msg/blink-dev/Nh-jMn8L8fQ/GQN6wQQVBQAJ
> I2I: https://groups.google.com/a/chromium.org/d/msg/blink-dev/WTAjjcXaraA/ZypbHTlEAQAJ
>
> Bug: v8:7729
> Change-Id: Ib3277c6a01546fd56418615087df497058edb8ae
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1604068
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Mathias Bynens <mathias@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61580}

Bug: v8:7729
Change-Id: I1b556ca2aeff469c7655f89bd7813d86fcda8adf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617801
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61625}
2019-05-17 20:01:07 +00:00
Suraj Sharma
b9bfd006f6 [torque] Convert few class layout to torque and updated torque code formatter.
1. Converted Module, JSModuleNameSpace, JSCollator, JSV8BreakIterator,
      TemplateList,
      JSStrictArgumentsObject to torque.
2. Updated torque code formatter to now handle multi-line
            declarations correctly.

Bug: v8:8952
Change-Id: I97846b1bc0d2cba5d7a68468fc263423b1b55d19
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1536988
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Suraj Sharma <surshar@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#61624}
2019-05-17 19:04:18 +00:00
Sergiy Belozorov
be80401ea8 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:920557
Change-Id: If62b32188cadf1d0fa7b0809400462534c37acc2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617925
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61623}
2019-05-17 18:47:58 +00:00
Sergiy Belozorov
100aade826 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:920557
Change-Id: I3d313959b9afa6116a0db3697ac1bd4382c0a82b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617924
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61622}
2019-05-17 17:57:47 +00:00
Jakob Kummerow
ffb8ae4f77 [tests] Fix two tests to be --gc-interval robust
deopt-unlinked.js: bytecode flushing destroys the information that
%GetDeoptCount relies on, so turn that off for this test.

cleanupsome-after-unregister.js: the function-local object {o} is
assumed to be alive throughout the function, so make sure its live
range (from the optimizing compiler's view) extends that far.

Drive-by cleanup: drop some unnecessary casting boilerplate from
Genesis::InitializeGlobal_harmony_intl_date_format_range().

Change-Id: I28617f842fe046dd0875a9a082cfc55a3a076bcf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617674
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61621}
2019-05-17 16:59:37 +00:00
Johannes Henkel
99feae230e [DevTools] Roll inspector protocol for V8
New revision: 0aafd2876f7485db7b07c513c0457b7cbbbe3304

0aafd2876f

Change-Id: I6e9babc8401a5af3085cce81b963f288d0392c07
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613478
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61620}
2019-05-17 16:38:07 +00:00
Mythri A
2ebff71935 [test] Skip es6/classes in stress mode on PPC
es6/classes is slow to run in stress mode and times out on PPC.
As a long term fix we should split this into multiple tests so
each individual test runs faster.

Bug: v8:9246
Change-Id: I95eed06d85f73cc66229dfbd83ac7521dcbbb54f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615252
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61619}
2019-05-17 15:50:31 +00:00
Mike Stanton
c9b48e96ec [Torque] Array.prototype.shift correctness fix
Fastpath failed to store the hole on the array left side.

Bug: chromium:940274
Change-Id: I1eca7b241030474cf5aed6c68f155a1d22ae553e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617255
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61618}
2019-05-17 14:38:30 +00:00
Clemens Hammacher
dbe16b171c [wasm][gc] Track time per code GC
This adds a counter for the time it takes per single code GC. It is
sampled in all isolates whenever a GC finishes, and during regular
JavaScript GC to also get samples for GCs that never finish (which we
would need to fix).

R=mstarzinger@chromium.org, mpearson@chromium.org

Bug: v8:8217
Change-Id: I722d01b6bd7832c3af636362acfddeab7e8a485e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615250
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61617}
2019-05-17 14:33:09 +00:00
Simon Zünd
ee46c6314d [cleanup] Remove unused EstimateNumberOfElements runtime function
R=jgruber@chromium.org

Bug: v8:9183
Change-Id: I773af2e44bbfb780a3cf375e6412274fe917d397
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617250
Commit-Queue: Simon Zünd <szuend@chromium.org>
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61616}
2019-05-17 14:18:49 +00:00
Simon Zünd
32cfe26037 [cleanup] Remove two unused small internal runtime functions
R=petermarshall@chromium.org

Bug: v8:9183
Change-Id: I392c7b7f90bf3025c726456237afdbf20f9ed3cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617666
Auto-Submit: Simon Zünd <szuend@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61615}
2019-05-17 14:05:30 +00:00
Michael Starzinger
8a95dd3b55 [wasm] Add preliminary {WebAssembly.Function} constructor.
This adds a constructor function to be used as the base class for all
exported functions. With type reflection enabled exported functions are
instances of this new constructor. Using the constructor directly as
well as the 'type' property is still missing.

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

Change-Id: Id58359cf7866d24be0745abf36a839d3d86e5922
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617253
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61614}
2019-05-17 13:51:39 +00:00
Sergiy Belozorov
fdbb24a2d1 [tools] Add arm64 builder MB configs
This is needed to build binaries for arm64 perf testers.

R=machenbach@chromium.org, tmrts@chromium.org

Bug: chromium:920557
Change-Id: I77cea8389b62835a67f221ae26d6682a110ba609
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605947
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61613}
2019-05-17 13:39:29 +00:00
Michael Starzinger
f8771daceb [cleanup] Remove dead {native_function_map} context slot.
R=jkummerow@chromium.org

Change-Id: I961f77eb5e99a3d709aa5e948602a925f57ae090
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617246
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61612}
2019-05-17 13:24:40 +00:00
Clemens Hammacher
429ee454e2 [wasm][gc] Track number of GCs triggered per module
We currently have the problem that we trigger too many code GCs since
{new_potentially_dead_code_size_} is never reset to zero.
This CL adds a counter which tells us how many GCs we ran per native
module. This counter is sampled on each code GC. It will give us a
good understanding of the amount of GC work we are executing in the
wild. The number should stay in the single-digits generally.

R=mstarzinger@chromium.org, mpearson@chromium.org

Bug: v8:8217
Change-Id: I978a98dff76e0f466ff51e067626886b58d52ded
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615246
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61611}
2019-05-17 13:21:19 +00:00
Simon Zünd
72200ddef4 [cleanup] Remove unused GetArrayKeys runtime function
R=yangguo@chromium.org

Bug: v8:9183
Change-Id: I0f06c9a32983f7131a36ace1fd6873e88e375fe3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617259
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61610}
2019-05-17 13:11:19 +00:00
Yang Guo
06bf8261cf Reland "Move API-related files"
TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org

Bug: v8:9247
Change-Id: I7ffc2bd4a5fdf7c20cc3283bb5545cbf9ffd4e53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617254
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61609}
2019-05-17 12:52:27 +00:00
Santiago Aboy Solanes
d382c2eabe [ptr-compr] Adding compressed case to lowering of Boolean Not
Fixes the chromium bug 963891

Bug: chromium:963891
Change-Id: Ie90c9581044b7d10dd8fcd73d52bda5fdfead292
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617248
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61608}
2019-05-17 12:45:48 +00:00
Sergiy Belozorov
cf45553762 [tools] Make run_perf.py non-executable
The script does not have the shebang and apparently running it without 'python'
on the command line produces some strange errors such as script trying to parse
itself as a suite config. Making it non-executable will make it clear that users
should prefix it with 'python' or 'vpython'.

R=machenbach@chromium.org

No-Try: true
No-Tree-Checks: true
Change-Id: I1d4373b8846034cf28b5fd02e60e9ed682330706
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605942
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61607}
2019-05-17 12:38:27 +00:00
Maya Lekova
e7a5816e87 [test] Skipped slow tests on TSAN
NOTRY=true

Bug: v8:9242, v8:9026
Change-Id: I4047d128913968c2e7d89f461881d84e0c22849c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617256
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61606}
2019-05-17 12:06:55 +00:00
Milad Farazmand
8c0d9f919c AIX: [Profiler] Ensure ticks in frameless bytecode handlers are interpreted frames.
Port 8e7945a691

Original Commit Message:

    Port 381a7f9e76

    Original Commit Message:

        On Arm/64 the last return address is stored in a link register instead of
        being pushed to the top-of-stack like on x64/ia32. Extend the support in the
        tick sampler to check for samples in a frameless bytecode handler with support
        for checking the link register if it exists instead of top-of-stack. In addition,
        make the x64/ia32 check more robust by ensuring we only apply the change if the
        pc is a bytecode handler and the top frame isn't a bytecode handler (stub) frame.

R=miladfar@ca.ibm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:9162
LOG=N

Change-Id: I52c40f8d4ba1bb10049410417d1e60f95315489d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1614791
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#61605}
2019-05-17 11:00:45 +00:00
Benedikt Meurer
663ebdb127 [turbofan] Restore fast API calls with no receiver knowledge.
When TurboFan doesn't know anything about the receiver, it will
generally insert a call via CallFunctionTemplate builtin, which
does all the necessary checks. For this we don't need to be able
to deoptimize, so there's no need to have the speculation bit
available.

This restores the performance in the case of calling API methods
and accessors via `Function#call()`, i.e. like in this example:

```js
const hasAttribute = Element.prototype.hasAttribute;
// ...
hasAttribute.call(element, "bar");
```

Bug: v8:8820
Change-Id: Ic30719d7db75141023efc11d76180b001f871d28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615248
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61604}
2019-05-17 10:07:38 +00:00
Santiago Aboy Solanes
1ebabbe9a7 [ptr-compr][arm64] Fix to timeout of regress-708247
Skipping rather than reverting the CL that introduced the slowness, due to
the fact that said CL is a Stable blocker fix.

Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:9256
Change-Id: I8f8b57c415d2b54fe57c43a87e42990909295c57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615260
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61603}
2019-05-17 09:30:17 +00:00
Simon Zünd
3dd5661204 [stack-trace] Include API functions in Error.stack stack trace
This CL extends Error.stack to include frames of functions declared
with the C++ FunctionTemplate API. For example, "print" in d8.

Two changes are necessary:
  - HandleApiCall and friends need to go through an BUILTIN_EXIT frame
    instead of an EXIT frame. The existing stack-trace machinery will
    then pick up FunctionTemplate frames without additional changes.
  - Turbofan doesn't go through HandleApiCall, but instead uses an
    ASM builtin to enter FunctionTemplate functions. A "marker"
    frame state is needed to include these frames in the stack trace.

Note: This CL only includes these frames in Error.stack,
but not (yet) in the stack-trace API (v8.h).

Bug: v8:8742,v8:6802
Change-Id: Ic0631af883cf56e0d0122a2e0c54e36fed324d91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609835
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61602}
2019-05-17 09:09:10 +00:00
Yang Guo
81a0102fe8 Revert "Move logging and diagnostics related source files"
This reverts commit 5f28539599.

Reason for revert: presubmit failure

Original change's description:
> Move logging and diagnostics related source files
> 
> This also introduces a COMMON_OWNERS file, which is derived from the
> current top-level OWNERS file. It is to be used for parts of the
> codebase that is not sensitive to domain-specific expertise.
> 
> NOPRESUBMIT=true
> TBR=verwaest@chromium.org
> 
> Bug: v8:9247
> Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61600}

TBR=rmcilroy@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org

Change-Id: I3827c3af4fd63b18aa48c49617f318a01746e813
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9247
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617247
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61601}
2019-05-17 09:00:46 +00:00
Yang Guo
5f28539599 Move logging and diagnostics related source files
This also introduces a COMMON_OWNERS file, which is derived from the
current top-level OWNERS file. It is to be used for parts of the
codebase that is not sensitive to domain-specific expertise.

NOPRESUBMIT=true
TBR=verwaest@chromium.org

Bug: v8:9247
Change-Id: I34a5eaa7cb1509a80d15094a2aceedd62665b17c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613987
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61600}
2019-05-17 08:35:30 +00:00
Simon Zünd
8610cb5a32 [torque] Always run all ImplementationVisitor steps
The language server and unit tests pass in an empty output directory
to signal that no C++ files should be generated. As these
generation steps include some validations, they should also be
included in language server and unit test compilation runs.

This CL introduces a "dry run" flag on the ImplementationVisitor.
Additionaly, the implementation visitor wraps the file writing
functionality. In case of a dry-run, file writing becomes a no-op.

R=sigurds@chromium.org

Bug: v8:7793
Change-Id: Id699fdf0b35311ddd3c1f5419baa0237b40ddce4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617244
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61599}
2019-05-17 08:06:17 +00:00
Paolo Severini
1b77e7e936 LTO Missing Symbol Error: CrashForExceptionInNonABICompliantCodeRange
Building Chromium Win64 ThinLTO is faulting, with a link error on a missing
symbol. The fix is to add a __declspec(dllexport) to function
CrashForExceptionInNonABICompliantCodeRange defined in
src/unwinding-info-win64.cc.

Note that using V8_EXPORT_PRIVATE instead does not work because
'BUILDING_V8_SHARED' is not defined.

Bug: v8:9224, v8:9251
Change-Id: Ic0265c22c1d6a4e4955f093bf8de0b5575bf6bde
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601423
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61598}
2019-05-17 07:18:22 +00:00
Benedikt Meurer
e73776cfe3 [turbofan] Fixup wrong code comments.
Missed the feedback in https://chromium-review.googlesource.com/1611803
to address the code comments.

Tbr: neis@chromium.org
Bug: chromium:961199, v8:8820
Change-Id: I1ff85c0a7554099b72461eb91de9ea4bb2a5bded
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617242
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61597}
2019-05-17 07:17:18 +00:00
Yang Guo
3000b890f9 Additional OWNERS for src/profiler and src/tracing
R=alph@chromium.org, petermarshall@chromium.org

Bug: v8:9247
Change-Id: I3f465ed773c8d4afde61c6bc194aea1faa99ac8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1609848
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61596}
2019-05-17 06:35:15 +00:00
v8-ci-autoroll-builder
1c972a3813 Update V8 DEPS.
Rolling v8/build: 333f822..747602a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d84db82..fd64d5d

Rolling v8/third_party/depot_tools: 99fe071..5737f02

Rolling v8/third_party/icu: e3d32ff..64e5d7d

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

Change-Id: I2ece2959e94f6b42994741a2ce59b0c5d018816f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617001
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@{#61595}
2019-05-17 05:52:04 +00:00
v8-ci-autoroll-builder
a011677ae1 Update wasm-spec.
Rolling v8/test/wasm-js/data: 263af5a..bc7d300

[test] More LEB128 tests (#1019) (Wanming Lin)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/bc7d300

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

Change-Id: Ia3ba9ade2fec0c5483cf912e77636e11424ea66b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617004
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@{#61594}
2019-05-17 05:50:59 +00:00
Clemens Hammacher
850f11eeed Revert "[fuchsia] Replace zx_clock_get() with zx_clock_get_new()."
This reverts commit 748de1e56a.

Reason for revert: Fails compilation (unused variable): https://ci.chromium.org/p/v8/builders/ci/V8%20Fuchsia/10879

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}

TBR=wez@chromium.org,fdegans@chromium.org

Change-Id: I14a97f6510f6fbd6b3698a3549def8feb128f0ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:963956
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1617241
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61593}
2019-05-17 05:49:56 +00:00
Frank Tang
eeda283e6a Roll test262
Add flags for https://github.com/tc39/test262/pull/1225

https: //chromium.googlesource.com/external/github.com/tc39/test262/+log/2682ab5..a919d53
Bug: v8:7834
Change-Id: I059b1c712b5b82186a5d438051cb7f043322b315
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1616541
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61592}
2019-05-17 02:22:09 +00:00
Fabrice de Gans-Riberi
748de1e56a [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}
2019-05-17 02:21:05 +00:00
Yang Guo
ee9ed5cc35 Move src/collector.h to test/cctest
It's not used anywhere else.

R=mslekova@chromium.org

Change-Id: I2859618faba4da7cc93d9fba881470fc2ae8a6cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613995
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61590}
2019-05-16 20:55:17 +00:00
Joshua Litt
b7e935c5af [parser] Fix async generator bytecode to only await on explicit return
Per ECMA-262 25.5.3.2, step 5.e: |generatorBody| execution ends with a normal completion.

Bug: v8:9050
Change-Id: If2ecc7d104e0b905a4b2b4695522be740e0d0349
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1611011
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@google.com>
Cr-Commit-Position: refs/heads/master@{#61589}
2019-05-16 19:47:37 +00:00
Seth Brenith
15a7e04eec [torque] Move Map layout definition to Torque
This commit attempts to change as little behavior as possible, but it
does require reordering the fields within Map to abide by Torque rules
specifying that strong and weak fields must be in separate sections.

Also includes some Torque compiler updates:
- Allow enums (types extending from integral types) as class fields
- Rename @ifdef to @if and add @ifnot for inverse checks
- Allow void fields in class declarations, which take up no space and
  emit no accessors

Bug: v8:8952
Change-Id: I1de6f34c1b15ed87d718666a05176980a218e97c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1480919
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61588}
2019-05-16 19:39:37 +00:00
Hannes Payer
a9eaf66316 [heap] Make CodeObjectRegistry a separate class.
Bug: v8:9093
Change-Id: I02360627776715ae2561f8535dbf97ed0cd3c51a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613978
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61587}
2019-05-16 18:41:33 +00:00