Commit Graph

60152 Commits

Author SHA1 Message Date
Benedikt Meurer
5ba9362bf9 [inspector] Report Wasm modules upon "Debugger.enable".
When opening DevTools, make sure that Wasm modules properly show up,
aka are reported via "Debugger.scriptParsed" events. Previously these
scripts corresponding to Wasm modules had been filtered out explicitly
(accidentally).

Bug: chromium:1032042
Tbr: clemensb@chromium.org
Change-Id: Id5e49616a4959c9ca611dbae6f1a4e9a47413ea6
Doc: https://bit.ly/wasm-dbg-stories-2019#bookmark=id.drrsobk5mo0p
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980588
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65560}
2019-12-27 09:51:26 +00:00
v8-ci-autoroll-builder
60d57f3aa7 Update V8 DEPS.
Rolling v8/build: 01e7f30..69e421a

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fe10b5c..1890745

Rolling v8/tools/clang: ccefaab..86eb804

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

Change-Id: Ib5230e27e0d5e7670977d8583fa77bd05dbf4c43
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1982899
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@{#65559}
2019-12-27 04:00:26 +00:00
Joshua Litt
69314b4272 [replaceAll] Fix replaceAll overflow with StringCompareSequence.
Fixes a potential overflow when using the runtime's StringCompareSequence
by checking the string length first.

Bug: chromium:1032906
Change-Id: I7cb94473ae8331dd2ecf1fa98034829bebf8a9ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973936
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65558}
2019-12-26 18:47:05 +00:00
v8-ci-autoroll-builder
75a2683738 Update V8 DEPS.
Rolling v8/build: 45aab2c..01e7f30

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bdfd74a..fe10b5c

Rolling v8/tools/clang: 1d36586..ccefaab

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

Change-Id: I0074734ddfadead62c449b4bc2cfccd79e5f578e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1982251
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@{#65557}
2019-12-26 03:57:15 +00:00
Jakob Gruber
d6c9b4ad96 [gasm] Port the Array.prototype.{every,some} reduction
Tbr: mvstanton@chromium.org
Bug: v8:9972
Change-Id: If491e37e43e2a639b452b7d5558baca75bca1791
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973737
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65556}
2019-12-25 09:31:54 +00:00
Jakob Gruber
694c7f56c5 [gasm] Port the Array.prototype.find reduction
Bug: v8:9972
Change-Id: I94a6a1a520de9da76a5de7bdcc19bd1b71b303cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973736
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65555}
2019-12-25 09:21:24 +00:00
Frank Tang
92cc62e5b9 Roll test262
3682ddd7..31f1bb5a

31f1bb5 Remove date related types for Intl.DisplayNames (#2448) by Frank Yung-Fong Tang · 61 minutes ago
502cc20 fix delete test, add error tests, fix lint (#2453) by Gus Caplan · 2 days ago
19fd4be Improve Object.prototype.isPrototypeOf coverage (#2446) by Alexey Shvayka · 5 days ago
0ea69c7 feat: regression tests for optional call (#2429) by Benjamin E. Coe · 5 days ago
a3370bf FinalizationGroup: Improve tests for cleanupSome/unregister interactions (#2440) by Mathieu Hofman · 5 days ago
0ddce19 Adding tests for Array.prototype.copyWithin (#2443) by Natalie Silvanovich · 5 days ago
cadd47a Add test for for-in order (#2432) by Kevin Gibbons · 5 days ago
f7ad295 Update tests now that FinalizationGroup.prototype.cleanupSome throws if cleanup is currently in progress. (#2434) by Jon Coppeard · 5 days ago
09380a4 Add test verifying that optional call preserves `this`. (#2436) by Ross Kirsling · 3 weeks ago
5c41447 Remove incorrect tests for AggregateError#toString (#2435) by Leo Balter · 3 weeks ago
65e996b Check the step 29 of InitializeDateTimeFormat (#2427) by Frank Yung-Fong Tang · 3 weeks ago
22978d3 add test for typeof proxy (#2438) by Gus Caplan · 3 weeks ago
8ef20fb Merge pull request #2439 from devsnek/engine262 by Leo Balter · 3 weeks ago
df8aa61 add engine262 runner by Gus Caplan · 3 weeks ago
2213d13 Merge pull request #2425 from bcoe/optional-chaining-iteration by Leo Balter · 5 weeks ago
5babea2 chore: added a few more examples based on code review by bcoe · 5 weeks ago
3d0c203 feat(optional-chaining): add tests for IterationStatement by bcoe · 5 weeks ago

Bug: v8:7834
Change-Id: Id2eac590b65d2070bbd3da905ce71d30fa5197c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980907
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65554}
2019-12-24 08:46:02 +00:00
Dan Elphick
8e8dbd379d [tools] Clean up temporary directory after collecting stats
Adds --retain option (all, none, json) which controls which files are
kept after running the benchmark.

No-Try: true
Change-Id: I033a8ff7938fd10f8a0fc9425043e24f1229ce0e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980575
Reviewed-by: Mythri Alle <mythria@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65553}
2019-12-23 16:15:40 +00:00
Tobias Tebbi
c679efc440 [turbofan] make GraphAssembler isolate independent
This enables using the GraphAssembler for Wasm.

Change-Id: Id1f46db6cc05c9de6e878fb062434211a9c390ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977160
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65552}
2019-12-23 13:47:29 +00:00
Nico Hartmann
d873128a67 [torque] Adds enum verifier to check closed enums for completeness
Bug: v8:10053
Change-Id: I90e0798ce490dea035cf4ecb934a4b8d98c61bc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977859
Auto-Submit: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65551}
2019-12-23 09:39:29 +00:00
v8-ci-autoroll-builder
e09a068026 Update V8 DEPS.
Rolling v8/build: 2e9f699..45aab2c

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/efb804d..bdfd74a

Rolling v8/tools/clang: 5df4d00..1d36586

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

Change-Id: I234983cfbdbfe01fde68606133405f6b1799781b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1980076
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@{#65550}
2019-12-23 03:44:09 +00:00
Zhang, Shiyu
a5967ad913 Update the dependency of v8_vtunejit
Contributed by fanchen.kong@intel.com

Change-Id: I4be08cb8fdbf7e2be3e9694cc0eb94e8128c8f50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1973541
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Cr-Commit-Position: refs/heads/master@{#65549}
2019-12-23 02:00:49 +00:00
v8-ci-autoroll-builder
a54f4beaea Update V8 DEPS.
Rolling v8/build: 60770dc..2e9f699

Rolling v8/third_party/zlib: d7f3ca9..814da1f

Rolling v8/tools/clang: 13263d5..5df4d00

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

Change-Id: I49d10dd90a201942cb9a4a899b6237abf2ea0baf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1979836
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@{#65548}
2019-12-22 03:59:14 +00:00
v8-ci-autoroll-builder
3cad9b1eec Update V8 DEPS.
Rolling v8/build: 032b1bd..60770dc

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/104d957..efb804d

Rolling v8/third_party/depot_tools: 0593495..4413434

Rolling v8/tools/clang: cd8fb02..13263d5

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

Change-Id: I754f7771db2c8defda57f601857757f5596ccdab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1978064
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@{#65547}
2019-12-21 03:48:53 +00:00
Ng Zhi An
83091c45c1 [liftoff][wasm-simd] Add allocation and spill logic for fp reg pair
kFpRegPair requires a bit of special case logic in allocation and spill
logic, since it requires adjacent fp registers, with the low register
being an even-numbered one.

We make use of a shift+and trick with the reg list to check this. Given
a bit mask of registers available, AND this with a right-shift-by-one
version of itself, and then AND it again with with a bit mask of even
numbered fp registers, we can get a bit mask where all available even
registers are set.

For example, given 00011011, where 1 means register is available:

  00011011
&  0001101 (right shift by 1)
----------
  00001001
& 01010101 (mask of even registers)
----------
  00000001

We see that only the first fp register is available, based on the
adjacency requirement.

The mask of even registers is defined to be uint64_t, to workarond shift
overflow issues when non-unsigned values are used, and also to make this
work on all platforms and compilers without implicit conversion warnings.
It is a bit wasteful, since we really only need storage_t, but since it
is a constexpr it should be okay.

The spilling case tries to be a bit smart, since there are three possible
cases (described in the code), two of which we can spill one register,
and in the last case we have to spill two registers. We try to
distinguish between these cases in order to minimize spills. The dumb
thing here is in the last case, we arbitrarily pick the first two
registers (d0, d1) to spill.

Bug: v8:9909
Change-Id: I408f9f79b1f3c505f2fd73bad15923188ae7aaf4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975033
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65546}
2019-12-20 22:03:42 +00:00
Ng Zhi An
f2cc948f99 [liftoff][wasm-simd] Support storing S128 values
Add support for storing values of type kWasmS128 to ia32, x64, arm,
arm64. These stores are never hit right now, since Liftoff does not
handle any S128 values yet.

Bug: v8:9909
Change-Id: Ib74b9db158428186757086711b8249866026dab5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1974834
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65545}
2019-12-20 18:45:23 +00:00
Frank Tang
1a6de19f1b Stage Intl.DisplayNames
I2I https://mail.google.com/mail/u/0/#search/Intl.DisplayNames+Intent/KtbxLwgxBjLmZRWGMwZfjnVwNFvdndwvBq
Design Doc: https://shorturl.at/emEHW
https://www.chromestatus.com/feature/4965112605573120
Latest spec: https://tc39.es/proposal-intl-displaynames/
Spec Github: https://github.com/tc39/proposal-intl-displaynames

Bug: v8:8703
Change-Id: I3757d2131029104984d26cd5f037f90dd7b136e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1976903
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65544}
2019-12-20 18:31:52 +00:00
Ng Zhi An
b1840ab9f6 [wasm-simd] Implement rounding average for arm64
Bug: v8:10039
Change-Id: Ic2775bfcae330ff9763bc28a65a806e6a41a5fba
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958013
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65543}
2019-12-20 17:13:12 +00:00
Ulan Degenbaev
38f39a01ff [heap] Introduce per-context marking worklists
These worklists are needed for accounting of objects retained by
native contexts for the new memory measurement API.

Bug: chromium:973627
Change-Id: I354c5ebbbac11da4d01800164e15b94a93aa654c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1943158
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65542}
2019-12-20 15:49:12 +00:00
Tobias Tebbi
4671cb5644 Revert "Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]()"
This reverts commit 91e3243d60.

Reason for revert: This deopts to the wrong point.

Original change's description:
> Extend GetIterator bytecode to perform JSReceiver check on object[Symbol.iterator]()
> 
> Current GetIterator bytecode loads and calls @@iterator property on a
> given object. This change extends the bytecode functionality to check
> whether the value returned after calling @@iterator property is a valid
> JSReceiver. The bytecode throws SymbolIteratorInvalid exception if the
> returned value is not a valid JSReceiver. This change absorbs the
> functionality of additional two bytecodes - JumpIfJSReceiver and
> CallRuntime, that are part of the iterator protocol in the GetIterator
> bytecode.
> 
> Bug: v8:9489
> Change-Id: I9e84cfe85eeb9a1b8a97ca0595375ac26ba1bbfd
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792905
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: Swapnil Gaikwad <swapnilgaikwad@google.com>
> Cr-Commit-Position: refs/heads/master@{#63704}

TBR=rmcilroy@chromium.org,leszeks@chromium.org,tebbi@chromium.org,swapnilgaikwad@google.com

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

Bug: v8:9489
Change-Id: I9324b5b01ead29912ad793a1e7b4d009643d7901
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960288
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65541}
2019-12-20 14:56:02 +00:00
Clemens Backes
16cfeda9fe [wasm] Add inspector test for inspecting Liftoff frames
This adds a respective test, even though Liftoff frames currently do not
show scope information. The output will change with future CLs.

R=​jkummerow@chromium.org

Bug: v8:10019
Change-Id: I015863768c02678e97404f2edb538e3b4320d134
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975754
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65540}
2019-12-20 14:48:24 +00:00
Clemens Backes
7285a07a1c [wasm] Extend fast path to floats in wasm-to-js wrappers
This uses the Smi-fast-path that was added for i32 values also for f32
and f64. The code was generalized to do the smi-to-wasm-type and
float64-to-wasm-type conversion dependent on the type, and keep the rest
generic.

R=jkummerow@chromium.org

Bug: v8:10070
Change-Id: I42b021dcc99755883cf003579c730675e6d93ff6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965577
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65539}
2019-12-20 14:23:12 +00:00
Tobias Tebbi
59e8d45ad8 [torque] multiple arrays in one object
This allows the definition of classes with several arrays and ports
SmallOrderedHashTable subclasses to Torque as an example, including
the existing CSA allocation functions for them.

Overview of changes:
- Introduce ResidueClass to encapsulate the modulo-arithmetic
  necessary to do alignment checks.
- Add MachineOperatorReducer to the CSA pipeline to address now
  missing CSA ad-hoc constant folding that got blocked by a
  temporary phi.
- Allow assignments to references to structs. This is needed to
  initialize the data_table part of SmallOrderedHashMap.
- Make the NumberLiteralExpression AST-node store a double instead
  of a string. This is necessary to detect arrays with constant size
  used for padding.
- Turn offsets into base::Optional<size_t> to ensure we don't use
  an invalid or statically unknown offset.
- Remove CreateFieldReferenceInstruction since it doesn't work for
  complex offset computations and the logic can be expressed better
  in ImplementationVisitor.
- Validate alignment of structs embedded in classes.

Bug: v8:10004 v8:7793
Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65538}
2019-12-20 14:10:22 +00:00
Tobias Tebbi
d2528de478 Reland "[csa] use JSGraph to create constants in CodeAssembler"
This is a reland of 53308bf7c0

Original change's description:
> [csa] use JSGraph to create constants in CodeAssembler
>
> Now that CodeAssembler uses optimizing TurboFan passes, creating
> constants without using the caching implemented in JSGraph leads to
> problems, since value numbering only works properly if all constants
> in the graph were introduced through the cache.
> To mitigate this, this CL creates the JSGraph earlier so that
> CodeAssembler can already use the same JSGraph used by later TurboFan
> optimizations.
> For other uses of RawMachineAssembler, everything stays as before.
>
> This issue is creating bot failures in
> https://chromium-review.googlesource.com/c/v8/v8/+/1958011
>
> Change-Id: Ife017876b19cb2602694279ef1da75f23e18a031
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967329
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65477}

TBR=mslekova@chromium.org

Change-Id: I5c8218ce22470b3efa06d872176c910a4c5325a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977858
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65537}
2019-12-20 13:07:02 +00:00
Tobias Tebbi
a3039123f2 [regalloc] temporarily disable control-flow aware allocation
Bug: v8:10077

Change-Id: I4b76d62462658dfa54f351ba10e52e57f63f3493
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1977857
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65536}
2019-12-20 12:01:02 +00:00
Maya Lekova
f970a97ed7 [turbofan] Add limits to the serializer
This CL limits the total number of hints of each type (constants, maps,
etc.) to 50. It also adds a limit to the number of seen functions with
the same SFI and feedback vector to 200. Octane already hits those
limits in DeltaBlue and TypeScript, but that doesn't affect the scores.

Bug: v8:7790
Change-Id: I644519955115c09bfb8ba6d98cf21087b153668d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975757
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65535}
2019-12-20 10:55:04 +00:00
v8-ci-autoroll-builder
99d9585497 Update V8 DEPS.
Rolling v8/build: 09a0189..032b1bd

Rolling v8/third_party/depot_tools: a892219..0593495

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

Change-Id: Ie331cda9ed6a4a4634274e51e601920c53a488cf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1978056
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@{#65534}
2019-12-20 03:48:52 +00:00
Ng Zhi An
25456de1bf [wasm-simd] Fix incorrect operands for i64x2 add and sub
The instruction selector for these two operations use VisitRROFloat
which uses and operand for the second input (operand1). The codegen
assumes it is a register, which is wrong. This fixes it to be an
operand.

Change-Id: Ic27ba2c0520ba6e15963b01af7593411ec2a34e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958052
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65533}
2019-12-19 23:03:29 +00:00
Shu-yu Guo
45bb44985e [weakrefs] Hold unregister tokens weakly
Change unregister tokens to be held weakly instead of strongly. This
enables the use case for an object to be used as its own unregister
token.

To avoid using an ephemeron table, FinalizationGroup's key_map is
changed to key off unregister tokens' identity hashes. Because hashes
may collide, a single key list may rarely contain multiple tokens. When
a FinalizationGroup WeakCell's token becomes unreachable, during GC, it
is removed from the the doubly linked key list and removed from the key
map if it had a unique key.

Bug: v8:8179
Change-Id: If88fd2ab196e3f9a287990ae345117a0abb2f04d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970493
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65532}
2019-12-19 22:42:09 +00:00
Ng Zhi An
90b42052c6 [wasm-simd] Implement rounding average on x64 and interpreter
This change includes templatization of the test helper to allow the
same function to be reused for both signed and unsigned data types.

We implement a new function RoundingAverageUnsigned in overflowing-math,
rather than in base/utils, since the addition could overflow.

SIMD scalar lowering and implementation for other backends will follow
in future patches.

Bug: v8:10039
Change-Id: I70735f7b6536f197869ef1afbccaf5649e7e8448
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958007
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65531}
2019-12-19 22:40:59 +00:00
Frank Tang
c82338295a Hide date related types from Intl.DisplayNames
To sync with https://github.com/tc39/proposal-intl-displaynames/pull/63

Bug: v8:10069
Change-Id: I64921c348a69ca7b265d498cac9e7da9f3e3f755
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975038
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65530}
2019-12-19 19:31:09 +00:00
Z Nguyen-Huu
6ce3046e2b [wasm] Add support to tier down/up Wasm NativeModule
This is the first part of switching between Liftoff and Turbofan in
debugging Wasm. In this CL, we implemented the logic to tier down/up all
functions in module.

Bug: v8:9654
Change-Id: Ia25103ca29963afa103c124ff5f159f197c2b2b0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970470
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65529}
2019-12-19 19:02:18 +00:00
Richard Townsend
2e7eb2f108 build: fix an unsigned shift error
Bug: v8:10012
Change-Id: Id94276d8ab10835758b9c63029ac3c35d35e903b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1962853
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Richard Townsend <richard.townsend@arm.com>
Cr-Commit-Position: refs/heads/master@{#65528}
2019-12-19 18:37:38 +00:00
Clemens Backes
36b6649878 [liftoff] Minor fix to RegClass definition
It would be nice if unused {RegClass}es just equal {kNoReg} on all
platforms.
This CL adds the static asserts for that, and slightly modifies the
definition of the {RegClass} enum to fulfil that. Interestingly, this
only changes the values for the one configuration that is currently
unused :)

R=zhin@chromium.org

Change-Id: Ib1b2a663183ad34822f514d6168c65450c1d7f2e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975753
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65527}
2019-12-19 17:08:31 +00:00
Ng Zhi An
5a2992753e [liftoff][wasm-simd] Use is_pair
For functions which check if a register pair is used, change them from
is_gp_pair to is_pair, since they do not care if the pair of register is
a gp pair or a fp pair.

Bug: v8:9909
Change-Id: I262108caadd616c64019b39ebbf6972a548112df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1974833
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65526}
2019-12-19 17:07:26 +00:00
Clemens Backes
ce904d1d96 [wasm] Add fast path for Smi in wasm-to-js wrappers
For Smi, we can avoid calling the ToNumber builtin, and also the
conversion to float and back. This adds some complexity, but greatly
improves performance for parameters that fit in a Smi.

R=jkummerow@chromium.org

Bug: v8:10070
Change-Id: Ic55f17e42ce52811296293f3cd218c850af42961
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965576
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65525}
2019-12-19 16:40:44 +00:00
Peter Marshall
e7ddb89c53 [cpu-profiler] Handlify ProfilerListener and add no_gc scopes
Bug: chromium:1033407
Change-Id: I59642d64fd111884547605f7a010d40e974d2762
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975752
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65524}
2019-12-19 15:04:56 +00:00
Joshua Litt
a0a7288b05 [promises] Port remaining Promise*Finally to Torque.
Bug: v8:9838
Change-Id: Ibf0c0b0f55a3728810de026c0132ff89e2c9861f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1961943
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65523}
2019-12-19 13:48:55 +00:00
Ulan Degenbaev
7edaa330a1 Reland "Reland "Delay setting up deserialized JSArrayBuffer""
This is a reland of ff7acbd697

Original change's description:
> Reland "Delay setting up deserialized JSArrayBuffer"
>
> This is a reland of 83786cb49d
>
> Original change's description:
> > Delay setting up deserialized JSArrayBuffer
> >
> > Setting up JSArrayBuffer may trigger GC. Delay this until we
> > are done with deserialization.
> >
> > R=ulan@chromium.org
> >
> > Bug: chromium:1033395
> > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Commit-Queue: Yang Guo <yangguo@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#65441}
>
> Tbr: yangguo@chromium.org
> Bug: chromium:1033395, chromium:1034059
> Change-Id: I89d05768f52a480400d9c6f5aaaa233c5d5ba126
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969896
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65484}

Tbr: yangguo@chromium.org
Bug: chromium:1033395, chromium:1034059
Change-Id: I1cc47fa742bd7c5ce602b1eb9a0a78cb479a86f1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975756
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65522}
2019-12-19 13:01:46 +00:00
Peter Marshall
e08436ce07 [unwinder] Add a new API based on code pages for arm32 support
This new API uses the code pages rather than code ranges approach.

It's supported on arm32, as well as the previous two supported
platforms, x64 and arm64.

Deprecate the old API which only works on x64 and arm64 to reduce the
maintenance overhead of keeping both. Users of the old API should
migrate to the new one as it can be used all on supported platforms.

We keep the tests for the old API by ignoring deprecation warnings so
that we don't accidentally break it while it is still in the codebase.

Design doc:
https://docs.google.com/document/d/1VGwUult5AHLRk658VetwEHMOmDDxA2eDQs9lDFMZTE0

Bug: v8:8116
Change-Id: I1de8246a48fc1b4991603501ea6087db6b43fdd9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969900
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65521}
2019-12-19 12:59:35 +00:00
Clemens Backes
f30af0bfa4 [wasm] Skip unneeded check for undefined value
After calling the ToNumber builtin, we are guaranteed to get either a
Smi or a HeapNumber. Thus we can skip the check for undefined, which
removes quite some unneeded code from wasm-to-js and js-to-wasm
wrappers.

R=ahaas@chromium.org

Bug: v8:10070
Change-Id: I0e2ad19f1575fb6979222e324fbdb71aaf85e6fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1962279
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65520}
2019-12-19 12:41:56 +00:00
v8-ci-autoroll-builder
288aaef9ae Update V8 DEPS.
Rolling v8/build: d854784..09a0189

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/aa39e6f..104d957

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

Change-Id: I152d09c71e965fec6e0b4cfafce4a0a8ae858941
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975950
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@{#65519}
2019-12-19 11:32:19 +00:00
Daniel Clifford
bc0c25b4a0 [torque] Implement Rest/Strict/Sloppy argument stubs in Torque
Bug: v8:7793
Change-Id: Ib950ce398f101779a4654353d08ce947b8e05a66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526016
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65518}
2019-12-19 11:00:10 +00:00
Shu-yu Guo
1b450a1752 Remove per-parameter position var scope
The spec was normatively changed to simplify var scopes for parameter
expressions. Previously there was a per-parameter var scope in sloppy
mode so direct evals could introduce vars that did not escape the
parameter position. That semantics is complex both for the programmer
and implementation and has resulted in bugs in the past. Furthermore, it
has never been fully interoperable (with Safari in particular). The spec
was instead changed to be simpler: to have a single var scope for
sloppy evals in parameters that encloses the parameter scope and body
scope.

This simplification lets us remove expression-scope-reparenter.

Drive-by removal of stale reference to PatternRewriter.

Bug: v8:7532
Change-Id: Iade5594abe0009f7f3f6a1adad18628b17e1e779
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1962471
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65517}
2019-12-19 10:38:00 +00:00
Nico Hartmann
131ba0a0d4 Revert "Reland "Delay setting up deserialized JSArrayBuffer""
This reverts commit ff7acbd697.

Reason for revert: https://ci.chromium.org/p/chromium/builders/try/win_optional_gpu_tests_rel/34257

Original change's description:
> Reland "Delay setting up deserialized JSArrayBuffer"
> 
> This is a reland of 83786cb49d
> 
> Original change's description:
> > Delay setting up deserialized JSArrayBuffer
> >
> > Setting up JSArrayBuffer may trigger GC. Delay this until we
> > are done with deserialization.
> >
> > R=ulan@chromium.org
> >
> > Bug: chromium:1033395
> > Change-Id: I6c79bc47421bc2662dc1906534fc8e820c351ced
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965580
> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> > Commit-Queue: Yang Guo <yangguo@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#65441}
> 
> Tbr: yangguo@chromium.org
> Bug: chromium:1033395, chromium:1034059
> Change-Id: I89d05768f52a480400d9c6f5aaaa233c5d5ba126
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1969896
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#65484}

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

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

Bug: chromium:1033395, chromium:1034059
Change-Id: I3ad17293bfeba8a817346f57f885c7ba95739d36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975751
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65516}
2019-12-19 10:30:00 +00:00
Igor Sheludko
7f1aaa761f [runtime] Properly handle constant fields with computed values
... in object literals.

Bug: chromium:1034973
Change-Id: Ie357eef4c46f87486f2c3756ba1c288ad25a93df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1974070
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65515}
2019-12-19 10:09:49 +00:00
Frank Tang
74bf96e508 Bump the minimum ICU version to 65
Bug: chromium:1014272
Change-Id: I5707dbfcff4ac52f7f27b0f9feb2edfe1c7775ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1972425
Reviewed-by: Frank Tang <ftang@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65514}
2019-12-19 09:41:09 +00:00
Zhang, Shiyu
b9108088a0 Use absolute path for ittapi libs to support usage in Chrome
Contributed by fanchen.kong@intel.com

Change-Id: I99f2360ba1b064577c6891a161fd62114cce7a3f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975341
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65513}
2019-12-19 08:10:39 +00:00
Zhang, Shiyu
ca9f4dab66 [x64] Use scratch double register to break dependency for vcvtsi2sd and vcvtsi2ss
Change-Id: I3c83a3e9b0a9aa58d31968dbcb5bcb483eb47926
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1965927
Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65512}
2019-12-19 05:13:29 +00:00
v8-ci-autoroll-builder
9cceda90d1 Update V8 DEPS.
Rolling v8/build: 471c567..d854784

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/0124932..aa39e6f

Rolling v8/third_party/depot_tools: 5e2debe..a892219

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

Change-Id: I44762690b171d49e5d744dc01748b0f480ab70da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1975192
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@{#65511}
2019-12-19 03:50:49 +00:00