Commit Graph

40249 Commits

Author SHA1 Message Date
jgruber
9ca164d051 [csa] Add assertions to CSA
This adds a bunch of assertions to CSA, mostly about documenting and checking
parameter types.

Drive-by-change: Removed unused function.

BUG=v8:6325

Review-Url: https://codereview.chromium.org/2847923003
Cr-Original-Original-Commit-Position: refs/heads/master@{#45398}
Committed: b14a981496
Review-Url: https://codereview.chromium.org/2847923003
Cr-Original-Commit-Position: refs/heads/master@{#45443}
Committed: 62b0de1ef5
Review-Url: https://codereview.chromium.org/2847923003
Cr-Commit-Position: refs/heads/master@{#45607}
2017-05-30 14:23:17 +00:00
Michael Achenbach
a73323d367 Revert "[heap] Simplify array buffer tracker"
This reverts commit a402dd6311.

Reason for revert: Breaks msan:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/15197

Original change's description:
> [heap] Simplify array buffer tracker
> 
> Retrieve length from the buffer instead of storing in as value in the
> map.
> 
> Change-Id: Icdc87bb46c29fff779bf6e98139324662ced5bf6
> Reviewed-on: https://chromium-review.googlesource.com/518171
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Jochen Eisinger <jochen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#45600}

NOTRY=true
NOTREECHECKS=true
NOPRESUBMIT=true

TBR=mlippautz@chromium.org,jochen@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: I22e3590528beb911d366b9d93ec302857a631971
Reviewed-on: https://chromium-review.googlesource.com/518117
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45606}
2017-05-30 14:22:14 +00:00
jgruber
0930a9243a [builtins] Add --print-builtin-size flag
Passing --print-builtin-size will print the size of all builtins on
isolate creation.

BUG=v8:5737

Review-Url: https://codereview.chromium.org/2895163002
Cr-Commit-Position: refs/heads/master@{#45605}
2017-05-30 14:14:32 +00:00
Camillo Bruni
32e4bcd974 [heap-verify] Fix arguments verification with mapped elements
Bug: chromium:726836
Change-Id: I2eaec8550e7ba038646a1f7834d4514a8d4009ea
Reviewed-on: https://chromium-review.googlesource.com/517954
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45604}
2017-05-30 14:05:34 +00:00
Marja Hölttä
36de9199f4 [parser] Disable aborting preparsing for arrow functions.
It's extremely difficult to get right: there have been several bugs
related to this feature, especially when combined with
non-simple parameter lists in arrow functions.

BUG=chromium:727218

Change-Id: I97dfbc57a7650199964c5fe99de69143c8e537c2
Reviewed-on: https://chromium-review.googlesource.com/518145
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45603}
2017-05-30 14:00:54 +00:00
Clemens Hammacher
3afbbe1a6c [wasm] [interpreter] Remove dead internal method
R=ahaas@chromium.org

Change-Id: I69867a9595e7276ebf30fa3239620585d2cef568
Reviewed-on: https://chromium-review.googlesource.com/518186
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45602}
2017-05-30 13:56:17 +00:00
Michael Achenbach
68641663b7 [build] Always keep gold plugin in sync with clang version
The old logic made the cfi build fail on each clang update.

Bug: chromium:726584
Change-Id: Ia24181d3bc92eb18116c2ac2b42ac2c68f02ce25
Reviewed-on: https://chromium-review.googlesource.com/518185
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45601}
2017-05-30 13:41:18 +00:00
Michael Lippautz
a402dd6311 [heap] Simplify array buffer tracker
Retrieve length from the buffer instead of storing in as value in the
map.

Change-Id: Icdc87bb46c29fff779bf6e98139324662ced5bf6
Reviewed-on: https://chromium-review.googlesource.com/518171
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45600}
2017-05-30 13:38:58 +00:00
hpayer
f314b3cdb9 [api] Add an API function to set the GetExternallyAllocatedMemoryInBytesCallback.
BUG=chromium:727569

Review-Url: https://codereview.chromium.org/2910203002
Cr-Commit-Position: refs/heads/master@{#45599}
2017-05-30 13:18:17 +00:00
Aleksey Kozyatinskiy
fb6a094db5 [inspector] moved var initialization break location before init expression (reland)
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}.
 
TBR=dgozman@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org,marja@chromium.org,kozyatinskiy@chromium.org,devtools-reviews@chromium.org,v8-reviews@googlegroups.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: v8:5909

Change-Id: Ie84fa79afeed09e28cf8478ba610a0cfbfdfc294
Reviewed-on: https://chromium-review.googlesource.com/518116
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45598}
2017-05-30 12:54:49 +00:00
Marja Hölttä
37945f731c [objects.h splitting] Move Script.
BUG=v8:5402

Change-Id: Ia6639d69a31accf46c10e8d49ea72422225cc8ff
Reviewed-on: https://chromium-review.googlesource.com/517788
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45597}
2017-05-30 12:47:47 +00:00
Ulan Degenbaev
898eb142ce [heap] Adjust live bytes atomically when concurrent marking is on.
BUG=chromium:723600

Change-Id: I7fbc9cbeac2bd3d826d81808c0f3c2c24a21a562
Reviewed-on: https://chromium-review.googlesource.com/518013
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45596}
2017-05-30 12:27:00 +00:00
Jochen Eisinger
a7a5176778 Introduce ENTER_V8_* macros with clear names
Also document them.

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

Change-Id: I86e71c8e24e4b7f3032e0f2365cf72575b1eb413
Reviewed-on: https://chromium-review.googlesource.com/518155
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45595}
2017-05-30 12:02:13 +00:00
Jochen Eisinger
697f1bdae3 Remove unused presubmit hooks
We add the bot via the post-upload step, that's good enough

R=machenbach@chromium.org,tandrii@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I8d582d101b4d2f308829da75df56e04a3dabadbf
Reviewed-on: https://chromium-review.googlesource.com/518114
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45594}
2017-05-30 11:44:34 +00:00
Clemens Hammacher
38b586c656 [base] Fix CHECK/DCHECK macros for enum types
The problem with enums is that neither is_integral, nor is_signed or
is_unsigned is true for them. Thus, comparison with our CHECK/DCHECK
macros always just uses the default comparison, which fails if the
signedness of the underlying integer types does not match.
This CL fixes this by considering the underlying integer type of an
enum to choose the right comparison operator.

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

Change-Id: I5ef56d1b86228e879f5866967ab7e709f1e97f0b
Reviewed-on: https://chromium-review.googlesource.com/518123
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45593}
2017-05-30 11:04:09 +00:00
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