Commit Graph

52504 Commits

Author SHA1 Message Date
Yang Guo
5fc7356c50 Update WATCHLIST wrt yangguo
R=jgruber@chromium.org

Change-Id: I49c08217d0c8e452afe84ad76ae6d60367802e82
Reviewed-on: https://chromium-review.googlesource.com/c/1348075
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57762}
2018-11-23 08:29:12 +00:00
Hannes Payer
40b448eadd [heap] Release dead young generation large objects in the Scavenger.
Bug: chromium:852420
Change-Id: Ieefbee7bfd625d62e9104950bdfa8e46d5f4270a
Reviewed-on: https://chromium-review.googlesource.com/c/1348081
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57761}
2018-11-23 08:04:49 +00:00
Dan Elphick
83fb2f8dd7 Reland "[cleanup] Move methods to V8_DEPRECATED"
This is a reland of a6e3cdd9b5

Now only changes ObjectTemplate::NewInstance.

Original change's description:
> [cleanup] Move methods to V8_DEPRECATED
>
> Updates ObjectTemplate::NewInstance and FunctionTemplate::GetFunction
> from V8_DEPRECATED_SOON to V8_DEPRECATED, now that they're unused in
> chrome.
>
> Bug: v8:7294, v8:7295, v8:8238
> Change-Id: Ic7cb2c410ff812f73cfd108551f2a1a20722df07
> Reviewed-on: https://chromium-review.googlesource.com/c/1344151
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57657}

Bug: v8:7294, v8:7295, v8:8238
Change-Id: I52ec021bc92600f67cf27791d5b2df2a4342a4d5
Reviewed-on: https://chromium-review.googlesource.com/c/1348079
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57760}
2018-11-23 07:46:50 +00:00
Yang Guo
cb93a308fc Revert "[heap] Improve embedder tracing during incremental marking"
This reverts commit caed2cc033.

Reason for revert: Breaks layout tests, e.g.

https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64__dbg_/14924/webkit_layout_tests%20%28with%20patch%29/layout-test-results/results.html

crash log for renderer (pid <unknown>):
STDOUT: <empty>
STDERR: 
STDERR: 
STDERR: #
STDERR: # Fatal error in ../../v8/src/base/platform/elapsed-timer.h, line 24
STDERR: # Debug check failed: !IsStarted().
STDERR: #
STDERR: #
STDERR: #
STDERR: #FailureMessage Object: 0x7ffc46707640#0 0x565409263b6f base::debug::StackTrace::StackTrace()
STDERR: #1 0x56540a8a32fb gin::(anonymous namespace)::PrintStackTrace()
STDERR: #2 0x56540a8980d8 V8_Fatal()
STDERR: #3 0x56540a897e35 v8::base::(anonymous namespace)::DefaultDcheckHandler()
STDERR: #4 0x565407971f02 v8::base::ElapsedTimer::Start()
STDERR: #5 0x565407d08edf v8::internal::TimedHistogram::Start()
STDERR: #6 0x565407e500d5 v8::internal::IncrementalMarking::AdvanceIncrementalMarkingOnAllocation()
STDERR: #7 0x565407e4f977 v8::internal::IncrementalMarking::Observer::Step()
STDERR: #8 0x565407e48092 v8::internal::AllocationObserver::AllocationStep()
STDERR: #9 0x565407eb0751 v8::internal::SpaceWithLinearArea::InlineAllocationStep()
STDERR: #10 0x565407eb3e44 v8::internal::NewSpace::EnsureAllocation()
STDERR: #11 0x565407e258ff v8::internal::NewSpace::AllocateRaw()
STDERR: #12 0x565407e06b2d v8::internal::Heap::AllocateRaw()
STDERR: #13 0x565407e432ef v8::internal::Heap::AllocateRawWithLightRetry()
STDERR: #14 0x565407e433cf v8::internal::Heap::AllocateRawWithRetryOrFail()
STDERR: #15 0x565407e04d48 v8::internal::Factory::NewFixedArrayWithFiller()
STDERR: #16 0x565407fd6339 v8::internal::HashTable<>::New()
STDERR: #17 0x565407fd7be8 v8::internal::HashTable<>::EnsureCapacity()
STDERR: #18 0x565407fc7e95 v8::internal::Dictionary<>::Add()
STDERR: #19 0x565407fcf453 v8::internal::BaseNameDictionary<>::Add()
STDERR: #20 0x565407f89ee4 v8::internal::LookupIterator::ApplyTransitionToDataProperty()
STDERR: #21 0x5654080036e2 v8::internal::Object::AddDataProperty()
STDERR: #22 0x56540793061f v8::internal::(anonymous namespace)::DefineDataProperty()
STDERR: #23 0x56540792da59 v8::internal::(anonymous namespace)::InstantiateObject()
STDERR: #24 0x56540792b75a v8::internal::(anonymous namespace)::InstantiateFunction()
STDERR: #25 0x56540792b4db v8::internal::ApiNatives::InstantiateFunction()
STDERR: #26 0x5654079594bf v8::FunctionTemplate::GetFunction()
STDERR: #27 0x56540a7af74e blink::V8ObjectConstructor::CreateInterfaceObject()
STDERR: #28 0x56540a7afe01 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #29 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #30 0x56540a7afdd6 blink::V8PerContextData::ConstructorForTypeSlowCase()
STDERR: #31 0x56540a7afcb4 blink::V8PerContextData::CreateWrapperFromCacheSlowCase()
STDERR: #32 0x56540a7aef73 blink::V8DOMWrapper::CreateWrapper()
STDERR: #33 0x56540a7abf6b blink::ScriptWrappable::Wrap()
STDERR: #34 0x56540a677199 blink::V8Document::documentElementAttributeGetterCallback()
STDERR: #35 0x565407a0aec3 v8::internal::FunctionCallbackArguments::Call()
STDERR: #36 0x565407a097be v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
STDERR: #37 0x565407a0877b v8::internal::Builtins::InvokeApiFunction()
STDERR: #38 0x565407fe785a v8::internal::Object::GetPropertyWithAccessor()
STDERR: #39 0x565407fe697e v8::internal::Object::GetProperty()
STDERR: #40 0x565407ec8c71 v8::internal::LoadIC::Load()
STDERR: #41 0x565407ed6401 v8::internal::__RT_impl_Runtime_LoadIC_Miss()
STDERR: #42 0x5654087593f2 <unknown>
STDERR: [16162:16185:1122/143518.356897:WARNING:crash_handler_host_linux.cc(341)] Could not translate tid, attempt = 1 retry ...


Original change's description:
> [heap] Improve embedder tracing during incremental marking
> 
> Add a path into embedder tracing on allocation. This is safe as as Blink
> is not allowed to call into V8 during object construction.
> 
> Bug: chromium:843903
> Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4
> Reviewed-on: https://chromium-review.googlesource.com/c/1348749
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57757}

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

Change-Id: Ide2c0b284b52bee17573adcc89f14be4e40dab91
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:843903
Reviewed-on: https://chromium-review.googlesource.com/c/1349189
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57759}
2018-11-23 07:45:46 +00:00
v8-ci-autoroll-builder
c1b527f8f7 Update V8 DEPS.
Rolling v8/build: 05ea63b..cd7b727

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/aa21a92..4ed4737

Rolling v8/third_party/depot_tools: d66dad7..25c4fce

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

Change-Id: Id8608976646cb19b61698a6bc824977c5d55357a
Reviewed-on: https://chromium-review.googlesource.com/c/1349110
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#57758}
2018-11-23 03:44:51 +00:00
Michael Lippautz
caed2cc033 [heap] Improve embedder tracing during incremental marking
Add a path into embedder tracing on allocation. This is safe as as Blink
is not allowed to call into V8 during object construction.

Bug: chromium:843903
Change-Id: I5af053c3169f5a33778ebce5d7c5c43e4efb1aa4
Reviewed-on: https://chromium-review.googlesource.com/c/1348749
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57757}
2018-11-22 21:26:02 +00:00
Igor Sheludko
78ca705f47 [cleanup] Fix kPointerSize usages in src/objects/, part 2
Bug: v8:8477, v8:8238
Tbr: bmeurer@chromium.org
Change-Id: I03e6e83bc805c6880318161e00b367df0a3b4003
Reviewed-on: https://chromium-review.googlesource.com/c/1348434
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57756}
2018-11-22 19:36:09 +00:00
Hannes Payer
be77c3ef75 [heap] Handle young generation large objects by MC.
Bug: chromium:852420
Change-Id: Ice7548bf9993bc5dd57b301c410c019eb956daa5
Reviewed-on: https://chromium-review.googlesource.com/c/1348077
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57755}
2018-11-22 17:48:43 +00:00
Leszek Swirski
cd78a04587 [parser] Tighten CanBeKeywordCharacter
Use the list of keywords to tighten the CannotBeKeyword scan flag to
also exclude lower case letters which are not present in any of the
keywords.

Change-Id: I6a00b5f5ee8f47088539806f15890a7489441fea
Reviewed-on: https://chromium-review.googlesource.com/c/1347475
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57754}
2018-11-22 17:46:23 +00:00
Toon Verwaest
b03ae1870c [parser] Track duplicate formals through FormalParametersT
This simplifies the ExpressionClassifier a bit again, making it a little more
understandable.

Change-Id: I57bdd871b10409ea04b33748609160f2b40a498a
Reviewed-on: https://chromium-review.googlesource.com/c/1348431
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57753}
2018-11-22 17:32:08 +00:00
Daniel Clifford
2ccc921fd4 [torque] cleanup intrinsic-related names in parser
Bug: v8:7793
Change-Id: Iccf60ed192fd91456caa730d5ea98dd3abe3614e
Reviewed-on: https://chromium-review.googlesource.com/c/1348076
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57752}
2018-11-22 17:31:03 +00:00
Toon Verwaest
ae9a15fefe [parser] Remove some unneeded expression classifiers
If we're verifying/accumulating/throwing all possible classifier errors anyway,
we don't need our own classifier.

Change-Id: Ibfbdc4e5151190385598fc50bda9f9921b6aedce
Reviewed-on: https://chromium-review.googlesource.com/c/1348080
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57751}
2018-11-22 17:18:13 +00:00
Igor Sheludko
5bacc5aad3 [cleanup] Fix kPointerSize usages in src/objetcs/js-array-buffer.*
This CL also makes existence of the optional padding field in JSArrayBuffer
explicit and ensures that the field stays cleared after initialization.

Bug: v8:8477, v8:8238
Change-Id: Ic4c5f6b0066903651f15bea91fbfe32ba62fa0e6
Reviewed-on: https://chromium-review.googlesource.com/c/1347469
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57750}
2018-11-22 16:42:42 +00:00
Peter Marshall
f4bb38c321 [tools] Add an API for unwinding the V8 stack
This API allows the embedder to provide a stack and PC, FP and
SP registers. V8 will then attempt to unwind the stack to the C++ frame
that called into JS. This API is signal-safe, meaning it does not call
any signal-unsafe OS functions or read/write any V8 state.

Bug: v8:8116

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I7e3e73753b711737020b6a5f11946096658afa6f
Reviewed-on: https://chromium-review.googlesource.com/c/1186724
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57749}
2018-11-22 16:36:26 +00:00
Ulan Degenbaev
d1d35504bb [csa] Use high-level DescriptorArray accessors (Part 2).
Now the accessors do not use the LoadWeakFixedArrayElement function.

Bug: v8:8486
Change-Id: Icccf294c25bbedb118cb2dd7a422dc71d70c727b
Reviewed-on: https://chromium-review.googlesource.com/c/1348071
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57748}
2018-11-22 16:26:25 +00:00
Sergiy Byelozyorov
54a39f5dc2 [tools] Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:903688
Change-Id: I006e0e47b64edabdafadf030b09864433b9486d6
Reviewed-on: https://chromium-review.googlesource.com/c/1340101
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57747}
2018-11-22 16:05:24 +00:00
Ben L. Titzer
4eb53245f0 [wasm/tools] Add import profiler
Add a profiler for functions imported to WASM instances. This profiler
is implemented entirely in JavaScript and monkey-patches
WebAssembly.instantiate() and new WebAssembly.Instance() to instrument
the imported functions to each instance in order to count their
invocations and cumulative time.

R=mstarzinger@chromium.org

Bug: v8:8423
Change-Id: If456355aba07dc69c5500bafbe35fc56b31486af
Reviewed-on: https://chromium-review.googlesource.com/c/1347488
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57746}
2018-11-22 15:36:21 +00:00
Junliang Yan
4fca7b00e8 PPC/s390: [test] Add cctest for i-cache coherency assumptions.
Port fed7bb501e

Original Commit Message:

    This test cases ensures that it is possible to maintain a coherent
    instruction cache by using {Assembler::FlushICache} in any order with
    respect to changing page permissions via {SetPermissions}.

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:6792
LOG=N

Change-Id: I23d5d0828dcbdd527aaa8708fa726a7cb5cbedfe
Reviewed-on: https://chromium-review.googlesource.com/c/1347511
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57745}
2018-11-22 15:34:10 +00:00
Igor Sheludko
d8f2878f32 [cleanup] Cleanup the way we visit NativeContext
this will allow to add raw fields to the native context in a pointer compression
friendly way.

This CL also adds a microtask_queue field to native context which will be used
in a follow-up CL.

Bug: v8:8238, v8:7703
Change-Id: I5ecf72dbc52e8261b694551cbc8476f967967723
Reviewed-on: https://chromium-review.googlesource.com/c/1348073
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57744}
2018-11-22 15:29:30 +00:00
Toon Verwaest
71f59a23fc [parser] Drop ExpressionClassifier::ArrowFormalsParameterProduction and BP_to_AFP
Instead, simply track it as a valid binding pattern. To do this in the case of
parenthesized formals, we delay throwing the binding pattern error for
parenthesized (and async "calls") until we know it's not an arrow function head
by itself.

This guarantees that if an arrow head is a valid binding pattern, it's either a
valid parenthesized head or a valid identifier, or invalid pattern ("array" or
"object" literal style). We can detect the latter case by checking that the
current token is not a RPAREN and the expression isn't an identifier.
(Alternatively we could check that the curren token is RBRACE or RBRACK...)

Bug: chromium:907575
Change-Id: Ie40cc3235d3188f2620b6c089a0f49d93604dda6
Reviewed-on: https://chromium-review.googlesource.com/c/1348078
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57743}
2018-11-22 15:13:41 +00:00
George Wort
18d9bbb512 [liftoff][arm] Implement call functionality
This adds the function call functionality for the arm32 port of Liftoff.

Bug: v8:6600
Change-Id: I8ca00b370c629157c91fd9a905f34ea41ec53d29
Reviewed-on: https://chromium-review.googlesource.com/c/1346336
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57742}
2018-11-22 14:59:51 +00:00
George Wort
291a602973 [liftoff][arm] Fix overlapping of F32 and F64 registers in Liftoff
Add a check to bailout in the case when F32 parameters are used for Arm.

Bug: v8:6600, chromium:904026, chromium:904606
Change-Id: I7f70c0806994a89dca31ef7e0b68f91d68484936
Reviewed-on: https://chromium-review.googlesource.com/c/1346492
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57741}
2018-11-22 14:55:51 +00:00
Michael Starzinger
f2d39d190c [arm64] Enable write-protected code pages.
R=ulan@chromium.org
BUG=chromium:845877

Change-Id: If8a9e2f107bb775494b1d4a83c3fb045bb846b10
Reviewed-on: https://chromium-review.googlesource.com/c/1347482
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57740}
2018-11-22 14:09:58 +00:00
Jakob Gruber
d034d08824 [builtins] Unify builtin code and size printing mechanisms
There's no reason to scatter this all over when we have a single choke
point in Isolate::Init.

Drive-by: Remove unused DLH builtin kind.

Bug: v8:8238
Change-Id: I46373a1044e51d90d3a9c3e772f5930d57097937
Reviewed-on: https://chromium-review.googlesource.com/c/1347481
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57739}
2018-11-22 13:28:37 +00:00
Jaroslav Sevcik
5952f12aca [turbofan] Serialize descriptors before taking dependency.
Bug: v8:8361, v8:7790
Change-Id: I1d7a8cba1873efff9d49b12994a1561879d200de
Reviewed-on: https://chromium-review.googlesource.com/c/1347487
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57738}
2018-11-22 13:22:07 +00:00
Sigurd Schneider
619a464cc4 [turbolizer] Add comment about deployment
Notry: true
Change-Id: I06cbd9a2a49f602dafd43e2d3b4e386d65c7da23
Bug: v8:7327
Reviewed-on: https://chromium-review.googlesource.com/c/1348070
Reviewed-by: Daniel Clifford <danno@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57737}
2018-11-22 13:16:09 +00:00
Igor Sheludko
3f63baf61e [cleanup] Fix kPointerSize usages in src/objects/, part 1
Bug: v8:8477, v8:8238
Change-Id: I0b39b0c13c17acd08fc754db1897f00741466122
Reviewed-on: https://chromium-review.googlesource.com/c/1346337
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@{#57736}
2018-11-22 13:06:57 +00:00
Toon Verwaest
23e99a95a1 [parser] Don't re-preparse when trying to find an unidentifiable error
Bug: chromium:907669
Change-Id: I7633780b1f3a1a290593818a3e558c5a1bb81502
Reviewed-on: https://chromium-review.googlesource.com/c/1347486
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57735}
2018-11-22 13:00:32 +00:00
Sergiy Byelozyorov
948cf2f642 [tools] Add FAIL_PHASE_ONLY status file modifier for test262 tests
R=machenbach@chromium.org, mathias@chromium.org

Bug: v8:8467
Change-Id: I7369fa993d0762cf9c3c6f55361d074d067a0eb5
Reviewed-on: https://chromium-review.googlesource.com/c/1338347
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57734}
2018-11-22 12:43:05 +00:00
Marja Hölttä
ce6e40fc31 [ubsan] Fix Map::PrintMapDetails.
Now that Map just contains a pointer, and is passed by value to
Logger::MapDetails, printing the this pointer in Map::PrintMapDetails no longer
makes sense, but we need to print the underlying pointer.

BUG=v8:3770

Change-Id: I87f41c796dbff7a8800731bb1d63a7482b9ff71c
Reviewed-on: https://chromium-review.googlesource.com/c/1347485
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57733}
2018-11-22 12:41:34 +00:00
Toon Verwaest
92e34290d4 [zone] Further simplify zone expansion, use single default page size
Change-Id: Ibe539f0c90fdcd93ba5da40240c6325138a05bac
Reviewed-on: https://chromium-review.googlesource.com/c/1347480
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57732}
2018-11-22 12:27:51 +00:00
Peter Marshall
4e3a17d040 [runtime] Reduce spread/apply call max arguments
Bug: chromium:906043
Change-Id: I308b29af0644c318d73926b27e65a94913c760c7
Reviewed-on: https://chromium-review.googlesource.com/c/1346115
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57731}
2018-11-22 12:08:17 +00:00
Ross McIlroy
38cd61d0e0 [Compiler] Ensure unoptimized code generation is context independent.
Now that Asm.js code is also context independent, move code to ensure context independence
from BytecodeGenerator to FinalizeUnoptimizedCode.

Change-Id: I7738eb3b347ea82764ecd3b5548dc82cb06d2f4e
Reviewed-on: https://chromium-review.googlesource.com/c/1347483
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57730}
2018-11-22 11:49:06 +00:00
George Wort
b544277a51 [liftoff][arm] Implement stack access
This adds stack access functionality for the arm32 port of Liftoff.

Bug: v8:6600
Change-Id: I163ab133efc63045f37d1387fd5f32be333bc501
Reviewed-on: https://chromium-review.googlesource.com/c/1346333
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57729}
2018-11-22 11:33:41 +00:00
Clemens Hammacher
7d6beb3f04 Add script to auto-generate object-macros-undef.h
We were missing a few undefs there. Add a script to auto-generate
object-macros-undef.h from object-macros.h and update
object-macros-undef.h with the output of that script.

R=marja@chromium.org

Bug: v8:5402, v8:8238
Change-Id: I6917940dcbfdf68039a25dc7fb8c219fe55adb10
Reviewed-on: https://chromium-review.googlesource.com/c/1345991
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57728}
2018-11-22 11:32:36 +00:00
Ulan Degenbaev
69cec109de [csa] Use high-level DescriptorArray accessors.
This fixes places that assume that DescriptorArray is a WeakFixedArray.

In addition to the existing:
 - LoadDetailsByKeyIndex
 - LoadValueByKeyIndex
 - LoadFieldTypeByKeyIndex
This introduces Load*ByDescriptorEntry versions and LoadKeyByKeyIndex.

Bug: v8:8486
Change-Id: I958867138df7756c715ae3d449b3206a32076514
Reviewed-on: https://chromium-review.googlesource.com/c/1346501
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57727}
2018-11-22 11:22:56 +00:00
Jakob Gruber
8c1248932e [builtins] Emit builtins as inline assembly on windows clang builds
We recently changed embedded builtins to be emitted as raw assembly
files during the build process in order to support MSVC (which doesn't
support inline assembly on x64). Ninja uses ml.exe / ml64.exe as the
assembler on all Windows builds (msvc & clang); these unfortunately
don't support large data streams well and can take over 5 minutes for
embedded.S.

With this CL we work around this by going back to inlined assembly for
clang Windows builds.

Bug: v8:6666, v8:8475
Change-Id: I33beb3f5a1df07de3299df0fc2be4e8983701db0
Reviewed-on: https://chromium-review.googlesource.com/c/1344114
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57726}
2018-11-22 11:08:36 +00:00
Dan Elphick
b0b5eae096 [objects] Shrink FunctionTemplateInfo
Adds a new field rare_data of type FunctionTemplateRareData to
FunctionTemplateInfo and moves 8 others which are unset on 90% of
FunctionTemplateInfo objects to this field.

Getters like prototype_template() are changed to GetPrototypeTemplate()
to indicate they're not trivial. The setters are replaced with static
methods (e.g. SetPrototypeTemplate) that take an Isolate and the
template object, since they can now perform allocation.

Bug: v8:8478
Change-Id: If72b132ade4ca4a3f803f913761c9caddc0e9dd6
Reviewed-on: https://chromium-review.googlesource.com/c/1342519
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57725}
2018-11-22 11:04:15 +00:00
Michael Achenbach
664158ab75 [test] Skip and mark slow tests
Many tests were already skipped in debug mode, but they kept running on CQ
which sets dcheck_always_on, probably equally slow.

Some other tests are marked as slow based on a recent run of the arm64 sim
trybot.

NOTRY=true

Bug: v8:7783
Change-Id: Ic022518edfa112ea6d228ae9a68653c99651dbb4
Reviewed-on: https://chromium-review.googlesource.com/c/1347479
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57724}
2018-11-22 10:10:28 +00:00
Ulan Degenbaev
9c5a4abc18 [csa] Make LoadArrayElement generic.
Previosly, LoadArrayElement assumed that the array is a FixedArray.
The PropertyArray and WeakFixedArray pretended to be a FixedArray and
had static asserts about length offsets.

This patch make LoadArrayElement generic and uses a new LoadArrayLength
function to fetch the length of the array without hard-coding the length
offset.

Bug: v8:8486
Change-Id: Ib27132bf3fcecc135ad632c4227c57ca0a05036f
Reviewed-on: https://chromium-review.googlesource.com/c/1346498
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57723}
2018-11-22 10:09:19 +00:00
Clemens Hammacher
b2a7292c96 [cleanup] Remove unneeded Printable wrappers
Remove PrintableInstructionSequence and friends, just overload
operator<< directly for the respective types.

R=herhut@chromium.org

Bug: v8:8238
Change-Id: I67713978ab06f7ec5309e52b4090256480f362b1
Reviewed-on: https://chromium-review.googlesource.com/c/1346113
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Stephan Herhut <herhut@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57722}
2018-11-22 10:01:56 +00:00
Jakob Gruber
1f6d5a4362 Remove CodeStubAssembler from final binary
With the last remaining TF code stubs gone, c-s-a.{h,cc} is no longer
needed in the final binary.

Bug: v8:7777
Change-Id: I8573199401678758698df56e0cb680f125f06bdc
Reviewed-on: https://chromium-review.googlesource.com/c/1346329
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57721}
2018-11-22 09:44:11 +00:00
George Wort
32df006b94 [liftoff][arm] Implement the Load and Store functionality for the 32-bit port.
Bug: v8:6600
Change-Id: I4bf99aeac7336eda8989bc6772d8bd34c44117ea
Reviewed-on: https://chromium-review.googlesource.com/c/1346112
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57720}
2018-11-22 09:38:51 +00:00
Jakob Gruber
ac96607bcd [nojit] Move remaining IC stubs to builtins
This CL moves the two remaining IC stubs to builtins, generating a
dedicated builtin for each KeyedAccessStoreMode variant.

Bug: v8:7777
Change-Id: I540b3c3437adb94094771a19713e71ec8a349553
Reviewed-on: https://chromium-review.googlesource.com/c/1346095
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57719}
2018-11-22 09:28:23 +00:00
Sigurd Schneider
9f19d97d7f [turbolizer] Remove console.log statements
Notry: true
Change-Id: I4de1f561682e8ad7fac0358c259efa44559c1389
Bug: v8:7327
Reviewed-on: https://chromium-review.googlesource.com/c/1347477
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57718}
2018-11-22 09:21:08 +00:00
Sigurd Schneider
9b0e4e132f [turbofan] Make typed optimization more powerful
This CL moves optimization capabilities from typed lowering to typed
optimization. In particular, this allows retyping of Speculative to
number optimizations depending on their input types. This can save type
checks if we know that inputs are already in SafeIntegerRange and uses
are truncating to 32bit integers.

This change recovers the performance lost to 31bit Smis on
Octane/crypto on x64:
32bit nosmis           avg 30,984.84 stddev 180.52
31bit smis (w/o patch) avg 29,438.52 stddev 120.30  -4.99%
31bit smis             avg 31,274.52 stddev 176.26  +0.93%  +6.24%

Change-Id: I86d6e37305262336f4f7bd46aac0d2cbca11e8c1
Bug: v8:8344
Reviewed-on: https://chromium-review.googlesource.com/c/1323729
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57717}
2018-11-22 09:19:49 +00:00
Sigurd Schneider
be11d9b875 [turbolizer] Add toolbar only after graph is loaded
This should make it possible to load a new graph without reloading
Turbolizer.

Notry: true
Change-Id: Ic6f8bdf7fee658836612043d8893614ae54d7e15
Bug: v8:7327
Reviewed-on: https://chromium-review.googlesource.com/c/1347476
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57716}
2018-11-22 09:03:19 +00:00
Daniel Clifford
c098b96ce9 Reland "[torque] Implement intrinsics support"
This is a reland of 74a0ad7dda

Original change's description:
> [torque] Implement intrinsics support
> 
> Also add the first intrinsic and usage of it: %RawCast
> 
> Bug: v8:7793
> Change-Id: Id1e3288e8bab6adb510731076a39590e8fd156be
> Reviewed-on: https://chromium-review.googlesource.com/c/1344152
> Commit-Queue: Daniel Clifford <danno@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57692}

Bug: v8:7793
Change-Id: I315c7d44f265d0f937598e8afb1c28b08d6a23da
Reviewed-on: https://chromium-review.googlesource.com/c/1347472
Reviewed-by: Daniel Clifford <danno@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57715}
2018-11-22 08:59:39 +00:00
Jakob Gruber
918b13781c [nojit] Remove elements kind parameter from two stubs
In preparation for converting these stubs to builtins. This turns
compile-time elements kind parameters into a runtime check, essentially
emitting all contained logic for each elements kinds and dispatching
at runtime.

Bug: v8:7777
Change-Id: I7a5c97ea2775e9f8ff469db6ab577de6c65c6bbe
Reviewed-on: https://chromium-review.googlesource.com/c/1340282
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57714}
2018-11-22 08:42:05 +00:00
Hannes Payer
ac9908a090 [heap] Introduce a large object space for code objects.
Change-Id: Ie2d740b6b584c5104849e46c1286550c80f1f5c9
Reviewed-on: https://chromium-review.googlesource.com/c/1340252
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57713}
2018-11-22 08:23:09 +00:00