Commit Graph

49995 Commits

Author SHA1 Message Date
Michael Achenbach
6206a3e362 [test] Share resource-fetching logic with all d8 test cases
This shares logic for finding additional resources in JS source code.
Previously the logic was implemented for mjsunit, now it will be used
across all d8-based test cases.

This'll enable adding those test suites for Android testing.

Bug: chromium:866862
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I7c89ba141483aaf692a03c0e168edb61bbb7b010
Reviewed-on: https://chromium-review.googlesource.com/1193873
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55503}
2018-08-29 17:51:43 +00:00
Frank Tang
f0633200bd [Intl] add supportedLocales for Intl.ListFormat
Bug: v8:7871
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Icabd067f4074169230f21a574aedecf30c5049e4
Reviewed-on: https://chromium-review.googlesource.com/1195077
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55502}
2018-08-29 17:13:36 +00:00
Ujjwal Sharma
6b66bebad7 [intl] Port V8BreakIterator.prototype.breakType to C++
This increases the size of a V8BreakIterator instance by a word to store
the breakType function.

The instance to be bound is stored on the context of this builtin function.
This CL removes the AddBoundMethod helper from intl.js

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I4e4df2632990300b91eafda680d414e0b373825b
Reviewed-on: https://chromium-review.googlesource.com/1194803
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55501}
2018-08-29 16:22:30 +00:00
Toon Verwaest
3283875676 [parser] Restore trivial expression grammar shortcuts with range-based condition
Change-Id: I04385d44f6175f7b391fb07ec4f1beb9abd4d22f
Reviewed-on: https://chromium-review.googlesource.com/1194033
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55500}
2018-08-29 16:21:10 +00:00
Deepti Gandluri
9a0f254687 [compiler] Remove AtomicNarrow machine operators, macroize tests
The AtomicNarrow operations are currently used for wider 64-bit
operations, that only operate on 32-bits of data or less
(Ex:I64AtomicAdd8U). Removing these because this can be handled
in int64-lowering by zeroing the higher order node.
Explicitly zeroing these in code-gen is not
required because -

 - The spec requires only the data exchange to be atomic, for narrow
   ops this uses only the low word.
 - The return values are not in memory, so are not visible to other
   workers/threads

BUG:v8:6532

Change-Id: I90a795ab6c21c70cb096f59a137de653c9c6a178
Reviewed-on: https://chromium-review.googlesource.com/1194428
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55499}
2018-08-29 16:11:48 +00:00
Toon Verwaest
0697fe8469 [utils] Templatize IsInRange so it can be specialized types other than int
Change-Id: I2d67f93f10ab07c3725cc1a799f9a74f4850b34e
Reviewed-on: https://chromium-review.googlesource.com/1194230
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55498}
2018-08-29 15:59:00 +00:00
Toon Verwaest
19a8f1ba06 [scanner] Use AdvanceUntil in SkipWhiteSpace
Change-Id: I4a578589290e91da2eae4cef8f936e6c888e177c
Reviewed-on: https://chromium-review.googlesource.com/1194015
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55497}
2018-08-29 15:25:34 +00:00
Hai Dang
0c6c2235be Remove slow ArrayLiteralInitialSpread benchmarks to avoid timeout.
Cloning arrays with Array.prototype.map and for-of push is too slow
for large arrays.

Bug: chromium:878681
Change-Id: I70ba5faad9e19cdc5a39cc64fb1b4bcb3fd0bf48
Reviewed-on: https://chromium-review.googlesource.com/1195363
Commit-Queue: Hai Dang <dhai@google.com>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55496}
2018-08-29 14:50:59 +00:00
jgruber
d13e9c692e [ia32] Unalias kRootRegister in IC, Construct and ArgumentsAdaptor descriptors
This replaces ebx usage in several more interface descriptors.

- IC descriptors already passed most arguments on the stack (updated
  their Register accessors to reflect that).
- The allocation site argument appears to be unused in the
  ConstructStub descriptor. It can probably be removed in a follow-up.

Drive-by: Rename ArgumentAdaptorDescriptor to
ArgumentsAdaptorDescriptor to match the builtin name.

Bug: v8:6666
Change-Id: I4cdf1775a5b4b74491d6d303c49a8af9b6cd3c03
Reviewed-on: https://chromium-review.googlesource.com/1195367
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55495}
2018-08-29 14:35:12 +00:00
Toon Verwaest
dd6290d189 [token] Make sure we can simply range-check IsAnyIdentifier
This CL additionally uses IsInRange for token range checks. That only uses one
branch rather than two.

Change-Id: I52c6759ba195b55cb50c2ce9afbdc9b397495633
Reviewed-on: https://chromium-review.googlesource.com/1193875
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55494}
2018-08-29 14:28:34 +00:00
Toon Verwaest
1a8f24d84b [scanner] Only find newlines in whitespace once
Change-Id: I14fd9d439db70cc37b8a57a8bc13e09877c513ee
Reviewed-on: https://chromium-review.googlesource.com/1195369
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55493}
2018-08-29 14:24:14 +00:00
Toon Verwaest
e5cf8e3772 [scanner] Don't muck with positions of EOS in Next
They are properly initialized upon creation.

Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I10ac441580bf957e97ce663c9c3ad268ddeae935
Reviewed-on: https://chromium-review.googlesource.com/1188573
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55492}
2018-08-29 14:08:41 +00:00
Jakob Kummerow
9d493179d8 [bigint] Fix NoSideEffectsToString for 32-bit platforms
On 32-bit platforms, String::kMaxLength is such that not all BigInts
can be converted to Strings. NoSideEffectsToString, however, used to
assume that this conversion always succeeds. This patch adds a check
for the failure case, and returns "<a very large BigInt>" instead of
crashing.
This change is practically unobservable, because actually formatting
such a huge BigInt to String would take "forever", which is also why
there is no regression test.

Bug: chromium:876628
Change-Id: I1eacdc1cce753ac5d9ca66e61e479043ab576e07
Reviewed-on: https://chromium-review.googlesource.com/1194004
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55491}
2018-08-29 13:45:28 +00:00
jgruber
c85128fdb4 [ia32] Unalias kRootRegister in LoadWithVector and LoadGlobalWithVector
In preparation for kRootRegister support on ia32.

LoadWithVector now passes the vector on the stack.
LoadGlobalWithVector is able to reuse edx (used as ReceiverRegister in
LoadWithVector).

Drive-by: Aliasing DCHECKs and updated unused Register accessors.

Bug: v8:6666
Change-Id: If0e93d22c3c11f764bc0805c3e6a51654cdcc5f9
Reviewed-on: https://chromium-review.googlesource.com/1193891
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55490}
2018-08-29 13:40:24 +00:00
jgruber
97a0f14317 [ia32] Unalias kRootRegister in misc. descriptors
In preparation for kRootRegister support on ia32.

Updated: GrowArrayElements, Typeof, ConstructWithArrayLike.

Bug: v8:6666
Change-Id: I05c3f752948ecc714c0ef16a2c540b26d89628ce
Reviewed-on: https://chromium-review.googlesource.com/1195462
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55489}
2018-08-29 13:31:36 +00:00
Michael Starzinger
edeac29171 [wasm] Brush up unittests for kExprThrow.
R=titzer@chromium.org
TEST=unittests/FunctionBodyDecoderTest
BUG=v8:8091

Change-Id: Iad8d0dbc193c8e2f1f6359632fb2dbad28c154e2
Reviewed-on: https://chromium-review.googlesource.com/1195368
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55488}
2018-08-29 13:28:26 +00:00
Rodrigo Bruno
263174af75 [heap] Fixed typo in method name.
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Id2b474917ffd711ed30b9ae5f25ec86e13b140b5
Reviewed-on: https://chromium-review.googlesource.com/1193876
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Cr-Commit-Position: refs/heads/master@{#55487}
2018-08-29 12:11:45 +00:00
Andreas Haas
b477a6d5d8 [wasm] Move ThreadInWasmScope out of trap-handler.h
{ThreadInWasmScope} in only used in a single location, which is in a
test. It does not look like many more such places will show up.

R=titzer@chromium.org,

Bug: v8:8015
Change-Id: I89f6f7e2bd13e2882e65f7657d73ba59a6c71757
Reviewed-on: https://chromium-review.googlesource.com/1193446
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55486}
2018-08-29 11:26:25 +00:00
Andreas Haas
f738bb246e [wasm][cleanup] Remove kV8MaxPages from wasm-constants.js
It is better not to have V8-specific constants in mjsunit.js because it
also has V8-independent uses, e.g. in the spec tests.

R=gdeepti@chromium.org

Bug: v8:8015
Change-Id: I3b576f093f639c13e673cbd0bd5305c8101d7281
Reviewed-on: https://chromium-review.googlesource.com/1192843
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55485}
2018-08-29 11:16:03 +00:00
Sigurd Schneider
452d8a3a82 [ia32] Change descriptor of frame dropper trampoline
This changes the interface descriptor for the frame dropper trampoline
to not use the kRootRegister (ebx) anymore.

Change-Id: I15df6af57f70d8aeea6c97298b437ad96af19cd4
Bug: v8:6666
Reviewed-on: https://chromium-review.googlesource.com/1193242
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55484}
2018-08-29 10:41:43 +00:00
Michael Starzinger
c3baf49f24 [wasm] Fix missing exceptional projections from calls.
This makes sure that direct and indirect calls get proper {IfException}
projections attached to them if they appear within a try-block. It also
re-enables most of the corresponding test cases for this.

R=ahaas@chromium.org
TEST=mjsunit/wasm/exceptions
BUG=v8:8091

Change-Id: I111634759651ed47f76850e80c8754751310001b
Reviewed-on: https://chromium-review.googlesource.com/1195365
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55483}
2018-08-29 09:53:32 +00:00
Maya Lekova
6a7872b7b8 [turbofan] Introduce a CheckStringAdd node instead of cons string lowering
The new node is introduced for literal string addition and calling
String.prototype.concat in the typed lowering phase. It later might get optimized
away during redundancy elimination, keeping the performance of already existing
benchmarks with string addition. In case the operation is about to throw
(due to too long string being constructed) we just deoptimize, reusing
the interpreter logic for creating the error.

Modify relevant mjsunit and unit tests for string concatenation.

Bug: v8:7902
Change-Id: Ie97d39534df4480fa8d4fe3ba276d02ed5e750e3
Reviewed-on: https://chromium-review.googlesource.com/1193342
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55482}
2018-08-29 09:34:26 +00:00
Frank Tang
a279e23ff8 [Intl] Create a JSDateTimeFormat and move ResolvedOptions under it.
Bug: v8:8066

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I5511b6b9272804ebbb61bf2127a2ad51bfc70e28
Reviewed-on: https://chromium-review.googlesource.com/1179319
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55481}
2018-08-29 09:01:31 +00:00
Rodrigo Bruno
38cbc26a75 [d8] Fixed external gc test (limit multiplied by number of isolates).
Bug: v8:8108
Change-Id: Iaa388e53f99c827c4bcf5177f1a9e26097f07f11
Reviewed-on: https://chromium-review.googlesource.com/1195362
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Cr-Commit-Position: refs/heads/master@{#55480}
2018-08-29 08:58:58 +00:00
Ben L. Titzer
398242f582 [flags] s/wasm_trace/trace_wasm/g in flags
This CL makes the names of tracing flags related to WASM consistent
with the rest of V8 tracing flags.

R=ahaas@chromium.org

Change-Id: I871fb7b5e27ff7b8f587e08507d15c0719881990
Reviewed-on: https://chromium-review.googlesource.com/1193182
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55479}
2018-08-29 08:49:09 +00:00
Toon Verwaest
103d886a7e [scanner] Revert to pointer tracking token storage rather than range
Using a circular buffer regresses performance unfortunately.

Change-Id: Id5b68cae798d21f46376141f86d5707794bf08d6
Reviewed-on: https://chromium-review.googlesource.com/1194064
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55478}
2018-08-29 08:30:39 +00:00
Sigurd Schneider
0bceaf1e7c [ia32] Use one scratch register in StackOverflowCheck
This CL removed the 2nd scratch register from StackOverflowCheck
on ia32 and lower register pressure at use sites. This will make
it easier to preserve the kRootRegister (ebx) in future CLs.

Bug: v8:6666
Change-Id: I225ffdf155a4547fcec02a033638da094995f181
Reviewed-on: https://chromium-review.googlesource.com/1194122
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55477}
2018-08-29 08:27:38 +00:00
Jaroslav Sevcik
bb1a232c63 [turbofan] Serialize JSRegExp boilerplate
Bug: v8:7790
Change-Id: I1e49ae883456d0a13bd19042d2649fb603612d04
Reviewed-on: https://chromium-review.googlesource.com/1189622
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55476}
2018-08-29 07:32:36 +00:00
Jaroslav Sevcik
0c91732712 [turbofan] Serialize JSObject boilerplates for create lowering.
Adds recursive serialization of boilerplate JSObjects. It also hooks up
serialization of FixedArrays (shallow copy of all elements).

Bug: v8:7790
Change-Id: I458133961918617ab7bdae8d14712a4e5a7d9cb5
Reviewed-on: https://chromium-review.googlesource.com/1188903
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55475}
2018-08-29 07:25:50 +00:00
Ulan Degenbaev
ffcee2d671 [heap-profiler] Make WeakMap => key value weak in heap snapshot.
Bug: chromium:875041
Change-Id: I4008fa2f7d92a0f2005c7566eb2945a800a9d284
Reviewed-on: https://chromium-review.googlesource.com/1190862
Commit-Queue: Alexei Filippov <alph@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55474}
2018-08-29 01:58:38 +00:00
Wez
02173853da Migrate VMAR calls to temporary _old() API variants.
The VMAR syscall signatures are being updated, so migrate to the
temporarily-provided *_old() variants, in advance of the Fuchsia SDK
roll that updates the real APIs.

TBR: hpayer
Change-Id: I10da4df97b122262de04a2417bd91b921f3a63d5
Reviewed-on: https://chromium-review.googlesource.com/1194429
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55473}
2018-08-28 22:00:14 +00:00
Sathya Gunasekaran
ed42a71d5c test262 roll
Bug: v8:7834
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ieab3529ce40a2c01c18f7fade10ec8b437173aa9
Reviewed-on: https://chromium-review.googlesource.com/1194424
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55472}
2018-08-28 21:18:23 +00:00
Ujjwal Sharma
b56e299d58 [intl] Port V8BreakIterator.prototype.current to C++
This increases the size of a V8BreakIterator instance by a word to store
the current function.

The instance to be bound is stored on the context of this builtin function.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I1bdf3d3cd9db5ab16abb644b33b44705ca58684e
Reviewed-on: https://chromium-review.googlesource.com/1194802
Commit-Queue: Ujjwal Sharma <usharma1998@gmail.com>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55471}
2018-08-28 20:50:51 +00:00
Hannes Payer
067afa54cf [heap] Reland: Reuse object evacuation information for slot recording in Scavenger.
This reverts commit d6de4af573.

Bug: chromium:852420
Change-Id: Ife02a0e47ddb4a136c552965d9e01c6a0ef18e02
Reviewed-on: https://chromium-review.googlesource.com/1194363
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55470}
2018-08-28 18:47:00 +00:00
Junliang Yan
4b0f5711ec PPC: fix DCHECK failure on reg aliasing
Change-Id: I2df302a4bed3775dfdf15cc3d1797c50229cc997
Reviewed-on: https://chromium-review.googlesource.com/1194582
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#55469}
2018-08-28 17:54:44 +00:00
Michael Achenbach
d6de4af573 Revert "[heap] Reland: Reuse object evacuation information for slot recording in Scavenger."
This reverts commit 0d66b4d85e.

Reason for revert:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20TSAN/22200

Original change's description:
> [heap] Reland: Reuse object evacuation information for slot recording in Scavenger.
> 
> This reverts commit 136ecbb9bf.
> 
> Bug: chromium:852420
> Change-Id: I4fab9d6ed7b18085352fa7488c2849b90588deaf
> Reviewed-on: https://chromium-review.googlesource.com/1189802
> Commit-Queue: Hannes Payer <hpayer@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55467}

TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org

Change-Id: I03991a02eb5e06e7db91f88462232dde4bd97f49
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:852420
Reviewed-on: https://chromium-review.googlesource.com/1194005
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55468}
2018-08-28 17:51:15 +00:00
Hannes Payer
0d66b4d85e [heap] Reland: Reuse object evacuation information for slot recording in Scavenger.
This reverts commit 136ecbb9bf.

Bug: chromium:852420
Change-Id: I4fab9d6ed7b18085352fa7488c2849b90588deaf
Reviewed-on: https://chromium-review.googlesource.com/1189802
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55467}
2018-08-28 15:44:28 +00:00
Toon Verwaest
6010a0cc1a [parser] Tentatively remove grammar shortcuts for trivial expressions
To avoid recursion cost we now more aggressively inline. The many added
branches for this shortcut to work can easily hurt performance as well. Let's
try to remove and see what performance looks like nowadays.

Change-Id: I93e2d57ebebd6adde836f54ac629cc67dd82f143
Reviewed-on: https://chromium-review.googlesource.com/1194062
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55466}
2018-08-28 15:20:38 +00:00
Michael Starzinger
81308aef43 [wasm] Fix race in %SetWasmCompileControls.
This fixes a race with the aforementioned runtime function where the
global map from Isolate to WasmCompileControls was accessed without
proper synchronization. These are reported by "TSAN isolates".

R=sigurds@chromium.org
TEST=mjsunit/wasm/compilation-limits

Change-Id: Iaeea7f54cbb5051ca0ca97d75543e38ab9f9addc
Reviewed-on: https://chromium-review.googlesource.com/1193243
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55465}
2018-08-28 15:13:56 +00:00
Peter Marshall
c70ac55281 [tests] Skip regress-852258 on TSAN.
Very large allocations can cause timeouts or crashes on TSAN bots. This
test checks the handling of arrays with length > MaxSmi, so allocates a
very large array. It's unlikely that TSAN will find anything interesting
here that other bots won't catch, so disabling the test.

Bug: v8:8103
Change-Id: I8ea01d418ff088a2b9bd1b1ef938d4f69be1155d
Reviewed-on: https://chromium-review.googlesource.com/1193423
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55464}
2018-08-28 14:30:05 +00:00
Ujjwal Sharma
c8e3846e1f [intl] Port V8BreakIterator.prototype.next to C++
This increases the size of a V8BreakIterator instance by a word to store
the next function.

The instance to be bound is stored on the context of this builtin function.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ibdfabe53c7d0790c1ba44d5de8d1c8fc8de517c9
Reviewed-on: https://chromium-review.googlesource.com/1193502
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55463}
2018-08-28 14:23:30 +00:00
Toon Verwaest
d62ec0d84f [scanner] Separate token scanning from TokenDesc management
Change-Id: I6fe237d4aec3745e993a65ddf31f5fafc3ce175d
Reviewed-on: https://chromium-review.googlesource.com/1193368
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55462}
2018-08-28 14:19:39 +00:00
jgruber
573ed1efd5 [ia32] Unalias kRootRegister in several Call/Construct descriptors
In preparation for kRootRegister support on ia32.

Updated: CallWithSpread, CallWithArrayLike, ConstructWithSpread.

Bug: v8:6666
Change-Id: I41c166aebee99356efa5c175739b2124d5557d58
Reviewed-on: https://chromium-review.googlesource.com/1188563
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55461}
2018-08-28 14:00:20 +00:00
Ross McIlroy
7bd99ccfb4 [Parsing] Fix RCS tracing for deciding if preparsing is tracking variables.
With FLAG_preparser_scope_analysis enabled we now always track
unresolved variables in the preparser. Fix the logic for deciding on
the correct RCS tracing category to be based on what the preparser does.

Change-Id: If691d51e6a2c09e554e4d96c10c37060cc7cca96
Reviewed-on: https://chromium-review.googlesource.com/1193303
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55460}
2018-08-28 13:16:39 +00:00
Ujjwal Sharma
38e7b9b875 [intl] Port V8BreakIterator.prototype.first to C++
This increases the size of a V8BreakIterator instance by a word to store
the first function.

The instance to be bound is stored on the context of this builtin function.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ib1e8cb8353d0885e0d9bcfdc5fe558c1de0a0738
Reviewed-on: https://chromium-review.googlesource.com/1192823
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55459}
2018-08-28 13:14:49 +00:00
jgruber
988d703f23 [ia32] Unalias kRootRegister in Call/ConstructVarargs
These two builtins are a special case in that their calling convention
must be kept in-sync since they are both generated from
Generate_CallOrConstructVarargs.

ConstructVarargs in particular used all available registers. In order
to free ebx, the calling convention is changed to pass the last
argument on the stack.

As part of this change, the order of the last two arguments is swapped
since the stack parameter must be tagged.

Bug: v8:6666
Change-Id: If1ad14fc09693c36dd63ffebb6f34fcd3f012896
Reviewed-on: https://chromium-review.googlesource.com/1193444
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55458}
2018-08-28 13:04:24 +00:00
Michael Starzinger
dd40b33371 [wasm] Fix crash during exception stack unwinding.
This fixes a crash with a predicate used during stack unwinding of
WebAssembly frames during exception handling. The predicate caused an
observable side-effect in JavaScript during unwinding, code that is
inherently unhandlified and is not allowed to be observable.

The fix actually just removes the entire predicate. This is because the
updated proposal causes all JavaScript exceptions to participate in
WebAssembly exception handling, allowing modelling of "finally" language
constructs to perform cleanup independent of the embedders exception
details.

R=ahaas@chromium.org
TEST=mjsunit/regress/wasm/regress-8095
BUG=v8:8095

Change-Id: Ic03bc45e7b7f4562a431ccf910ee9ddcf558aa48
Reviewed-on: https://chromium-review.googlesource.com/1193445
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55457}
2018-08-28 13:02:44 +00:00
Ross McIlroy
e36b49bdb7 Reland "[RCS] Create thread local runtime call stats tables for worker threads"
This is a reland of 1e5b6d99f4

Original change's description:
> [RCS] Create thread local runtime call stats tables for worker threads
>
> Creating a runtime call stats table for each worker thread task is expensive.
> Instead we create a single table per thread, and use TLS to get the correct one
> when starting a worker thread task.
>
> In order to correctly initialize the parser, scanner and parse-info's runtime
> call stats fields, we move creation of the scanner and parser onto the
> background tasks for BackgroundCompileTask and UnoptimizedCompilationJob.
>
> Change-Id: I36064c7fb43290968620b1985cc02637b16f4232
> Reviewed-on: https://chromium-review.googlesource.com/1187522
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55448}

TBR=verwaest@chromium.org

Change-Id: I7c2f48280651d7632d99ee22d86260c72bc16185
Reviewed-on: https://chromium-review.googlesource.com/1193463
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55456}
2018-08-28 13:01:14 +00:00
Creddy
68f8e4a16b Disable one-shot optimizations by default
There was preformance regression with one-shot optimizations (
https://bugs.chromium.org/p/chromium/issues/detail?id=876839#c4).
Disable the one shot optimizations by default until the regrssion is fixed.

Change-Id: I031ac2e0151e06fb2116f417ad3d9a3d04da16ac
Reviewed-on: https://chromium-review.googlesource.com/1189823
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Cr-Commit-Position: refs/heads/master@{#55455}
2018-08-28 12:49:10 +00:00
Rodrigo Bruno
eb164dbd00 Reland "[heap] Attempt to incorporate backing store counters into heap sizing and GC trigger stragery."
This is a reland of ba735dde20

Original change's description:
> [heap] Attempt to incorporate backing store counters into heap sizing and GC trigger stragery.
> 
> Bug: chromium:845409
> Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
> Change-Id: Ic62a4339110e3dd2a6b1961a246e2bee0c07c03b
> Reviewed-on: https://chromium-review.googlesource.com/1160162
> Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55128}

Bug: chromium:845409
Change-Id: Iaff177f7bebbc073460fab0ae4e5cd9e632e1921
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1177301
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Cr-Commit-Position: refs/heads/master@{#55454}
2018-08-28 12:41:53 +00:00