Commit Graph

44965 Commits

Author SHA1 Message Date
Clemens Hammacher
5da204c87c [wasm] [fuzzer] Avoid reuse of input data
I just fixed an annoying bug where I accidentally used DataRange more
than once, leading to endless recursion.
This CL avoids that by forbidding copying of DataRange. Instead, it's
mostly passed by reference now.

R=ahaas@chromium.org
CC=eholk@chromium.org

Change-Id: I3925548951645d13823ff42d9d833bde76d6cca6
Reviewed-on: https://chromium-review.googlesource.com/839762
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50273}
2017-12-21 15:01:33 +00:00
Andreas Haas
3ede348741 [mips][turbofan] Implement on-stack returns.
This is the implementation of crrev.com/c/766371 for mips.

Original description:

Add the ability to return (multiple) return values on the stack:

- Extend stack frames with a new buffer region for return slots.
  This region is located at the end of a caller's frame such that
  its slots can be indexed as caller frame slots in a callee
  (located beyond its parameters) and assigned return values.
- Adjust stack frame constructon and deconstruction accordingly.
- Extend linkage computation to support register plus stack returns.
- Reserve return slots in caller frame when respective calls occur.
- Introduce and generate architecture instructions ('peek') for
  reading back results from return slots in the caller.
- Aggressive tests.
- Some minor clean-up.

R=v8-mips-ports@googlegroups.com

Change-Id: I2f30cc297771ec74b0b935b6ea28d3d61a986d5c
Reviewed-on: https://chromium-review.googlesource.com/839660
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50272}
2017-12-21 14:49:53 +00:00
Michael Achenbach
77f96a5d2e [build] Fix missing fyi bot config
NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:788104
Change-Id: I3f47332a0f0df7a5a016afcb7d0904142176bea3
Reviewed-on: https://chromium-review.googlesource.com/839775
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50271}
2017-12-21 14:48:48 +00:00
Sergiy Byelozyorov
207bccf6b5 Migrate the remaining builders to LUCI
TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: Idfce9232829581155c0abfda844b14fa6abbd7fb
Reviewed-on: https://chromium-review.googlesource.com/839772
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50270}
2017-12-21 14:41:03 +00:00
Mike Stanton
c6c422965e [compiler] array index masking on --future
Bug: 
Change-Id: I3185f0e88f0eef3d5a9b58a28cb6d103851da473
Reviewed-on: https://chromium-review.googlesource.com/839763
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50269}
2017-12-21 14:39:58 +00:00
Michal Majewski
848487ad61 [test] Output processor for message
Bug: v8:6917
Change-Id: I51ec0be7ea961d3c81e03675cc65d03ecf526c3d
Reviewed-on: https://chromium-review.googlesource.com/836988
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50268}
2017-12-21 14:38:28 +00:00
Clemens Hammacher
f0d9686848 [wasm] [fuzzer] Add the drop opcode
Adds support for emitting the drop opcode in the wasm compile fuzzer.

R=ahaas@chromium.org
CC=eholk@chromium.org

Change-Id: Idb6f07f3f50ffda472107bd6276221e803c37152
Reviewed-on: https://chromium-review.googlesource.com/839760
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50267}
2017-12-21 14:27:03 +00:00
Clemens Hammacher
88a9495c51 [Liftoff] Add function-entry stack checks
Refactor out-of-line code to represent either traps or stack checks,
and add function-entry stack checks.

R=ahaas@chromium.org

Bug: v8:6600
Change-Id: I467ccc2016f67da5562a576aeaeceba002cd04ca
Reviewed-on: https://chromium-review.googlesource.com/834208
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50266}
2017-12-21 14:25:58 +00:00
peterwmwong
bd1f8050b0 [builtins] Add Object#toLocaleString stack check
Fixes a regression causing a seg fault instead of the
expected stack overflow.

Bug: chromium:796427, v8:6005
Change-Id: Ifc752a4009a25f447f5e87745dcc1bb83722c34e
Reviewed-on: https://chromium-review.googlesource.com/838854
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50265}
2017-12-21 14:24:02 +00:00
Stephan Herhut
c1aec1d708 Rewrite the AbortJS builtin to use CSA.
Bug: 
Change-Id: I785dd2fb839f8388e7389f4fe935cb983f6e81eb
Reviewed-on: https://chromium-review.googlesource.com/803435
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Stephan Herhut <herhut@google.com>
Cr-Commit-Position: refs/heads/master@{#50264}
2017-12-21 13:54:25 +00:00
Michal Majewski
b0db2dc6ae [test] Output processors for inspector and webkit
Bug: v8:6917
Change-Id: I81bff2190766b3ccbc5da43ff2f3105c6c95da67
Reviewed-on: https://chromium-review.googlesource.com/836557
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50263}
2017-12-21 12:55:35 +00:00
Sergiy Byelozyorov
ad7f6f9901 Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:747960
Change-Id: I832c1a438330c0a44dd876ef35eb422fdacca895
Reviewed-on: https://chromium-review.googlesource.com/839445
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50262}
2017-12-21 12:33:07 +00:00
Daniel Clifford
14cd4b5455 Implement Array.prototype.reduce inlining in TF
Bug: v8:1956,v8:4869
Change-Id: Id5822319c14142be2dd984c922b2b65717b96dee
Reviewed-on: https://chromium-review.googlesource.com/803974
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50261}
2017-12-21 12:31:54 +00:00
Timothy Gu
d5fbf7c5c3 [api] Prefer Descriptor interceptor over Getter in GetPropertyAttributes
Also fix GetPropertyDescriptorWithInterceptor so that it only calls the
interceptor once.

R=ahaas@chromium.org, franzih@chromium.org

Bug: node:17480, node:17481
Change-Id: I2c3813f80df2962ec909bae7267884ce0b8ccbef
Reviewed-on: https://chromium-review.googlesource.com/816515
Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50260}
2017-12-21 11:57:18 +00:00
Georgia Kouveli
5d10735e18 [arm64] Pad function arguments.
This patch updates the instruction selector and code generator to pad arguments
for arm64 and drop an even number of slots when dropping the arguments. It also
updates the builtins that handle arguments. These changes need to be made at
the same time.

It also adds some tests for forwarding varargs, as this was affected by the
builtin changes and the existing tests did not catch all issues.

Bug: v8:6644
Change-Id: I81318d1d1c9ab2568f84f2bb868d2a2d4cb56053
Reviewed-on: https://chromium-review.googlesource.com/829933
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50259}
2017-12-21 11:05:58 +00:00
Sergiy Byelozyorov
a93b735a1a Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:747960
Change-Id: I0af128fd5195b602b7cb302d38722ed86e123060
Reviewed-on: https://chromium-review.googlesource.com/839360
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50258}
2017-12-21 10:51:55 +00:00
Igor Sheludko
efe12782a4 [ic] Restructure LoadGlobalIC generator code.
... to ease its inlining to the bytecode handlers.
The new code organisation still don't produce unwanted frame creation
code on a fast path.

Bug: v8:7206, chromium:576312
Change-Id: Ib516ae0795ff1788b3a7e0bb521f72dfa68444f0
Reviewed-on: https://chromium-review.googlesource.com/833869
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50257}
2017-12-21 10:42:55 +00:00
Sergiy Byelozyorov
78ae9e6eac Remove some migrated builders from the experiment
Also disable all but one mac experiment. Having too many experiments causes
large pending queues to be generated and the builds fail to apply the patch
since they run after the CL has landed.

TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: I1cd21798a17c857d4275d0f15a2b98e13fe9c367
Reviewed-on: https://chromium-review.googlesource.com/839141
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50256}
2017-12-21 10:18:35 +00:00
Deepti Gandluri
f7601238f1 [wasm] Allocate SAB when memory is shared
When shared memory is defined in the module bytes, and not imported/exported
underlying memory should be a SharedArrayBuffer. This was missing in the
allocate flow during instantiation. Fixed to use a SharedArrayBuffer.

BUG=v8:6532

Change-Id: Ic62ed3fd578a0e03124ee40b273e6a4ea474bba4
Reviewed-on: https://chromium-review.googlesource.com/835348
Reviewed-by: Eric Holk <eholk@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50255}
2017-12-21 01:01:32 +00:00
Brad Nelson
a10324c214 [wasm] Don't mutate ArrayBuffer sizes for wasm memory.
R=eholk@chromium.org,mlippautz@chromium.org
B=https://bugs.chromium.org/p/chromium/issues/detail?id=775047

Change-Id: Ia3b2f51d6cb4dabbf0f1f9ec78ecb8935775f53a
Reviewed-on: https://chromium-review.googlesource.com/809165
Commit-Queue: Brad Nelson <bradnelson@chromium.org>
Commit-Queue: Eric Holk <eholk@chromium.org>
Reviewed-by: Eric Holk <eholk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50254}
2017-12-21 00:59:12 +00:00
Mircea Trofin
c8fe2635ea [wasm] Freeze mutability of tables
Bug: v8:7232
Change-Id: I1eed337749686ec749b970b4af56413c5614b980
Reviewed-on: https://chromium-review.googlesource.com/837646
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50253}
2017-12-21 00:37:01 +00:00
Sergiy Byelozyorov
a8a11419d0 Whitespace CL
TBR=sergiyb@google.com

Bug: chromium:747960
Change-Id: I9846b955d34d2bbdf28f0d0903ef3fef5d9ba524
Reviewed-on: https://chromium-review.googlesource.com/837980
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50252}
2017-12-20 23:03:58 +00:00
Sergiy Byelozyorov
d0c042cd7a Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:747960
Change-Id: Id191feb257f1e1154cce2f76427b4ddb4d0883fb
Reviewed-on: https://chromium-review.googlesource.com/837760
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50251}
2017-12-20 21:39:48 +00:00
Sergiy Byelozyorov
a69b3379cf Add remaining non-CQ builders from buildbucket.config to the experiment
TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: I69363b9e636fee99c6a602b3dfe73d0dd2ee903b
Reviewed-on: https://chromium-review.googlesource.com/836711
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50250}
2017-12-20 21:04:42 +00:00
Sergiy Byelozyorov
cc4f3d3623 Remove migrated non-CQ builders and add more to the experiment
This is safe to enable multiple mac/win builders because we've migrated all
non-experimental builders to LUCI, hence pending queues won't affect CQ.

TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: I561c97ac52db0de042fb196f4430b65de562c0de
Reviewed-on: https://chromium-review.googlesource.com/836710
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50249}
2017-12-20 20:54:51 +00:00
Eugene Ostroukhov
7821aadc53 [inspector] remove wrapObject overload
Bug: 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I8ca7bf33fb848caedce101876316832a1e9cf58f
Reviewed-on: https://chromium-review.googlesource.com/836735
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Eugene Ostroukhov <eostroukhov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50248}
2017-12-20 20:17:21 +00:00
Ali Ijaz Sheikh
41b3d86f06 [heap] refactor SpaceWithLinearArea
* NewSpace::UpdateInlineAllocationInfo and PagedSpace::ComputeLimit were
closely related methods. Refactor these into a shared method in the
super class.
* refactor UpdateInlineAllocationInfo into SpaceWithLinearArea
* refactor StartNextInlineAllocationStep
* refactor PauseAllocationObservers

Bug: 
Change-Id: I898906d6228ff48e427367ef74e6dc77fb7a1837
Reviewed-on: https://chromium-review.googlesource.com/825591
Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50247}
2017-12-20 19:49:31 +00:00
Clemens Hammacher
d418f68d62 [wasm] Fix one more 32 bit 64 bit promotion
And add a helper method to convert an uint32 value to uintptr (e.g. a
noop on 32 bit and Uint32ToUint64 conversion on 64 bit).

R=ahaas@chromium.org

Change-Id: Ibc6731bc7ddaf8ceaa27e9e8fbec916d184d9ad4
Reviewed-on: https://chromium-review.googlesource.com/836618
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50246}
2017-12-20 19:40:51 +00:00
Sergiy Byelozyorov
17f3fe94fd Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:747960
Change-Id: I6718ef1a53439d4d443156c3ec7c269b72a39c36
Reviewed-on: https://chromium-review.googlesource.com/836870
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50245}
2017-12-20 19:26:31 +00:00
Mircea Trofin
f9c9616e62 [wasm] Ensure free-standing tables are rooted.
Bug: chromium:796584
Change-Id: Ib6a62d616d36344f35cad0b0a177f8f07c7fd2ac
Reviewed-on: https://chromium-review.googlesource.com/836849
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50244}
2017-12-20 19:17:12 +00:00
Sergiy Byelozyorov
34659c17ad [tools] Migrate 4 more builders to LUCI
This is now ready to proceed since we've got additional 6 Windows and 24 Linux
bots in our luci.v8.try pool.

TBR=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: Ib718599e5657fcb709acd563f7eaa9bbd2790fbb
Reviewed-on: https://chromium-review.googlesource.com/836898
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50243}
2017-12-20 16:49:49 +00:00
Michal Majewski
2d3eb1ba3e [test] Output processor for mkgrokdump
Bug: v8:6917
Change-Id: I36ab28500742ae1b906f806e0afb477059eb0380
Reviewed-on: https://chromium-review.googlesource.com/836548
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50242}
2017-12-20 16:12:39 +00:00
Michal Majewski
b43550b7ee [test] Share output procs in mozilla and test262
Bug: v8:6917
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: I8783192268cc0860b553af418d56f1117817d747
Reviewed-on: https://chromium-review.googlesource.com/836609
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50241}
2017-12-20 16:08:19 +00:00
Georg Neis
26e21fa67a [bigint] Increase maximum length.
In a benchmark that I'm looking at, the numbers quickly overflow our
current limit.

This patch increases kMaxLength to the greatest value that's possible
without requiring further code changes.

Bug: v8:6791
Change-Id: I7a0d126dcd566d536375a294fa4dcf10b8823ed7
Reviewed-on: https://chromium-review.googlesource.com/833876
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50240}
2017-12-20 14:49:48 +00:00
Ali Ijaz Sheikh
aefc8a3153 [heap] fix regression on thread_times.key_silk_cases
Doing an allocation step before the limit is picked is more correct, but
it causes the idle scavenger and incremental marking to run more
frequently, which causes a regression on certain thread_time benchmarks.
This CL fixes the regression by reverting the behaviour. A proper fix
can be implemented in a follow-on.

Bug: chromium:795323
Change-Id: Ic62eab1ddfd1da4c5904e11eba7d5d71cee38f12
Reviewed-on: https://chromium-review.googlesource.com/835287
Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50239}
2017-12-20 14:15:08 +00:00
Georgia Kouveli
f687903383 Reland "[arm64] Preparation for padding of arguments"
This is a reland of bcf1172992

The test was timing out in no snapshot builds, as each CodeAssemblerTester
creates a new Context. Reduced the random iterations significantly.

Original change's description:
> [arm64] Preparation for padding of arguments
>
> As part of JSSP removal, we need to align the arguments passed to functions
> on the stack, by adding a padding slot when the total number of arguments
> is odd.
>
> This patch introduces the kPadArguments flag (which is currently set to
> false for all architectures), which will control padding of arguments in
> architecture-independent parts of the code (deoptimizer, instruction
> selector).
>
> It also adds some executable tests for tail calls with various stack
> parameter counts on the caller and callee sides.
>
> This will be turned on for arm64 together with arm64-specific changes to
> the code generator, the MacroAsembler and the builtins, in a later patch.
>
> Bug: v8:6644
> Change-Id: I79a5c149123fe8130cedd1ccffec3d9b50361e08
> Reviewed-on: https://chromium-review.googlesource.com/806554
> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#50134}

TBR=jarin@chromium.org

Bug: v8:6644
Change-Id: I795877ed9791e126ffac6841dbbb65189e95d207
Reviewed-on: https://chromium-review.googlesource.com/833046
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50238}
2017-12-20 13:50:36 +00:00
Andreas Haas
9c7b6e1e8a [arm][turbofan] Implement on-stack returns.
This is the implementation of crrev.com/c/766371 for arm.

Original description:

Add the ability to return (multiple) return values on the stack:

- Extend stack frames with a new buffer region for return slots.
  This region is located at the end of a caller's frame such that
  its slots can be indexed as caller frame slots in a callee
  (located beyond its parameters) and assigned return values.
- Adjust stack frame constructon and deconstruction accordingly.
- Extend linkage computation to support register plus stack returns.
- Reserve return slots in caller frame when respective calls occur.
- Introduce and generate architecture instructions ('peek') for
  reading back results from return slots in the caller.
- Aggressive tests.
- Some minor clean-up.

R=v8-arm-ports@googlegroups.com

Change-Id: I7d61424a184d5778baf1d1270013f4e0c7ec68b4
Reviewed-on: https://chromium-review.googlesource.com/836608
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50237}
2017-12-20 13:39:46 +00:00
Camillo Bruni
d2ef40dd59 Fixes for --trace-maps
- Make sure scripts have line end data
- Make sure initial class maps are logged
- Log map creation independently from details
- Properly escape commas in the v8 logger

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I583c784cf75e884673e46bfb263da3bc20e6ac41
Reviewed-on: https://chromium-review.googlesource.com/822333
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50236}
2017-12-20 13:27:21 +00:00
Michal Majewski
1ed3bd5304 [test] Output processors for mozilla and test262.
Bug: v8:6917
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: I8920ed24699ab5e6e4ed82f38bd7c8d8548fddfe
Reviewed-on: https://chromium-review.googlesource.com/834131
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50235}
2017-12-20 13:22:16 +00:00
Camillo Bruni
b0e2074d9e [tools] New parse processor tool
From the log data generated with --log-function-events we can create a
detailed model of a function's lifetime. The parse processor displays
several stats at a given time (percent and count) on a per function or
byte basis:
- preparsing
- parsing
- eager/lazy compiling
- execution

Bug: chromium:757467
Change-Id: I0ad5c9369c6a0628704e3caffb3920444ea603a9
Reviewed-on: https://chromium-review.googlesource.com/758641
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50234}
2017-12-20 13:07:17 +00:00
Hannes Payer
3b914b2bf5 [heap] Remove --heap-stats.
Bug: 
Change-Id: I53b68e8a4200a87d9f14b9540b52cab316678b2d
Reviewed-on: https://chromium-review.googlesource.com/836593
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50233}
2017-12-20 12:49:06 +00:00
Camillo Bruni
8d2ea1c06f Delete GrowArrayElementsStub
- GrowArrayElementsStub is no longer needed
- Use JSObject::kMinAddedElementsCapacity constant in CSA

Change-Id: Iafa34fa32394d2fda013b230b66af984f2715278
Reviewed-on: https://chromium-review.googlesource.com/834128
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50232}
2017-12-20 12:45:26 +00:00
Jaroslav Sevcik
eab08dae95 [compiler] Introduce a new node for array index masking.
Bug: 
Change-Id: Idf3829f59cebe5c68b011ab6a0fa766ca2bad359
Reviewed-on: https://chromium-review.googlesource.com/832448
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50231}
2017-12-20 12:30:26 +00:00
Yang Guo
fded82269b Remove unused tools/v8-rolls.sh
We have tools/release/mergeinfo.py

R=verwaest@chromium.org

Change-Id: I9afb104f5c67be5f29ef33824c1ae5a4584ea1ad
Reviewed-on: https://chromium-review.googlesource.com/836610
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50230}
2017-12-20 12:13:01 +00:00
Sergiy Byelozyorov
ea978b96eb [tools] Replace migrated non-CQ LUCI experiments with new ones
R=machenbach@chromium.org

No-Try: true
Bug: chromium:747960
Change-Id: I45990490545827e7c36b2fccd89f37c34ab228a1
Reviewed-on: https://chromium-review.googlesource.com/822393
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50229}
2017-12-20 12:03:12 +00:00
Michal Majewski
d705e15857 [test] Prepare initial version of output processor
First CL moving parsing output to a separate class.
Following CLs will move (and deduplicate) code from
testcases by sharing common features like comparing
stdout to the expected output.

Bug: v8:6917
Change-Id: I1174a985949a0b946cefbf7e7c91e8815cbb4f15
Reviewed-on: https://chromium-review.googlesource.com/834130
Commit-Queue: Michał Majewski <majeski@google.com>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50228}
2017-12-20 11:24:07 +00:00
Hannes Payer
6e086610e0 [heap] Remove --log-gc.
Bug: 
Change-Id: I7b085f89f22de7ea55156d2942f3437bbf9c5af8
Reviewed-on: https://chromium-review.googlesource.com/836588
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50227}
2017-12-20 11:11:42 +00:00
Clemens Hammacher
ee78c7d715 [wasm] [interpreter] Fix deallocation of InterpretedFrameImpl
We were passing a pointer to an object allocated as
{InterpretedFrameImpl} in an {std::unique_ptr<InterpretedFrame>}.
The default deleter then called {delete ptr;} on a ptr of type
{InterpretedFrame*}, even though that object was allocated as
{InterpretedFrameImpl}. This error might caught by validators.
Fix this by passing a custom deleter on the unique_ptr.

R=ahaas@chromium.org, ulan@chromium.org

Bug: v8:7231
Change-Id: Ia18114236384813c4878319209ae4535fda56c41
Reviewed-on: https://chromium-review.googlesource.com/834510
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50226}
2017-12-20 10:11:42 +00:00
Andreas Haas
bf691e79d7 [wasm] Turn on tests for multiple returns on Windows
R=clemensh@chromium.org

Change-Id: Id2978d2c37a5fb4191db285f4660e22472b70f9d
Reviewed-on: https://chromium-review.googlesource.com/836427
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50225}
2017-12-20 10:09:42 +00:00
jgruber
c293bc010b [csa] Add and use ToInteger_Inline
This reduces reduces code size by 16 KB while keeping the fast path (in
which the given argument is already a smi) inlined and extracting
remaining logic to a stub call.

Change-Id: I531999c990519eef1247cc3785ad4b16164f7a5e
Reviewed-on: https://chromium-review.googlesource.com/833912
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50224}
2017-12-20 07:35:58 +00:00