Commit Graph

49202 Commits

Author SHA1 Message Date
Michael Lippautz
9e3d6cbec5 [heap,iwyu] Provide slim write barrier header
Move write barrier essentials into heap/heap-write-barrier-inl.h. Avoid
including further heap inline headers by relying on constant to load
flags from.

Bug: v8:7490
Change-Id: I2891299f1b1ca2c3e2031cb9c63b583b1665e3f9
Reviewed-on: https://chromium-review.googlesource.com/1148448
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54710}
2018-07-26 09:04:48 +00:00
Frank Tang
22b441ac69 [Intl] Refactor CreateNumberFormat into Intl:: for later C++ usage.
Bug: v8:7960
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I2ea86824e98d9c92a838b8c515e9ab238abe51d1
Reviewed-on: https://chromium-review.googlesource.com/1149616
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54709}
2018-07-26 07:26:48 +00:00
Frank Tang
6c27d79d7a [Intl] Refactor logic of CurrencyDigits to Intl:: for C++.
Bug: v8:7979
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Idbda0c93f55fe8a9b560ee006a3ed7dcceb1a540
Reviewed-on: https://chromium-review.googlesource.com/1149442
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54708}
2018-07-26 06:19:56 +00:00
v8-ci-autoroll-builder
208430c34a Update V8 DEPS.
Rolling v8/build: 2c97c10..ad6fe7d

Rolling v8/buildtools: 0dd5c6f..691bfec

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/6cf86b3..c829a63

Rolling v8/third_party/depot_tools: 01ce059..ad463c9

Rolling v8/third_party/fuchsia-sdk: 9a5d7ce..12961e5

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

Change-Id: I51ddd601160637e08f84500c0a9e92069bbdf247
Reviewed-on: https://chromium-review.googlesource.com/1150969
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54707}
2018-07-26 06:18:46 +00:00
Caitlin Potter
d6efcbf022 [runtime] fix ClusterFuzz regressions (and remaining nits) in CloneObject
Includes fixes for several ClusterFuzz regressions:

1) fix an invalid Handle-cast in ic.cc (chromium:866282)

2) fix for improper accounting of used/unused inobject
fields, found by clusterfuzz (chromium:866357).

3) fix number of control outputs for the JSCloneObject
operator to be used by IfSuccess and IfException nodes (chromium:866727).

4) fix property constness in out-of-object properties of fast-cloned
object to be compatible with DCHECKs in StoreIC (chromium:866861).

Also includes the fixups missing from the initial commit, and
regression tests

BUG=v8:7611, chromium:866282, chromium:866357, chromium:866727, chromium:866861
R=jkummerow@chromium.org, mvstanton@chromium.org
TBR=rmcilroy@chromium.org

Change-Id: I77220308482f16db2893c0dcebec36530d0f5540
Reviewed-on: https://chromium-review.googlesource.com/1146297
Commit-Queue: Caitlin Potter <caitp@igalia.com>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54706}
2018-07-25 21:23:05 +00:00
Ross Mcilroy
8c9abf7f68 Enable V8_IMMINENT_DEPRECATION_WARNINGS on V8 builds.
This means V8_DEPRECATE_SOON apis will cause warnings when building V8 standalone.

BUG=v8:7754

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I84d6ba4179a99a04ffedcfc093e50cea8b17e2a0
Reviewed-on: https://chromium-review.googlesource.com/1149606
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54705}
2018-07-25 21:04:25 +00:00
Jakob Kummerow
f15cb8fe54 [tests] Make processing of test filters faster
The test driver compares command-line arguments against test names
it finds on disk. Using Python's "fnmatch" for this nicely handles
wildcards, but is relatively slow. For given test names that don't
contain any '*', we can use string equality testing, which is much
faster.

Example: the time to evaluate

 tools/run-tests.py --arch x64 --mode release \
   $(grep 'object-spread' -l -r test/test262/data/test/ | \
       sed -E 's|\.js$||' | \
       sed -E 's|^test/test262/data/test/|test262/|')

goes from "I gave up and killed the process after several minutes"
to a couple of seconds with this patch.

Change-Id: I9ec404b7516afd801fe6126347f6dff533d1977c
Reviewed-on: https://chromium-review.googlesource.com/1149196
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54704}
2018-07-25 20:48:05 +00:00
Rodrigo Bruno
da9386ae2d Reland^2 "Avoiding re-externalization of strings"
Previously landed as 2c4c2ad694 / #54599 and
f34158c9d2 / #54637

Previously reviewed at https://chromium-review.googlesource.com/1139056 and
https://chromium-review.googlesource.com/1146583

Bug: chromium:845409, chromium:866208
Change-Id: Idb1b6d1b29499f66bf8cd704977c40b027f99dbd
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1148281
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Cr-Commit-Position: refs/heads/master@{#54703}
2018-07-25 18:54:28 +00:00
Ross Mcilroy
727d82e923 [cleanup] Remove calls to deprecated GetFrame.
Use the isolate version instead.

BUG=v8:7754

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5239192fe6d31e84028806127d21ac54ee0a8ef6
Reviewed-on: https://chromium-review.googlesource.com/1146181
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54702}
2018-07-25 18:02:32 +00:00
Ross McIlroy
69b8273bb5 Revert "[in-place weak refs] Use WeakArrayList in Heap::noscript_list."
This reverts commit 6755b95631.

Reason for revert: Causing test failures on gc-stress bot:

https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8940015537308234128/+/steps/Mjsunit_-_slow_path/0/logs/array-multiple-receiv../0

Original change's description:
> [in-place weak refs] Use WeakArrayList in Heap::noscript_list.
> 
> BUG=v8:7308
> 
> Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
> Change-Id: Ia53233a3a0ba13b8019f2fda4bc4876ebf4feb76
> Reviewed-on: https://chromium-review.googlesource.com/1149367
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54700}

TBR=marja@chromium.org,mlippautz@chromium.org

Change-Id: I5e9b916a910b812c3cb50be18416c9e9e8ac7b24
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7308
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1150125
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54701}
2018-07-25 18:01:29 +00:00
Marja Hölttä
6755b95631 [in-place weak refs] Use WeakArrayList in Heap::noscript_list.
BUG=v8:7308

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ia53233a3a0ba13b8019f2fda4bc4876ebf4feb76
Reviewed-on: https://chromium-review.googlesource.com/1149367
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54700}
2018-07-25 15:43:07 +00:00
Marja Hölttä
cd5fbf635c Reland: [iwyu] Remove sfi-inl.h -> wasm include
This significantly reduces the build time when modifying wasm
files: before touching all wasm headers required 684 steps to
rebuild, now it's 216.

BUG=v8:7754,v8:7490
TBR=clemensh@chromium.org, ulan@chromium.org, tebbi@chromium.org, verwaest@chromium.org, jgruber@chromium.org

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I9003b5b73ac568a29688c5f97ec718c9de8aaaef
Reviewed-on: https://chromium-review.googlesource.com/1150163
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54699}
2018-07-25 14:54:37 +00:00
Ivica Bogosavljevic
ec3321428d MIPS: Fix unittests compilation error due to missing class exports
Fix `d324382e1c090ac59d82088a13dfad9f69ff46bb`

Change-Id: I00d15869ab6ee150f458ecbc1688308ebd5a5819
Reviewed-on: https://chromium-review.googlesource.com/1150151
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#54698}
2018-07-25 14:31:07 +00:00
Sigurd Schneider
69b8c15423 [turbofan] Remove check in IsMoreGeneralElementsKindTransition
This check is likely unneeded.

Change-Id: Ie2b39f64312c362aabcb7168d6f1f1312b82d40c
Reviewed-on: https://chromium-review.googlesource.com/1146735
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54697}
2018-07-25 14:14:57 +00:00
Sigurd Schneider
2db2d8ea87 [mjsunit] Make optimization test more reliable
Change-Id: If0fb6e4a20c334610453e9fe648151abca681442
Reviewed-on: https://chromium-review.googlesource.com/1150154
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54696}
2018-07-25 13:47:27 +00:00
Michael Achenbach
46930afc4e [tools] Fix missing import in node script
NOTRY=true
TBR=yangguo@chromium.org

Change-Id: I2d8d07f048204874995dd4d349b6fb2b5b226630
Reviewed-on: https://chromium-review.googlesource.com/1150158
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54695}
2018-07-25 13:18:25 +00:00
Georg Neis
b40b49c3cc Move DisallowHeapAccess definition out of compiler and reuse it.
Change-Id: I5cc5dc227a36ff38145df35b3afd067ebba2ad7c
Reviewed-on: https://chromium-review.googlesource.com/1149361
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54694}
2018-07-25 13:13:35 +00:00
Ivica Bogosavljevic
3b80783c51 MIPS: Fix compilation error in debug mode due to unused variables
Change-Id: I3805bb04e2ae6b620d12b8b5e878fff0d27aa1f1
Reviewed-on: https://chromium-review.googlesource.com/1150027
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#54693}
2018-07-25 12:56:36 +00:00
Michael Starzinger
53fe5c4485 [wasm] Temporarily disable --wasm-shared-engine test.
R=leszeks@chromium.org

Change-Id: Ib037c43571cda0e2da3c6da3d763cfe27c797413
Reviewed-on: https://chromium-review.googlesource.com/1150033
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54692}
2018-07-25 12:44:45 +00:00
Joyee Cheung
038abad8ec Reland "Symbol.prototype.description"
This is a reland of 18d0d7f639
without any changes. This used to break the custom snapshot build but
the bug seems to be fixed elsewhere.

Original change's description:
> Ship Symbol.prototype.description
>
> Intent to ship:
> https://groups.google.com/forum/#!msg/v8-users/9U2kEQw8pb8/Sn91yUx5BQAJ
>
> Bug: v8:7807
> Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Ia9e73495b08b432371dfb0ccc571af969ae4d59f
> Reviewed-on: https://chromium-review.googlesource.com/1107210
> Commit-Queue: Joyee Cheung <joyee@igalia.com>
> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53933}

Bug: v8:7807
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1225b9c8619c1a628149c9b54058798aab93a2a8
Reviewed-on: https://chromium-review.googlesource.com/1131156
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54691}
2018-07-25 11:56:25 +00:00
Sathya Gunasekaran
91a5c8baea [Intl] Make error handling stricter
Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I5c736e0573babcd37e9ca3b28c737c9d44b3721a
Reviewed-on: https://chromium-review.googlesource.com/1149776
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54690}
2018-07-25 11:35:55 +00:00
Sergiy Byelozyorov
a82ea31afb [tools] Detect location of android build tools automatically
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: Ifbdd9fe986e84197fd1ff6441c1565fed44c2c6f
Reviewed-on: https://chromium-review.googlesource.com/1149869
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54689}
2018-07-25 11:23:55 +00:00
Clemens Hammacher
6f790cbe71 [Liftoff][x64] Use more hardcoded scratch registers
Liftoff does not use all registers available on x64, so we can use
several hardcoded scratch registers instead of using the cache
registers which might need to be spilled.
This generates potentially smaller and more efficient code because we
need to spill and fill less.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: I4ae20a1fb0ddd930d24130612825681752cfba24
Reviewed-on: https://chromium-review.googlesource.com/1146652
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54688}
2018-07-25 11:16:15 +00:00
Tobias Tebbi
2e2134254c [torque] make CPP generation deterministic by sorting changed variables
I suspect that the non-deterministic order of changed variables in the
generated Label constructor calls is what causes non-deterministic
builds, since this is the only change I observed locally in the
generated .cc files.

Drive-by cleanup: follow style-guide by avoiding mutable ref parameter.

Bug: chromium:867308
Change-Id: I137af359df570ee11b95cb620ace179bf93481c5
Reviewed-on: https://chromium-review.googlesource.com/1148729
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54687}
2018-07-25 10:09:18 +00:00
Sigurd Schneider
8addba1f2d [cleanup] Change deprecated use of Handle to Local
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I7a25b340248b1b1499c6fd0753f210c359003843
Reviewed-on: https://chromium-review.googlesource.com/1149369
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54686}
2018-07-25 10:07:15 +00:00
Clemens Hammacher
bd3f0a684b [cleanup][arm] Fix/cleanup new code for hard abort on arm
No functional change, just a cleanup I forgot to integrate in the
reland: https://crrev.com/c/1146100

R=mstarzinger@chromium.org

Bug: v8:7977
Change-Id: Ifbb437d6a1ec9ec1b8623859bdf183dab1a1c0f6
Reviewed-on: https://chromium-review.googlesource.com/1148721
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54685}
2018-07-25 09:25:34 +00:00
Clemens Hammacher
6af63b9483 [iwyu] Fix includes in maybe-handles-inl.h and maybe-object-inl.h
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I1bdd5b3bc8626727c94b95b519a8896384ff990b
Reviewed-on: https://chromium-review.googlesource.com/1148573
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54684}
2018-07-25 09:24:29 +00:00
Leszek Swirski
d850f7ea68 Revert "[iwyu] Remove sfi-inl.h -> wasm include"
This reverts commit 9d18a7fd55.

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

Original change's description:
> [iwyu] Remove sfi-inl.h -> wasm include
> 
> This significantly reduces the build time when modifying wasm
> files: before touching all wasm headers required 684 steps to
> rebuild, now it's 216.
> 
> BUG=v8:7754,v8:7490
> 
> Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2
> Reviewed-on: https://chromium-review.googlesource.com/1145264
> Commit-Queue: Marja Hölttä <marja@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54681}

TBR=ulan@chromium.org,marja@chromium.org,titzer@chromium.org,jgruber@chromium.org,clemensh@chromium.org,tebbi@chromium.org,bmeurer@chromium.org,verwaest@chromium.org

Change-Id: I3b4087916f65b16db75974dba58914c8ea377a08
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7754, v8:7490
Reviewed-on: https://chromium-review.googlesource.com/1149920
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54683}
2018-07-25 09:23:26 +00:00
Benedikt Meurer
8ba8a139eb [ic] Remember the receiver map in PREMONOMORPHIC state.
When going to PREMONOMORPHIC state we previously stored the
premonomorphic sentinel into the first IC slot and then the
second slot was storing the uninitialized sentinel. So when
TurboFan kicked in and optimized the function we'd just put
a LOAD_IC in there and hoped for the best that this is either
not in hot code or will reoptimize for another reason later
to fixup the LOAD_IC.

This is a quite annoying footgun for developers because the
performance inevitably depends on timing of when the optimizing
compiler kicks in.

To fix this issue we now keep a weak reference to the receiver
map in the second slot of the IC in PREMONOMORPHIC state and
use that to speculatively optimize when we go to TurboFan. This
improves the performance on the reported bug from

  spread: 2342 ms.
  spread: 2352 ms.
  spread: 2339 ms.

to

  spread: 1490 ms.
  spread: 1451 ms.
  spread: 1445 ms.

which corresponds to a 36% improvement in this particular case.
In general you'll get more predictable performance with this
change.

We might want to also use the map when going to MONOMORPHIC
state at a later point to maybe skip the additional transition
to POLYMORPHIC in some cases, but that's independent of this
bug.

Bug: v8:5267, v8:7973
Change-Id: Ia4eef7651e219a40927531cdffe320ade1dd19a4
Reviewed-on: https://chromium-review.googlesource.com/1148205
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54682}
2018-07-25 09:18:54 +00:00
Marja Hölttä
9d18a7fd55 [iwyu] Remove sfi-inl.h -> wasm include
This significantly reduces the build time when modifying wasm
files: before touching all wasm headers required 684 steps to
rebuild, now it's 216.

BUG=v8:7754,v8:7490

Change-Id: Id7ff6f9063168556daad4840ee614cf68144cdb2
Reviewed-on: https://chromium-review.googlesource.com/1145264
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54681}
2018-07-25 09:07:14 +00:00
Florian Sattler
e67f89b53d [scanner] Faster SkipMultiLineComment by avoiding a copy.
Avoid copying the last character to a local variable, by checking the parsing
state in a different order.

BUG=v8:7926

Change-Id: Ifb722dd3864737dc66d8e0885adbeba1376a059e
Reviewed-on: https://chromium-review.googlesource.com/1148569
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Florian Sattler <sattlerf@google.com>
Cr-Commit-Position: refs/heads/master@{#54680}
2018-07-25 08:52:44 +00:00
Clemens Hammacher
ad55d88803 [wasm] Generate a more serial effect chain
Put all loads on the effect chain. This removes freedom of the
scheduler, which might regress performance of the generated code
(probably negligible) and might improve performance of code generation.
It also prevents hard to diagnose bugs where the scheduler might
schedule loads too early such that we miss an update during a function
call or gc.

In order to make all updates and uses of the "current control" and
"current effect" more visible, this CL also introduces {SetEffect} and
{SetControl} methods, and uses {Effect} and {Control} more rigorously.

R=mstarzinger@chromium.org

Change-Id: I917ce1775345a1fadf6166022c8848e36e195c56
Reviewed-on: https://chromium-review.googlesource.com/1129235
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54679}
2018-07-25 08:42:04 +00:00
Michael Starzinger
4d921281e9 [wasm] Introduce --wasm-shared-engine flag.
This flag allows to share a single WasmEngine among all Isolates within
the same process. It will ultimately allow to share the WasmCode objects
associated with modules that are transferred via structured cloning.

R=clemensh@chromium.org
TEST=mjsunit/wasm/worker-module
BUG=v8:7424

Change-Id: I70d852d319b2a80bd02e0a2a838dcdfa071df6e1
Reviewed-on: https://chromium-review.googlesource.com/1138213
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54678}
2018-07-25 08:17:24 +00:00
Peter Marshall
1465c36d85 [cleanup] Fix the includes for some more files
Change-Id: I87b141d44706fedf7821c266c6207564fd77a9b6
Reviewed-on: https://chromium-review.googlesource.com/1148577
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54677}
2018-07-25 08:11:14 +00:00
Clemens Hammacher
81f12eee5c [iwyu] Fix includes in double.h
Drive-by: Convert const to constexpr.

R=titzer@chromium.org

Bug: v8:7965
Change-Id: Ifddfba78e819a0d340fba27a6efedea654b057e8
Reviewed-on: https://chromium-review.googlesource.com/1148722
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54676}
2018-07-25 07:57:55 +00:00
Sathya Gunasekaran
0af7b0d6ea [Intl] Clean up error handling
- Return empty handles instead of exceptions.
- Handlify functions instead of returning raw pointers.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I28b018e5bdcaa375748eb04e9a6fed8cf64a5b05
Reviewed-on: https://chromium-review.googlesource.com/1148301
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54675}
2018-07-25 07:45:04 +00:00
Sigurd Schneider
021d814021 [cleanup] Remove uses of deprecated StackTrace::GetFrame
Change-Id: I75877bbdefab35c54b6293835e26222b78c69684
Reviewed-on: https://chromium-review.googlesource.com/1148447
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54674}
2018-07-25 06:36:25 +00:00
Frank Tang
7552efaa18 [Intl] Intl.ListFromat - add resolvedOptions().
Spec: http://tc39.github.io/proposal-intl-list-format/
Design Doc:  go/add-intl.listformat-to-v8

Test: intl/list-format/*

R=gsathya@chromium.org, mvstanton@chromium.org

Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I87cd84e0cabdf90adaa1486dccd9d2bee14e261d
Reviewed-on: https://chromium-review.googlesource.com/1126179
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54673}
2018-07-25 05:25:44 +00:00
Sathya Gunasekaran
770eafd4f6 Reland "[Intl] Fix legacy error handling"
This is a reland of 1f5ab93600

Tests started passing before this was reverted so this isn't
culprit.

Original change's description:
> [Intl] Fix legacy error handling
>
> Bug: v8:5751
> Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
> Change-Id: I382404f4c59c1e997ea0fb58f3a995b653c0d6bc
> Reviewed-on: https://chromium-review.googlesource.com/1148031
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54625}

TBR: jgruber@chromium.org
Bug: v8:5751
Change-Id: I546b10e5cbbbac3aa947ca55cea1f7cc4ae77270
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1148660
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54672}
2018-07-25 05:10:24 +00:00
v8-ci-autoroll-builder
f320738fa8 Update V8 DEPS.
Rolling v8/build: d1e53db..2c97c10

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/6a1002b..6cf86b3

Rolling v8/third_party/depot_tools: 6ec6d27..01ce059

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

Change-Id: Ib6daaa1c1ac5e2ba4bf66d9f1b7df080c6f5c563
Reviewed-on: https://chromium-review.googlesource.com/1149511
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#54671}
2018-07-25 03:47:54 +00:00
Ross Mcilroy
38fbddbf39 [cleanup] Disable deprecation warnings on calls to Mark/IsIndependent.
Mark/IsIndependent is marked V8_DEPRECATE_SOON, but is still needed in some
places. In order to allow us to warn on V8_DEPRECATE_SOON within V8, explicity
disable deprecation warnings on these calls temporarily.

BUG=v8:7754

Change-Id: I0a7f3aedc04412c120217ba83d2cf91aafff568d
Reviewed-on: https://chromium-review.googlesource.com/1147751
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54670}
2018-07-24 23:27:43 +00:00
Frank Tang
1ae4d38cf3 Use bit fields for Intl.ListFormat internal values
Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I466d0d2fc7ad61924e3e7e519307281c01873166
Reviewed-on: https://chromium-review.googlesource.com/1142380
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54669}
2018-07-24 22:21:53 +00:00
Frank Tang
ac8b5b919e [Intl] Implement Intl.ListFormat constructor
Spec: http://tc39.github.io/proposal-intl-list-format/

Design Doc:  go/add-intl.listformat-to-v8

Test: intl/list-format/*

R=gsathya@chromium.org, mvstanton@chromium.org

Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0dfb91b7806007e4f02f3b0438c30528c8143081
Reviewed-on: https://chromium-review.googlesource.com/1124343
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Daniel Ehrenberg <littledan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54668}
2018-07-24 21:50:13 +00:00
Clemens Hammacher
58b98c0e98 [arm] Fix status line to skip flaky test
TBR=mstarzinger@chromium.org

No-Try: true
Bug: v8:7976
Change-Id: I12585016afbf86e3d50bacb45a57ab20b6be72ff
Reviewed-on: https://chromium-review.googlesource.com/1148728
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54667}
2018-07-24 20:41:52 +00:00
Frank Tang
0b42d61dae [Intl] Move AvailableLocalesOf, DefaultLocale to Intl
Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I0661d6503b66e71de56bdc37e22ef45ef77c0806
Reviewed-on: https://chromium-review.googlesource.com/1141351
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54666}
2018-07-24 20:39:33 +00:00
Peter Marshall
d2abbc138e [cleanup] Fix header includes for js-array-inl.h
Change-Id: Ib0a047c0e02b3feaf878af2ec87d5d0f35167280
Reviewed-on: https://chromium-review.googlesource.com/1148561
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54665}
2018-07-24 18:56:35 +00:00
Clemens Hammacher
be664ceeb0 Skip new test that crashes flakily on native arm
TBR=mstarzinger@chromium.org

No-Try: true
Bug: v8:7977
Change-Id: Idcf88b884a7ad904243f0046aa0bbef118fb19ad
Reviewed-on: https://chromium-review.googlesource.com/1148576
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54664}
2018-07-24 17:57:25 +00:00
Bill Budge
381fc4fe78 [arm] Eliminate old form of core-scalar vmov instructions.
- Eliminates less general forms of vmov between core and scalar
  FP registers.

Bug: v8:7754
Change-Id: I3224c57e03dfd64ea6552b215017dacc357dda26
Reviewed-on: https://chromium-review.googlesource.com/1144126
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54663}
2018-07-24 17:39:24 +00:00
Deepti Gandluri
7d7b61201f [int64-lowering] Cleanup use of projections
Bug:v8:7754

Change-Id: I76bc28f4868da452278bc8fc174b462bb26034f1
Reviewed-on: https://chromium-review.googlesource.com/1148592
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54662}
2018-07-24 17:37:04 +00:00
Clemens Hammacher
ce3a402d0e [iwyu][wasm] Fix IWYU violations
R=titzer@chromium.org

Bug: v8:7965
Change-Id: I5e44e8a4dd522703e7a20e32abae1f66ba44451e
Reviewed-on: https://chromium-review.googlesource.com/1148566
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54661}
2018-07-24 17:32:34 +00:00