Commit Graph

57147 Commits

Author SHA1 Message Date
Jaroslav Sevcik
16c1cb8369 [turbofan] Serialize source position table
... for concurrent graph building.

Bug: v8:7790
Change-Id: I55eb419bda843670eff7de31e942dd8406c792f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682027
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62455}
2019-06-30 13:17:19 +00:00
Sigurd Schneider
6b9ab7e5ae Whitespace CL to trigger build.
Trying to get luci.v8.ci/Linux%20V8%20FYI%20Release%20(NVIDIA) to pass after failure:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/Linux%20V8%20FYI%20Release%20(NVIDIA)/5698

Suspicion is that this is failure is not V8 related.

This failure is blocking LKGR.

TBR=machenbach@chromium.org

Change-Id: Idac4c412f8b14a8b08e0cff4aeafec959dd38453

Notry: true
Change-Id: Idac4c412f8b14a8b08e0cff4aeafec959dd38453
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682569
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62454}
2019-06-30 07:39:08 +00:00
v8-ci-autoroll-builder
2ae8888a5a Update wasm-spec.
Rolling v8/test/wasm-js/data: 024e273..666dc4c

[js-api] Use IDL conventions around ambient values. (#1037) (Ms2ger)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/666dc4c

TBR=ahaas@chromium.org,clemensh@chromium.org

Change-Id: I49216e2f2f2a36bc6f2d29adaa40f88b9ada1be0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1683108
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#62453}
2019-06-29 11:55:57 +00:00
Francis McCabe
06f8463004 Revert "Let all early errors be SyntaxErrors."
This reverts commit 99fd5b9b9d.

Reason for revert: fails presubmit test:
https://ci.chromium.org/p/v8/builders/ci/V8%20Presubmit/5238
and a nosnap test
https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/34143

Original change's description:
> Let all early errors be SyntaxErrors.
> 
> Implement the spec change from the following TC39 PR:
> https://github.com/tc39/ecma262/pull/1527
> 
> Bug: v8:9326
> Change-Id: I9639903b12e7621e323990e2335f00e0313a59c3
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1643171
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Commit-Queue: Adam Klein <adamk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62451}

TBR=adamk@chromium.org,verwaest@chromium.org,rkirsling@gmail.com

Change-Id: If63b97725e9737ad5a98800e1194caf8e9c1c43d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9326
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682393
Reviewed-by: Francis McCabe <fgm@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62452}
2019-06-28 23:36:59 +00:00
Ross Kirsling
99fd5b9b9d Let all early errors be SyntaxErrors.
Implement the spec change from the following TC39 PR:
https://github.com/tc39/ecma262/pull/1527

Bug: v8:9326
Change-Id: I9639903b12e7621e323990e2335f00e0313a59c3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1643171
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62451}
2019-06-28 22:38:43 +00:00
Frank Tang
5bd5fd74b5 Fix unified number format
1. Move the reading of Notation before calling
   SetNumberFormatDigitOptions()
   ( sync after https://github.com/tc39/proposal-unified-intl-numberformat/pull/37)
2. Sync SetNumberFormatDigitOptions to the spec.
3. Consider the case that while RoundingType is "compact-rounding"
   do not set the precision.
4. correct the tests accordingly.
5. Fix the rounding of notation: "compact" and put regression cases
   into test/intl/regress-9408.js

Bug: v8:9408
Change-Id: I78d66601fe21b1a74a50047b2abe6a2838a58b8c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681599
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62450}
2019-06-28 18:49:06 +00:00
Frank Tang
b9e1c2c4e9 Add benchmark for regexp "gi".
Measure speed regression of a range of char in complex regexp
The measurement is using the code from chromium:977003

To measure
python -u tools/run_perf.py --binary-override-path  out/x64.release/d8 \
  test/js-perf-test/RegExp.json

Run on three setting:
a. m74 based on tag 7.4.301
b. trunk (m77)
c. apply cl 1674851 on trunk

ComplexCaseInsensitiveTest-RegExp
Score is better if higher
		Score	imp %	comp to m74
m74		22910
		23430
		23360
Trunk (m77)	15190	66.30%
		15710	67.05%
		15570	66.65%
CL 1674851	24590	161.88%	107.33%
		24690	157.16%	105.38%
		24200	155.43%	103.60%

Bug: chromium:977003

Change-Id: I7756f4739c44a07949103650565d1ca902e1b7ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679651
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62449}
2019-06-28 17:56:31 +00:00
Ross McIlroy
e8f8f15f53 [tools] Strip path from library when applying targetRootFS in tickprocessor
This allows us to use this flag to specify the local location of a
shared library when processing a trace run on Android.

Change-Id: I3aa44beaed700b8c5354af12a4df176aa1cbfd0c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681137
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62448}
2019-06-28 15:07:24 +00:00
Sigurd Schneider
d8c4e4c465 [reg-alloc] Enable control-flow aware allocation
for in the register allocation.

NOTE: This is expected to cause performance regressions, but we enable
it so that we can land small tweaks on top of it and get immediate
performance feedback.

Change-Id: I062f98a3ee6702509e870cc110096a3bdf53a6fd
Bug: v8:9088
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681133
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Auto-Submit: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62447}
2019-06-28 14:25:00 +00:00
Raphael Kubo da Costa
e93fee3481 diagnostics: Include <atomic> for std::atomic
IWYU. This also fixes the libstdc++ build after commit 6056c0dc4a ("Make
adding crash keys thread safe"):

../../v8/src/diagnostics/crash-key.cc:36:15: error: no template named 'atomic' in namespace 'std'
  static std::atomic<int> last{-1};
         ~~~~~^

Bug: chromium:957519
Change-Id: Ib1f465dc5e4f0b4a212486a9a3bebe54bb6654b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681129
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62446}
2019-06-28 11:38:10 +00:00
Maciej Goszczycki
50822c2c4b Reland "[roheap] Enable shared ro-heap by default if ptr compression is disabled"
This is a reland of 24ac9a9a72

Fixed an msvc warning.

Original change's description:
> [roheap] Enable shared ro-heap by default if ptr compression is disabled
>
> Shared read-only heap is currently incompatible with pointer compression.
> Enable sharing only if pointer compression is disabled.
>
> Bug: v8:7464
> Change-Id: I0866ac288a34eb92fc227e8beba57f4d72a69ef0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1635509
> Reviewed-by: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
> Cr-Commit-Position: refs/heads/master@{#61963}

Bug: v8:7464
Change-Id: Ieb5fefe8be1f94e0ac8e769d73de21427559ccab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681128
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Cr-Commit-Position: refs/heads/master@{#62445}
2019-06-28 10:49:19 +00:00
Igor Sheludko
b6aa277f6b [ptr-compr][cleanup] Replace READ_[WEAK_]FIELD with TaggedField<>::load()
The latter is better because it takes field type into account when
decompressing field value.

Drive-by: use [DECL_]ACCESSOR macros for some fields.

Bug: v8:9353
Change-Id: I3d7f07d11b1e379e3e6cf0310d836af6b48c1338
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680539
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62444}
2019-06-28 10:47:40 +00:00
Darius Mercadier
1b92e36f40 [heap] Optimize evacuation candidates selection
To choose the evacuation candidates, all the pages were put in a
vector, then sorted, and then only select if, among other thing, they
had enough free bytes in them. It meant sorting a lot of pages that
couldn't be selected.

With this CL, only the pages with enough free bytes are put in the
vector, which should (slightly) improve the time needing to select
the evacuation candidates.

Bug: v8:9329
Change-Id: I0261fe3554c0bf75136a84a35d5c6a231762afe8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680554
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Darius Mercadier <dmercadier@google.com>
Cr-Commit-Position: refs/heads/master@{#62443}
2019-06-28 10:13:58 +00:00
Johannes Henkel
dfcc46a6c7 [DevTools] Roll inspector_protocol (v8).
New Revision: 8b7ea912e516a6daa61487c700687a9426e3a396

Update v8 files / build config accordingly.
- There's now a new library in third_party/inspector_protocol,
  bindings/bindings.h, which is configured much like encoding/encoding.h.
  It doesn't have much stuff in it yet, but will soon get more code
  that would otherwise need to go into jinja templates.
  It also comes with a new test, only a smoke test thus far.

Change-Id: I9c00a54a840c214b4bb744a3b272e5ce221954fc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678273
Reviewed-by: Alexei Filippov <alph@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Johannes Henkel <johannes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62442}
2019-06-28 09:37:18 +00:00
Yang Guo
3c4f9bfa43 Remove unused copy of js_protocol.pdl
TBR=jgruber@chromium.org

Bug: v8:9247
Change-Id: I8024f701eae2a8b0d60fe859503089dd76b4d5bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681123
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62441}
2019-06-28 09:22:18 +00:00
Ulan Degenbaev
58d78bfedf [heap] Provide --max-heap-size flag
The flag configures both the young and old generation limits.

Bug: v8:9306
Change-Id: Ib94dcb6dc014864248a5926f585b54a83db28063
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679500
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62440}
2019-06-28 09:20:48 +00:00
Mathias Bynens
933f23f6ed [test] Simplify output processor logic
Instead of conditionally normalizing file paths, go back to using
the basename in the dynamically-generated regular expression
pattern.

Bug: v8:7950, v8:9395, v8:9406
Change-Id: I57d2449a8229a67b038c7fcffe36218848d9a575
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681122
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62439}
2019-06-28 09:15:18 +00:00
Yu Yin
5ab03647c6 [mips][wasm-c-api] Faster C-to-Wasm entry
port e304d80 https://crrev.com/c/1660618
Original Commit Message:

    powered by a new function Execution::CallWasm and a corresponding,
    Turbofan-generated CWasmEntry stub. This entirely sidesteps the
    traditional Execution::Invoke -> JSEntryStub path.

Change-Id: I4d3a284779ecff27e39fffb658c608b16c43d828
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679962
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62438}
2019-06-28 09:10:48 +00:00
Yang Guo
f3b302193c [inspector] disable debug breaks for builtins when called from API
TBR=luoe@chromium.org

Bug: chromium:976713
Change-Id: Ib92c6054a017a94ad23721de240b8a20d87c9f85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680544
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62437}
2019-06-28 08:57:08 +00:00
Sigurd Schneider
1340645339 [mjsunit,ia32,debug] Disable test regress-crbug-976598
..until issue is resolved.

TBR=jarin@chromium.org

Change-Id: I304ab6bf2c4dcb28af022e07c7fc4719c5239d82
Bug: v8:9404
Notry: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681121
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62436}
2019-06-28 07:20:00 +00:00
v8-ci-autoroll-builder
d4e7e9e694 Update wasm-spec.
Rolling v8/test/wasm-js/data: b568df7..024e273

[js-api] Remove incorrect note about object caching. (#1036) (Ms2ger)
https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/024e273

TBR=ahaas@chromium.org,clemensh@chromium.org

Change-Id: I167825682594ae758aa62098d18119cdbc4fee96
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681320
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#62435}
2019-06-28 04:52:25 +00:00
v8-ci-autoroll-builder
5353e57fed Update V8 DEPS.
Rolling v8/build: deba8b5..f9c4d9d

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d16c410..ac493ee

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

Change-Id: Ic3b556f79d3a7b9c5fe332ac418dc4fce0e995e2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681319
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#62434}
2019-06-28 03:59:35 +00:00
Daniel Clark
92147e3aca [modules] Introduce SyntheticModule
This change is a partial implementation of Synthetic Module Record as specified here:
https://heycam.github.io/webidl/#synthetic-module-records

This includes:
- Introduce SyntheticModule class inheriting from Module.
- Extend v8::Module interface in v8.h to include Synthetic Module APIs, with corresponding
  implementations in api.cc.
- Provide SyntheticModule implementations of PrepareInstantiate, FinishInstantiate, and SetExport.
- Provide cctest unit tests for the implementations in the preceding item.

We will follow up with further submissions to implement the remaining members of
SyntheticModule (ResolveExport and Evaluate).

Bug: v8:9292
Change-Id: I25b1b695b5d1c3004677cd685f0dfd95283438fa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1626829
Commit-Queue: Dan Clark <daniec@microsoft.com>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62433}
2019-06-27 22:23:46 +00:00
Adam Klein
778ade129e Fix simd-scalar-lowering OWNERS to be current team members
Add gdeepti and bbudge, remove aseemgarg.

Change-Id: I87a9e0b36b1233aae5fb72d019e9b8b413d10f9e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680799
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62432}
2019-06-27 21:45:30 +00:00
Z Nguyen-Huu
a77323416a Add GetPropertyWithReceiver stub for proxy get trap
GetPropertyWithReceiver is similar to GetProperty, except that additional receiver parameter is used in TryPrototypeChainLookup to support GetPropertyWithReceiver stub.
We only use this stub in ProxyGetProperty builtin for now.

Bug: v8:8958
Change-Id: Ied60e4f6ee6e09bca2f161048b481a0bf37a78a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1676879
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62431}
2019-06-27 21:44:25 +00:00
Ng Zhi An
327190f4eb Fix typo in #undef
Bug: None
Change-Id: Idc7857342e9249d66473ab4af1044e1cd2cab5a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680788
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62430}
2019-06-27 18:58:40 +00:00
Milad Farazmand
934f375a75 PPC/s390: [wasm-c-api] Faster C-to-Wasm entry
Port e304d80e09

Original Commit Message:

    powered by a new function Execution::CallWasm and a corresponding,
    Turbofan-generated CWasmEntry stub. This entirely sidesteps the
    traditional Execution::Invoke -> JSEntryStub path.

R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: I87c85f3506c4e4dae12e462dd3c7790bc9ab25d1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680798
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#62429}
2019-06-27 18:51:39 +00:00
Georg Neis
1a7b24012b Revert "Reland "Enable lazy source positions by default""
This reverts commit a05bcc3afd.

Reason for revert: Still issues with maybe_assigned, blocking roll.

Original change's description:
> Reland "Enable lazy source positions by default"
> 
> Second attempt to reland 69fafb5fe3
> now that the maybe_assigned bug is fixed.
> 
> > Original change's description:
> > Enable lazy source positions by default
> >
> > Also adds a compile time flag which allows the default to be configured
> > so node can disable it since it hangs the node cpu profiler tests.
> >
> > Bug: v8:8510
> > Change-Id: Idf4785036dc6242769410091518a67ac9179b718
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1491491
> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> > Commit-Queue: Dan Elphick <delphick@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#62089}
> 
> Bug: v8:8510
> Change-Id: Ia6d5d1d3a3c2b6a14c70ee67b02bec62a6a1a1d4
> Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg, v8_linux64_gc_stress_custom_snapshot_dbg_ng
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679498
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62411}

TBR=rmcilroy@chromium.org,delphick@chromium.org

Change-Id: I52b2924e05ff87f6469be4723e5e13979d1aeffa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8510
Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg, v8_linux64_gc_stress_custom_snapshot_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680553
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62428}
2019-06-27 16:52:10 +00:00
Maciej Goszczycki
de16f20681 [roheap] Fix unused variable in ReadOnlyHeap::SetUp
Bug: v8:7464
Change-Id: Ieab0007b477894fb8e4c662e584b54cb1e288041
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680549
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62427}
2019-06-27 16:35:38 +00:00
Francis McCabe
27ed54f38b Revert "Reland "[roheap] Enable shared ro-heap by default if ptr compression is disabled""
This reverts commit 24ac9a9a72.

Reason for revert: compilation failures on windows. See https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20builder/29313

Original change's description:
> Reland "[roheap] Enable shared ro-heap by default if ptr compression is disabled"
> 
> This is a reland of fb4d54802e
> 
> Few test-serialize tests were not clearing the shared heap before using a
> new snapshot, breaking the noembed build. This is fixed now and a check
> has been added
> (https://chromium-review.googlesource.com/c/v8/v8/+/1667415) to make
> sure it doesn't happen again.
> 
> Original change's description:
> > [roheap] Enable shared ro-heap by default if ptr compression is disabled
> >
> > Shared read-only heap is currently incompatible with pointer compression.
> > Enable sharing only if pointer compression is disabled.
> >
> > Bug: v8:7464
> > Change-Id: I0866ac288a34eb92fc227e8beba57f4d72a69ef0
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1635509
> > Reviewed-by: Dan Elphick <delphick@chromium.org>
> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
> > Cr-Commit-Position: refs/heads/master@{#61963}
> 
> Bug: v8:7464
> Change-Id: Ie7d09cebf897a3f0e4a6c103ad0c132c4faf6c6e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667418
> Reviewed-by: Dan Elphick <delphick@chromium.org>
> Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
> Cr-Commit-Position: refs/heads/master@{#62425}

TBR=delphick@chromium.org,goszczycki@google.com

Change-Id: Ia96e2f13b502f96315ac2ed3447373c7b5774c6a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7464
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680659
Reviewed-by: Francis McCabe <fgm@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62426}
2019-06-27 15:32:21 +00:00
Maciej Goszczycki
24ac9a9a72 Reland "[roheap] Enable shared ro-heap by default if ptr compression is disabled"
This is a reland of fb4d54802e

Few test-serialize tests were not clearing the shared heap before using a
new snapshot, breaking the noembed build. This is fixed now and a check
has been added
(https://chromium-review.googlesource.com/c/v8/v8/+/1667415) to make
sure it doesn't happen again.

Original change's description:
> [roheap] Enable shared ro-heap by default if ptr compression is disabled
>
> Shared read-only heap is currently incompatible with pointer compression.
> Enable sharing only if pointer compression is disabled.
>
> Bug: v8:7464
> Change-Id: I0866ac288a34eb92fc227e8beba57f4d72a69ef0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1635509
> Reviewed-by: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
> Cr-Commit-Position: refs/heads/master@{#61963}

Bug: v8:7464
Change-Id: Ie7d09cebf897a3f0e4a6c103ad0c132c4faf6c6e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667418
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
Cr-Commit-Position: refs/heads/master@{#62425}
2019-06-27 15:13:28 +00:00
Jakob Kummerow
e304d80e09 [wasm-c-api] Faster C-to-Wasm entry
powered by a new function Execution::CallWasm and a corresponding,
Turbofan-generated CWasmEntry stub. This entirely sidesteps the
traditional Execution::Invoke -> JSEntryStub path.

Change-Id: If2b97825cca4ce927eecbddc248c64782d903287
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660618
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62424}
2019-06-27 13:39:48 +00:00
Hannes Payer
907f3a64b7 [heap] Replace ConcurrentSweepingState with a MemoryChunk local epoch counter.
Bug: v8:9093
Change-Id: I7c415fd0ea9e48f7ee189115f164825cb120695b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624213
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62423}
2019-06-27 13:34:28 +00:00
Sigurd Schneider
12b45fdf00 [gdb] Add gdb macro 'pn' that prints TurboFan nodes
The macro pn ensures that TurboFan nodes can be easily
printed in gdb, even in release builds where Node::Print
is sometimes not available (because all uses have been
inlined).

This CL also modifies the print function to deal gracefully
with nullptr input nodes, which is helpful for debugging.

Change-Id: Ib5f58aa13b719c8390826bc89dfe21cf58586de5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672941
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62422}
2019-06-27 13:29:08 +00:00
Mathias Bynens
5c2c5ce133 [test] Remove module pragma in favor of .mjs
d8 treats files with the .mjs extension as modules instead of
classic scripts. Thus, the `// MODULE` pragma and its corresponding
logic in test runners can be removed in favor of explicitly adding
the extension.

Bug: v8:7950, v8:9395, v8:9406
Also-By: tmrts@chromium.org
Change-Id: Ic74328dc5c5f176bb4bdf6d74bdd4d3966279ba5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1675958
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62421}
2019-06-27 13:25:48 +00:00
Michael Lippautz
3caa3cc358 [heap] Consider global memory when bailing out of incremental marking
Previously, the early bailout for incremental marking only considered
V8's memory which does not work when a big porition of memory is
actually allocated globally.

Bug: chromium:948807
Change-Id: Ie85c3c68f2b677ef87aba9e70ae74e65783a1fac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680542
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62420}
2019-06-27 12:45:06 +00:00
Jakob Gruber
ad68a37694 [regexp] Refactor BoyerMoorePositionInfo uses
BoyerMoorePositionInfo is a simple wrapper around a bitset and an
associated ContainedInLattice field. This CL refactors bitset-related
operations that used to be implemented naively (e.g.: loop over all
bits to find a single set bit, or to generate a union of two bitsets).

Instead, use more suitable methods from base::bits and std::bitset.

Drive-by: Remove dead class members.
Drive-by: Zero the ByteArray with memset.

Bug: v8:9359
Change-Id: I33923c7d216320f4e3d7e4a6df2967f4aa86ab05
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667407
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62419}
2019-06-27 12:23:09 +00:00
Georg Neis
04233e106e [turbofan] Minor broker cleanups
Such as making the Disallow* scope always the first thing in a function,
and const-ifying a few members.

Bug: v8:7790
Change-Id: I78e0701101ee63475bfa30230a2da54da730ba73
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679508
Auto-Submit: Georg Neis <neis@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62418}
2019-06-27 12:17:09 +00:00
Mathias Bynens
72e84bc132 [test] Support LC_ALL=en_US.UTF-8 in test runner
Currently, `intl/regress-7770` fails on environments with `LC_ALL`
set, e.g.

    export LC_ALL=en_US.UTF-8

While engineers can manually work around it using `unset LC_ALL`
before running the test suite, it would be more convenient if the test
runner didn't rely on the absence of this environment variable in the
first place.

Bug: v8:8845
Change-Id: I8116e2fd369be1d561dfe465f2901d07d3f75510
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1680538
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Auto-Submit: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62417}
2019-06-27 11:54:29 +00:00
Igor Sheludko
35918904f3 [runtime] Properly handle thin strings in sliced strings
... when querying internalized strings table and computing hash.

Bug: chromium:974612
Change-Id: I59eed1477c8893cd0ff3eae593da092492668614
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678418
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62416}
2019-06-27 11:49:19 +00:00
Hannes Payer
f7abd6264b [heap] Experiment: only compact on memory reducing GCs.
Bug: chromium:966832
Change-Id: If705f3b3a58f1fa316499fb7f645751fd1e6f8a3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679507
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62415}
2019-06-27 11:42:29 +00:00
Dan Elphick
52065b86ba [compiler] Add a stress mode for lazy source positions
If --stress-lazy-source-positions is enabled then always collect source
positions after lazy compilation to try and flush out bytecode mismatch
bugs.

Bug: v8:8510
Change-Id: I895611c9fde2c4743d62951674277973def01d3c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679502
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Auto-Submit: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62414}
2019-06-27 10:58:59 +00:00
Igor Sheludko
e8aaff965b [ptr-compr][cleanup] Inline trivial methods of ObjectBoilerplateDescription
... and add getters with Isolate parameter.

Bug: v8:9353, v8:9396
Change-Id: Iab1e4652859f0a8922af6243bac3caee0888df63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679503
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62413}
2019-06-27 10:32:44 +00:00
Santiago Aboy Solanes
b9ea69544e [ptr-compr] Add missing else on representation change
In https://chromium-review.googlesource.com/c/v8/v8/+/1621941 we added
missing representation changes. By changing the return to an assignation,
we forgot to include the (now needed) else.

Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:7703
Change-Id: Ibc54a24ea4430fd43d70251ef1a44ef15c06aa46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678659
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62412}
2019-06-27 10:30:44 +00:00
Dan Elphick
a05bcc3afd Reland "Enable lazy source positions by default"
Second attempt to reland 69fafb5fe3
now that the maybe_assigned bug is fixed.

> Original change's description:
> Enable lazy source positions by default
>
> Also adds a compile time flag which allows the default to be configured
> so node can disable it since it hangs the node cpu profiler tests.
>
> Bug: v8:8510
> Change-Id: Idf4785036dc6242769410091518a67ac9179b718
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1491491
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#62089}

Bug: v8:8510
Change-Id: Ia6d5d1d3a3c2b6a14c70ee67b02bec62a6a1a1d4
Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg, v8_linux64_gc_stress_custom_snapshot_dbg_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1679498
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62411}
2019-06-27 09:41:09 +00:00
Clemens Hammacher
d5b7d5b456 [wasm] Add counter for tier-up time
Additionally to the baseline compilation time, do also measure the time
it takes to tier up to TurboFan.
Since the {AsyncCompileJob} will be gone after baseline compilation,
the timing has to be done via a separate callback, which will survive
until after top-tier compilation.

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

Bug: chromium:978425
Change-Id: I7914173191c8a7a2aeb47343973d4034010047a4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678362
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62410}
2019-06-27 09:40:04 +00:00
Andreas Haas
a1f8153092 [wasm] Import table only after checks
With recent spec changes (I think in the bulk memory proposal),
WebAssembly instances exist and can be used even when instantiation
itself fails. Therefore the order of checks and assignents during
instantiation may matter. That's why I move the table import after the
checks of the import in this CL.

Note that I'm not aware that this is a problem yet. I think in the worst
case this CL has no effect. In the best case it helps.

R=clemensh@chromium.org

Bug: v8:9396
Change-Id: I83998ff98bded443b3f015cee778fa29a3374534
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678656
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62409}
2019-06-27 09:30:34 +00:00
Zhang, Shiyu
d82b2455ae [intl] Speed up String.prototype.localCompare via compareUTF8
The localeCompare for ASCII chars needs to expand the string contents
from one-byte representation into two-byte representation, which
requires memory copy. This CL skips the representation conversion by
using compareUTF8. It can improve the JetStream2 cdjs case by 21% on
my machine.

Change-Id: I3841dc700e36744aadd9a1ff9fa7d93c84dc04fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624705
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62408}
2019-06-27 09:13:44 +00:00
Leszek Swirski
e79751b3c1 [parser] Always mark shadowed vars maybe_assigned
If there was an assignment to a maybe-shadowing dynamic variable,
then the shadowing variable would be marked maybe_assigned, but the
maybe-shadowed variable would stay unchanged. This meant that in
non-shadowing cases, the not-actually-shadowed variable would have
the wrong maybe_assigned state, and e.g. would break context
specialization.

This patch pessimistically unconditionally sets maybe_assigned on
variables shadowed by a dynamic variable in a `with` scope. This
marking can cause false positives and sub-optimal optimization for
some functions with 'with' blocks, but it's also the simplest fix
for this issue which doesn't affect performance in the common case
of no 'with' blocks.

Bug: v8:9394
Change-Id: I6924bd7d48dda61232aa9d72c39df1c76c665c67
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678365
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62407}
2019-06-27 08:26:02 +00:00
Michael Achenbach
efdd3e5564 [test] Update comment about adding more swarming attributes.
NOTRY=true
TBR=tmrts@chromium.org

Bug: chromium:978771
Change-Id: I997d212344af2e3940d5220349485685ba04040c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1678360
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62406}
2019-06-27 08:21:12 +00:00