Commit Graph

55084 Commits

Author SHA1 Message Date
Benedikt Meurer
19dcbec829 [cleanup] Remove obsolete --type_info_threshold flag.
The --type_info_threshold is no longer supported for a long time and
doesn't do anything useful nowadays, so no point in having that around.

Drive-by-fix: Remove the FeedbackVector::ComputeCounts() logic, since
it's dead code anyways by now.

Bug: v8:8834
Change-Id: I05f7517b3b82e34c0a83357337a456ab9c9f1f42
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538128
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60442}
2019-03-25 13:40:38 +00:00
Clemens Hammacher
573a91cd16 [wasm][gc] Introduce GlobalWasmCodeRef for use in FrameArray
{FrameArray} needs a way to keep {WasmCode} alive from a JS container.
This CL instruces {GlobalWasmCodeRef}, which is the equivalent to a
global handle: It increments the {WasmCode} reference counter on
construction and decrements it on destruction.
The {GlobalWasmCodeRef} is held in a {Managed} from JS.

R=titzer@chromium.org

Bug: v8:8217
Change-Id: I5604a666840c27078db63c8618412ca412525be1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533862
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60441}
2019-03-25 13:26:31 +00:00
peterwmwong
660d828790 [debug] Mark toLocaleString and TA#join builtins as side-effect free.
Bug: chromium:940373
Change-Id: If5f90ff5f873f0687c6a6a4063e0d09d6bbbd556
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533157
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Cr-Commit-Position: refs/heads/master@{#60440}
2019-03-25 13:20:14 +00:00
Joyee Cheung
d9de15e5f1 Add missing include in ic.cc for V8_TRACE_FEEDBACK_UPDATES
It otherwise does not compile on macOS when V8_TRACE_FEEDBACK_UPDATES
is enabled.

Change-Id: Ie3abaf901a9e28a02aaebd1de96448ce097bd0d2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1537295
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Cr-Commit-Position: refs/heads/master@{#60439}
2019-03-25 13:12:03 +00:00
Clemens Hammacher
8e84ba3501 [wasm][gc] Add data structures for ref-counted WasmCode
This adds support to ref-count uses of WasmCode, and introduces a
{WasmCodeRefScope} to be used whereever WasmCode objects need to be
kept alive, e.g. because a pointer is passed around.
Future CLs will introduce proper scopes in the whole code base and
enable the DCHECK that's currently commented out.

R=titzer@chromium.org

Bug: v8:8217
Change-Id: I1659a0e9d57cd22fe70e6f2661d0d8af9f0906c7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526005
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60438}
2019-03-25 13:07:08 +00:00
Jaroslav Sevcik
149b82230e [turbofan] Only lower constant load if feedback agrees with receiver map.
Bug: chromium:945187
Change-Id: I564a4495f13651ea9fdf1b95c25658b92ff9de49
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538125
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60437}
2019-03-25 13:06:04 +00:00
Benedikt Meurer
077e49a196 [turbofan] Remove duplicated optimization limit.
Before this change we had essentially two optimization limits, one hard
limit in the TurboFan pipeline (128KiB), and a soft limit in the runtime
profiler (60KiB). The hard limit was only relevant to --always-opt and
other internal test infrastructure, and the soft limit was always
enforced on regular JavaScript, but didn't properly disable further
optimization for the function (so for example --trace-opt would
continuesly report attempts to optimize the function).

Now with this change we only have the hard limit, set to 60KiB, in the
TurboFan pipeline and use that consistently.

Bug: v8:8598
Change-Id: I9e2ae7cb67de4a2256d3a7b9c3aee3dab60c2ec1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538127
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60436}
2019-03-25 12:38:31 +00:00
Sigurd Schneider
ceb0bea586 [WIP][deoptimizer] Accept kCompressed as state value input
Change-Id: Ie09953d0b9453a1f22312ad1782e2c41b8230679
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533858
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60435}
2019-03-25 12:20:00 +00:00
Clemens Hammacher
f43b45a143 [wasm][cleanup] Use macros to load instance fields
Use the existing macros to load MemoryStart and MemorySize from the
instance.

R=titzer@chromium.org

Change-Id: Iaa597fedcfc4581503d7cdf2fb94da6e285cc545
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538122
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60434}
2019-03-25 12:00:49 +00:00
Benedikt Meurer
27258eb8cc [tracing] Log precise TurboFan/Wasm phase information via Tracing.
This extends the existing PipelineStatistics in the TurboFan pipeline
(also used for Wasm) to emit trace events for the various phases of the
(optimized) compilation. This works for "disabled-by-default-v8.compile"
and "disabled-by-default-v8.wasm" categories.

We also rename the existing phase names to match the naming convention
for the V8 trace events (starting with either "V8.TF" or "V8.Wasm") to
make it easy to spot and categorize them in the trace viewer.

This can be seen in action here

  https://i.paste.pics/a33c0e3942ff707af44f67ed4bac46b0.png

taken from a run of Octane/TypeScript.

Bug: v8:8598
Change-Id: Id40092ee8afc8d998532f8641780052769cad320
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538121
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60433}
2019-03-25 11:12:39 +00:00
Sigurd Schneider
6604f1826d [heap] Clean-up keys of oldspace weakmaps during scavenge
This CL adds handling for cleaning up weakmap (EphemeronHashTable)
keys during scavenge, even if the weakmap resides in oldspace.

Change-Id: If8d711c050ddbcae4dd6e8da549e0c0d08ba47b2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523787
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60432}
2019-03-25 10:52:57 +00:00
Clemens Hammacher
83f76ba3b5 [wasm] Rename inl headers that can be plain headers
Both js-to-wasm-wrapper-cache-inl.h and wasm-import-wrapper-cache-inl.h
do not include any inl headers, thus they can be plain headers. If they
ever need to include inl headers again, we should split out the
respective functions into a separete inl header to follow the usual
pattern to have *both* a plain header *and* an inl header.

R=mstarzinger@chromium.org

Bug: v8:8834
Change-Id: I1b1b917a8e2c47f1354522479f8c57475bee6244
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535826
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60431}
2019-03-25 10:48:34 +00:00
Sigurd Schneider
9298d21863 [js-perf-test] Add more WeakMap perf tests
Bug: v8:8557
Change-Id: I213b5944de72eb09a18e44789539b6b420e68068
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538117
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60430}
2019-03-25 10:47:29 +00:00
Michael Starzinger
ea3197f925 [heap] Drop {kMaxWriteUnprotectCounter} limit by one.
R=hpayer@chromium.org
BUG=v8:6792

Change-Id: I0e773a980b76b033e2561c37db1a43ab1b58da0b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532071
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60429}
2019-03-25 10:40:59 +00:00
Benedikt Meurer
b8490293cc [tracing] Properly trace stack guards and interrupts.
Add tracing support for the %StackGuard() and %Interrupt() runtime calls
and the individual actions performed in StackGuard::HandleInterrupts().
This includes:

 - "V8.GCHandleGCRequest" (in "disabled-by-default-v8.gc") when the
   GC_REQUEST bit is set.
 - "V8.WasmGrowSharedMemory" (in "disabled-by-default-v8.wasm") when
   the GROW_SHARED_MEMORY bit is set.
 - "V8.TerminateExecution" (in "v8.execute") when the
   TERMINATE_EXECUTION bit is set.
 - "V8.GCDeoptMarkedAllocationSites" (in "disabled-by-default-v8.gc")
   when the DEOPT_MARKED_ALLOCATION_SITES bit is set.
 - "V8.InstallOptimizedFunctions" (in "disabled-by-default-v8.compile")
   when the INSTALL_CODE bit is set.
 - "V8.InvokeApiInterruptCallbacks" (in "v8.execute") when the
   API_INTERRUPT bit is set.

Now we also emit a trace event "V8.MarkCandidatesForOptimization" (in
"disabled-by-default-v8.compile") in addition to the above from the
RuntimeProfiler when we mark candidates for optimization at the end
of each stack check.

An example of the "V8.InstallOptimizedFunctions" in action (in the
trace viewer) can be seen here:

  https://i.paste.pics/094a04af035eedc0690cd4079afa28f1.png

This supersedes the previously introduced --trace-interrupts CLI flag,
which is thus removed as part of this change.

Bug: v8:8598
Change-Id: I3c3375d00b07cbe700b6912097d7264031ace802
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538116
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60428}
2019-03-25 10:36:51 +00:00
Andreas Haas
8cbcae37db [wasm] Handle rejected input promise in WebAssembly.compileStreaming
In the implementation of WebAssembly.compileStreaming and
WebAssembly.instantiateStreaming, we did not handle the case where the
input, which is a Promise, gets rejected. When this Promise got
rejected, the Promise returned by compileStreaming remained pending
forever.

With this CL, the rejection object of the input Promise gets forwarded
to the result Promise.

I also extended the --wasm-test-streaming flag to provide
WebAssembly.compileStreaming and WebAssembly.instantiateStreaming
in d8. The difference to the Chrome versions of these function is
that d8 does not know about Response objects. That's why in d8
compileStreaming and instantiateStreaming expect a Promise to an
ArrayBuffer or a TypedArray and not to a Response object.

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Bug: chromium:943487
Change-Id: I77f789e9ae5d50ae9c9bc92bf27dbfe338fe0f13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535817
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60427}
2019-03-25 10:18:23 +00:00
Andreas Haas
d2fec28e22 [wasm] Add handling of anyfunc to ValueTypeCodeFor
R=mstarzinger@chromium.org

Bug: v8:8834
Change-Id: If6bbd60e3d65abf78bb10911254e7fe24932831e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538118
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60426}
2019-03-25 10:15:21 +00:00
Clemens Hammacher
dce80ce288 [managed] Clean up {std::shared_ptr} use
1) Pass {std::shared_ptr} by reference if a copy might not be needed.
   This applies both to accessors as well as constructing methods.
   This change often saves one atomic increment and decrement of the
   internal reference counter.
2) Use {std::make_shared} directly to improve memory management of the
   {std::shared_ptr}. This saves one dynamic memory allocation on all
   known implementations.

R=titzer@chromium.org

Bug: v8:8834
Change-Id: I1a951deb135082745885bc981662a8d6d6fb1a71
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532333
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60425}
2019-03-25 10:08:49 +00:00
Allan Sandfeld Jensen
8c42bd9ea4 Avoid theoretical quadratic runtime on removing redundant moves
Change-Id: I3b9a85e53333349b30f3acb6219e7e47861ca042
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1491596
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60424}
2019-03-25 10:02:19 +00:00
Mathias Bynens
f927e31929 [compiler] Fix “TurboFan” casing in logged output
Bug: v8:8834
Change-Id: Ie879ae77f0601682dcd17a61f3a18f49eb78fbee
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535833
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60423}
2019-03-25 09:33:59 +00:00
Peter Marshall
247c4fff17 [tracing] Add the proto to json converter for trace events
This is used to convert files with binary proto data to the Trace Event
.json format for use with the chrome://tracing viewer.

Change-Id: Ib5478f6aa2326b5e085506859f4a7f30f95c79f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535823
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60422}
2019-03-25 08:56:18 +00:00
Benedikt Meurer
48fcceea8c [tracing] Fix namespace for TRACE_ID_WITH_SCOPE().
Inside V8 the TraceID class sits in v8::internal::tracing instead of
trace_event_internal namespace (as in Chrome).

Bug: v8:8834
Change-Id: I9464e6145c4fd4c794ac3f50052a5fa1b068aeed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535834
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60421}
2019-03-25 08:32:18 +00:00
Z Duong Nguyen-Huu
1cab593c19 Torquefy some types
EmbedderDataArray, JSMessageObject, JSSet, JSMap, JSWeakSet, JSWeakMap

Bug: v8:8952
Change-Id: I996d9e18006184b8ac7be7d362e8faf36e44aaef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534304
Reviewed-by: Simon Zünd <szuend@chromium.org>
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60420}
2019-03-25 05:12:38 +00:00
v8-ci-autoroll-builder
27b9262f44 Update V8 DEPS.
Rolling v8/build: 724c206..625ee00

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4b0dd1e..347c5e4

Rolling v8/third_party/depot_tools: e4e1dde..ba35c7f

Rolling v8/third_party/googletest/src: 8b6d3f9..a18ac39

Rolling v8/tools/clang: 2e1c40d..ad70d89

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

Change-Id: I9963ef2febd9ce74bdd0783822f8fe512b1d3977
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1537898
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@{#60419}
2019-03-25 03:41:17 +00:00
Frank Tang
73c56a507a [Intl] Implement proposal-intl-DateTimeFormat-formatRange
https://rawgit.com/fabalbon/proposal-intl-DateTimeFormat-formatRange/master/out/

Design Doc https://goo.gl/PGUQ1d

Bug: v8:7729
Change-Id: I38b53ffdf610400b4132a25da99dac4be67bdf4b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510574
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60418}
2019-03-24 16:35:01 +00:00
v8-ci-autoroll-builder
c31a45d9c0 Update V8 DEPS.
Rolling v8/build: c52372f..724c206

Rolling v8/buildtools: 735271f..31e0bb5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2f1832a..4b0dd1e

Rolling v8/third_party/depot_tools: 33bd582..e4e1dde

Rolling v8/tools/clang: 2116ee9..2e1c40d

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

Change-Id: Ie9b3b4889df9048f3bed1310dd05e852a6f98f45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1536506
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@{#60417}
2019-03-24 16:33:56 +00:00
Sathya Gunasekaran
33fa605a86 [test262] Clean up Test262 status file
These flags are no longer necessary.

Change-Id: Id686b2820ba05d7400cdb8ef9bb7f95c01cbe698
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1536451
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60416}
2019-03-22 23:26:49 +00:00
Nico Weber
5df31db055 Make win/cross build work better when targeting arm64 on macOS hosts.
Remove a special case on mac hosts that was needed when is_clang wasn't
the default on Win, but is unnecessary now and gets in the way.

Bug: chromium:801780,chromium:495204
Change-Id: I8d6783c73e0c240704830a46304482e3ce94418b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534634
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60415}
2019-03-22 18:30:23 +00:00
Bill Budge
aa706218d6 [wasm simd] Make F32x4Min/Max IEEE 754 compliant
- Changes min and max sequences to propagate NaNs and signed
  zeroes.

- Note that NaN propagation must preserve canonical NaNs. This is
  achieved by always returning canonical NaNs. This is also
  consistent with the WebAssembly scalar math spec.

Bug: v8:8639
Change-Id: I04fdefabc54ea60f4d02e2081c32444a02dd6a83
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524634
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60414}
2019-03-22 18:26:23 +00:00
Benedikt Meurer
41a4651af6 [tracing] Correct "V8.OptimizeCode" scope.
The "V8.OptimizeCode" trace event (in "disabled-by-default-v8.compile"
category) didn't include the setup of the OptimizedCompilationJob, which
is quite expensive already and should be accounted for properly.

Bug: v8:8598
Change-Id: Ieec139c8d555d02edfbc52e904ee214d1007afbd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533871
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60413}
2019-03-22 15:06:55 +00:00
Santiago Aboy Solanes
8d605323e5 [ptr-compr][arm64] Add a switch for branchless/branchful decompression
Similar to x64's https://chromium-review.googlesource.com/c/v8/v8/+/1511486

Bug: v8:7703
Change-Id: Ifd634a36bb56a53cb9901d9dd0899b66229607ef
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535828
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60412}
2019-03-22 14:54:55 +00:00
Georg Neis
95b09e3e98 [turbofan] Support named access on global proxy in serializer
Process feedback and hints for Lda/StaNamed bytecodes w.r.t. access on
the global proxy. This stores the property cells (or their absence) on
the JSGlobalProxyData.

Bug: v8:7790
Change-Id: Iadedea5494611c1b2ed38b6ce75687e084cc27f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499499
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60411}
2019-03-22 14:23:53 +00:00
Milad Farazmand
4f2586b926 PPC/S390: initiating pointer compression fixes
Change-Id: I290ea07e4f6c66d04ee0daa04ac78a47d9f4432e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535519
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#60410}
2019-03-22 13:52:53 +00:00
Peter Marshall
4db62d2aed [platform] Only wait for positive time values in DelayedTaskQueue
We were hitting a DCHECK in WaitFor() when rel_time was negative. This
was caused when GetNext() recalculated the wait time for a delayed
task. In the first part of the loop we moved all delayed tasks which
have passed their deadline into the immediate task queue. At the
bottom of the loop we assume that all delayed tasks in the queue
have a deadline in the future, but this isn't always the case as we
use a new 'now' value for the calculation, and time could have elapsed.

Fix this by using one 'now' value for an iteration of the loop.

Bug: v8:9030
Change-Id: Ia49fb571f3c7c7d9f15c6a464ee0a9db814a7f03
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535820
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60409}
2019-03-22 12:06:38 +00:00
Sigurd Schneider
85017f0428 Reland "Reland "[regalloc] Introduce deferred fixed ranges""
This is a reland of 1ca088652d

Original change's description:
> Reland "[regalloc] Introduce deferred fixed ranges"
> 
> This is a reland of b176931311
> 
> Original change's description:
> > [regalloc] Introduce deferred fixed ranges
> > 
> > Fixed ranges are used to express register constraints in the
> > allocator. This change splits these fixed ranges into one for
> > normal code and deferred code. The former are handeled as before
> > whereas the latter are only made visible while allocating
> > registers for deferred code.
> > 
> > This prevents forward looking decisions in normal code to be
> > impacted by register constraints from deferred code.
> > 
> > Change-Id: I67d562bb41166194e62765d5ab051bc961054fc7
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1477742
> > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#60322}
> 
> Change-Id: I1a31150256eb5608db985b144aab7ea457169d0d
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530810
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60364}

Change-Id: If4a956716e7e4de132f706be2c395cdfdc04ec94
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532328
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60408}
2019-03-22 10:49:16 +00:00
Sven Sauleau
1d28a5d888 [wasm] use binding snake_case
This CL changes the case of the variable name I introduced in a previous CL.

Change-Id: I6d44eaf8361fa7e021c1107af49ce85238165449
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535821
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Sven Sauleau <ssauleau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#60407}
2019-03-22 10:48:11 +00:00
Sigurd Schneider
83a36e8e54 [deoptimizer] Remove unused struct
Bug: v8:8834
Change-Id: Ifd5384fab1a1450275b0e8f193498b43dcbc3a5e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532334
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60406}
2019-03-22 10:16:11 +00:00
Sergiy Belozorov
bfbf8cccf4 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:923304
Change-Id: I2f3cf3f314165a683d24cbf252d46bec6e5f011c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535822
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60405}
2019-03-22 09:58:11 +00:00
Sven Sauleau
b2de74410c [wasm] fix special parameter in int64-lowering
In the int64 lowering pass some parameter nodes are considered special
and don't require any transformation. For instance the Wasm instance.

With the experimental-wasm-bigint proposal, two new special parameters
are going through the pass, this CL avoids transforming them.

Change-Id: Ie99ffaff125b9ef8c56e1883aac9e18e4072fc3e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532336
Auto-Submit: Sven Sauleau <ssauleau@igalia.com>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Sven Sauleau <ssauleau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#60404}
2019-03-22 07:49:31 +00:00
v8-ci-autoroll-builder
84bc212cf8 Update V8 DEPS.
Rolling v8/base/trace_event/common: 936ba8a..c7664bb

Rolling v8/build: 9dba2d4..c52372f

Rolling v8/buildtools: a2a4845..735271f

Rolling v8/buildtools/third_party/libc++/trunk: a50f503..4daecde

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/bf564e0..2f1832a

Rolling v8/third_party/depot_tools: cf9613f..33bd582

Rolling v8/tools/clang/dsymutil:chromium/llvm-build-tools/dsymutil: https://chrome-infra-packages.appspot.com/chromium/llvm-build-tools/dsymutil/+log/kykIT8m..OWlhXkm

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

Change-Id: I219f5ee1d72c736285d680c8a3fec4ac918d85be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534975
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@{#60403}
2019-03-22 03:40:36 +00:00
Jakob Gruber
5914c29e5b [regexp] Port RegExp.prototype[@@replace] to Torque
Just the outermost wrapper function (which does almost nothing).

Bug: v8:8976
Change-Id: I8137f86bde5e10ba7edd5051e7c86bfc631bfe94
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528531
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Peter Wong <peter.wm.wong@gmail.com>
Cr-Commit-Position: refs/heads/master@{#60402}
2019-03-22 03:18:06 +00:00
peterwmwong
955dfb5010 [builtins] Port String.prototype.repeat to Torque
Bug: v8:8996
Change-Id: Iffe8fe46536ae6749e8dcad1e0e441c3626cba95
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1527558
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60401}
2019-03-22 02:21:46 +00:00
Georg Neis
e80082bf54 [turbofan] Add missing map checks in a reducer
ReduceArrayIndexOfIncludes didn't account for kUnreliableReceiverMaps.
Will think about a more robust mechanism for this.

Bug: chromium:944062
Change-Id: Ib2bdaf4399225de4413e12c5684f58dfe524a2cd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532331
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60400}
2019-03-21 21:25:01 +00:00
Sergiy Belozorov
aca2c9e606 Remove old JSTests config
R=machenbach@chromium.org, tmrts@chromium.org

Bug: chromium:923304
Change-Id: I65898b7edea8d696d957a8ba19809484e663cb27
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533864
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60399}
2019-03-21 21:16:02 +00:00
Sergiy Belozorov
9c4eed2005 [tools] Whitespace CL
TBR=sergiyb@chromium.org

No-Try: true
Bug: chromium:923304
Change-Id: Ide9451848e227d27ba7d5b413649e50ce29bb586
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533870
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60398}
2019-03-21 19:48:33 +00:00
Michael Achenbach
f936fb4258 Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64""
This reverts commit 7b8968368d.

Reason for revert: Lots of test failures on current roll:
https://chromium-review.googlesource.com/c/chromium/src/+/1534141

Original change's description:
> Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
> 
> This is a reland of 4f051fd5da
> 
> Relanding because last revert was caused by unrelated flakes.
> 
> Original change's description:
> > [ptr-compr][x64] Temporarily enable pointer compression on x64
> >
> > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
> > pointer compression in order to keep testing the full pointer mode.
> >
> > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
> > Bug: v8:7703
> > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
> > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
> > Commit-Queue: Igor Sheludko <ishell@chromium.org>
> > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
> > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#60339}
> 
> Bug: v8:7703
> Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c
> Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60370}

TBR=machenbach@chromium.org,ishell@chromium.org

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

Bug: v8:7703
Change-Id: I1c037470b5895c4269c9574e6c93d0eed6fe90d5
Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533867
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60397}
2019-03-21 17:57:15 +00:00
Ben Smith
8a7f562e14 [wasm] Implement bulk memory table.copy in interpreter
Most of the mjsunit/wasm/table-copy.js tests have been ported to
cctests, so they can be tested with all execution tiers.

Bug: v8:8965
Change-Id: I448719be30a4b2bddb9e2cffb4c74d3134db2f50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529548
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60396}
2019-03-21 16:26:20 +00:00
Sergiy Belozorov
a617f38fd1 Split JSTests benchmark into 5 smaller shards
The original config will be removed after infra-side change will land and start
using new configs.

R=machenbach@chromium.org, tmrts@chromium.org

Bug: chromium:923304
Change-Id: I5323f0d01724cef2472592bd8e5beb15de232346
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533863
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60395}
2019-03-21 16:01:20 +00:00
Cliff Smolinsky
02c06b1022 Delayload shlwapi
V8_libbase.dll, in a component build where the dll is created,
statically links against shlwapi.dll. Shlwapi is only needed for a
single use within the debug stacktrace code and is therefore not needed
in most cases. Statically loading shlwapi also brings in user32.dll and
gdi32.dll, so this is a decent perf hit which is generally unnecessary.
This changes delayloads shlwapi so that is only loaded when actually
used.

Bug: v8:9024
Change-Id: Ib8842893a43cde4b1110a333ae07d861088ba829
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533145
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Cliff Smolinsky <cliffsmo@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#60394}
2019-03-21 15:52:00 +00:00
Santiago Aboy Solanes
c0556c162b [Turbofan][ptr-compr] Handle "compress changes" in the instruction selector
Said instructions look like ChangeTaggedXXXToCompressedXXX and
ChangeCompressedXXXToTaggedXXX for XXX in ("", "Pointer", "Signed").

This change only affects 64 bit architectures (both for x64 and arm64).

Also added tests for the machine operators.

Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng,v8_linux64_arm64_pointer_compression_rel_ng
Bug: v8:8977
Change-Id: I239d9de7f214424852e75b5d56996e8dfdacd400
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526009
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#60393}
2019-03-21 14:46:11 +00:00