Commit Graph

49245 Commits

Author SHA1 Message Date
Michael Lippautz
af010cfba6 Update manual write barrier calls for new entry point
The initial CL only re-wired the macro but did not convert the remaining
manual uses.

Change-Id: Ia4c6dea006d7c026d2376affee0b7027f5aa7895
Reviewed-on: https://chromium-review.googlesource.com/1152907
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54753}
2018-07-27 13:35:30 +00:00
Simon Zünd
72d5ad3e82 [torque] Make 'test' and 'action' expression optional in for loop
This CL changes the for-loop so all parts are optional, allowing
loops like:

for (;;) {}
for (;; ++i) {}
...

R=danno@chromium.org, tebbi@chromium.org

Bug: v8:7793
Change-Id: I7bf9ef9e59d55eb9ae9f38904a1c1106ae50df5a
Reviewed-on: https://chromium-review.googlesource.com/1152727
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54752}
2018-07-27 11:19:00 +00:00
Michael Lippautz
8abada5b41 [iwyu] Untangle heap/local-allocator(-inl).h
Bug: v8:7490
Change-Id: I72444df6f75bc61c467c2df51f87581ef44fe09e
Reviewed-on: https://chromium-review.googlesource.com/1151632
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54751}
2018-07-27 10:44:30 +00:00
Michael Achenbach
d13e5d57ac [test] Add isolates testing to CQ
Until now, this test mode was only active in CI. Adding it to CQ should
help catching errors earlier.

TBR=sergiyb@chromium.org

Change-Id: I19a0971ecb318eb5bca3aee435700544d0ad2dcb
Reviewed-on: https://chromium-review.googlesource.com/1131946
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54750}
2018-07-27 10:15:00 +00:00
Peter Marshall
ba752ea4c5 [cpu-profiler] Use instruction start as the key for the CodeMap
Previously we used the start address of the AbstractCode object. This
doesn't make sense for off-heap builtins, where the code isn't contained
in the object itself. It also hides other potential problems - sometimes
the sample.pc is inside the AbstractCode object header - this is
never valid.

There were a few changes necessary to make this happen:
  - Change the interface of CodeMoveEvent. Now 'to' and 'from' are both
    AbstractCode objects, which is nice because many users were taking
    'to' and adding the header offset to it to try and find the
    instruction start address. This isn't valid for off-heap builtins.
  - Fix a bug in CodeMap::MoveCode where we didn't update the CodeEntry
    object to reflect the new instruction_start.
  - Rename the 'start' field in all of the CodeEventRecord sub-classes
    to make it clear that this is the address of the first instruction.
  - Fix the confusion in RecordTickSample between 'tos' and 'pc' which
    caused pc_offset to be calculated incorrectly.

Bug: v8:7983
Change-Id: I3e9dddf74e4b2e96a5f031d216ef7008d6f184d1
Reviewed-on: https://chromium-review.googlesource.com/1148457
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54749}
2018-07-27 09:53:00 +00:00
Peter Marshall
558cfa099e [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/intl-objects-inl.h
  src/objects/js-collection.h
  src/objects/js-collection-inl.h
  src/objects/js-regexp-string-iterator-inl.h
  src/objects/microtask-inl.h
  src/objects/module-inl.h
  src/objects/ordered-hash-table-inl.h
  src/objects/promise-inl.h

Bug: v8:7754,v8:7490
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Id5a5017713fa9920add2b38dbc56ab74abd4addd
Reviewed-on: https://chromium-review.googlesource.com/1152732
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54748}
2018-07-27 09:15:20 +00:00
Michael Achenbach
6a41721a28 Revert "[Intl] move localeCompare to C++"
This reverts commit 51ad234ffe.

Reason for revert: Speculative revert. Suspect for layout test change:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/25165

See also:
https://github.com/v8/v8/wiki/Blink-layout-tests

The bots currently have another problem with webkit_unit_tests and
don't run the layout tests on every revision. Hence the speculative
revert.

Original change's description:
> [Intl] move localeCompare to C++
> 
> 
> Bug: v8:7958
> Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
> Change-Id: I84a27dda5205c8581a7ffe37213d685cc49974fa
> Reviewed-on: https://chromium-review.googlesource.com/1144644
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54740}

TBR=jshin@chromium.org,gsathya@chromium.org,bstell.chromium.org@gmail.com,ftang@chromium.org

Change-Id: Iceab3316bd1eacfe449c8182cbb3027acb56047e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7958
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1152767
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54747}
2018-07-27 08:54:10 +00:00
Michael Achenbach
c83fae0663 Revert "[Intl] Move Number.toLocaleString from js to c++"
This reverts commit a895f01ab2.

Reason for revert: Needed for other revert:
https://chromium-review.googlesource.com/c/v8/v8/+/1152767

Original change's description:
> [Intl] Move Number.toLocaleString from js to c++
> 
> 
> Bug: v8:7960
> Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
> Change-Id: I21a524b620e210cce625a1a00e68c0b687187087
> Reviewed-on: https://chromium-review.googlesource.com/1144659
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Jungshik Shin <jshin@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#54741}

TBR=jshin@chromium.org,gsathya@chromium.org,bstell.chromium.org@gmail.com,ftang@chromium.org

Change-Id: I060fa2834dde5e1b4cc71923cc066d97bce2a33b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7960
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1152787
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54746}
2018-07-27 08:53:06 +00:00
Creddy
4ef4deae6e [runtime] Change the default values of Proxy.prototype to undefined from null
The CSA fast path returned null for Proxy.prototype whereas runtime GetProperty
returned undefined. The CL fixes this discrepancy by returning undefined for
both cases and  this makes it complaint with the spec.

Change-Id: I35b75c09dc99e8fd629671e30eacd2cabea8c1d4
Reviewed-on: https://chromium-review.googlesource.com/1145438
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Cr-Commit-Position: refs/heads/master@{#54745}
2018-07-27 08:27:36 +00:00
Florian Sattler
85d9cd7e8f [scanner] Split SkipWhiteSpace into fast and slow path
This places the hot part of SkipWhiteSpace in the header, allowing it to be
inlined, and leaves a slow path to handle the rest. This improves comment
scanning overall by ~10%.

Bug: v8:7926
Change-Id: I2e2ebbbae0d1af619b161397712fdf667d078884
Reviewed-on: https://chromium-review.googlesource.com/1150230
Commit-Queue: Florian Sattler <sattlerf@google.com>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54744}
2018-07-27 08:17:35 +00:00
Théotime Grohens
ac226c084c [dataview] Completely get rid of Float64 operations in TurboFan
This CL removes the last bit of Float64 math that was left, by
adding a TypeGuard node to help the typer figure out that stuff
actually fits in Int32 operations.

This should improve the inline performance a little bit more.

Change-Id: I35bf3445e6c73c9433d5ff5e177d6bb3c8b82071
Reviewed-on: https://chromium-review.googlesource.com/1151635
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#54743}
2018-07-27 08:15:45 +00:00
v8-ci-autoroll-builder
676501a8d7 Update V8 DEPS.
Rolling v8/build: ad6fe7d..adaab11

Rolling v8/buildtools: 691bfec..0dd5c6f

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/c829a63..933672b

Rolling v8/third_party/depot_tools: ad463c9..079812c

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

Change-Id: Ifefb5530249db31449b9b35127afb54cc1bc5ec0
Reviewed-on: https://chromium-review.googlesource.com/1152558
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@{#54742}
2018-07-27 03:52:53 +00:00
Frank Tang
a895f01ab2 [Intl] Move Number.toLocaleString from js to c++
Bug: v8:7960
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I21a524b620e210cce625a1a00e68c0b687187087
Reviewed-on: https://chromium-review.googlesource.com/1144659
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54741}
2018-07-27 01:51:53 +00:00
Frank Tang
51ad234ffe [Intl] move localeCompare to C++
Bug: v8:7958
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I84a27dda5205c8581a7ffe37213d685cc49974fa
Reviewed-on: https://chromium-review.googlesource.com/1144644
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54740}
2018-07-27 00:59:33 +00:00
Deepti Gandluri
39e3cec671 Fix HasOutput for more than one output
Change-Id: I9cab4e35c356a1fdd9942bd54832e7a375cd0800
Reviewed-on: https://chromium-review.googlesource.com/1152162
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54739}
2018-07-26 23:55:33 +00:00
Brian Stell
a8f0909905 [Intl] Build the language tag validation regexp string at build time.
Bug: v8:7978
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I98f33de90be2ecc7fca3fd21652a9cf3c283dc8f
Reviewed-on: https://chromium-review.googlesource.com/1150875
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Commit-Queue: Brian Stell <bstell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54738}
2018-07-26 23:45:43 +00:00
Frank Tang
4d3a3e6a32 [Intl] Move LocaleConvertCase/String.toLocale(Lower|Upper)Case to C++
This also move the function body of Runtime_StringLocaleConvertCase
into IntlFunc::StringLocaleConvertCase


Bug: v8:7958
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ibc081150babdd7d50043383b0f7375d46cfcf4a5
Reviewed-on: https://chromium-review.googlesource.com/1144525
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54737}
2018-07-26 23:42:43 +00:00
Peter Marshall
fbedc72a6c [cleanup] Fix more header includes to allow individual compilation
Fixes:
  src/objects/arguments.h
  src/objects/arguments-inl.h
  src/objects/compilation-cache-inl.h
  src/objects/data-handler-inl.h
  src/objects/hash-table-inl.h

Bug: v8:7754,v8:7490
Change-Id: Ic17d4c3477c7d2003b325497cb9082899a0bf3fc
Reviewed-on: https://chromium-review.googlesource.com/1151312
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54736}
2018-07-26 21:27:09 +00:00
Frank Tang
31b6faed38 [Intl] move isWellFormedCurrencyCode to C++
Bug: v8:7979
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Ib02a634dd82b6cef647e23464401af4acccc21f1
Reviewed-on: https://chromium-review.googlesource.com/1151049
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54735}
2018-07-26 21:12:34 +00:00
Junliang Yan
d27aaa759d s390: fix dcheck failures on debug
Change-Id: Ie950a24612949f2f5ab96d2fd5d681f817fdde46
Reviewed-on: https://chromium-review.googlesource.com/1151867
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: John Barboza <jbarboza@ca.ibm.com>
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#54734}
2018-07-26 21:11:19 +00:00
Michael Starzinger
fddcf5a675 [wasm] Temporary disable one shared-engine test case.
R=titzer@chromium.org
TEST=cctest/test-wasm-shared-engine/SharedEngineRunThreadedExecution

Change-Id: I01fbb13408020145c9d6bd6bbb66ca5136922bd2
Reviewed-on: https://chromium-review.googlesource.com/1151629
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54733}
2018-07-26 17:28:50 +00:00
Ivica Bogosavljevic
5f0c25b1c7 Update MIPS file ownership to @wavecomp.com e-mail addresses
MIPS team has moved to new @wavecomp.com e-mail addresses.
This CL is not actually changing owners, it only renames the
owners to the new email addresses.

No-Presubmit: true
Change-Id: Ic334defa06a36d974de87e99ed6c30bdf021958f
Reviewed-on: https://chromium-review.googlesource.com/1151349
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54732}
2018-07-26 16:28:10 +00:00
Michael Starzinger
4dae7bf53b Revert "[wasm] Temporarily disable --wasm-shared-engine test."
This reverts commit 53fe5c4485.

Reason for revert: Test can be re-enabled, a fix for the flake landed by now.

Original change's description:
> [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}

TBR=mstarzinger@chromium.org,leszeks@chromium.org

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

Change-Id: I406740898d896a18eef365cdd20581d5de84023a
Reviewed-on: https://chromium-review.googlesource.com/1151407
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54731}
2018-07-26 15:03:37 +00:00
Sigurd Schneider
ecd855b499 Reland "[embedded-builtins] Enable on all arches except x86 for benchmarks"
This is a reland of f5a8352b0f

Original change's description:
> [embedded-builtins] Enable on all arches except x86 for benchmarks
> 
> This CL enables embedded builtins to get benchmark feedback. We need
> this feedback to identify and address remaining performance problems.
> 
> Bug: v8:6666
> Change-Id: I8f77f218e656b55ddabe1236eb2a1d14a5ac6233
> Reviewed-on: https://chromium-review.googlesource.com/1105834
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53836}

Bug: v8:6666
Change-Id: Idd736f3ec06a7ea57e53a666fd5434e32ca316ad
Reviewed-on: https://chromium-review.googlesource.com/1148100
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54730}
2018-07-26 14:41:16 +00:00
jgruber
2fffcaa11d [builtins] Introduce metadata structs in embedded blob
This is a refactoring-only CL that packs builtin offsets and lengths
into a metadata struct. The struct should make future modifications to
metadata simpler.

Bug: v8:6666
Change-Id: Iae8070c2aa24d7e803cd75da3dea09e437ef275e
Reviewed-on: https://chromium-review.googlesource.com/1145069
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54729}
2018-07-26 14:15:46 +00:00
Stephan Herhut
ad06f37cda [wasm] Share BasicBlockProfiler instance in process
This is a first step to make basic block profiling work in wasm. More
is needed, including eventually making the profiler thread safe.

Change-Id: Ic216c881a4ab5a633e147e5538bb405c32e687cd
Reviewed-on: https://chromium-review.googlesource.com/1150234
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54728}
2018-07-26 13:54:57 +00:00
Michael Starzinger
c3473dcb10 [wasm] Add threading tests for a shared WasmEngine.
R=clemensh@chromium.org
TEST=cctest/test-wasm-shared-engine
BUG=v8:7424

Change-Id: I32510f33fb88c2f1a79864e6033d3aa53ad9fe48
Reviewed-on: https://chromium-review.googlesource.com/1150149
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54727}
2018-07-26 13:53:21 +00:00
Clemens Hammacher
0f5c0d6bb7 Make disassembler tests abort on unimplemented opcode
This ensures that tests actually abort on unimplemented opcodes instead
of just printing them as "Unimplemented Instruction". If used to
disassemble a code region though, we want to ignore unimplemented
opcodes to keep printing remaining valid instructions.

The tests were previously fixed by Deepti in
8fa509d311, but this got partly reverted
on the "Address" refactoring in
2459046c1d.

R=titzer@chromium.org

Change-Id: I802dda2b0f45ee77c4f9b244ed984b1c4679bac3
Reviewed-on: https://chromium-review.googlesource.com/1146649
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54726}
2018-07-26 13:52:17 +00:00
Georg Neis
34f6b5fb88 [turbofan] Get rid of FieldTypeRef
All we care about w.r.t FieldType is object identity. Moreover,
FieldType does not have its own instance type. Hence it makes no
sense to have the broker know about FieldType at all.

Bug: v8:7790
Change-Id: I585e7e06826fae95890c1889ae2f4613479cbb32
Reviewed-on: https://chromium-review.googlesource.com/1151300
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54725}
2018-07-26 13:48:26 +00:00
Sigurd Schneider
331cb450f0 [arm64] Avoid external reference for abort in embedded builtins
This CL uses segfaulting instructions in embedded builtins, instead of
a trap handler which require relocation and can hence not be used in
embedded builtins.

Bug: v8:7985, v8:6666

Change-Id: I87776785602f13d15f565d49b2332eb2adc62bd4
Reviewed-on: https://chromium-review.googlesource.com/1151192
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54724}
2018-07-26 13:34:57 +00:00
Sergiy Byelozyorov
ba02337157 [tools] Add an option to checkout v8-perf repo before running perf tests
R=machenbach@chromium.org

No-Try: true
Bug: chromium:838864
Change-Id: I02e38778ec4c33a20f4b2e93fb22615baa316883
Reviewed-on: https://chromium-review.googlesource.com/1151295
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54723}
2018-07-26 13:13:56 +00:00
Marja Hölttä
7995eccf74 Reland [in-place weak refs] Use WeakArrayList in Heap::noscript_list.
BUG=v8:7308
TBR=mlippautz@chromium.org

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ic310ebcf0af2f3985cee9872f6e57a05652c4484
Reviewed-on: https://chromium-review.googlesource.com/1151197
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54722}
2018-07-26 13:04:37 +00:00
Théotime Grohens
dc3fc76498 [dataview] Add non-Smi deopts in TurboFan DataView inlining
This CL tries to reduce as much as possible the emission of Float64
operations in the inlining of DataView methods.

It adds CheckSmi calls guarding the main variables that the
methods use, and deopts back to the baseline when outside of Smi range.
This should happen extremely rarely anyway, since we don't allow
ArrayBuffers to be larger than that by default.

Change-Id: I26fdd7b6884507a3a555dea114cf30da487dd34c
Reviewed-on: https://chromium-review.googlesource.com/1151194
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#54721}
2018-07-26 12:39:54 +00:00
Toon Verwaest
12a63796f7 [scanner-streams] Add relocatable character stream for on-heap utf16 streams
Change-Id: I388f6a6c937b6897efe9e88b06ba4b56670fea4f
Reviewed-on: https://chromium-review.googlesource.com/1151191
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54720}
2018-07-26 12:35:56 +00:00
Sigurd Schneider
78e8ccff16 [mjsunit] Disable GC sensitive test on GC stress bots
This test uses assertOptimized and is not suitable for GC stress.

Change-Id: If746c7980f93da2834deac879751d66c151e5aed
Reviewed-on: https://chromium-review.googlesource.com/1151122
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54719}
2018-07-26 12:33:20 +00:00
Ivica Bogosavljevic
29d74c7846 MIPS64: Add missing case in optimized 32-bit integer compare
MIPS64 doesn't support 32-bit compare operations, instead it
relies that values in registers are properly sign extended to
64-bit. Sign extending and then comparing is a costly operation
that we want to avoid. We use costly compare only in those cases
when one operand is signed and other is unsigned.

This CL adds marks PoisonedLoad and ProtectedLoad of unsigned
values as needing full compare instead of optimized one.

TEST=mjsunit/empirical_max_arraybuffer

Change-Id: I7e6599d7c6e6969b74301cf88f1e5f32ee7b18ce
Reviewed-on: https://chromium-review.googlesource.com/1150536
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54718}
2018-07-26 12:32:15 +00:00
Michael Lippautz
db02a0eb18 [heap] Fix SpacesTest.WriteBarrierFromHeapObject
Instead of actually allocating an objects just test the corner cases
around the page boundary by casting addresses.

Bug: v8:7984
Change-Id: I27615cc193d6f85abc91cfe898719a4a9b761f23
Reviewed-on: https://chromium-review.googlesource.com/1151114
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54717}
2018-07-26 11:17:14 +00:00
Andreas Haas
a2a3817594 [wasm][multi-return][arm64] Pad parameter slots
Stack parameters on arm64 require padding. Since the stack areas for
parameters and returns should not overlap, we have to pad the parameters
already during the construction of the CallDescriptor so that we can set
the correct stack offset for returns.

R=mstarzinger@chromium.org

Bug: chromium:838098
Change-Id: I23389dc35037054b750e61ea6b1bfdfc4c5bc868
Reviewed-on: https://chromium-review.googlesource.com/1150178
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54716}
2018-07-26 11:04:04 +00:00
Dan Elphick
57253243fc [build] Use deprecation flags in code importing v8
Add v8_deprecation_warnings and v8_imminent_deprecation_warnings to
external_config so they can also control how embedders see deprecation
warnings.

Also defaults v8_deprecation_warnings to true.

Change-Id: I267607d7b3e1ff6ee34a5555722118f9f22e0791
Reviewed-on: https://chromium-review.googlesource.com/1151110
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54715}
2018-07-26 10:48:20 +00:00
Andreas Haas
e37e3dc8d1 [wasm] Update spec tests
R=herhut@chromium.org

Change-Id: I9c67227da8d304a805f7f25fa64862ee400530d7
Reviewed-on: https://chromium-review.googlesource.com/1149820
Reviewed-by: Stephan Herhut <herhut@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54714}
2018-07-26 09:54:02 +00:00
Michael Lippautz
ecae8bae8a [heap] Ignore SpacesTest.WriteBarrierFromHeapObject
The test creates a new spaces without hooking it up into Heap, which
makes allocations crash.

Tbr: leszeks@chromium.org
No-try: true
Bug: v8:7984
Change-Id: I58c43eedd4fbbedfacfdee3a3bae99c4107404ec
Reviewed-on: https://chromium-review.googlesource.com/1151112
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54713}
2018-07-26 09:36:51 +00:00
Rodrigo Bruno
82632ed5e4 Reland^2 "Added External Strings to external memory accounting".
This CL depends on Reland^2 "Avoiding re-externalization of strings"
(Idb1b6d1b29499f66bf8cd704977c40b027f99dbd)..

Previously landed as Ied341ec6268000343d2a577b22f2a483460b01f5 and
I3fe2b294f6e038d77787cf0870d244ba7cc20550

Previously reviewed at https://chromium-review.googlesource.com/1121736 and
https://chromium-review.googlesource.com/1118164

Bug: chromium:845409
Change-Id: Ied50bbcaa22a90ecaf15dca19dbc9aaec1737223
Reviewed-on: https://chromium-review.googlesource.com/1147227
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
Cr-Commit-Position: refs/heads/master@{#54712}
2018-07-26 09:25:41 +00:00
Georgia Kouveli
079eee4387 [arm][arm64] Fix TurboAssembler tests for hard aborts
The tests were not flushing the i-cache before calling the generated
code. Use Factory::NewCode to make sure that the i-cache is flushed
instead.

Bug: v8:7977
Change-Id: I9c7c6f0d0e31700634e50279e75858a5d74603d8
Reviewed-on: https://chromium-review.googlesource.com/1150165
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#54711}
2018-07-26 09:12:58 +00:00
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