Commit Graph

48409 Commits

Author SHA1 Message Date
Simon Zünd
c6d5179bad [jstest] Add benchmarks that sort arrays of different lengths
All other sorting benchmarks use arrays of roughly the same length.
This CL adds a set of benchmarks that sort arrays of various lengths.

Two data configurations are used for each length: Completely random
and already sorted.

R=jgruber@chromium.org

Bug: v8:7382
Change-Id: Ib80a3421a68029c8e4f823605bab7b2d7fe1ae34
Reviewed-on: https://chromium-review.googlesource.com/1109509
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53917}
2018-06-21 11:35:58 +00:00
Clemens Hammacher
1834bbf7ec Remove unneeded argument to DECLARE_DEFAULT_DESCRIPTOR
The {parameter_count} is always equal to {kParameterCount}, so just use
{kParameterCount} directly.

R=ishell@chromium.org

Bug: v8:7754
Change-Id: I136387b5f2da3af10bb36215f947ff0e0d872928
Reviewed-on: https://chromium-review.googlesource.com/1109820
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53916}
2018-06-21 11:30:58 +00:00
Peter Marshall
4d93fae92a [gc] Store the backing store pointer in the ArrayBufferTracker
Currently we have to access the unreachable ArrayBuffer object to get
the backing store pointer when we want to free it. This means we need
the original ArrayBuffer object to stay alive until we collect all of
the pointers to free (currently done sequentially after marking).

We want to move this step to a background task that does not block GC
finishing - to do that we need the backing store pointers so that the
original page (where the ArrayBuffers live) can be freed.

Change-Id: Ifaf070d777939cb23c46da637a25d75f9c863bd8
Reviewed-on: https://chromium-review.googlesource.com/1102434
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53915}
2018-06-21 11:13:28 +00:00
Yang Guo
dd7bf6f780 Revert "[wasm] Move serialization tests to own file"
This reverts commit c2f1090db8.

Reason for revert: breaks jumbo build: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20Jumbo%20-%20limited/1309

Original change's description:
> [wasm] Move serialization tests to own file
> 
> Move out all serialization related tests to
> {test-wasm-serialization.cc}, to reduce the size of
> {test-run-wasm-module.cc}.
> 
> R=​titzer@chromium.org
> 
> Bug: v8:7754
> Change-Id: I0b2133baf69e2557df27d1733cc267d1d4cf7452
> Reviewed-on: https://chromium-review.googlesource.com/1107980
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53909}

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

Change-Id: I2c6ce0c128b34cc28c1f87e02bb584f2a79428e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7754
Reviewed-on: https://chromium-review.googlesource.com/1109837
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53914}
2018-06-21 10:55:09 +00:00
Simon Zünd
c6f800fdd3 [jstest] Add random data configuration to ArraySortPreSorted
This CL adds sorting of a randomized array to the PreSorted benchmark
to act as a baseline/reference point.

R=jgruber@chromium.org

Bug: v8:7382
Change-Id: I45b77a6584d5d9a4f14a807f3796af7197673eaa
Reviewed-on: https://chromium-review.googlesource.com/1109508
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53913}
2018-06-21 10:46:58 +00:00
Igor Sheludko
ef1031be75 Remove unused PlatformInterfaceDescriptor.
Bug: v8:7754
Change-Id: I5de3f1fb1c1c44312238c05f53257ca75136d093
Reviewed-on: https://chromium-review.googlesource.com/1109690
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53912}
2018-06-21 10:36:38 +00:00
Sigurd Schneider
0f5a07191f [turbofan] Change way OFF_HEAP_TARGET reloc info is omitted
This CL reverts commit 38bec2eadc and
implements the same functionality via Assembler::RecordRelocInfo.

Bug: v8:6666
Change-Id: I2e6b60697f68e956257f4c0877342da1bffca361
Reviewed-on: https://chromium-review.googlesource.com/1107710
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53911}
2018-06-21 10:27:48 +00:00
Creddy
44518ef3fe Unit test to document the pretenuring behavior of nested literals
Change-Id: I02710e807fa2cd36849b4ab9d76cde2e99f02911
Reviewed-on: https://chromium-review.googlesource.com/1107983
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53910}
2018-06-21 10:14:38 +00:00
Clemens Hammacher
c2f1090db8 [wasm] Move serialization tests to own file
Move out all serialization related tests to
{test-wasm-serialization.cc}, to reduce the size of
{test-run-wasm-module.cc}.

R=titzer@chromium.org

Bug: v8:7754
Change-Id: I0b2133baf69e2557df27d1733cc267d1d4cf7452
Reviewed-on: https://chromium-review.googlesource.com/1107980
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53909}
2018-06-21 10:02:18 +00:00
Ivica Bogosavljevic
95ccc97f35 MIPS: Rewrite byteswap implementation
Byteswap operations are used a lot in WASM on big endian
architecture. This CL removed unused 1-byte swapping,
rewrite tests so they have better coverage and cleans up
some other minor things.

TEST=cctest/test-run-wasm/RunWasmTurbofan_I32DivSOnDifferentRegisters

Change-Id: I60466bbd5fe3f64e8e55684265dc43e92fcabc2c
Reviewed-on: https://chromium-review.googlesource.com/1106379
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Sreten Kovacevic <sreten.kovacevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#53908}
2018-06-21 09:56:38 +00:00
Igor Sheludko
d7e6fbe5da Define return count and return types in CallInterfaceDescriptor.
Bug: v8:7754, v8:6600
Change-Id: I4db943d4a4a02a14bba670f89661ea98c5e306dd
Reviewed-on: https://chromium-review.googlesource.com/1107919
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53907}
2018-06-21 09:35:28 +00:00
Michael Achenbach
17693fea1a Reland "[test] Initialize slow-dcheck runtime flag with compile time value"
This is a reland of 2c1e4aa990

Original change's description:
> [test] Initialize slow-dcheck runtime flag with compile time value
>
> This makes sure slow dchecks are part of the snapshot when the compile
> time flag is set. It'll also obviate the need to set the runtime flag
> in general, making configurations simpler.
>
> It's still possible to opt out at runtime for the non-snapshot dchecks
> using the negated runtime flag.
>
> Bug: v8:7853
> Change-Id: Iadfc46ed691d32e9d39717e2ea0383e784660d1d
> Reviewed-on: https://chromium-review.googlesource.com/1105050
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53819}

TBR=jgruber@chromium.org

Bug: v8:7853
Change-Id: I21d82ea907c0beead4ad2bc90fecc4dc9036dc1b
Reviewed-on: https://chromium-review.googlesource.com/1109418
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53906}
2018-06-21 09:30:28 +00:00
jgruber
9498d609a0 Remove invalid slow assert in arm64's SmiUntag
The assertion is invalid if dst aliases src, which is the case in
InterpreterOnStackReplacement:

  __ SmiUntag(x1,
              FieldMemOperand(x1, FixedArray::OffsetOfElementAt(
                                      DeoptimizationData::kOsrPcOffsetIndex)));

This didn't fail so far because slow asserts in snapshotted code are
never executed.

Bug: v8:7853
Change-Id: I5b2dad780da94b5821aa9a624a3fcb9d083b3aa3
Reviewed-on: https://chromium-review.googlesource.com/1109503
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53905}
2018-06-21 08:32:38 +00:00
Rodrigo Bruno
4735bc7e6b [heap] Fixing the performance issue of the new heap growing strategy.
Bug: chromium:852748
Change-Id: Ifdadf3188815fe38741e6f0e817070972e7f445b
Reviewed-on: https://chromium-review.googlesource.com/1108205
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53904}
2018-06-21 08:16:28 +00:00
Georg Neis
a6d3589097 [turbofan] Move AssumePrototypesStable out of PropertyAccessBuilder.
It doesn't depend on anything from PropertyAccessBuilder other than
CompilationDependencies. Move it there instead.

R=jarin@chromium.org

Bug: v8:7790
Change-Id: I0545a990829f4591ebf5089b6a9e8c1a96899b93
Reviewed-on: https://chromium-review.googlesource.com/1107797
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53903}
2018-06-21 06:29:58 +00:00
Michael Achenbach
d31e031514 Revert "Reland "[async] Expose async hooks to d8""
This reverts commit 8e0f67be3f.

Reason for revert:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/20949

Original change's description:
> Reland "[async] Expose async hooks to d8"
> 
> This is a reland of 3c4d0316e4
> 
> Original change's description:
> > [async] Expose async hooks to d8
> >
> > This implementation follows the Node.js API as a guideline.
> >
> > Change-Id: I09274ea25ccdbb9794a7440d6c14f26b9febb4f4
> > Reviewed-on: https://chromium-review.googlesource.com/1065818
> > Commit-Queue: Maya Lekova <mslekova@chromium.org>
> > Reviewed-by: Ali Ijaz Sheikh <ofrobots@google.com>
> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#53551}
> 
> Change-Id: If2114db2ff179c6b07a40bc0c2dac3a41f37aea9
> Bug: chromium:850530
> Reviewed-on: https://chromium-review.googlesource.com/1088890
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53901}

TBR=ofrobots@google.com,sergiyb@chromium.org,gsathya@chromium.org,bmeurer@chromium.org,mslekova@chromium.org

Change-Id: Id55809a46bc5118103391fdbdfb52415182d3fd4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:850530
Reviewed-on: https://chromium-review.googlesource.com/1109038
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53902}
2018-06-21 06:28:30 +00:00
Maya Lekova
8e0f67be3f Reland "[async] Expose async hooks to d8"
This is a reland of 3c4d0316e4

Original change's description:
> [async] Expose async hooks to d8
>
> This implementation follows the Node.js API as a guideline.
>
> Change-Id: I09274ea25ccdbb9794a7440d6c14f26b9febb4f4
> Reviewed-on: https://chromium-review.googlesource.com/1065818
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Ali Ijaz Sheikh <ofrobots@google.com>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53551}

Change-Id: If2114db2ff179c6b07a40bc0c2dac3a41f37aea9
Bug: chromium:850530
Reviewed-on: https://chromium-review.googlesource.com/1088890
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53901}
2018-06-21 04:11:17 +00:00
Maya Lekova
ef8c18613a Reland "[async] Optimize await and AsyncFromSyncIterator"
This is a reland of 21c0d77e15

Original change's description:
> [async] Optimize await and AsyncFromSyncIterator
> 
> Simplify the promise wrapping in await and
> %AsyncFromSyncIteratorPrototype%.next/return/throw to reuse the PromiseResolve
> primitive. Now await takes 1 tick instead of 3 on the microtask queue.
> 
> Change-Id: I7e99b8689eb8fcb09c48915b11c1e06684dc0f1a
> Reviewed-on: https://chromium-review.googlesource.com/1090272
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Mathias Bynens <mathias@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53853}

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ifa5b2fb8b2fb84b635b2dc1b6455d6aaf154cbfd
Reviewed-on: https://chromium-review.googlesource.com/1106977
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53900}
2018-06-20 23:08:36 +00:00
Alexey Kozyatinskiy
5e57f660ae [inspector] prepare inspector tests for liveedit rework
Extracted from https://chromium-review.googlesource.com/c/v8/v8/+/1105493

R=dgozman@chromium.org

Bug: v8:7862
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibd2fb5341e617929b07b26abea31a1579a456d93
Reviewed-on: https://chromium-review.googlesource.com/1107312
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53899}
2018-06-20 21:40:46 +00:00
Aseem Garg
618bc445fe [wasm] add simd convert and pack to interpreter
R=gdeepti@chromium.org
BUG=v8:6020

Change-Id: Ibdeb926ef3e2884b9a3f0831e9482ebe2da227ac
Reviewed-on: https://chromium-review.googlesource.com/1105464
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53898}
2018-06-20 21:26:16 +00:00
Junliang Yan
9dcc665cb1 PPC: fix constant pool entry sharing issue
R=joransiu@ca.ibm.com

Change-Id: I80d67bdceacc9829855dc62ddd599d88a055c3a8
Reviewed-on: https://chromium-review.googlesource.com/1108537
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53897}
2018-06-20 20:17:16 +00:00
Sathya Gunasekaran
f6f0346463 [isolate] Initialize module callbacks to nullptr
Bug: chromium:854476
Change-Id: I5f477327f303732c3482c47141b794c8d77d9786
Reviewed-on: https://chromium-review.googlesource.com/1108340
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53896}
2018-06-20 19:07:41 +00:00
Brian Stell
2aee9abee0 Simplify bcp47 conversion of locale without script tag.
Change-Id: I741d53f3e132a4770fa738b7e902c1f24eafd594
Reviewed-on: https://chromium-review.googlesource.com/1107237
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53895}
2018-06-20 17:17:41 +00:00
Igor Sheludko
3e5eff73fe Define platform independent part of call interface descriptors via macros.
This is a preliminary step for adding support for additional flags and return types.

Bug: v8:7754, v8:6600
Change-Id: I1f65ec41f22b61a9471eb7105033007744563e91
Reviewed-on: https://chromium-review.googlesource.com/1107917
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53894}
2018-06-20 15:53:08 +00:00
Predrag Rudic
e0ddc6d206 MIPS[64] Port "[wasm] Introduce jump table"
Port of 733b7c8258

Original description:
> [wasm] Introduce jump table
>
> This introduces the concept of a jump table for WebAssembly, which is
> used for every direct and indirect call to any WebAssembly function.
> For lazy compilation, it will initially contain code to call the
> WasmCompileLazy builtin, where it passes the function index to be
> called.
> For non-lazy-compilation, it will contain a jump to the actual code.
> The jump table allows to easily redirect functions for lazy
> compilation, tier-up, debugging and (in the future) code aging. After
> this CL, we will not need to patch existing code any more for any of
> these operations.
>
> R=mstarzinger@chromium.org, titzer@chromium.org
>
> Bug: v8:7758
> Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f
> Reviewed-on: https://chromium-review.googlesource.com/1097075
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53805}

Change-Id: Ifa7c2abe89a6dc5dbb03a547db2fab68e292f344
Reviewed-on: https://chromium-review.googlesource.com/1107630
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53893}
2018-06-20 15:39:22 +00:00
Simon Zünd
3bcf2b83eb [array] Change Array.p.sort bailout behavior from fast- to slow-path
This CL fixes a bug where execution would continue on a fast-path
even though a previous recursion step bailed to the slow path. This
would allow possibly illegal loads that could leak to JS.

Drive-by change: Instead of bailing to the slow-path on each recursion
step, we now bail completely and start the slow-path afterwards.

R=cbruni@chromium.org, jgruber@chromium.org

Bug: chromium:854299, v8:7382
Change-Id: Ib2fd5d85dbd0c3894d7775c4f62e053c31b5e5d1
Reviewed-on: https://chromium-review.googlesource.com/1107702
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53892}
2018-06-20 15:38:18 +00:00
Alexey Kozyatinskiy
0a06a1bc0a [liveedit] migrate compare strings tests to native
Extracted from https://chromium-review.googlesource.com/c/v8/v8/+/1105493/

R=yangguo@chromium.org

Bug: v8:7862
Change-Id: I804a444a43047e3303b5f1b0140522b4f609f3ba
Reviewed-on: https://chromium-review.googlesource.com/1107393
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53891}
2018-06-20 14:54:06 +00:00
Ben L. Titzer
4252d53f57 [asm] Rework Assembler::IsolateData into Assembler::Options
This CL attempts to simplify the Assembler's dependency on the
isolate, in particular on a global "serializer_enabled" mode contained
therein. The "serializer_enabled" condition enabled and disabled
a number of things in both the assemblers and macro assemblers. To
make these dependencies explicit, the Assembler::IsolateData is refactored
to be a proper Assembler::Options struct that controls specific assembler
behaviors, with default settings easily computable from the isolate.

This also helps make the contract for compiling WASM code more explicit
(since WASM code needs to have reloc info recorded for external references)
we can explicitly enable this recording without trying to "trick" the
assembler using "serializer_enabled".

R=jgruber@chromium.org
CC=mstarzinger@chromium.org, herhut@chromium.org

Change-Id: I7a8ba49df7b75b292d73ec2aa6e507c27a3d99c8
Reviewed-on: https://chromium-review.googlesource.com/1105982
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53890}
2018-06-20 14:36:14 +00:00
Georgia Kouveli
2cacdf9e48 [arm] [arm64] Match LoadStackPointer with comparison.
When encountering a LoadStackPointer input to a comparison, generate a register
LocationOperand that points to the stack pointer. This can avoid unnecessary
spilling of the stack pointer.

Since sp is a special register for arm64, we need to add a mechanism to print
its name in RegisterConfiguration.

This is a port of https://chromium-review.googlesource.com/1055568 that made
the same change for arm.

It also ports the tests added in
https://chromium-review.googlesource.com/1099068 to arm and arm64.

Bug: v8:7844
Change-Id: I5adc672ff877b9888ef755e8e60e4eabbc61061b
Reviewed-on: https://chromium-review.googlesource.com/1107810
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#53889}
2018-06-20 14:24:14 +00:00
Peter Marshall
e6799023d3 [cleanup] Add a name() helper to Space in heap
There is no point calling AllocationSpaceName manually every time. We
could get rid of AllocationSpaceName entirely, except that the
serializer calls it directly on ints that are casted to AllocationSpace
objects first.

Change-Id: I26b2181347dba960c8523d5dcecf8128208c59a2
Reviewed-on: https://chromium-review.googlesource.com/1107816
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53888}
2018-06-20 13:55:02 +00:00
Camillo Bruni
a76ce4f899 [log] Improve log parsing
- Add parseString and parseVarArgs helper constants
- Fix number formatting in parser-processor.js
- Rename time to duration in parse-processor
- Fix eval handling in parse-processor

Bug: chromium:757467, chromium:850038

Change-Id: Ibce57b46d22e03ddaa5baa22f45d8df4c93af2cd
Reviewed-on: https://chromium-review.googlesource.com/1102435
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53887}
2018-06-20 13:40:22 +00:00
jgruber
f86365dc73 [builtins] Properly handle cctest heap creation in embedded builds
Some cctests force fresh creation of heap constants, even though the
cctest binary itself is an embedded snapshot build (i.e.: a snapshot
blob exists, and a binary-embedded blob exists). This breaks a few
assumptions, for example that off-heap builtins have a single,
canonical off-heap code range.

Unfortunately this isn't that easy to fix. I see a few alternatives:

1. In builtins setup, if an embedded blob exists, regenerate the
builtins for their metadata (things like the safepoint table offset),
and then replace them by off-heap trampolines.

2. As above, but deserialize the trampolines from the snapshot blob.

3. As above, but pack required metadata into the embedded blob and
create trampolines from there.

4. Act as if the embedded blob does not exist.

Alternative 1 does not work because the generated code can be slightly
different at at runtime vs. mksnapshot-time. Alternative 2 is out
because we do not have access to the snapshot blob in TestIsolate
setup. Alternative 3 is probably the preferred option but would be a
more involved change.

This CL takes path 4. It's not an optimal solution, but it can be
replace by alternative 3 later.

TBR=ulan@chromium.org

Bug: v8:7718, v8:7751
Change-Id: I36c024cb0179615011c886ed3978bc95f0d197ac
Reviewed-on: https://chromium-review.googlesource.com/1098924
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53886}
2018-06-20 13:38:52 +00:00
Michael Starzinger
007e183e5e [wasm] Reuse existing {ModuleEnv} during lazy compilation.
R=clemensh@chromium.org

Change-Id: I6b109a596ba4bbeeab4189003b902f026ab79ac9
Reviewed-on: https://chromium-review.googlesource.com/1107809
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53885}
2018-06-20 13:33:32 +00:00
Michael Starzinger
34d1cf28c8 [wasm] Fix runtime stub relocation in {AddAnonymousCode}.
R=clemensh@chromium.org

Change-Id: I82e329058d7904e638010e10b4f75aac5075e7d1
Reviewed-on: https://chromium-review.googlesource.com/1107062
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53884}
2018-06-20 13:13:22 +00:00
Clemens Hammacher
ed27ae1b31 [wasm] Use stub descriptor for stack check
The stack check builtin really has stub linkage, not wasm linkage. For
the stack check, it technically does not make a difference currently
since the stack check does not receive any arguments.

R=mstarzinger@chromium.org

Change-Id: Ia3e6ea192250dc3799c7a5166cf616f883c1f63f
Reviewed-on: https://chromium-review.googlesource.com/1107709
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53883}
2018-06-20 12:54:32 +00:00
Leszek Swirski
155c34d185 [GetIsolate] Remove GetIsolate from src/objects/*
Bug: v8:7786
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: If9904fe8feb9b4e157d42d6e84f1aa263abcc8b7
Reviewed-on: https://chromium-review.googlesource.com/1106160
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53882}
2018-06-20 12:46:22 +00:00
Yang Guo
22116dd6c8 [snapshot] fix resetting function code.
Unconditionally setting the JSFunction code to that of the SFI
may skip initializing the feedback vector.

R=leszeks@chromium.org

Bug: v8:7857
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I65d4bf32493be4cade2eaf3d665d44f93e80f809
Reviewed-on: https://chromium-review.googlesource.com/1107618
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53881}
2018-06-20 12:43:52 +00:00
Leszek Swirski
a890034b8f [GetIsolate] Remove GetIsolate in src/debug
Bug: v8:7786
Change-Id: I369eb0bf32d89603b6b944c2bb8fe402a16e429b
Reviewed-on: https://chromium-review.googlesource.com/1104423
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53880}
2018-06-20 12:41:32 +00:00
Michael Starzinger
48d6650437 [wasm] Make {RelocInfo::WASM_CALL} shareable.
R=clemensh@chromium.org

Change-Id: I89339f2d9035d1882e8d29a9119f1bc2d68927e5
Reviewed-on: https://chromium-review.googlesource.com/1105759
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53879}
2018-06-20 12:21:30 +00:00
Clemens Hammacher
a77b4e6867 [wasm] Fix GrowingVsFixedModule test
This test was not adapted for the jump table yet.

R=mstarzinger@chromium.org

Bug: v8:7867
Change-Id: Ifd03899b0757972525dcc54f04949635d03fa493
Reviewed-on: https://chromium-review.googlesource.com/1107624
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53878}
2018-06-20 12:18:50 +00:00
Toon Verwaest
d07d165fc1 Drop invalid dcheck
Bug: chromium:854213
Change-Id: I01fafbf63009f309758b07ba59013c72c7439a10
Reviewed-on: https://chromium-review.googlesource.com/1107707
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53877}
2018-06-20 12:11:50 +00:00
Leszek Swirski
c69d3c5e2b [GetIsolate] Access isolate where available on other objects
If the isolate is available via another object (including JSReceivers
and Contexts), grab it through that rather than HeapObject::GetIsolate.
As a drive-by, fix up places where this looked like it would work but
didn't because of null or uninitialized objects.

Bug: v8:7786
Change-Id: I3454840073d1455b3738e0ac34ccaa3c9a220896
Reviewed-on: https://chromium-review.googlesource.com/1104170
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53876}
2018-06-20 11:42:39 +00:00
Sergiy Byelozyorov
0b971dc21e [tools] Add vpython config for run-tests.py
R=machenbach@chromium.org

Bug: v8:7187
Change-Id: I9c64d637501f074464b1fe3637df50be447603ab
Reviewed-on: https://chromium-review.googlesource.com/1098934
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53875}
2018-06-20 11:27:39 +00:00
Yang Guo
b413284634 Revert "Reland "[array] Change QuickSort to TimSort for Array.p.sort""
This reverts commit 9d406a0249.

Reason for revert: Layout Test failures: https://ci.chromium.org/buildbot/client.v8.fyi/V8-Blink%20Linux%2064/24236

Original change's description:
> Reland "[array] Change QuickSort to TimSort for Array.p.sort"
> 
> This is a reland of 6bb8236808
> 
> Original change's description:
> > [array] Change QuickSort to TimSort for Array.p.sort
> > 
> > Bug: v8:7382
> > Change-Id: I7f125a62867eb586d2720a2c641fb5f4012b284d
> > Reviewed-on: https://chromium-review.googlesource.com/1100881
> > Commit-Queue: Simon Zünd <szuend@google.com>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#53838}
> 
> Bug: v8:7382
> Change-Id: I499d782feaeb36df154e00a11d3b03cd41442347
> Reviewed-on: https://chromium-review.googlesource.com/1107497
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Simon Zünd <szuend@google.com>
> Cr-Commit-Position: refs/heads/master@{#53864}

TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com

Change-Id: I877834301d98174b148e42dee42f598a62c544de
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7382
Reviewed-on: https://chromium-review.googlesource.com/1107757
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53874}
2018-06-20 11:21:40 +00:00
Dan Elphick
ec245267b8 [explicit isolates] Fix up bootstrapper Handles
Replace all implicit Handle<T>(T*) constructors in src/bootstrapper.cc
with explicit ones that use a local variable or parameter.

(All done using Leszek's awesome new tool!)

Bug: v8:7786
Change-Id: Iec01fda502dd121bc1815d5dab73bd09bb3e5aa6
Reviewed-on: https://chromium-review.googlesource.com/1107697
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53873}
2018-06-20 11:20:29 +00:00
Creddy
8ca1c3900b Reland "[runtime][gc] Drop AllocationSite::weak_next field for sub-literals"
This is a reland of 380dba0a5c

Original change's description:
> [runtime][gc] Drop AllocationSite::weak_next field for sub-literals
> 
> Use AllocationSite without Weaknext field for all the allocations in nested
> literal except for Root. The nested field is sufficient to link all the
> allocations in a nested literal. Only the Root is added to heap weak_alloc_list
> for GC to traverse
> 
> Change-Id: I946e63292c6d168197cd2a087f697c73cc431272
> Reviewed-on: https://chromium-review.googlesource.com/1101323
> Commit-Queue: Chandan Reddy <chandanreddy@google.com>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53813}

Change-Id: Ic451fb3600b87f8f69748b1659ff89a80c9322fa
Reviewed-on: https://chromium-review.googlesource.com/1106257
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Cr-Commit-Position: refs/heads/master@{#53872}
2018-06-20 11:00:59 +00:00
Michael Starzinger
7913a2a7cd [wasm] Remove support for trampolines from WasmCodeManager.
R=clemensh@chromium.org

Change-Id: Ic16e1da4ca50070ceff7f9a441250db2d20a868f
Reviewed-on: https://chromium-review.googlesource.com/1104471
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53871}
2018-06-20 10:31:59 +00:00
Georg Neis
0f80a21ccc [turbofan] Weaken map stability assumption for JSGetSuperConstructor.
There's no need to assume anything when we don't reduce the node.

R=bmeurer@chromium.org

Change-Id: Ic39b6e634c662824a72affd91318ca024f3e1055
Reviewed-on: https://chromium-review.googlesource.com/1105832
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53870}
2018-06-20 10:28:59 +00:00
Leszek Swirski
a5bd77326c [serializer] Fix top-level assumption
Fix assumption that only top level code won't have outer scope infos.

Bug: v8:7690
Change-Id: Ia6eec7b406632ad301e7db557597204c7ca66730
Reviewed-on: https://chromium-review.googlesource.com/1107622
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53869}
2018-06-20 10:10:19 +00:00
Jaroslav Sevcik
2439c9672e [turbofan] Refactor allocation sites for fast literal creation.
Bug: v8:7790
Change-Id: I6a6347d7394ddeacbb185a2e6e5187898bfca2dc
Reviewed-on: https://chromium-review.googlesource.com/1106173
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53868}
2018-06-20 09:57:49 +00:00