Commit Graph

54475 Commits

Author SHA1 Message Date
Francis McCabe
997982e980 [wasm] Clean up on missed reviewers comments.
Bug: v8:7431
Change-Id: I80ec116d21d67868747093887ca4660675dab8e4
Reviewed-on: https://chromium-review.googlesource.com/c/1473795
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Francis McCabe <fgm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59783}
2019-02-21 22:56:26 +00:00
Sathya Gunasekaran
b724020e00 Revert "[Intl] Ship Intl.Locale"
This reverts commit f1b21a1066.

Reason for revert: breaks https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/24373

Original change's description:
> [Intl] Ship Intl.Locale
> 
> Bug: v8:7684
> Change-Id: I5994c3fc4b97c4322c4e0cf20305da75e66efd5a
> Reviewed-on: https://chromium-review.googlesource.com/c/1478220
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59780}

TBR=adamk@chromium.org,gsathya@chromium.org,ftang@chromium.org

Change-Id: I7ae570d3cd0dd62f2b1a37c43b7f8b9ca51d7a5b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7684
Reviewed-on: https://chromium-review.googlesource.com/c/1481901
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59782}
2019-02-21 22:12:47 +00:00
Tobias Tebbi
a55608d81c Reland "[csa] disable selected bounds checks for remaining regressions"
This is a reland of c3148664bf

Original change's description:
> [csa] disable selected bounds checks for remaining regressions
>
> Bug: chromium:932919
> TBR: jarin@chromium.org
> Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8
> Reviewed-on: https://chromium-review.googlesource.com/c/1480387
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59773}

Bug: chromium:932919
Change-Id: Ifb115ded2ff272abae4fba557ef669eee8e3c687
TBR: tebbi@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/c/1481746
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59781}
2019-02-21 21:26:38 +00:00
Frank Tang
f1b21a1066 [Intl] Ship Intl.Locale
Bug: v8:7684
Change-Id: I5994c3fc4b97c4322c4e0cf20305da75e66efd5a
Reviewed-on: https://chromium-review.googlesource.com/c/1478220
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59780}
2019-02-21 21:04:18 +00:00
Sathya Gunasekaran
8f3410c9a5 [class] Ship private fields
Bug: v8:5368
Change-Id: I0d33076f8e9d31e07535b28f783e33cd24b946ad
Reviewed-on: https://chromium-review.googlesource.com/c/1481024
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59779}
2019-02-21 20:38:38 +00:00
Tom Tan
8dea08e856 [Win][ARM64] Fix shift mask constant for LLP64
Windows ARM64 does cross build for V8 and runs snapshot tool on build host
under simulator. Simulator is built with LLP64 data model so 0xFFFFL is 32-bit
long by default. It causes problem for the expression "0xFFFFL << shift" when
shift is 32, which actually does nothing on x64 because 0xFFFFL is only 32-bit.
The issue happens for instruction "movk rd, NUM lsl 32" which is simulated in

Simulator::VisitMoveWideImmediate. "0xFFFL << shift" acts as mask to clear bits
32-47 of the orignal value in rd. Under LLP64, the mask happens unexpectedly to
the lowest 16 bits of rd register and corrupts the result of rd. Specify 0xFFFFL
as 64 bit as 0xFFFFLL fixes this problem.

Bug: chromium:893460
Change-Id: Ibd911ce595e83637432a3e1f79a9bf28fcbe09f6
Reviewed-on: https://chromium-review.googlesource.com/c/1475330
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59778}
2019-02-21 20:30:30 +00:00
Sathya Gunasekaran
948c171865 Revert "[csa] disable selected bounds checks for remaining regressions"
This reverts commit c3148664bf.

Reason for revert: speculative revert for MSAN failure https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/25398

Original change's description:
> [csa] disable selected bounds checks for remaining regressions
> 
> Bug: chromium:932919
> TBR: jarin@chromium.org
> Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8
> Reviewed-on: https://chromium-review.googlesource.com/c/1480387
> Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59773}

TBR=jarin@chromium.org,jgruber@chromium.org,leszeks@chromium.org,tebbi@chromium.org

Change-Id: Ib6cb825375725773db73f40ad3b65e084645b568
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:932919
Reviewed-on: https://chromium-review.googlesource.com/c/1480914
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59777}
2019-02-21 20:25:53 +00:00
Sathya Gunasekaran
d439296eb5 Revert "[cleanup] Cleanup handling of padding field in Map"
This reverts commit 6f76328085.

Reason for revert: speculative revert for MSAN failure:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/25398

Original change's description:
> [cleanup] Cleanup handling of padding field in Map
> 
> Bug: v8:8834
> Change-Id: Iae9cbcccb8747298c5680ac1e865efebee85acec
> Reviewed-on: https://chromium-review.googlesource.com/c/1480385
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59774}

TBR=ulan@chromium.org,ishell@chromium.org,verwaest@chromium.org

Change-Id: Icf42e4566382c8539c8d7fb709a91bf0c6353858
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8834
Reviewed-on: https://chromium-review.googlesource.com/c/1481025
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59776}
2019-02-21 18:38:37 +00:00
Jaroslav Sevcik
6c22ae69da Stub cache: use more bits of map address for hashing.
This should recover the regression from constant field tracking
in Speedometer/angular.

Bug: chromium:930680
Change-Id: I9ccbcbdaf11556596ed5df5c08829b7ae329cab7
Reviewed-on: https://chromium-review.googlesource.com/c/1480383
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59775}
2019-02-21 17:24:56 +00:00
Igor Sheludko
6f76328085 [cleanup] Cleanup handling of padding field in Map
Bug: v8:8834
Change-Id: Iae9cbcccb8747298c5680ac1e865efebee85acec
Reviewed-on: https://chromium-review.googlesource.com/c/1480385
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59774}
2019-02-21 16:56:46 +00:00
Tobias Tebbi
c3148664bf [csa] disable selected bounds checks for remaining regressions
Bug: chromium:932919
TBR: jarin@chromium.org
Change-Id: Id1125dcd2978f790af4cf00125bcbb94741d0bf8
Reviewed-on: https://chromium-review.googlesource.com/c/1480387
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59773}
2019-02-21 16:53:07 +00:00
Igor Sheludko
7909a5f5bb [ptr-compr] Fix alignment issues in FastAsciiConvert()
With 32-bit kTaggedSize string data address may not be kSystemPointerSize
aligned.

Bug: v8:7703
Change-Id: I243e6844bed62d96f8b07328fffe23e83512e8e5
Reviewed-on: https://chromium-review.googlesource.com/c/1481217
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59772}
2019-02-21 16:41:46 +00:00
Stephan Herhut
08d5f432df [regalloc] Support spilling modes in range overview
This adds special prining for the different spill kinds.

Change-Id: Ib03da8e46b98c62b83c686ee90ae24c9052ddb39
Reviewed-on: https://chromium-review.googlesource.com/c/1477743
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59771}
2019-02-21 15:23:24 +00:00
Igor Sheludko
69e7ded547 [ptr-compr] Fix string externalization
With 32-bit kTaggedSize small strings may be not externalizable.

Bug: v8:7703
Change-Id: I34002568214742dadb2358fca97dfb4b92a5342a
Reviewed-on: https://chromium-review.googlesource.com/c/1480373
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59770}
2019-02-21 15:03:33 +00:00
Nico Weber
e0fd36b78c v8: Prep for removing TRACE_EVENT_SCOPED_CONTEXT.
It's only used in tests, and for some reason v8 refers to a macro defined
in src.git, so I need to remove this in v8 first before I can remove it
in Chromium.

Bug: chromium:934255
Change-Id: I31ea32aa43cf7a5f518def7b91dce99dcb268709
Reviewed-on: https://chromium-review.googlesource.com/c/1480911
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59769}
2019-02-21 14:59:43 +00:00
Leszek Swirski
16de69bd07 Revert "Update MicrotaskQueue ring buffer for pointer compression"
This reverts commit 8a1e927fdb.

Reason for revert: Seems to break chromium build (https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20pointer%20compression/1987)

Original change's description:
> Update MicrotaskQueue ring buffer for pointer compression
> 
> This updates MicrotaskQueue to use pointer-compression style object
> reference.
> 
> Bug: v8:8124
> Change-Id: I7bef92a8760609f3045d2025b145b9a0ec880424
> Reviewed-on: https://chromium-review.googlesource.com/c/1478320
> Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59762}

TBR=bmeurer@chromium.org,tzik@chromium.org

Change-Id: Id09e98271e3f301985a4312ecec27b2c292f9644
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8124
Reviewed-on: https://chromium-review.googlesource.com/c/1480381
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59768}
2019-02-21 14:44:09 +00:00
Farazmand
f8696d4e4c PPC/s390: [cleanup] Remove obsolete representations.
Port adb7e37b28

Original Commit Message:

    In the Crankshaft days we (mis)used the Representation to also express
    the various internal representations that the compiler understands. But
    with TurboFan we now have proper MachineRepresentation and MachineType,
    which do that independently. So there's no need to have this in the
    Representation class anymore, and instead the Representation class only
    needs to deal with the field representations.

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

Change-Id: Ie3c8062786d5fd42872e22be01cea45d719ea0a4
Reviewed-on: https://chromium-review.googlesource.com/c/1479972
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#59767}
2019-02-21 14:39:47 +00:00
Michael Starzinger
cc787e174e [asm.js] Fix handling of bogus code after export statement.
This makes the asm.js validator reject source with trailing expressions
after the module exporting return statement. Most of the time trailing
statements would not affect semantics, since they are unreachable. In
some cases we might hide an expected ReferenceError tough.

R=leszeks@chromium.org
TEST=mjsunit/regress/regress-crbug-934138
BUG=chromium:934138

Change-Id: I790366204f5e9c943715a065b5229f2442e2c86e
Reviewed-on: https://chromium-review.googlesource.com/c/1481216
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59766}
2019-02-21 14:37:37 +00:00
Jakob Gruber
285519582b Extend error messages for blob or isolate verification failures
Bug: v8:7777
Change-Id: I781ac51ba740655c644e19388c6cadad7267b18c
Reviewed-on: https://chromium-review.googlesource.com/c/1478209
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59765}
2019-02-21 14:33:37 +00:00
Igor Sheludko
85b80cb7bf [ptr-compr][wasm] Prepare wasm for 32-bit kTaggedSize
Bug: v8:7703
Change-Id: I06d4195597f0ac8ee771da49c9a402be48e91f15
Reviewed-on: https://chromium-review.googlesource.com/c/1480377
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59764}
2019-02-21 14:27:17 +00:00
Igor Sheludko
eac097c549 [cleanup] Don't crash when printing context->previous()
Bug: v8:8834
Change-Id: I5730e550f1b19e651d1fa7cb8b5694c9d839ff84
Reviewed-on: https://chromium-review.googlesource.com/c/1480374
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59763}
2019-02-21 14:24:37 +00:00
tzik
8a1e927fdb Update MicrotaskQueue ring buffer for pointer compression
This updates MicrotaskQueue to use pointer-compression style object
reference.

Bug: v8:8124
Change-Id: I7bef92a8760609f3045d2025b145b9a0ec880424
Reviewed-on: https://chromium-review.googlesource.com/c/1478320
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59762}
2019-02-21 14:16:27 +00:00
Jakob Gruber
9b5fe7b26d DCHECK_IMPLIES(FLAG_jitless, FLAG_embedded_builtins);
Bug: v8:7777
Change-Id: I0227ee37018e718014b8a8fbdba93e82a2209ae0
Reviewed-on: https://chromium-review.googlesource.com/c/1480372
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59761}
2019-02-21 13:26:47 +00:00
Toon Verwaest
0b9426ee39 [cleanup] Tiny simplification in Representation
- Remove unused IsSpecialization
- Simplify IsCompatibleForLoad

Change-Id: I555adf9869322b600072c5006ff71f6b846d4241
Reviewed-on: https://chromium-review.googlesource.com/c/1479958
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59760}
2019-02-21 13:04:57 +00:00
Stephan Herhut
9b1ab6f8b1 [regalloc] Add two spill modes.
This change adds two spilling modes: SpillAtDefinition and SpillDeferred.
The former is the known spilling mode where we spill at definition. The
latter spills only in deferred code regions. This is implemented based on
control flow aware allocation and its invariants.

The effect is mostly the same as splintering with the exception of
forward looking allocation decisions still being impacted by register
constraints in deferred code.

Change-Id: Ia708e5765dd095196a8127deb2d8bec950d37e04
Reviewed-on: https://chromium-review.googlesource.com/c/1437118
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59759}
2019-02-21 12:33:01 +00:00
Ulan Degenbaev
ff8f4144db [heap] Simplify idle notification handler
This merges the "do-nothing" case with the "done" case as the former
is no longer useful. This also fixes a bug where the idle time handler
would not make progress by always returning "do-nothing".

Change-Id: Ibdd3189e4fd35acc5405aa82a13ea8ee2fd74cc6
Reviewed-on: https://chromium-review.googlesource.com/c/1478695
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59758}
2019-02-21 12:25:52 +00:00
Ulan Degenbaev
511400cad3 Reland "[heap] Perform more embedder tracing in incremental marking step"
This is a reland of 49de587506

Original change's description:
> [heap] Perform more embedder tracing in incremental marking step
> 
> This should fix GC latency regressions introduced in 4c6598.
> 
> Bug: chromium:926189, chromium:930844, chromium:930693,chromium:931629
> Change-Id: I81c91829badbeea82d6e44670d07794632869424
> Reviewed-on: https://chromium-review.googlesource.com/c/1477216
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59668}

Bug: chromium:926189, chromium:930844, chromium:930693, chromium:931629
Change-Id: Ifa77647668bb052bb102b643182baf406cb9e059
Reviewed-on: https://chromium-review.googlesource.com/c/1477279
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59757}
2019-02-21 12:24:47 +00:00
Sven Sauleau
6f8bd2eb2f [wasm] change test name
Change-Id: Ib45690bb03b9c76502afed89a71e1dc9a545893b
Reviewed-on: https://chromium-review.googlesource.com/c/1481213
Commit-Queue: Sven Sauleau <ssauleau@igalia.com>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59756}
2019-02-21 12:02:47 +00:00
Mythri
90e5e24489 [ic] Update LoadIC builtins to handle no feedback cases
This cl moves the valid feeback vector checks to the builtins and uses
fast paths runtime when possible even whithout a valid feedback vector.
For LoadNamedProperty it calls LoadIC_Uninitialized which does not need
any type feedback and for LoadKeyedProperty it follows the megamorphic path
but doesnot use the stub cache.

Bug: v8:8293
Change-Id: I6ef9653e3f43c15cb882cbf82c3c2f63fb705a81
Reviewed-on: https://chromium-review.googlesource.com/c/1475393
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59755}
2019-02-21 11:20:20 +00:00
Michael Achenbach
55e6a98de5 Whitespace change to trigger bots
TBR=santa

Change-Id: I0ff05d47526d7e648c026daecb63ad80b668d9d8
Reviewed-on: https://chromium-review.googlesource.com/c/1481215
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59754}
2019-02-21 10:35:52 +00:00
Jakob Gruber
c54bbd2c23 Remove invalid DCHECK in ReplacementStringBuilder
The DCHECK verified capacity just before the call to EnsureCapacity()
(which extends capacity if needed). This DCHECK can just be removed
since FixedArray::set() already checks the given index is in-bounds.

Drive-by: Remove similar duplicate DCHECKs in FixedArrayBuilder.

Bug: chromium:933776
Change-Id: I9f058548063a170ea6dce112a3877792887efcca
Reviewed-on: https://chromium-review.googlesource.com/c/1479955
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59753}
2019-02-21 09:41:06 +00:00
Peter Marshall
51e80efd12 [tracing] Fix races in TracingController implementation
The default TracingController (used by d8 and Node) has some concurrency
issues. The new test flushes these out, when a second thread logs trace
events while the main thread calls StopTracing().

- Use an acquire load in UpdateCategoryGroupEnabledFlags() because this
  was racing with GetCategoryGroupEnabled() where a new category is
  added in the slow path. g_category_groups is append-only, but
  reads/writes to g_category_index need to be correctly ordered so that
  new categories are added and only then is the change to the index
  visible. The relaxed load ignored this and caused unsynchronized
  read/write.
- Use a relaxed load in ~ScopedTracer() to access category_group_enabled
  as this previously used a non-atomic operation which caused a race
  with UpdateCategoryGroupEnabledFlag() which does a relaxed store.
- Replace TracingController::mode_ with an atomic bool as read/writes to
  mode_ were not synchronized and caused TSAN errors. It only has two
  states and it doesn't seem like we will extend this so just convert it
  to bool.
- Take the lock around calling trace_object->Initialize in
  AddTraceEvent(), and around trace_buffer_->Flush() in StopTracing().
  These two raced previously as the underlying TraceBufferRingBuffer
  passes out pointers to TraceObjects in a synchronized way, but the
  caller (AddTraceEvent) then writes into the object without
  synchronization. This leads to races when Flush() is called, at which
  time TraceBufferRingBuffer assumes that all the pointers it handed out
  are to valid, initialized TraceObjects - which is not true because
  AddTraceEvent may still be calling Initialize on them. This could be
  the cause of issues in Node.js where the last line of tracing/logging
  sometimes gets cut off. This is kind of a band-aid solution - access
  to the TraceObjects handed out by the ring buffer really needs proper
  synchronization which at this point would require redesign. It's quite
  likely we will replace this with Perfetto in the near future so not
  much point investing in this code right now.
- Enable TracingCpuProfiler test which was flaky due to these bugs.

Bug: v8:8821
Change-Id: I141296800c6906ac0e7f3f21dd16d861b07dae62
Reviewed-on: https://chromium-review.googlesource.com/c/1477283
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ali Ijaz Sheikh <ofrobots@google.com>
Cr-Commit-Position: refs/heads/master@{#59752}
2019-02-21 08:34:16 +00:00
Georg Neis
f2dcbf8d61 [turbofan] Remove redundant things from AccessInfoFactory
Bug: v8:7790
Change-Id: I92657d3aae6ba34b2aeeb6f000962707577811b6
Reviewed-on: https://chromium-review.googlesource.com/c/1478696
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59751}
2019-02-21 07:52:56 +00:00
Benedikt Meurer
adb7e37b28 [cleanup] Remove obsolete representations.
In the Crankshaft days we (mis)used the Representation to also express
the various internal representations that the compiler understands. But
with TurboFan we now have proper MachineRepresentation and MachineType,
which do that independently. So there's no need to have this in the
Representation class anymore, and instead the Representation class only
needs to deal with the field representations.

Bug: v8:8749, v8:8834, v8:8865
Change-Id: I34ea9558b5fdf20d6c7939b52762eaffd4316b06
Reviewed-on: https://chromium-review.googlesource.com/c/1479954
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59750}
2019-02-21 06:07:06 +00:00
Jaroslav Sevcik
9371781f60 [turbofan] Support f64 truncation in f64->tagged representation change.
Bug: chromium:933331
Change-Id: I598a32b1efe2d4b7e8278ddf84140c72f787afa8
Reviewed-on: https://chromium-review.googlesource.com/c/1475496
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59749}
2019-02-21 05:04:26 +00:00
Z Duong Nguyen-Huu
04bb510c4e Reland "Make format torque tools work on win"
This is a reland of 1fdf64059d

Original change's description:
> Make format torque tools work on win
>
> Reformatting Torque file is required to upload a CL
> but it can only work on POSIX
>
> Change-Id: I51283e3f6b29abf492be7efb5b8f10454d09fb37
> Reviewed-on: https://chromium-review.googlesource.com/c/1475919
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Michael Stanton <mvstanton@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59719}

Change-Id: I09a19a9989091205eb413fd60b2e8bec289092fd
Reviewed-on: https://chromium-review.googlesource.com/c/1479530
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59748}
2019-02-21 03:37:26 +00:00
Matt Gardner
db69e088b5 [test] Add perf test for in operator on arrays
Change-Id: I808ce4d0089accd3f6afaeab98bd6237e169f793
Reviewed-on: https://chromium-review.googlesource.com/c/1475915
Commit-Queue: Matt Gardner <magardn@microsoft.com>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59747}
2019-02-20 22:36:13 +00:00
Sathya Gunasekaran
72ce4de2c8 [parser] Refactor ParseSuperExpression
Throw error when accessing private field on super.

Bug: v8:8872
Change-Id: Iad383890fafbdccdd6b6b75a8f9eb32c9d6f5044
Reviewed-on: https://chromium-review.googlesource.com/c/1478219
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59746}
2019-02-20 19:53:36 +00:00
Jeff Fisher
bab6615155 [inspector] Add tests for Debugger domain
New tests added for these calls:

* evaluateOnCallFrame
* setAsyncCallStackDepth
* setBreakpoint
* setVariableValue

For setAsyncCallStackDepth, this change updates the test to manufacture async callstacks in a different way so that there is more than one. The previous promise chain method was broken by f61facf.

Change-Id: I9083b0b1c08849d4c7ebb5349cfa4489f551aa39
Reviewed-on: https://chromium-review.googlesource.com/c/1465118
Commit-Queue: Jeff Fisher <jeffish@microsoft.com>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59745}
2019-02-20 18:57:33 +00:00
Seth Brenith
0b07a88815 nicer error messages when required 'generates' clause is missing
Currently, it is possible to make the Torque compiler emit uncompilable
C++ code if a 'generates' clause is missing. Rather than making the
developer spelunk through generated code to find out what went wrong,
we can catch this error earlier and print a useful message.

Bug: v8:7793
Change-Id: I49fabc1d39f398bf322523901941494b8dab0506
Reviewed-on: https://chromium-review.googlesource.com/c/1477964
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#59744}
2019-02-20 17:29:01 +00:00
Georg Neis
3d943e7791 [test] Explicitly set --turbo-inlining in a cctest
I missed this one in my previous CL.

R=jarin@chromium.org

Change-Id: Ie4b912ee7e3367da48c0d4b092ad09e3f81de788
Reviewed-on: https://chromium-review.googlesource.com/c/1477677
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59743}
2019-02-20 16:38:10 +00:00
Sathya Gunasekaran
a9e2ad2523 [class] Throw error when private name occurs in top level function
Bug: v8:7468
Change-Id: I4e0d99b8ea4580b9cf7abb57f3d6974dd98041e5
Reviewed-on: https://chromium-review.googlesource.com/c/1478215
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59742}
2019-02-20 16:16:30 +00:00
Ulan Degenbaev
624ab5cc1f [test] Adjust test expectations for regress-779407 on android.
The test started passing on android arm64 after
https://chromium-review.googlesource.com/c/1477736

Change-Id: I52e8372678e37b68d2af4d53b06025ed3660f159
Reviewed-on: https://chromium-review.googlesource.com/c/1478206
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59741}
2019-02-20 16:07:00 +00:00
Leszek Swirski
f5171b1f25 Revert "Roll ICU to 07e7295d from 960f195"
This reverts commit bd45b89ead.

Reason for revert: Android Arm64 failures ( https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Android%20Arm64%20-%20N5X/3243)

Original change's description:
> Roll ICU to 07e7295d from 960f195
> 
>  07e7295d..960f195
> 
> The following change includes:
> 
>   960f195 Cherry-pick 3 locale fixes
> 
> Bug: v8:8242,v8:8260
> Change-Id: I0b0641db5c75d2ce926dce0e30162f0f6c106ebe
> Reviewed-on: https://chromium-review.googlesource.com/c/1476290
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59711}

TBR=jshin@chromium.org,gsathya@chromium.org,ftang@chromium.org

Change-Id: I5b9ff7e27e12663ac63063c945608a7abfa2cecf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8242, v8:8260
Reviewed-on: https://chromium-review.googlesource.com/c/1478208
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59740}
2019-02-20 15:17:45 +00:00
Tamer Tas
f31dcb59f6 [v8] define linux64 gc stress trybot in src side
Adds the src side definitions for integrating
"V8 Linux64 GC Stress - custom snapshot" waterfall bot into the try jobs.

R=machenbach@chromium.org
CC=​yangguo@chromium.org,sergiyb@chromium.org

Bug: v8:8718
No-Try: true
Change-Id: Ie75846486b15127ea35ef6bbd478beb513f6d299
Reviewed-on: https://chromium-review.googlesource.com/c/1478194
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59739}
2019-02-20 15:10:23 +00:00
Michael Starzinger
4566cb4059 [wasm][test] Extend jump-table stress test to all archs.
This extends the "test-jump-table-assembler" stress test to supported
architectures. Note that on both PPC and S390 the tests flushes out the
race during jump table patching pretty reliably. Fixing this issue is
outside the scope of this change, this just ensures test coverage exists
but keeps the test in question disabled.

R=clemensh@chromium.org
TEST=cctest/test-jump-table-assembler
BUG=v8:8018

Change-Id: Ia299ed2a42f9858019627270a25026b53f3628d3
Reviewed-on: https://chromium-review.googlesource.com/c/1478200
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59738}
2019-02-20 14:54:52 +00:00
Michael Achenbach
48d5f1bce0 [test] Bump shards on branch builders
Those shard configs should stay in sync with master builders.

NOTRY=true
TBR=sergiyb@chromium.org

Change-Id: I083a4eed8ded884ad8345ba65153f424c9f0ef2f
Reviewed-on: https://chromium-review.googlesource.com/c/1475536
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59737}
2019-02-20 14:37:42 +00:00
Sigurd Schneider
3b0c4a413c Revert "Make format torque tools work on win"
This reverts commit 1fdf64059d.

Reason for revert: Alters behavior on linux; we need to investigate

Original change's description:
> Make format torque tools work on win
> 
> Reformatting Torque file is required to upload a CL
> but it can only work on POSIX
> 
> Change-Id: I51283e3f6b29abf492be7efb5b8f10454d09fb37
> Reviewed-on: https://chromium-review.googlesource.com/c/1475919
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Commit-Queue: Michael Stanton <mvstanton@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59719}

TBR=mvstanton@chromium.org,bmsdave@gmail.com,duongn@microsoft.com

Change-Id: I8845fa1d1ddf5ce841a84ef59c9572673e4a2510
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1478199
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59736}
2019-02-20 14:13:53 +00:00
Sigurd Schneider
8e7f155e04 Revert "[torque] Temporarily disable torque format check to pass presubmit"
This reverts commit 0052f12a96.

Reason for revert: Fix available

Original change's description:
> [torque] Temporarily disable torque format check to pass presubmit
> 
> Revert this once the bug is fixed.
> 
> Change-Id: I28490ecc9290b5c1f09e1ee8bcd8b600f79f017d
> Bug: v8:8873
> Notry: true
> Notreechecks: true
> Reviewed-on: https://chromium-review.googlesource.com/c/1477747
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59720}

TBR=machenbach@chromium.org,sigurds@chromium.org,tebbi@chromium.org

Change-Id: I1a51ee93d7adbd1f14103da68e64548141163706
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8873
Reviewed-on: https://chromium-review.googlesource.com/c/1478198
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59735}
2019-02-20 14:07:17 +00:00
Sigurd Schneider
3119feabfc Revert "[torque] Temporarily remove torque format check to pass presubmit"
This reverts commit 91213b5c0b.

Reason for revert: Fix available

Original change's description:
> [torque] Temporarily remove torque format check to pass presubmit
> 
> Revert this once the bug is fixed.
> 
> TBR=machenbach@chromium.org
> 
> Change-Id: I32c9ef41b968e37b6de9eddb7e4e27c1d60c87c8
> Bug: v8:8873
> Notry: true
> Notreechecks: true
> Reviewed-on: https://chromium-review.googlesource.com/c/1477749
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#59721}

TBR=sigurds@chromium.org

Change-Id: Icf4454ca9ed1d276fe0a0a3fa0bba3553a6b8a87
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8873
Reviewed-on: https://chromium-review.googlesource.com/c/1478197
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59734}
2019-02-20 14:06:13 +00:00