Commit Graph

49933 Commits

Author SHA1 Message Date
Jaroslav Sevcik
8e0feb6819 [turbofan] Serialization of heap numbers
Bug: v8:7790
Change-Id: I9642f37f3dae3f9c07661ddca1a981e223148e49
Reviewed-on: https://chromium-review.googlesource.com/1192842
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55441}
2018-08-28 08:57:43 +00:00
Maya Lekova
f96053fc4f [csa] Remove redundant context parameter from NewConsString
This change allows passing no context to NewConsString,
since it's not used anyway.

Change-Id: I125e1dca90ff1b8d1c8695d5b688e8ff4e075044
Reviewed-on: https://chromium-review.googlesource.com/1190602
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55440}
2018-08-28 08:55:03 +00:00
Lei Zhang
32af1d0ebb Use absolute paths in Android section in tools/BUILD.gn.
In the logic to run tests on Android, the path is currently relative.
This only works when V8 is standalone. When V8 is checkout in another
project, the path is wrong. The build_with_chromium check only helps
with Chromium, but there are other V8 embedders.

Change-Id: I52640a664deb39e5959ed3cc9dc79fd7b6d68758
Reviewed-on: https://chromium-review.googlesource.com/1189096
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55439}
2018-08-28 08:23:38 +00:00
Junliang Yan
b8a5ae4749 PPC/s390: skip I64Atomic test on ppc/s390
Change-Id: I14a3a1d1da983528601fcd595d7e9ea820ae9d12
Reviewed-on: https://chromium-review.googlesource.com/1191822
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#55438}
2018-08-28 04:47:04 +00:00
Sathya Gunasekaran
59c03fef01 [Intl] Correctly pass usage option to Collator
The spec specifies that search and standard can not be valid values
for the collation extension keyword. Instead users are expected to use
the options bag to set the correct usage options.

But, ICU expects the usage option to be set through the collation
extension value.

In this patch, we set the usage option using the collation extension
value in ICU. For resolvedOptions, we filter out this extension value
using ICU to be spec compatible.

Previously, we stored the usage option on the JSCollator instance. But
this patch changes the logic to just look it up from the icu::Collator
when required. This saves one word of memory.

This fails a test262 that was incorrectly fixed. A follow on patch
will fix the test262 test.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I8c66c6286287e686f4cd152fa1301f9d51c38654
Reviewed-on: https://chromium-review.googlesource.com/1180488
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55437}
2018-08-27 23:31:24 +00:00
Frank Tang
812c0acd9a [Intl] Move LookupUnicodeExtensions to Intl
Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I67e15208bc2954957275e3283eb746c1c12f10f0
Reviewed-on: https://chromium-review.googlesource.com/1191362
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55436}
2018-08-27 20:35:58 +00:00
Junliang Yan
1113edd32a Revert "PPC64/s390x: move smi to lower 32-bit"
This reverts commit b8705eb651.

Reason for revert: bf1e47e6ff is reverted.

Original change's description:
> PPC64/s390x: move smi to lower 32-bit
> 
> Change-Id: Id203bb297547002a41e18d621b59ce4237f88e5a
> Reviewed-on: https://chromium-review.googlesource.com/1183976
> Reviewed-by: Muntasir Mallick <mmallick@ca.ibm.com>
> Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
> Cr-Commit-Position: refs/heads/master@{#55320}

TBR=jyan@ca.ibm.com,joransiu@ca.ibm.com,mmallick@ca.ibm.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ied4e7b0cd0659b5429906d1d90c91397fa268416
Reviewed-on: https://chromium-review.googlesource.com/1191162
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#55435}
2018-08-27 18:36:25 +00:00
Brian Stell
6b3fde4270 Replace the JS version of supportedLocalesOf with the C++ version.
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I5f6adec8857398f82598295e86d2559c96363647

Bug: v8:7955, v8:7869, v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I5f6adec8857398f82598295e86d2559c96363647
Reviewed-on: https://chromium-review.googlesource.com/1184046
Commit-Queue: Brian Stell <bstell@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55434}
2018-08-27 17:44:49 +00:00
Toon Verwaest
9563acd3bb [parser] Simplify ExpectSemicolon
Change-Id: I1551da2cbd5cbd6e0cdf86837a01c84217a648b6
Reviewed-on: https://chromium-review.googlesource.com/1190783
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55433}
2018-08-27 17:29:18 +00:00
Benoît Lizé
aab50a3124 Rename ShortExternalString to UncachedExternalString.
"short" external strings are not short, they mean that the external data
pointer is not cached. Rename the various classes and objects to align
with the actual meaning.

Bug: chromium:877044
Change-Id: Ie3d5baa9ad352ac6ca89f5ba1d066760825e4beb
Reviewed-on: https://chromium-review.googlesource.com/1185192
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55432}
2018-08-27 16:54:03 +00:00
Toon Verwaest
e02a7abb3f [scanner] Make location accessors return const & locations
Change-Id: I254c2d911af5f389a68dd0f349d5a27a4a8cca54
Reviewed-on: https://chromium-review.googlesource.com/1190742
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55431}
2018-08-27 16:13:21 +00:00
Michael Achenbach
15505a1b29 [release] Fix branch creator after private CLs were disabled
TBR=mslekova@chromium.org
NOTRY=true

Bug: chromium:877964
Change-Id: Ia7ea1094ea339f6e956cb7241f7d35913b7821b2
Reviewed-on: https://chromium-review.googlesource.com/1190502
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55430}
2018-08-27 14:48:15 +00:00
Andreas Haas
a5f627d8ee [wasm] Stop wasm compilation before js compilation in Isolate::Deinit
{Isolate::Deinit} waits for all created
{OptimizingCompiler::CompileTask}s to finish. However, these
CompileTasks run in the background and can be blocked by other tasks
which run in the background, e.g. WebAssembly compilation tasks. With
this CL we stop WebAssembly compilation tasks before we wait for
the {optimizingCompiler:::CompileTask}s.

R=mstarzinger@chromium.org
CC=jarin@chromium.org

Change-Id: I1549c1babdebc2e951aef5e48d0aa8130884fb7d
Reviewed-on: https://chromium-review.googlesource.com/1190302
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55429}
2018-08-27 14:40:15 +00:00
Sergiy Byelozyorov
b3d06b7ef8 [tools] Add dylib files into the list of libraries on Mac
TBR=machenbach@chromium.org

Bug: v8:5918
Change-Id: I6fc16e3c6415246072b7626bdfd13ea0b7ce2dc2
Reviewed-on: https://chromium-review.googlesource.com/1189983
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55428}
2018-08-27 12:34:29 +00:00
Peter Marshall
3727b26570 Revert "[cleanup] Replace ZoneList with ZoneVector for parser reported_errors_"
This reverts commit 133a6815d2.

Reason for revert: Regresses parsing time

Original change's description:
> [cleanup] Replace ZoneList with ZoneVector for parser reported_errors_
> 
> We use a ZoneVector because we do a fair amount of random access e.g.
> in ExpressionClassifier::Accumulate() so the vector is better suited
> than ZoneChunkList as it has constant time random access.
> 
> Bug: v8:6333
> Change-Id: I83e1de60ee8fe319cfa5ce77fc5f5f86beb5307d
> Reviewed-on: https://chromium-review.googlesource.com/1054672
> Reviewed-by: Georg Neis <neis@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55315}

TBR=neis@chromium.org,petermarshall@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:6333
Change-Id: Ib89f0aa1f27b7d6dbbf21af60ed7d1bcd2c0b7d3
Reviewed-on: https://chromium-review.googlesource.com/1189803
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55427}
2018-08-27 10:32:31 +00:00
Bret Sepulveda
43d6814585 Stop cctest/test-log/LogMaps from flaking on Windows.
This patch disables the conditions that cause the test to flake, but
as a band-aid that doesn't fix the underlying issue.

Bug: v8:8084
Change-Id: I46380d0ce4f450c176583330ed760bc3b57b9edc
Reviewed-on: https://chromium-review.googlesource.com/1189822
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55426}
2018-08-27 10:21:22 +00:00
Michael Achenbach
99acd2c191 [CQ] Experimentally add some more chromium trybots
This is for temporarily testing if those bots work as expected on V8 CQ.
They'll be afterwards added only on demand on presubmit for API changes.

NOTRY=true
TBR=delphick@chromium.org

Bug: v8:8058
Change-Id: I841539a899f2987914588b2f84d402e3403bb41e
Reviewed-on: https://chromium-review.googlesource.com/1189942
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55425}
2018-08-27 10:04:23 +00:00
Michael Starzinger
bc08a8624c [wasm] Remove {AsyncCompileJob::module} field.
R=ahaas@chromium.org

Change-Id: I904de575c8c049de64111c12b940c48a50090668
Reviewed-on: https://chromium-review.googlesource.com/1186338
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55424}
2018-08-27 09:49:16 +00:00
Sigurd Schneider
86d3005059 [cctests/assembler-arm64] Rework constant pool test
This CL changes a constant pool test to include tests for the marker
and the encoded pool size.

Change-Id: Ia5cfd173e5d523a02252fd3b14f302e5c8994881
Reviewed-on: https://chromium-review.googlesource.com/1186626
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55423}
2018-08-27 09:08:56 +00:00
Hai Dang
8c171105df Enable warmup and/or longer runs for ArrayLiteralInitialSpread.
With warmup and/or longer runs, the benchmark results are more reliable.
This CL also splits the benchmark into smaller ones for easier management.

Change-Id: Ieba0734bef841d131b3184938109ca179994e173
Reviewed-on: https://chromium-review.googlesource.com/1188572
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Hai Dang <dhai@google.com>
Cr-Commit-Position: refs/heads/master@{#55422}
2018-08-27 08:40:46 +00:00
Ujjwal Sharma
5f225ebbb7 [intl] cleanup FormatDate runtime
https://chromium-review.googlesource.com/c/v8/v8/+/1178763 added
DateTimeFormat.prototype.format to the C++ side of things, removing the
need for the runtime function, but the function wasn't removed.

Bug: v8:5751
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ie73fefb5477dfb7f04a4f8852e086a92332c05fc
Reviewed-on: https://chromium-review.googlesource.com/1189502
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55421}
2018-08-27 05:15:03 +00:00
Sigurd Schneider
24748811d5 [whitespace-cl] Find out if layout test failure is a flake
NOTRY=true
NOTREECHECKS=true

TBR=mslekova@chromium.org

Change-Id: I92373d44389d34e3249757639a9f0c4f1c8ce03f
Reviewed-on: https://chromium-review.googlesource.com/1189362
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55420}
2018-08-26 07:50:07 +00:00
v8-ci-autoroll-builder
8a4980b8bf Update V8 DEPS.
Rolling v8/build: 03bbc87..dd6b994

Rolling v8/third_party/depot_tools: 7b7eb88..2d0e03c

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

Change-Id: I6a9b88a4fe1b419fdca0f57848b680aea861a1e7
Reviewed-on: https://chromium-review.googlesource.com/1189423
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@{#55419}
2018-08-26 03:38:18 +00:00
Ujjwal Sharma
0dc9030439 [intl] Port V8BreakIterator.prototype.adoptText to C++
This increases the size of a V8BreakIterator instance by a word to store
the adopt text 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: I466ead6c8fc9d531d2213cfdd488fa1484496f69
Reviewed-on: https://chromium-review.googlesource.com/1186925
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55418}
2018-08-25 17:05:29 +00:00
v8-ci-autoroll-builder
00afc6ad2d Update V8 DEPS.
Rolling v8/build: f4d0db4..03bbc87

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1e44d06..bc2c0a9

Rolling v8/third_party/proguard: 67ad7bd..a3729be

Rolling v8/tools/clang: b31d680..bb4146f

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

Change-Id: Ic17addf2ee4ca056eae0c741edbe5483c9de8e8a
Reviewed-on: https://chromium-review.googlesource.com/1189092
Reviewed-by: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: V8 Autoroller <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#55417}
2018-08-25 10:00:22 +00:00
Deepti Gandluri
8fe01fea4e [arm] Implement I64Atomic operations on Arm
- Implement all the I64Atomic operations on ARM
 - Change assembler methods to use Registers instead of memory operands
 - Move atomics64 test up be tested on all archs, disable tests on MIPS

BUG:v8:6532

Change-Id: I91bd42fa819f194be15c719266c36230f9c65db8
Reviewed-on: https://chromium-review.googlesource.com/1180211
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55416}
2018-08-25 09:59:17 +00:00
Frank Tang
4ac19c3882 Reland "[Intl] remove unused js"
This is a reland of 2dc505a418

Original change's description:
> [Intl] remove unused js
> 
> Bug: v8:8066
> Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
> Change-Id: I9d86577540cf227e038354d9661c60fcdc644b3f
> Reviewed-on: https://chromium-review.googlesource.com/1179467
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55200}

Bug: v8:8066
Change-Id: Id1f63c2e9c855250a7af01c1e0877296c0320d20
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1185762
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55415}
2018-08-24 23:19:57 +00:00
Georg Neis
969a0548d1 [builtins] Fix String#pad{Start,End} for a large maxLength argument.
If maxLength is larger than String::kMaxLength, we used to throw
immediately. However, we must first look at the filler argument, which
is observable. Moreover, if the filler is empty, we must return the
input unchanged.

Bug: v8:8078
Change-Id: Ic3d135f9e25da56df45b059144e45e19dda9c3d8
Reviewed-on: https://chromium-review.googlesource.com/1188313
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55414}
2018-08-24 19:50:09 +00:00
v8-ci-autoroll-builder
defec4f6c4 Update V8 DEPS.
Rolling v8/build: cbc08db..f4d0db4

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/f62079a..1e44d06

Rolling v8/third_party/depot_tools: dd765da..7b7eb88

Rolling v8/third_party/fuchsia-sdk: 454f3b2..3ec92c8

Rolling v8/third_party/icu: 297a4dd..a191af9

Rolling v8/third_party/instrumented_libraries: 323cf32..d8cf40c

Rolling v8/tools/clang: 45de59d..b31d680

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

Change-Id: If5e7643d5977ee2c837677dc8fa73b1c0608be36
Reviewed-on: https://chromium-review.googlesource.com/1188526
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@{#55413}
2018-08-24 17:28:25 +00:00
Ali Ijaz Sheikh
f9648465e1 [tracing] free strdup'd memory
ASAN complained about this on another commit:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20ASAN/26688
causing revert: https://chromium-review.googlesource.com/c/v8/v8/+/1162122

Change-Id: I3bb16177be9d49496db024ce92fd4354b12d8cc3
Reviewed-on: https://chromium-review.googlesource.com/1187832
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ali Ijaz Sheikh <ofrobots@google.com>
Cr-Commit-Position: refs/heads/master@{#55412}
2018-08-24 17:21:03 +00:00
Dan Elphick
855d4b48a2 Create bytecode handlers and add them to the builtins table
This doubles the size of the snapshot since it creates all of the
handlers twice (and it doesn't use any of these new ones). However it's
all behind a flag.

For now all bytecode handlers are marked as being not Isolate
independent to prevent snapshot creation failures.

Bug: v8:8068
Change-Id: Id49f521445643d9fc6b141353f0a29b585160e10
Reviewed-on: https://chromium-review.googlesource.com/1185100
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55411}
2018-08-24 16:43:14 +00:00
Michael Starzinger
dc5cb1f077 [wasm][test] Fix typo in module-memory test.
R=sigurds@chromium.org
TEST=mjsunit/wasm/module-memory

Change-Id: I30b52a09d8655340199dc449aaa91e6a351e2111
Reviewed-on: https://chromium-review.googlesource.com/1188567
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55410}
2018-08-24 14:18:18 +00:00
Hai Dang
2346275c08 Weaken the checks of IsFastJSArrayWithNoCustomIteration.
In the case where the array is a fast packed array, the CSA no longer needs
to check whether the prototype has elements. This only needed when the array
is holey.

This is a follow-up of CL #1183671.

Change-Id: I0087b827200995c741141f3183bf9a2c748d3b55
Reviewed-on: https://chromium-review.googlesource.com/1188315
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Hai Dang <dhai@google.com>
Cr-Commit-Position: refs/heads/master@{#55409}
2018-08-24 13:55:14 +00:00
Benedikt Meurer
e81480cd82 [turbofan] Handle CheckHeapObject as rename in LoadElimination.
Thus far the LoadElimination didn't consider CheckHeapObject a renaming
operation and would therefore miss opportunities to eliminate redundant
loads or map checks where the input is not checked for sminess in all
cases. This kind of pattern is very common with code that results from
builtin inlining in JSCallReducer, as here we don't unconditionally
insert CheckHeapObject nodes if we can tell from the graph that the
receiver already has a certain map (by walking the effect chain
upwards).

Bug: v8:8070
Change-Id: I980f382205757a754f93a5741de1ee08b75ee070
Reviewed-on: https://chromium-review.googlesource.com/1188129
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55408}
2018-08-24 13:44:58 +00:00
Benedikt Meurer
318e5230ea [turbofan] Handle LoadField with type mismatch in LoadElimination.
This allows to replace redundant LoadField's whose type doesn't match
the type of the replacement, by just turning those LoadField's into
TypeGuard's.

Bug: v8:8070
Change-Id: Ia329bb536f8829be27e070e90e9eaae0618dac7a
Reviewed-on: https://chromium-review.googlesource.com/1188131
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55407}
2018-08-24 13:43:54 +00:00
jgruber
a839bd42bd [ia32] Unalias kRootRegister and kJavaScriptCallExtraArg1Register
In preparation for kRootRegister support on ia32.

Bug: v8:6666
Change-Id: I6bbc87734d189bb8cde5d057a54f8155606d142d
Reviewed-on: https://chromium-review.googlesource.com/1188319
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55406}
2018-08-24 13:16:52 +00:00
Maya Lekova
136ecbb9bf Revert "[heap] Reland: Reuse object evacuation information for slot recording in Scavenger."
This reverts commit 177e0aa380.

Reason for revert: Causes a flaky test on Windows - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/4373

Bug: v8:8087

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

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

Change-Id: If553b74f8443ad98822a2a3d147dc8963346043c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:852420
Reviewed-on: https://chromium-review.googlesource.com/1188542
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55405}
2018-08-24 13:15:50 +00:00
Georg Neis
394d198f27 [turbofan] Use precise types for ObjectData* members.
Now that we always instantiate the right ObjectData subclass, we can
give precise types to members.

R=jarin@chromium.org

Bug: v8:7790
Change-Id: Ic2194de90f458ddccbeb9f101903e5865fb4eb41
Reviewed-on: https://chromium-review.googlesource.com/1187103
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55404}
2018-08-24 12:51:06 +00:00
Florian Sattler
819efd1e2f [parser] Reduced test size to not timeout on atom
This halfs the test size but also halfs the baseline for the score to
make it comparable.

Bug: v8:7926
Change-Id: Id3769def6a555ef1bddf8dd5e54c04b8652e5b54
Reviewed-on: https://chromium-review.googlesource.com/1188465
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Florian Sattler <sattlerf@google.com>
Cr-Commit-Position: refs/heads/master@{#55403}
2018-08-24 12:48:06 +00:00
Georg Neis
f2d6d5165b [turbofan] Mechanically create the right *Data object.
Also define classes NativeContext and InternalizedString. Those object
kinds were already part of our Object hierarchy but didn't have their
own class, which was inconvenient.

R=jarin@chromium.org, mslekova@chromium.org

Bug: v8:7790
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ic443a2b2e34afc89bc924e845d995e3f287a2535
Reviewed-on: https://chromium-review.googlesource.com/1185592
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55402}
2018-08-24 12:46:26 +00:00
Bret Sepulveda
29879461ce Stop manual unescaping of script source data when preprocessing logs.
It appears that the fields are already being unescaped elsewhere,
perhaps by the JSON writer. So if we unescape when adding the source
filename and contents, unescaping will happen again later and plain
backslashes will be interpreted as escape codes.

Bug: v8:6240
Change-Id: Ic66b9017ae685d6dd12944ee8d254991e26fbd32
Reviewed-on: https://chromium-review.googlesource.com/1186625
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55401}
2018-08-24 12:30:48 +00:00
Michael Starzinger
f1aef71dd5 [wasm][test] Make module-memory test thread resilient.
R=titzer@chromium.org
TEST=mjsunit/wasm/module-memory

Change-Id: If190f4f75feb0560bfb608b5ec01234c95e1f715
Reviewed-on: https://chromium-review.googlesource.com/1188464
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55400}
2018-08-24 12:27:15 +00:00
Toon Verwaest
8baea46e27 [scanner] Merge after_multiline_comment into after_line_terminator
Change-Id: I228bbd81807fdfac9e760576f89aeb133e45cf61
Reviewed-on: https://chromium-review.googlesource.com/1186326
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55399}
2018-08-24 12:19:33 +00:00
Michael Starzinger
0b87c5709b [wasm] Print handler tables together with WasmCode.
R=ahaas@chromium.org
BUG=v8:8091

Change-Id: I648e5a957e02d32e51c94175a6596801ca5ebd9e
Reviewed-on: https://chromium-review.googlesource.com/1188310
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55398}
2018-08-24 12:09:08 +00:00
jgruber
9d341c4c18 [ia32] Fix off-heap trampoline handling
This fixes several issues related to off-heap trampoline handling on
ia32.

Unlike other architectures, ia32 uses a pc-relative call/jump for the
off-heap trampoline. That means we cannot skip reloc info emission,
and we need to relocate when the buffer grows during code generation.

Finally, inlined trampolines must not clobber and thus also need to
use a pc-relative call/jump.

Drive-by: Use PreserveRootIA32 config only for whitelisted builtins to
build successfully by default.

Bug: v8:6666
Change-Id: I2b72147c6c70036cd13d8b22e2c80ade786c47b8
Reviewed-on: https://chromium-review.googlesource.com/1188316
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55397}
2018-08-24 12:07:53 +00:00
Sreten Kovacevic
2794401cbe [mips64] Port [memory] Replace Memory class with templated Memory functions.
Original commit d67d91dbe6

Change-Id: I2787a090e8794b91a7f08635ce73f925e1021477
Reviewed-on: https://chromium-review.googlesource.com/1188317
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Sreten Kovacevic <skovacevic@wavecomp.com>
Cr-Commit-Position: refs/heads/master@{#55396}
2018-08-24 12:03:23 +00:00
Michael Starzinger
287bb6a543 [arm64] Mitigate flake in JumpTablePatchingStress.
R=sigurds@chromium.org
TEST=cctest/test-jump-table-assembler/JumpTablePatchingStress
BUG=v8:8085

Change-Id: Iad786172541a2a72d2b774b60da87f40d70ca71d
Reviewed-on: https://chromium-review.googlesource.com/1188135
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55395}
2018-08-24 11:50:38 +00:00
Maya Lekova
4f40d83b07 [mjsunit] Disable a flaky regression test on Arm
Bug: v8:8090
Change-Id: I6f8a4d2bcfa25bcc83f29e5fd39f9e72ba18d4ac
Reviewed-on: https://chromium-review.googlesource.com/1188132
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55394}
2018-08-24 11:49:33 +00:00
Hannes Payer
177e0aa380 [heap] Reland: Reuse object evacuation information for slot recording in Scavenger.
This reverts commit 5876d8f58d.

Bug: chromium:852420
Change-Id: I318587f20409f98d05278fc0b4c14da09d259cd3
Reviewed-on: https://chromium-review.googlesource.com/1188128
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55393}
2018-08-24 11:48:17 +00:00
Michael Starzinger
a500f20175 [test] Remove %SetFlags runtime test method.
This method introduces an inherent race because it allows changing
global static flag variables from concurrently running Isolates (or
Workers). Since there are not too many use-cases left, the method in
question can be removed entirely.

R=hpayer@chromium.org

Change-Id: I9798730dd775b04f0bc83f18ed5982672e76e5d5
Reviewed-on: https://chromium-review.googlesource.com/1186731
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55392}
2018-08-24 10:48:39 +00:00