Commit Graph

40084 Commits

Author SHA1 Message Date
Igor Sheludko
8820a79e17 [ic] Properly handle the case when all receiver maps are deprecated.
This may happen in KeyedStoreIC when the last store via setter deprecates the receiver map.

Bug: chromium:723366
Change-Id: Iff19e50c3761584401340d276ab4eead111883c3
Reviewed-on: https://chromium-review.googlesource.com/517952
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45592}
2017-05-30 09:38:48 +00:00
Clemens Hammacher
f6f33f6f40 [asm] Use ZoneVector instead of std::vector
This CL replaces the last usages of std::vector in the AsmJsParser by
ZoneVector. This allows to also measure the memory consumption of these
vectors, since it is now contained in the zone memory.
ZoneVectors are reused to avoid accumulating lots of unused memory.

This also saves 2.6% performance (avg over 1000 runs) on my local
workstation.

R=mstarzinger@chromium.org

Change-Id: I04c96db558d9c362b1494ddd9e975edf2783403c
Reviewed-on: https://chromium-review.googlesource.com/516985
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45591}
2017-05-30 09:32:20 +00:00
Jochen Eisinger
74df916bc4 Change presubmit to reference actually existing bot
Also enable post-upload-hooks

R=machenbach@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I8001394454f5d71d48a5e6261c891d6c7c2c3825
Reviewed-on: https://chromium-review.googlesource.com/518167
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45590}
2017-05-30 09:31:18 +00:00
Clemens Hammacher
737962f85b [wasm] [cleanup] Avoid lazy initialization of arrays
Both lazy initialization and static initialization (via static
initializer) are bad. Fortunately, the arrays we are constructing are
constant anyway, so we can just compute them at compile time. This is
enforced by making them constexpr.
This also saves all code needed for the initialization, and makes
accesses to the tables faster, as they don't need any atomic operations
(via LazyInstance).

R=ahaas@chromium.org

Change-Id: I7d3ba9b0f2602f596a6c71c8c567e0d1bc306268
Reviewed-on: https://chromium-review.googlesource.com/517083
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45589}
2017-05-30 09:30:13 +00:00
Michael Achenbach
eed937b04b [MB] Move clusterfuzz builders to client.v8.fyi
V8-part of:
https://chromium-review.googlesource.com/c/517791

NOTRY=true
NOTREECHECKS=true
TBR=kjellander@chromium.org,tandrii@chromium.org,mstarzinger@chromium.org

Bug: chromium:726584
Change-Id: I0e8b6adf6938dce02c84f5d5cbde6ff828dcbb08
Reviewed-on: https://chromium-review.googlesource.com/518152
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45588}
2017-05-30 09:26:13 +00:00
Clemens Hammacher
b5203e8f4e [wasm] Remove more obsolete DCHECKs
This time for the current memory size. This call also used to use the
context object stored in the instance, hence it required the instance
to be set. This is no longer the case, so the DCHECKs can just be
removed.

R=ahaas@chromium.org
BUG=chromium:727222

Change-Id: I72a7e3e80c3beb15ecad00c5be068e803456797e
Reviewed-on: https://chromium-review.googlesource.com/517947
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45587}
2017-05-30 08:58:09 +00:00
Wiktor Garbacz
959c569fe8 [base] Better printing for char in CHECK_*
Non-printable characters will are printed as escapes.
NUL won't terminate error message prematurely now.

Change-Id: Ie24b34e377221e9b99d2268f8dfb5ce26d064cc2
Reviewed-on: https://chromium-review.googlesource.com/509490
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Cr-Commit-Position: refs/heads/master@{#45586}
2017-05-30 08:17:27 +00:00
Wiktor Garbacz
6674aed03c Cleanup disallowing dynamic (de)allocation.
Change-Id: Icf4d67700bae4338ecf66411f2a5f57c5351f688
Reviewed-on: https://chromium-review.googlesource.com/504867
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
Cr-Commit-Position: refs/heads/master@{#45585}
2017-05-30 08:07:27 +00:00
ulan
23cc6be3fc Rename "NoBarrier" memory operations to "Relaxed".
This is consistent with C++ memory model and avoids confusion with GC
write barrier.

BUG=

Review-Url: https://codereview.chromium.org/2912773002
Cr-Commit-Position: refs/heads/master@{#45584}
2017-05-30 07:44:37 +00:00
Jochen Eisinger
cc2fb993a1 Revert "Revert "Remove ENTER_V8_DO_NOT_USE usage from other macros""
This reverts commit 75843f4f28.

Reason for revert: Shouldn't affect test

Original change's description:
> Revert "Remove ENTER_V8_DO_NOT_USE usage from other macros"
> 
> This reverts commit 2ba1fcda5f.
> 
> Reason for revert: Speculative for:
> https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/8413
> 
> Original change's description:
> > Remove ENTER_V8_DO_NOT_USE usage from other macros
> > 
> > Eventually I want to delete that macro, so just inline it at the places
> > where we'll need to keep it.
> > 
> > BUG=v8:5830
> > R=​marja@chromium.org
> > 
> > Change-Id: I904a1dd3555c23c69e457e078faaaa86a9514932
> > Reviewed-on: https://chromium-review.googlesource.com/518043
> > Reviewed-by: Marja Hölttä <marja@chromium.org>
> > Commit-Queue: Jochen Eisinger <jochen@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#45561}
> 
> NOTRY=true
> NOTREECHECKS=true
> NOPRESUBMIT=true
> 
> TBR=marja@chromium.org,jochen@chromium.org
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> BUG=v8:5830
> 
> Change-Id: I7097597d2695980f71fc93a79999d59956dd76c9
> Reviewed-on: https://chromium-review.googlesource.com/518107
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45578}

TBR=machenbach@chromium.org,marja@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG=v8:5830

Change-Id: I148f2415249c4f2a554229f814ae46688acc3918
Reviewed-on: https://chromium-review.googlesource.com/518111
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45583}
2017-05-30 07:38:25 +00:00
Jochen Eisinger
8339d0115d Reland "Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE"
Original change's description:
> Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE
>
> Replace the macro with more generic macros expanding to the same
> code.
>
> BUG=v8:5830
> R=​marja@chromium.org
>
> Change-Id: Ibf31fa4d89960a025af859198e190910c5608a20
> Reviewed-on: https://chromium-review.googlesource.com/518006
> Commit-Queue: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45560}

TBR=marja@chromium.org
BUG=v8:5830

Change-Id: I5492286bde4532ad092ac36bd54d99583844ada1
Reviewed-on: https://chromium-review.googlesource.com/518110
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45582}
2017-05-30 07:31:14 +00:00
Michael Achenbach
5d2cb25760 [MB] Add linux debug clusterfuzz bot
V8-side for https://chromium-review.googlesource.com/c/517949/

NOTRY=true
NOTREECHECKS=true

Bug: chromium:724486
Change-Id: Id778b5b0483bf917cf903d86289c1637ab9edda4
Reviewed-on: https://chromium-review.googlesource.com/518164
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45581}
2017-05-30 06:48:34 +00:00
v8-autoroll
e58c45fe22 Update V8 DEPS.
Rolling v8/build: ff6a082..e840a06

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Change-Id: Ie172612a3753a11ef85b4762b0e3f12891e040ad
Reviewed-on: https://chromium-review.googlesource.com/517727
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45580}
2017-05-30 04:21:02 +00:00
Michael Achenbach
98077c8ff2 Revert "Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE"
This reverts commit 5031f608a1.

Reason for revert: Speculative for:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/8413

Original change's description:
> Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE
> 
> Replace the macro with more generic macros expanding to the same
> code.
> 
> BUG=v8:5830
> R=​marja@chromium.org
> 
> Change-Id: Ibf31fa4d89960a025af859198e190910c5608a20
> Reviewed-on: https://chromium-review.googlesource.com/518006
> Commit-Queue: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45560}

NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

TBR=marja@chromium.org,jochen@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG=v8:5830

Change-Id: I1135da755ec78d756edcf3dd6da9e94f1768bfb7
Reviewed-on: https://chromium-review.googlesource.com/518108
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45579}
2017-05-29 18:29:32 +00:00
Michael Achenbach
75843f4f28 Revert "Remove ENTER_V8_DO_NOT_USE usage from other macros"
This reverts commit 2ba1fcda5f.

Reason for revert: Speculative for:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/8413

Original change's description:
> Remove ENTER_V8_DO_NOT_USE usage from other macros
> 
> Eventually I want to delete that macro, so just inline it at the places
> where we'll need to keep it.
> 
> BUG=v8:5830
> R=​marja@chromium.org
> 
> Change-Id: I904a1dd3555c23c69e457e078faaaa86a9514932
> Reviewed-on: https://chromium-review.googlesource.com/518043
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Commit-Queue: Jochen Eisinger <jochen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45561}

NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

TBR=marja@chromium.org,jochen@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG=v8:5830

Change-Id: I7097597d2695980f71fc93a79999d59956dd76c9
Reviewed-on: https://chromium-review.googlesource.com/518107
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45578}
2017-05-29 18:28:13 +00:00
kschimpf
86f95d87b9 Add V8 shared array allocation sizes histogram.
Add histogram to track sizes of share array buffers in Wasm/Js.

Associated with Chrome CL: https://codereview.chromium.org/2898953003

BUG=chromium:725309

Review-Url: https://codereview.chromium.org/2902773002
Cr-Commit-Position: refs/heads/master@{#45577}
2017-05-29 18:19:33 +00:00
kschimpf
2a9965bd0e Move StatsTable into the Counters class.
By moving StatsTable from class Isolate to class Counters, it make the
class StatsTable thead safe. This is needed because these two classes
call each other, and for background compilation, instances of the
Counters class can persist longer that the corresponding Isolate it
came from.

It also removes unnecessary hops to the the Isolate, and checks if the
StatsTable has been created, for these communications.

BUG=v8:6361

Review-Url: https://codereview.chromium.org/2906063002
Cr-Commit-Position: refs/heads/master@{#45576}
2017-05-29 18:18:25 +00:00
Michael Achenbach
68a723996b Revert "[heap] Move pointers updating to ItemParallelJob"
This reverts commit 81d3427b10.

Reason for revert: Several gc related failures, e.g.:
https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13488

Original change's description:
> [heap] Move pointers updating to ItemParallelJob
> 
> Furthermore avoid lock-step between pointer updating phases as they
> should execute in parallel without synchronization restrictions.
> 
> Bug: chromium:726040
> Change-Id: I26ce0d1f2a4637ff5610cae556113e3d736788e2
> Reviewed-on: https://chromium-review.googlesource.com/518103
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45574}

NOPRESUBMIT=true
NOTRY=true
NOTREECHECKS=true

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:726040

Change-Id: I60860aef390605d07bc520141cab9d5be9b712b3
Reviewed-on: https://chromium-review.googlesource.com/518106
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45575}
2017-05-29 18:02:16 +00:00
Michael Lippautz
81d3427b10 [heap] Move pointers updating to ItemParallelJob
Furthermore avoid lock-step between pointer updating phases as they
should execute in parallel without synchronization restrictions.

Bug: chromium:726040
Change-Id: I26ce0d1f2a4637ff5610cae556113e3d736788e2
Reviewed-on: https://chromium-review.googlesource.com/518103
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45574}
2017-05-29 16:16:32 +00:00
Michael Starzinger
f7f03da0d3 [turbofan] Fix value output count range on Operator.
This widens the range of value output counts to 32 bit on the {Operator}
class. Note that the limit imposed by the parser is 65535 parameters for
each function, but the {Start} node has additional value outputs.

R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-724153
BUG=chromium:724153

Change-Id: I21b5d947cc2305b255ddbbff6ec1dfa5c02784c7
Reviewed-on: https://chromium-review.googlesource.com/517489
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45573}
2017-05-29 15:49:06 +00:00
Toon Verwaest
fa2ed010e6 [runtime] Move 'copying' flag to ContextObject, don't copy named properties for array boilerplates
Bug: 
Change-Id: Ie754efaec80eb175ac18c328c750524009ca8e60
Reviewed-on: https://chromium-review.googlesource.com/517104
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45572}
2017-05-29 15:17:39 +00:00
ulan
b853d7fbb3 [heap] Fix a missing write barrier in Heap::Allocate.
BUG=

Review-Url: https://codereview.chromium.org/2906313002
Cr-Commit-Position: refs/heads/master@{#45571}
2017-05-29 15:03:50 +00:00
ulan
bc32a0a78f [heap] Disable concurrent marking for cctests that rely on manual GC.
BUG=chromium:694255

Review-Url: https://codereview.chromium.org/2910933002
Cr-Commit-Position: refs/heads/master@{#45570}
2017-05-29 14:43:05 +00:00
v8-autoroll
8ad8319e23 Update V8 DEPS.
Rolling v8/build: 53a7b31..ff6a082

Rolling v8/buildtools: 98f00fa..1045741

Rolling v8/third_party/catapult: 51b3178..ea7d9cf

Rolling v8/tools/clang: 05f3060..34e6d43

Rolling v8/tools/swarming_client: a941a08..5c4eed8

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Change-Id: Ic7e269d5c8e3051caf61c117465bfcdd96cb5266
Reviewed-on: https://chromium-review.googlesource.com/517644
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45569}
2017-05-29 14:39:50 +00:00
Michael Starzinger
64672af479 [turbofan] Remove remnants of code flusher support.
This removes special support in the compilation pipeline to keep alive
unoptimized code for inlined functions (i.e. preventing the code flusher
from clearing it). Now that the code flusher is gone, this is obsolete.

R=jarin@chromium.org

Change-Id: I00361d12f2d17556056d06c10ad19f09a4772cd8
Reviewed-on: https://chromium-review.googlesource.com/517948
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45568}
2017-05-29 14:34:10 +00:00
Peter Marshall
2f3f974f74 [builtins] Fix TypedArray slice for species constructor.
Bug: chromium:725865
Change-Id: I94006d45aefb969fb0cf98ec475c30c14b3837fa
Reviewed-on: https://chromium-review.googlesource.com/517488
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45567}
2017-05-29 14:25:44 +00:00
Marja Hölttä
804ac5f618 [parser] Skipping inner funcs: fix parameter count in preparser.
For non-simple param lists, the parser first declares a TEMPORARY for each
param, and then the named variables as locals. The TEMPORARY variables determine
the parameter count.

This CL makes the PreParser produce the same parameter count as the Parser.

BUG=v8:5516

Change-Id: I8a794d6a8342145ab7934d922e2d69450d67b199
Reviewed-on: https://chromium-review.googlesource.com/517944
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45566}
2017-05-29 14:18:22 +00:00
Marja Hölttä
b90c98fc29 [objects.h splitting] Move SharedFunctionInfo.
BUG=v8:5402

Change-Id: If5f763e6a11d446e36719277a18b00a0cd8df8fa
Reviewed-on: https://chromium-review.googlesource.com/517162
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45565}
2017-05-29 14:03:48 +00:00
Michael Achenbach
8f7af5fb13 [build] Manuelly roll and fix build
Manually rolls:
5488ca8df..53a7b319

Fixes gyp build after:

https: //codereview.chromium.org/2900193003
Change-Id: I0249aa7d1c40bcb1533c56577bfbda4aedd8cbf9
Reviewed-on: https://chromium-review.googlesource.com/518144
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45564}
2017-05-29 13:40:13 +00:00
Camillo Bruni
e822488d76 [runtime] Directly support double values in CloneShallowObjectLiteral
Bug: v8:6211
Change-Id: If6d2ef7889ae6a0c3aa430d3f69c53f19cc1f1c6
Reviewed-on: https://chromium-review.googlesource.com/509571
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45563}
2017-05-29 13:27:17 +00:00
Jochen Eisinger
74681db644 Automatically add a layout test running bots for api changes
R=machenbach@chromium.org

Change-Id: I48b6bda0bfb3c8aef117616015ee4225d4bdecfc
Reviewed-on: https://chromium-review.googlesource.com/517486
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45562}
2017-05-29 13:17:07 +00:00
Jochen Eisinger
2ba1fcda5f Remove ENTER_V8_DO_NOT_USE usage from other macros
Eventually I want to delete that macro, so just inline it at the places
where we'll need to keep it.

BUG=v8:5830
R=marja@chromium.org

Change-Id: I904a1dd3555c23c69e457e078faaaa86a9514932
Reviewed-on: https://chromium-review.googlesource.com/518043
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45561}
2017-05-29 12:56:17 +00:00
Jochen Eisinger
5031f608a1 Get rid of PREPARE_FOR_EXECUTION_WITH_ISOLATE
Replace the macro with more generic macros expanding to the same
code.

BUG=v8:5830
R=marja@chromium.org

Change-Id: Ibf31fa4d89960a025af859198e190910c5608a20
Reviewed-on: https://chromium-review.googlesource.com/518006
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45560}
2017-05-29 12:50:47 +00:00
Clemens Hammacher
14fae58987 [asm] Fix reusing code with annotated export info
For lazy compilation, we encode information about table exports in the
deoptimization data. This information is rebuilt on each instantiation,
so we need to reset it when reusing code objects from another instance.

R=ahaas@chromium.org
BUG=chromium:727219

Change-Id: I90557ef06e692d0a8323223cac26679efcfa408b
Reviewed-on: https://chromium-review.googlesource.com/517945
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45559}
2017-05-29 12:33:57 +00:00
Clemens Hammacher
ff7bf3323f [wasm] Avoid reporting of unrelated compiler errors
It happens frequently that unrelated compiler errors lead to the
instantiation of {read_leb_tail} with an invalid {byte_index}, which
again triggers compiler errors.
This change fixes this, such that illegal instantiation just triggers a
static_assert and nothing more. This helps to spot the actual error.

Drive-by: Mark {Min} and {Max} constexpr, such that they can produce
constexpr results. Note that the result will only be constexpr if both
arguments are constexpr.

R=ahaas@chromium.org

Change-Id: I35d6865a7f569d72ace0debb045ac615cfd87d92
Reviewed-on: https://chromium-review.googlesource.com/518005
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45558}
2017-05-29 12:32:36 +00:00
Jochen Eisinger
68aa1ab388 Update module APIs to return Maybe<bool>
All APIs that can throw exceptions should return Maybe<> values

BUG=none
R=neis@chromium.org,gsathya@chromium.org

Change-Id: I6a6e5888cd71257bb02bdcfcc587c909d0c1d8f4
Reviewed-on: https://chromium-review.googlesource.com/517785
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45557}
2017-05-29 12:29:43 +00:00
Clemens Hammacher
e011e7efa9 [wasm] Remove obsolete DCHECKS
WasmGraphBuilder::GrowMemory does not access the module or the instance
any more. This was initially needed to reference the context as a
HeapConstant in the code.
This CL just removes the DCHECKs, which failed with the
--wasm-lazy-compilation flag.

R=ahaas@chromium.org
BUG=chromium:726665

Change-Id: Ieac53fe376256c47e8ef2fafca818a99ff063683
Reviewed-on: https://chromium-review.googlesource.com/516706
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45556}
2017-05-29 11:46:07 +00:00
Clemens Hammacher
0f3ce0c273 [wasm] No parallel compilation if no background threads
Parallel compilation should only be chosen if there are background threads
available. Otherwise, the overhead of orchestrating (non-)parallel work
can be omitted by just compiling synchronously.

R=ahaas@chromium.org

Change-Id: I333fb87e07fdb3260ab4c9c2c1885a1df4c5e4ef
Reviewed-on: https://chromium-review.googlesource.com/513062
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45555}
2017-05-29 11:16:03 +00:00
Jochen Eisinger
70de12b73c Remove deprecated ForceSet
Also move the soon-to-be-deprecated version to deprecated

BUG=none
R=ulan@chromium.org

Change-Id: I2252404f63e25ac35c7798daf66b36144bef6a7e
Reviewed-on: https://chromium-review.googlesource.com/518162
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45554}
2017-05-29 11:13:23 +00:00
ulan
75e679113b [heap] Add --stress-incremental-marking flag.
BUG=

Review-Url: https://codereview.chromium.org/2900603004
Cr-Commit-Position: refs/heads/master@{#45553}
2017-05-29 11:06:13 +00:00
Michael Achenbach
0a1cad371e [test] Deprecate timeout test expectations
Tests should instead be skipped or fixed.

Existing timeout expectations are either optimistically deleted or replaced by the SLOW keyword.

Change-Id: Ic43f52bf18d0702674c95f9263a109041a1c9cd8
Reviewed-on: https://chromium-review.googlesource.com/518122
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45552}
2017-05-29 10:38:55 +00:00
Sathya Gunasekaran
f4664d0257 [runtime] Implement SmallOrderedHashTable
Implements the Allocate, Add, and HasKey operations. Also, adds GC
support for this new instance type.

Bug: v8:6443
Change-Id: I1cc7ba2faead2a11f7b0381a57858629e123aee6
Reviewed-on: https://chromium-review.googlesource.com/500447
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45551}
2017-05-29 10:04:22 +00:00
Igor Sheludko
eef603feb1 [crankshaft] Properly handle stack overflows happened during AST typing.
Bug: chromium:724820
Change-Id: If4d05326ad00d0d3efe8f58b361595f2655d90d2
Reviewed-on: https://chromium-review.googlesource.com/518142
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45550}
2017-05-29 09:52:43 +00:00
Peter Marshall
481ea63d41 [turbofan] Add CheckSeqString so that we have type info for CharCodeAt.
Bug: v8:6391
Change-Id: If63078c756d9cfb00e515fae005755c4ed8b12f7
Reviewed-on: https://chromium-review.googlesource.com/512803
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45549}
2017-05-29 09:03:22 +00:00
Ilija.Pavlovic
aa0c8dcc18 Fix test OneByteArrayJoin.
The test OneByteArrayJoin failed on MIPS64 in debug mode after
https://chromium-review.googlesource.com/c/489946/ with error messages
"allocation failure GC in old space requested" and
"Fatal javascript OOM in CALL_AND_RETRY_LAST". Successful test execution
is possible on two ways: with flag --max_old_space_size=7 or with
modification in the test (constraints.set_max_old_space_size(7)).

TEST=cctest/test-strings/OneByteArrayJoin
BUG=

Review-Url: https://codereview.chromium.org/2907803002
Cr-Commit-Position: refs/heads/master@{#45548}
2017-05-29 08:30:50 +00:00
Michael Achenbach
ee1db48cc3 Revert "[inspector] moved var initialization break location before init expression"
This reverts commit 7a9cc70492.

Reason for revert: Changes layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15882

This is about:
inspector/sources/debugger/source-frame-inline-breakpoint-decorations.html

Original change's description:
> [inspector] moved var initialization break location before init expression
> 
> This CL improves break locations for expressions like 'var a = <expr>'. Without CL we use <expr> position as break location for initialization statement, with this CL we use position of first character after '=' as position.
> Benefits (see test for details):
> - only one break in expressions which includes mix of property lookup and calls, e.g. var p = Promise.resolve().then(x => x * 2),
> - removed redundant break location for expressions like: let { x, y } = { x: 1, y: 2}.
> 
> Bug: v8:5909
> Change-Id: I039d911903a2826c9859710a63ab0462c992e11b
> Reviewed-on: https://chromium-review.googlesource.com/513926
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45530}

TBR=dgozman@chromium.org,marja@chromium.org,kozyatinskiy@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: v8:5909

Change-Id: Ibf84401e8050d3c84db219d983de2c6bba0f697f
Reviewed-on: https://chromium-review.googlesource.com/518102
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45547}
2017-05-29 07:03:23 +00:00
jan.krems
a2cbab1bf4 [api] Expose Isolate::SetHostImportModuleDynamicallyCallback
This allows embedders to delay initialization of the module system until after
the isolate was created.

BUG=v8:6428
R=gsathya@chromium.org

Review-Url: https://codereview.chromium.org/2897103002
Cr-Commit-Position: refs/heads/master@{#45546}
2017-05-27 08:02:34 +00:00
hans
c05ca9d7b8 Disable DCHECK for external reference address uniqueness on Windows
The memcpy and memmove externals can end up at the same address; see bug for
details.

BUG=chromium:726896

Review-Url: https://codereview.chromium.org/2906193002
Cr-Commit-Position: refs/heads/master@{#45545}
2017-05-27 02:34:27 +00:00
Igor Sheludko
397afc6960 [runtime] Set proper initial map for AsyncFunction constructor.
... to make AsyncFunction subclassing work.

Bug: chromium:725537
Change-Id: I7edf4891e14e01567046e7536b3aa93877111448
Reviewed-on: https://chromium-review.googlesource.com/517087
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45544}
2017-05-26 21:06:48 +00:00
Igor Sheludko
fdd8d15155 [runtime] Remove unnecessary casts of species constructor.
... which caused assertion failures in --enable-slow-asserts mode.
The surrounding code treated the constructor value properly so regression
test is not necessary.

Bug: chromium:726622
Change-Id: Icd43d9117a1125bec8feca8eca5708993de2c3ef
Reviewed-on: https://chromium-review.googlesource.com/516626
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45543}
2017-05-26 15:21:32 +00:00