Commit Graph

59666 Commits

Author SHA1 Message Date
Ng Zhi An
477c4d7c8e [liftoff] Record spill offset of value on stack
We calculate the spill offset of a value by examining the top of the
stack, checking its offset, and adding the size of the value.

The offset is passed around for creations of other VarState, but is
otherwise not used in any meaningful way yet.

Bug: v8:9909
Change-Id: Id06f0e1cf932ba63dc291c94a3e513f4d815c554
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1913501
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64974}
2019-11-15 01:02:17 +00:00
Igor Sheludko
73d0c17121 [csa] Remove ParameterMode from CSA::CloneFastJSArray
Bug: v8:9708
Change-Id: I40e45eeb660f22f649b8e9e0a3e14201098f464b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1917142
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64973}
2019-11-14 23:41:09 +00:00
Igor Sheludko
a50719d685 [test] Remove CSA::AllocateStruct() used only in tests
Bug: chromium:1024264
Change-Id: Ibb3965bb0619a2cefe64d2f8190dbc1959e5ef3d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1915419
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64972}
2019-11-14 22:59:59 +00:00
Igor Sheludko
7788f1ea8a Revert "[ptr-compr] Temporarily disable 31 bit Smis on 64-bit architectures"
This reverts commit 64c09f67d2.

Reason for revert: We already support up to max int32 sized TypedArrays
regardless of the smi size, so the chromium:1009439 issue should no longer be a blocker.

Original change's description:
> [ptr-compr] Temporarily disable 31 bit Smis on 64-bit architectures
>
> The reason is to unblock M79 blocked by chromium:1009439 while full
> solution is not ready yet.
>
> This CL will be reverted after the M79 branch point.
>
> Bug: v8:9767, chromium:1009439
> Change-Id: I5302d86fe953ecd94d9a4bba0d29c807b7b9d703
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862554
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64286}

Bug: v8:9767, chromium:1009439
Change-Id: I92c43c8b27feb4f99e948bca03551e3e0316f2b5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916692
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64971}
2019-11-14 22:04:29 +00:00
Mythri A
8aa1a85693 [cleanup][ic] Tnodify accessor-assembler.cc
Bug: v8:9810
Change-Id: I202c63bc759bca0c542ae56831c34709f53b9497
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914562
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64970}
2019-11-14 21:36:18 +00:00
Igor Sheludko
bc9e4675d0 [builtins] Fix sorting of huge shared TypedArrays
Bug: v8:4153, chromium:1024099
Change-Id: Ia7a53c710ad2e2abcfa6fbc4ea1b2229b8690308
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914564
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64969}
2019-11-14 21:03:08 +00:00
Igor Sheludko
bcdbf97877 [builtins] Move %TypedArray%.prototype.sort to typed-array-sort.tq
Bug: v8:4153
Change-Id: I63d2ad673639b28b84e9f594be63cbebd931f636
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914563
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64968}
2019-11-14 20:30:18 +00:00
Z Nguyen-Huu
abfbe7687e [builtins] Port some RegExp functions to Torque
RegExpPrototypeExecBodyWithoutResult, LoadLastIndex, StoreLastIndex.

Bug: v8:8976
Change-Id: I205d6a02c5a97e8c7e484bea3c9441b433197344
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1913330
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64967}
2019-11-14 19:56:48 +00:00
Michael Achenbach
2475c91bb3 Reland "[foozzie] Refactor command abstraction"
This is a reland of 1d493d31ce

Original change's description:
> [foozzie] Refactor command abstraction
> 
> This moves code for running d8 into its own class. No functional
> changes intended.
> 
> No-Try: true
> Bug: chromium:1023091
> Change-Id: I7cbfeebd2911dc758322f89cf93666550f2956d9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906378
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Tamer Tas <tmrts@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64928}

Bug: chromium:1023091
Change-Id: I7df6e12084e20510a400ce209827c2bba8325f86
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914209
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64966}
2019-11-14 18:51:57 +00:00
Seth Brenith
72d440d97d [torque] Strict verification of weak fields
Now that we can represent specific weak types with Weak<T>, this CL
updates the generated verifier functions so that they permit weak
references only to the specified type. As an example, consider the
verifier emitted for the following field in PrototypeInfo:

  object_create_map: Weak<Map>|Undefined;

We used to emit the following, which allowed any weak reference:

  CHECK(object_create_map__value.IsWeakOrCleared()
      || object_create_map__value.GetHeapObjectOrSmi().IsOddball());

With this change, we emit a stricter check:

  CHECK(object_create_map__value.IsCleared()
      || (!object_create_map__value.IsWeak()
          && object_create_map__value.GetHeapObjectOrSmi().IsOddball())
      || (object_create_map__value.IsWeak()
          && object_create_map__value.GetHeapObjectOrSmi().IsMap()));

Bug: v8:7793
Change-Id: I4be236d97dedbcdd6c98207928aee8bda2a77f00
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914613
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64965}
2019-11-14 18:24:47 +00:00
Michael Starzinger
908274fc0c [wasm] Fix detection of Simd128 loads/stores in compiler.
This makes sure that the {WasmGraphBuilder} properly detects the
presence of Simd128 loads and store opcodes and triggers then scalar
lowering of the graph on architectures that don't support Simd128.

R=clemensb@chromium.org
TEST=mjsunit/wasm/exceptions-simd
BUG=v8:9973

Change-Id: I118f72135ddc9011efa3f75aaf120bb67e708d8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916605
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64964}
2019-11-14 17:46:27 +00:00
Pierre Langlois
6a4bd4c1bf [instruction-scheduler] Do not re-order nodes around kArchDebugBreak.
When debugging CSA builtins, it's useful to place a 'DebugBreak();' in the
code. However, the instruction scheduler re-orders instructions around it which
can be a little frustrating.

Change-Id: Ic4288bbc24e78987c7cbf3616e80cf5915f474c4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916602
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
Cr-Commit-Position: refs/heads/master@{#64963}
2019-11-14 17:08:08 +00:00
Clemens Backes
bcb78e6c05 [cleanup] Make Register::reg_code_ private
Subclasses can now access it via {code()}, even in constexpr contexts.

R=tebbi@chromium.org

Bug: v8:9810
Change-Id: I3cc6872f568f38db8cdbcda69ac0e203f839cda5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914216
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64962}
2019-11-14 16:45:37 +00:00
Igor Sheludko
20f6f21cae [builtins] Ensure constructor has a prototype slot
Drive-by-cleanup: simplify related helper functions in CSA.

Bug: chromium:1022855
Change-Id: Icb15e6a35275708af313ec5776e92be4b6ce2524
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910939
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64961}
2019-11-14 15:34:41 +00:00
Igor Sheludko
4550cdf552 [test] Update TypedArray tests
... that started failing on AIX where the allocation of a huge
ArrayBuffer succeeds.

Bug: v8:4153
Change-Id: I322c71e01edccb254a523f7f85817971b6c68242
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914561
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64960}
2019-11-14 15:32:26 +00:00
v8-ci-autoroll-builder
e8f6e384e8 Update V8 DEPS.
Rolling v8/build: 8929104..fed8abf

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/3992f65..f6fc149

Rolling v8/third_party/depot_tools: ea1884b..e6e5db5

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

Change-Id: I95beda0bc4397fb8fe2372329a3a5fe00bef3330
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916665
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@{#64959}
2019-11-14 15:31:22 +00:00
Clemens Backes
89e0902d57 [codegen] Reduce kMinimalBufferSize and add kDefaultBufferSize
In Liftoff, we have a good estimate about how big the generated code
might get. Also, we often compile hundreds of functions which each hold
an assembler buffer alive until we finally add that code to the wasm
module.
In order to reduce memory consumption in Liftoff, this CL reduces
{AssemblerBase::kMinimalBufferSize} from 4096 to 128, and adds
{AssemblerBase::kDefaultBufferSize} to be used instead.

R=jkummerow@chromium.org

Change-Id: I7029bf501244770f4824a86b233d7f99c4b7910b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914559
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64958}
2019-11-14 15:05:31 +00:00
Liviu Rau
315c4166d7 [deps] Realign Android dependencies manually after auto-roller failure
We mirror the Android deps changes that were operated on Chromium and
seem to break the auto-roller for V8. Here:
https://chromium-review.googlesource.com/c/chromium/src/+/1824130/9/DEPS

Bug: chromium:1024152
Change-Id: Iefc109fb59247ddb5963cd0dafea4263c383a4e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916200
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64957}
2019-11-14 12:59:30 +00:00
Clemens Backes
7762f53bb8 [arm64][cleanup] Remove CPURegister::Is and CPURegister::is
This removes {CPURegister::Is} and {CPURegister::is}, and just uses
{CPURegister::operator==} instead.

Drive-by: Use DCHECK_EQ and DCHECK_NE where possible.

R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: I03aad8b4223bd4ae37d468326a734f7a5c3c8061
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916202
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64956}
2019-11-14 12:58:09 +00:00
Andrew Grieve
1ccd1396be Add missing "const" for kFastElementsKindSequence
Bug: chromium:747064
Change-Id: I1ae943785fc8048a0affd9eec9f0966056d43bee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1915660
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64955}
2019-11-14 12:34:39 +00:00
Dan Elphick
f296357033 [cleanup] Remove v8.h include from utils/utils.h
Removes the include/v8.h from utils.h since it doesn't seem to need it.
To make this work, add v8.h to a couple of files that really do need it.

Bug: v8:9810
Change-Id: I9640a0df45cd7192f59d1fd8a722234f0d501a08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916601
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64954}
2019-11-14 12:29:59 +00:00
Clemens Backes
5cad3c1227 [cleanup] Remove redundant Register logic for constexpr
Register currently has several methods twice: Once for regular
{Register} objects, once for constexpr registers or register codes. It
was implemented this way so that the non-constexpr code can include
DCHECKs.
With C++14, we can add these DCHECKs also in the constexpr methods. Thus
the redundant implementation can be skipped.

R=tebbi@chromium.org

Bug: v8:9810
Change-Id: Ifc6253d4cd04b19be9bca47495186849118ad6b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910958
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64953}
2019-11-14 12:28:19 +00:00
Clemens Backes
8c2e512e07 [arm64][cleanup] Remove redundant {Register::IsValid}
Just use the default {is_valid} method provided by RegisterBase.

Drive-by: Also rename {CPURegList::IsValid} to {CPURegList::is_valid}.

R=mstarzinger@chromium.org

Bug: v8:9810
Change-Id: Ia3bc3c477e6329d63ffd00bca59762d9a6cf2fcc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916201
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64952}
2019-11-14 12:12:52 +00:00
Michael Starzinger
785eabadd2 Reland "[wasm] Improve test coverage of s128 exception handling."
This is a reland of 837556be7f

Original change's description:
> [wasm] Improve test coverage of s128 exception handling.
>
> This adds test coverage for the encoding and decoding of s128 values as
> part of an exception package. The encoding within an exception package
> is not specified (and not observable), but the full bit-pattern needs to
> survive an encoding/decoding round trip.
>
> R=clemensb@chromium.org
> TEST=mjsunit/wasm/exceptions-simd
> BUG=v8:8091
>
> Change-Id: I4cf6c1f00c64757512f66d068640a7e772eb0127
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905769
> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64932}

Bug: v8:8091,v8:9973
Change-Id: I7daf17a0cbc6904e7130ec4e50b12a829b1b1d34
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916203
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64951}
2019-11-14 11:13:59 +00:00
Jakob Gruber
a9ea67d4bb Reland "[regalloc] Use an adaptive data structure for live sets"
This is a reland of b3d748a282

Original change's description:
> [regalloc] Use an adaptive data structure for live sets
> 
> Live sets represent sets of live virtual registers at block entry and
> exit points. They are usually sparsely populated; for example, a sample
> taken from Octane2 shows 80% of sampled live sets with a fill ratio of
> 10% or less.
> 
> Prior to this CL, live sets were implemented as a statically-sized bit
> vector. This is fine for low-ish virtual register counts, but becomes
> wasteful at higher numbers.
> 
> This CL attempts to address this issue through an adaptive
> implementation. Small live sets remain bit vectors, while larger sets
> switch to a PersistentMap-based implementation. PersistentMap has very
> memory-efficient add/remove/copy operations.
> 
> Of course, with adaptive data structures we enter the territory of
> parameter fiddling. In this case, two parameters are used:
> kMaxSmallSetSize controls when to switch implementations, and
> kMaxDeletionsBeforePrune controls when pruning (= managing the # of
> deleted entries in the map) sets in.
> 
> On the (degenerate) test case from the linked bug, the register
> allocation zone shrinks from 1008MB to 475MB. For more realistic cases
> I expect savings on the order of 10s of KB.
> 
> Bug: v8:9574
> Change-Id: Id903bbe23f030b418e8d887ef4839c8d65126c52
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1891693
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64872}

Bug: v8:9574
Change-Id: I5a95d56c33a98cc5c6c58ff9308314e2eefa462c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910953
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64950}
2019-11-14 10:58:09 +00:00
Santiago Aboy Solanes
03b2be79c0 [cleanup] Remove sloppy-ness from SetAccumulator
Bug: v8:9810
Change-Id: I7bf617680e2e4029553d44ae4d11990ffd7a8a7a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914212
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64949}
2019-11-14 10:47:59 +00:00
Clemens Backes
7186b60147 [wasm] Compute memory size instead of hard-coding it
With C++14, we can make {ElementSizeLog2Of} constexpr and use it to
compute the loaded or stored memory size instead of duplicating that
information.

The code does not get shorter this way, but more robust.

R=ahaas@chromium.org

Bug: v8:9810
Change-Id: Idb7e861f833798e181694cda0db21ef57804d3a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914215
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64948}
2019-11-14 10:14:39 +00:00
Santiago Aboy Solanes
6691648835 [turbolizer] Set sequence and schedule on top of graphmultiview
Allows the use of PageUp and PageDown in sequence and schedule phases.

Since graphmultiview had a tabindex of 0, it was sitting on top of
sequence and schedule. This blocked the use of PageUp and PageDown
to scroll in these phases.

Bug: v8:7327
Change-Id: I4fc129cd9d5ea82e469cd4b67c12a455ec920317
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914207
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64947}
2019-11-14 09:59:29 +00:00
Clemens Backes
5c6ab6cf56 [wasm] Deliver streaming client callback in background
If streaming compilation has been triggered on a worker, it can be
problematic to schedule a foreground task for the callback, since
workers might never return to the event queue. Hence, deliver the
callback in background. This is possible after this blink-side change:
https://crrev.com/c/1901592

R=ahaas@chromium.org
CC=​bbudge@chromium.org

Bug: chromium:1018029
Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel
Change-Id: I568c39cf97e94f6d1cec01090ece81e4521fa47c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914199
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64946}
2019-11-14 09:25:59 +00:00
Michael Achenbach
dad16fa59c Revert "[deps] Realign dependencies manually after auto-roller failure"
This reverts commit 6dad771ac2.

Reason for revert: Possible cause for purple Android builders.

Original change's description:
> [deps] Realign dependencies manually after auto-roller failure
> 
> Auto-roller fails to update the depency changes that were operated here:
> https://crrev.com/c/1824130/9/DEPS#717
> 
> Bug: chromium:1024152
> Change-Id: I9c0bdb5cc53b3faf18ef4ba8b262afaa20d6d0af
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914200
> Commit-Queue: Liviu Rau <liviurau@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64936}

TBR=machenbach@chromium.org,hpayer@chromium.org,liviurau@chromium.org

Change-Id: I47fd9b0c75022e790745110bd8c0ce6ea73f084b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1024152
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916199
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64945}
2019-11-14 08:21:36 +00:00
Ng Zhi An
3c8c1c9d0a [wasm-simd] Clean up unused simd shift immediates
SIMD shifts was changed to use register in https://crrev.com/c/1722198
so all this code to deal with shift immediates can be removed.

SimdOp was also removed from the interface, so now Liftoff does not need
to implement it.

Bug: v8:9810
Change-Id: I845e28b4f5712ff188d68beea7121eebddebdd9e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1913506
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64944}
2019-11-13 23:13:03 +00:00
Mike Stanton
b4bfbce6f9 [Builtins] Math.abs and Math.imul ported to Torque
This is part of a general move of math builtins away from
builtins-math-gen.cc.

Change-Id: Ifb6e5d4779bb9e6f69ff7c58d09ca8fc94f4cc66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914210
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64943}
2019-11-13 20:23:15 +00:00
Dan Elphick
a5376b7e8f [cleanup] Finish Tnodifying builtins-array-gen.cc
Bug: v8:9810
Change-Id: I5bf191a77c79c96f25eb97d0fbbc05d967af17fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906572
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64942}
2019-11-13 18:38:11 +00:00
Ng Zhi An
961619261d [liftoff] Use helpers to push values onto stack
This is in preparation for having unfixed slot sizes, where each push
operation will need to record the slot offset of the value.

Bug: v8:9909
Change-Id: I04734d4e67bbae70bdf4351f3afe9d0cc5f3f532
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1913500
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64941}
2019-11-13 18:32:41 +00:00
Zhao Jiazhong
6fa327e381 [mips64][ptr-compr] Add function 'VisitChangeTaggedToCompressed'.
Change-Id: Ie2c7462e336de22aa1b91019a4e06bd44475b95c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914003
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#64940}
2019-11-13 17:45:55 +00:00
Clemens Backes
4b112e02d7 [codegen] Reduce assembler gap for arm64 and mips64
The gap is chosen unneccessarily large, leading to too early growing of
the assembler buffer.

R=mstarzinger@chromium.org

Change-Id: I9ddbe1d59929f2a76511cbc2d18c054fb8eafa74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914213
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64939}
2019-11-13 16:35:24 +00:00
Clemens Backes
15281893d3 [Liftoff] Compute a better initial assembler buffer size
Instead of always using {AssemblerBase::kMinimalBufferSize}, this CL
computes the expected code size per function compiled with Liftoff, and
uses that size to allocate the initial assembler buffer. This saves
reallocations especially for big functions.

R=jkummerow@chromium.org

Change-Id: I0031033c6be986f9d0d7bb10db0d213669044603
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910951
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64938}
2019-11-13 15:37:04 +00:00
Michael Starzinger
2c661e4415 [test] Remove obsolete TODO in object-is.js test.
R=jkummerow@chromium.org
TEST=mjsunit/object-is

Change-Id: Ic933c71d8d7baa252644a69cd7816a8fc0ac85ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914206
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64937}
2019-11-13 15:35:34 +00:00
Liviu Rau
6dad771ac2 [deps] Realign dependencies manually after auto-roller failure
Auto-roller fails to update the depency changes that were operated here:
https://crrev.com/c/1824130/9/DEPS#717

Bug: chromium:1024152
Change-Id: I9c0bdb5cc53b3faf18ef4ba8b262afaa20d6d0af
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914200
Commit-Queue: Liviu Rau <liviurau@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64936}
2019-11-13 14:55:39 +00:00
Maya Lekova
2fe9bddb61 Revert "[wasm] Improve test coverage of s128 exception handling."
This reverts commit 837556be7f.

Reason for revert: Breaks V8 Linux https://cr-buildbucket.appspot.com/build/8896896548394462912

Original change's description:
> [wasm] Improve test coverage of s128 exception handling.
> 
> This adds test coverage for the encoding and decoding of s128 values as
> part of an exception package. The encoding within an exception package
> is not specified (and not observable), but the full bit-pattern needs to
> survive an encoding/decoding round trip.
> 
> R=​clemensb@chromium.org
> TEST=mjsunit/wasm/exceptions-simd
> BUG=v8:8091
> 
> Change-Id: I4cf6c1f00c64757512f66d068640a7e772eb0127
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905769
> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Clemens Backes <clemensb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64932}

TBR=mstarzinger@chromium.org,clemensb@chromium.org

Change-Id: I9276c6f6600a0f4e8a06dd1a7907cac25c761577
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8091
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914211
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64935}
2019-11-13 14:54:36 +00:00
Mythri A
1f1e4cdb04 [cleanpup][ic] Tnodify accessor-assembler
Bug: v8:9810
Change-Id: I30c6265904c43ec86abc91a28d789fe5bfb22694
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910106
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64934}
2019-11-13 14:45:34 +00:00
Michael Achenbach
53201194d2 Revert "[foozzie] Refactor command abstraction"
This reverts commit 1d493d31ce.

Reason for revert: Fails on clusterfuzz:
https://crbug.com/1024241

Original change's description:
> [foozzie] Refactor command abstraction
> 
> This moves code for running d8 into its own class. No functional
> changes intended.
> 
> No-Try: true
> Bug: chromium:1023091
> Change-Id: I7cbfeebd2911dc758322f89cf93666550f2956d9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906378
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Tamer Tas <tmrts@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64928}

TBR=machenbach@chromium.org,tmrts@chromium.org,almuthanna@google.com,liviurau@chromium.org

Change-Id: I22aede0d2c8bd3cde48c45f4663b43caa4d60b65
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1023091,chromium:1024241
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914208
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64933}
2019-11-13 14:31:05 +00:00
Michael Starzinger
837556be7f [wasm] Improve test coverage of s128 exception handling.
This adds test coverage for the encoding and decoding of s128 values as
part of an exception package. The encoding within an exception package
is not specified (and not observable), but the full bit-pattern needs to
survive an encoding/decoding round trip.

R=clemensb@chromium.org
TEST=mjsunit/wasm/exceptions-simd
BUG=v8:8091

Change-Id: I4cf6c1f00c64757512f66d068640a7e772eb0127
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1905769
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64932}
2019-11-13 14:00:52 +00:00
Junliang Yan
b6ef2517aa PPC/s390: enable --perf-prof on PPC and S390
Change-Id: I88adc527fea64c8ab6e9b32cfd8d40927e78da9a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1874087
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#64931}
2019-11-13 13:45:32 +00:00
Santiago Aboy Solanes
3ee5dbc0ca Revert "[turbofan][64] Remove Smi Untagging extra nodes for 31 bit smis"
This reverts commit 4d1b7af7b1.

Reason for revert: Broke clusterfuzz asan build

Original change's description:
> [turbofan][64] Remove Smi Untagging extra nodes for 31 bit smis
>
> There are some cases where we can ignore some truncations or
> change nodes for Smi Untagging, when we are using 31 bit smis
> in 64 bit architectures.
>
> Updated DecompressionOptimizer to match the new pattern.
>
> Change-Id: I89d34407e6f780ec0399cd427cf9d3e24ee5669a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1889877
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#64909}

TBR=jgruber@chromium.org,tebbi@chromium.org,solanes@chromium.org

Bug: chromium:1023972
Change-Id: I7773455a970a11c345a020c1421c961314c8eb5c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914202
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64930}
2019-11-13 11:58:52 +00:00
Mike Stanton
d5dd2e660c [Turbofan]: Fix error in serializer try ranges with generators
When simulating bytecode, we store the current environment at the
site of the appropriate catch handler when entering a try range.
If the start of the try range is dead, we don't bother to store
an environment. However, generators can create alive regions
inside the try range. At such moments, we should recognize
we're in a try range and store the environment for the handler.

Bug: chromium:1017159
Change-Id: Icccc2ccf530895099bc62b97d9aaec8b97d5f4e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1879247
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64929}
2019-11-13 09:28:17 +00:00
Michael Achenbach
1d493d31ce [foozzie] Refactor command abstraction
This moves code for running d8 into its own class. No functional
changes intended.

No-Try: true
Bug: chromium:1023091
Change-Id: I7cbfeebd2911dc758322f89cf93666550f2956d9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1906378
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64928}
2019-11-13 08:29:27 +00:00
Zhao Jiazhong
1319356430 [mips] Add missing functions due to former clean up.
Patch af608d4 https://crrev.com/c/1903969 removed some functions used on mips platform.

Original Commit Message:

  [utils] Remove unused classes and functions

  This removes dead classes and functions from utils.h.

Change-Id: I558de38370b51a3f7dd0ea9712d9c9dc47fa05a1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1909747
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64927}
2019-11-13 06:35:57 +00:00
Leszek Swirski
97bda678dd [objects] Move SFI init from factory to Init method
After allocation of an object, we need to initialize it to make it safe
for the GC to see it. For complex objects like SharedFunctionInfo, this
initialization code is long and requires understanding of the object. So,
it makes sense for the initialization to live in the SharedFunctionInfo
code itself (as an Init method) rather than in the factory.

Aside from being a neat cleanup, this will allow us to share this
initialization logic between different allocation methods, as part of the
off-thread allocation project:
https://docs.google.com/document/d/1-_96kok0AcavkbcdqqZvpqt_2q-_XWAsAJwbRXlfwCo/

Bug: chromium:1011762
Change-Id: Ie276eb711423272f85abfeb3d88df1826a77b984
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1872402
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64926}
2019-11-12 22:33:24 +00:00
Zhao Jiazhong
165d11f1d9 [mips][ptr-compr] Remove CompressedSigned MachineRepresentation
port 80dc6a3 https://crrev.com/c/1903445

Original Commit Message:

  [ptr-compr] Remove CompressedSigned MachineRepresentation

  Since smi-corrputing, TaggedSigned (aka known smis) only have the lower
  bits used. This renders CompressedSigned useless.

Change-Id: I3d656752bb81a09bd3985bd39ab9f656504f4da1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1911268
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64925}
2019-11-12 20:06:50 +00:00