Commit Graph

52424 Commits

Author SHA1 Message Date
George Wort
4fb6241148 [liftoff][arm] Implement the handling of f32
This supports the use of f32 values for the arm32 port of Liftoff.

Bug: v8:6600
Change-Id: I1fa2782f5a8bc6687a17d2df6e4ec8036b23452c
Reviewed-on: https://chromium-review.googlesource.com/c/1354040
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57932}
2018-11-29 12:36:06 +00:00
Marja Hölttä
51f75d3772 [tools] Add file positions to map-explorer
NOTRY=true

Change-Id: I076e2f6c39674a98827e5939c9527678a5f81368
Reviewed-on: https://chromium-review.googlesource.com/c/1354882
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57931}
2018-11-29 11:42:25 +00:00
Tobias Tebbi
270437fd7a [csa] disable CSA re-scheduling
Disable CSA re-scheduling for the branch point, to address performance
regressions.

Bug: chromium:907011
Change-Id: I608ae23c20d8e1dd9a233dcb2d3f4ab4d8a5241e
Reviewed-on: https://chromium-review.googlesource.com/c/1351009
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57930}
2018-11-29 11:13:34 +00:00
Ross McIlroy
21a399c0a7 [Builtins] Check for SFI being compiled first in CompileLazy.
Swaps around the checks in CompileLazy to ensure we always enter the
runtime to lazy compile if a function's SFI is uncompiled. This
is necessary with bytecode flushing since the function may have
an optimized code marker in the feedback vector, even if the
bytecode has been flushed, and we don't want to try to optimize
this flushed function.

BUG=v8:8395

Change-Id: I7a348c40146673ba4a8f5e14d06995bbcc141695
Reviewed-on: https://chromium-review.googlesource.com/c/1352277
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57929}
2018-11-29 10:45:49 +00:00
Jakob Kummerow
eee67af3e8 [ubsan] Be more explicit about casting ObjectPtr
Explicitly disallow implicit casting of ObjectPtr to bool to match
clang's and MSVC's behavior.
Introduce a few function overloads using ObjectPtr instead of Object*.
Fix printing of ObjectPtr for objects-printer.cc and GTest.

Bug: v8:3770
Change-Id: I3c3580d363ae6d9fe8f743c6151abc11a915f05c
Reviewed-on: https://chromium-review.googlesource.com/c/1351245
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57928}
2018-11-29 09:44:34 +00:00
tzik
29ad898c88 Deprecate v8::Isolate::GetEnteredContext
This CL marks v8::Isolate::GetEnteredContext as deprecated in favor of
replacing it with GetEnteredOrMicrotaskContext. Blink no longer uses it,
and Node.js does not use this too.

GetEnteredOrMicrotaskContext() is relevant for all known cases over
GetEnteredContext(), and it costs 2% of a benchmark score to maintain
the entered contexts under the nestable microtask context.
https://crrev.com/c/1322290 is a context for the bencmark and nestable
microtask contexts.

Bug: v8:8124
Change-Id: I260e32daadf34dc587926a1e20ab950ff2e31699
Reviewed-on: https://chromium-review.googlesource.com/c/1353025
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57927}
2018-11-29 08:21:14 +00:00
Michael Achenbach
e0414b462d [test] Bump shards on slow bot
TBR=sergiyb@chromium.org
NOTRY=true

Change-Id: I74a1f7a66ee31ea4e6b02286de2f99c75f596027
Reviewed-on: https://chromium-review.googlesource.com/c/1354879
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57926}
2018-11-29 08:12:12 +00:00
Michael Achenbach
767861046c Revert "Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame""
This reverts commit ddaa1f0a0d.

Reason for revert:
Still flaky on windows. Maybe reland and keep skipped on windows?
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32%20-%20nosnap%20-%20shared/31002
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/27826

Original change's description:
> Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame"
> 
> This is a reland of d5f4a33eb8
> 
> Original change's description:
> > [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
> >
> > Before fast C calls, store the current FP and PC on the isolate. When
> > iterating frames in SafeStackFrameIterator, check if these fields are
> > set and start iterating at the calling frame's FP instead of the current
> > FP, which will be in C++ code. We need to do this because c_entry_fp is
> > not set on the Isolate for Fast-C-Calls because we don't build an exit
> > frame.
> >
> > This change makes stack samples that occur within 'Fast-C-Calls'
> > iterable, meaning we can properly attribute ticks within the JS caller.
> >
> > Fast-C-Calls can't call back into JS code, so we can only ever have one
> > such call on the stack at a time, allowing us to store the FP on the
> > isolate rather than the stack.
> >
> > TBR=v8-mips-ports@googlegroups.com
> >
> > Bug: v8:8464, v8:7202
> > Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
> > Reviewed-on: https://chromium-review.googlesource.com/c/1340241
> > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> > Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
> > Reviewed-by: Alexei Filippov <alph@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#57896}
> 
> TBR=v8-mips-ports@googlegroups.com
> TBR=jgruber@chromium.org
> 
> Bug: v8:8464, v8:7202
> Change-Id: I5f37ded4ea572e8e9890ba186aa3d74a0dfc1274
> Reviewed-on: https://chromium-review.googlesource.com/c/1354042
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57912}

TBR=alph@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,martyn.capewell@arm.com,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,ibogosavljevic@wavecomp.com

Change-Id: If810648dbf60df2ff70455b6e8ef466136c90145
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8464, v8:7202
Reviewed-on: https://chromium-review.googlesource.com/c/1354461
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57925}
2018-11-29 08:05:39 +00:00
v8-ci-autoroll-builder
7ef67915bf Update V8 DEPS.
Rolling v8/build: bbd67a3..b7e2add

Rolling v8/test/wasm-js/data: 6028a96..2e948dd

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/17079a5..eee0f6a

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

Change-Id: Ib83450725f0228b99e29c05be42dd66d627917b8
Reviewed-on: https://chromium-review.googlesource.com/c/1351305
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@{#57924}
2018-11-29 04:00:09 +00:00
Jakob Kummerow
6b67d21a96 [ubsan] Port DescriptorArray to the new design
Bug: v8:3770
Change-Id: If41076a377d12922cc3df859c678e1f20b99b00d
Reviewed-on: https://chromium-review.googlesource.com/c/1351242
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57923}
2018-11-29 03:24:47 +00:00
Deepti Gandluri
7f9bc8174c [wasm] Minor restructuring of WasmMemoryObject::Grow()
Change-Id: Ia36e1b478c285752f2dafaaed509fc698acb2ccc
Reviewed-on: https://chromium-review.googlesource.com/c/1354246
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57922}
2018-11-29 03:01:04 +00:00
Jakob Kummerow
862266a2aa [ubsan] Port WeakFixedArray and subclasses
TransitionArray, NormalizedMapCache, DependentCode to the new design.

Bug: v8:3770
Change-Id: I8bd56f231fb62b146e0fb05989418aedb62a628b
Reviewed-on: https://chromium-review.googlesource.com/c/1350287
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57921}
2018-11-29 02:03:20 +00:00
Aleksei Koziatinskii
ed2e7eb92d inspector: removed deprecated Debugger.scheduleStepIntoAsync
This method was experimental and deprecated for a while.

R=dgozman@chromium.org

Bug: none
Change-Id: I7d5a13a83f36ecc7a92300f690dff5c8bb26f8de
Reviewed-on: https://chromium-review.googlesource.com/c/1354182
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57920}
2018-11-29 01:34:04 +00:00
Aseem Garg
f4775f1c10 Revert "[wasm] Add I64AtomicWait implementation"
This reverts commit 9436e8a817.

Reason for revert: Breaks TSAN.

Original change's description:
> [wasm] Add I64AtomicWait implementation
> 
> Bug=v8:8075
> R=​adamk@chromium.org,binji@chromium.org
> 
> Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd
> Reviewed-on: https://chromium-review.googlesource.com/c/1342948
> Reviewed-by: Adam Klein <adamk@chromium.org>
> Reviewed-by: Ben Smith <binji@chromium.org>
> Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57917}

TBR=binji@chromium.org,adamk@chromium.org,aseemgarg@chromium.org

Change-Id: Ic82ce8794410a0d4d19de07abd9bb8a7aaff1c1c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1351303
Reviewed-by: Aseem Garg <aseemgarg@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57919}
2018-11-29 01:10:39 +00:00
Jakob Kummerow
81620900e9 [ubsan] Port SharedFunctionInfo to the new design
Bug: v8:3770
Change-Id: If405611d359d29ae1958beebd9202e068434a621
Reviewed-on: https://chromium-review.googlesource.com/c/1350286
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57918}
2018-11-28 21:23:50 +00:00
Aseem Garg
9436e8a817 [wasm] Add I64AtomicWait implementation
Bug=v8:8075
R=adamk@chromium.org,binji@chromium.org

Change-Id: I11ef5daccd043123b23e60c93ee0df79cabe9ccd
Reviewed-on: https://chromium-review.googlesource.com/c/1342948
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57917}
2018-11-28 20:03:04 +00:00
Igor Sheludko
8cfec35846 [cleanup] Fix kPointerSize usages in src/objects/bigint.*
Bug: v8:8477, v8:8238
Change-Id: Ice11af2becb3b88a884c9231ed9610210efcc4d6
Reviewed-on: https://chromium-review.googlesource.com/c/1352292
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57916}
2018-11-28 19:46:10 +00:00
Tom Tan
ef8323ea82 Fix embedded assembly for Windows ARM64.
Two Fixes included to make V8 build work for Windows ARM64.
1. Don't emit ".def" and related macros to define function beginning, because they are invalid for Windows ARM64.
2. Set alignment of data section to 8 which is required for instruction which loads element from v8_Default_embedded_blob_.


Version 7.2.479

Performance and stability improvements on all platforms.

TBR=v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com

Change-Id: I0bfea5dd8ed6c1340d11c13dcc2e492e7b22aa8c
Reviewed-on: https://chromium-review.googlesource.com/c/1352210
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Original-Commit-Position: refs/heads/7.2.479@{#1}
Cr-Original-Branched-From: a8152aac7049aed0cc7e7437898de2fce2787288-refs/heads/master@{#57863}
Bug: chromium:893460
Reviewed-on: https://chromium-review.googlesource.com/c/1352791
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Tom Tan <Tom.Tan@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#57915}
2018-11-28 19:30:18 +00:00
Vasili Skurydzin
82bcbebd00 aix: [test] fix i-cache cctest on Aix platform
Change-Id: I1015edc7a4522ae161dfd408db2ddcfae5dbbc69
Reviewed-on: https://chromium-review.googlesource.com/c/1352218
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57914}
2018-11-28 18:43:20 +00:00
Vasili Skurydzin
b3e7775f82 aix, builtins: Embedded builtins support on Aix
Bug: v8:8043
Change-Id: Iff786eccd2dcb63e46e331b096d91a6ddb13f851
Reviewed-on: https://chromium-review.googlesource.com/c/1351129
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#57913}
2018-11-28 18:28:20 +00:00
Peter Marshall
ddaa1f0a0d Reland "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame"
This is a reland of d5f4a33eb8

Original change's description:
> [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
>
> Before fast C calls, store the current FP and PC on the isolate. When
> iterating frames in SafeStackFrameIterator, check if these fields are
> set and start iterating at the calling frame's FP instead of the current
> FP, which will be in C++ code. We need to do this because c_entry_fp is
> not set on the Isolate for Fast-C-Calls because we don't build an exit
> frame.
>
> This change makes stack samples that occur within 'Fast-C-Calls'
> iterable, meaning we can properly attribute ticks within the JS caller.
>
> Fast-C-Calls can't call back into JS code, so we can only ever have one
> such call on the stack at a time, allowing us to store the FP on the
> isolate rather than the stack.
>
> TBR=v8-mips-ports@googlegroups.com
>
> Bug: v8:8464, v8:7202
> Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
> Reviewed-on: https://chromium-review.googlesource.com/c/1340241
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
> Reviewed-by: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57896}

TBR=v8-mips-ports@googlegroups.com
TBR=jgruber@chromium.org

Bug: v8:8464, v8:7202
Change-Id: I5f37ded4ea572e8e9890ba186aa3d74a0dfc1274
Reviewed-on: https://chromium-review.googlesource.com/c/1354042
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57912}
2018-11-28 17:58:06 +00:00
Peter Marshall
781789c0f1 [tests] Disable tests on nosnap that have old-space limits
These two tests fail if the memory used by builtins increases too much.
They aren't intended to monitor the memory used by builtins, so these
failures are spurious.

Bug: v8:8521
Change-Id: I67e61abe30aaf69aeb3e6a2c885795061a318851
Reviewed-on: https://chromium-review.googlesource.com/c/1354041
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57911}
2018-11-28 16:26:16 +00:00
George Wort
b03041de09 [liftoff][arm] Implement i64 functionality
This implements arithmetic operations on i64, as well as eqz
and conditional set for the arm32 port of Liftoff.

Bug: v8:6600
Change-Id: I21dc0f820e1429392599a5813c44b938c38093a2
Reviewed-on: https://chromium-review.googlesource.com/c/1348082
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57910}
2018-11-28 16:22:02 +00:00
George Wort
6b93449a2c [liftoff][arm] f32 rounding can use a C fallback
This allows f32 floor, ceil, trunc, and nearest_int to use a C fallback in
Liftoff in the same way that f64 rounding can.

Bug: v8:6600
Change-Id: I8b88d806633bcfe2d2dfac9defaf60e551bf21b1
Reviewed-on: https://chromium-review.googlesource.com/c/1353898
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57909}
2018-11-28 15:52:54 +00:00
Leszek Swirski
fcd0cf4454 [parser] Remove #line directives from keywords-gen.h
Changing the current file causes issues with gcov.

Bug: v8:8517
Change-Id: Ic9959c64c36a027d205f9bb5aafcee08c84be15f
Reviewed-on: https://chromium-review.googlesource.com/c/1353899
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57908}
2018-11-28 15:22:05 +00:00
Clemens Hammacher
bded0eb6bd [wasm] Handle break to outermost block like a return
This saves a few control merges in Liftoff, and might also generate
smaller graphs in Turbofan.

R=titzer@chromium.org

Bug: v8:6600, v8:8423
Change-Id: Ice921f8b048809bc38b820b94688f482e67bd386
Reviewed-on: https://chromium-review.googlesource.com/c/1354039
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57907}
2018-11-28 15:20:04 +00:00
Yang Guo
49dd27b0cf Introduce script to collect deprecation statistics
Example:

~/v8$ tools/deprecation_stats.py include/v8.h --before=2018-10-01
Marked as V8_DEPRECATE_SOON: 21
     556 : 2017-11-15 11:00:49 : V8_INLINE void MarkIndependent()
     568 : 2017-11-15 11:00:49 : V8_INLINE bool IsIndependent() const
    2404 : 2018-09-24 13:05:31 : V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(Local<Context> context) const
    2421 : 2015-03-09 10:49:09 : Local<Number> ToNumber(Isolate* isolate) const
    2423 : 2015-03-09 10:49:09 : Local<String> ToString(Isolate* isolate) const
  <...>
    3416 : 2015-03-09 10:49:09 : Local<Array> GetOwnPropertyNames()
    3516 : 2015-03-09 10:49:09 : bool HasRealNamedProperty(Local<String> key)
    3533 : 2015-03-09 10:49:09 : bool HasRealIndexedProperty(uint32_t index)
    3537 : 2015-03-09 10:49:09 : bool HasRealNamedCallbackProperty(Local<String> key)
Marked as V8_DEPRECATED: 9
    1395 : 2018-09-21 23:40:51 : const CachedData* GetCachedData() const
    1853 : 2018-09-20 11:46:49 : MaybeLocal<Value> Parse(Isolate* isolate, Local<String> json_string)
    1953 : 2018-09-20 11:46:49 : std::vector<uint8_t> ReleaseBuffer()
    1977 : 2018-09-20 11:46:49 : void TransferSharedArrayBuffer(uint32_t transfer_id, Local<SharedArrayBuffer> shared_array_buffer)
    5093 : 2018-09-20 11:46:49 : Local<Value> New(Isolate* isolate, double time)
    6355 : 2018-09-20 11:46:49 : size_t max_semi_space_size()
    6361 : 2018-09-20 11:46:49 : void set_max_semi_space_size(size_t limit_in_mb)
    6380 : 2018-09-20 11:46:49 : size_t max_executable_size() const
    6384 : 2018-09-20 11:46:49 : void set_max_executable_size(size_t limit_in_mb)

R=delphick@chromium.org

Change-Id: I723055d30457a4061cdc589a4be09c0279fd5923
Reviewed-on: https://chromium-review.googlesource.com/c/1352307
Commit-Queue: Dan Elphick <delphick@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57906}
2018-11-28 15:02:24 +00:00
Clemens Hammacher
4516efa12d [wasm][test] Remove unspec'ed name section code
This constant is unused, and should never be used, since name sections
are encoded as an unknown section with the special name "name".

R=ahaas@chromium.org

Change-Id: I2fa1a21506dbe30033aecb3c1bf9ad84b6b872bc
Reviewed-on: https://chromium-review.googlesource.com/c/1352305
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57905}
2018-11-28 14:47:36 +00:00
Clemens Hammacher
ba14641cdf [wasm] Fix ordering constraint on exception section
R=mstarzinger@chromium.org

Bug: v8:8091
Change-Id: I9564b7836667089112b958f1e8644b35ffa855a8
Reviewed-on: https://chromium-review.googlesource.com/c/1352301
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57904}
2018-11-28 13:58:48 +00:00
Hannes Payer
9c2fc213d3 [heap] Various new LO spaces fixes in Scavenger.
Bug: chromium:852420
Change-Id: I54db2251378147df63ca20f3d32d286186f3b784
Reviewed-on: https://chromium-review.googlesource.com/c/1352306
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57903}
2018-11-28 13:57:43 +00:00
George Wort
df10611432 [liftoff][arm] Support the use of f32 values
This makes changes to the generic code in Liftoff to support f32 values on the
arm32 port, but does not implement any handling of them in practice.

Bug: v8:6600
Change-Id: Ia1587c4eee0158ef6b0caa46b6b212cb96ef579f
Reviewed-on: https://chromium-review.googlesource.com/c/1352287
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57902}
2018-11-28 13:46:29 +00:00
George Wort
e43d2e213f [liftoff][arm] Remove extra f32 registers from wasm ABI
This reduces wasm's ABI on Arm to only using the even-numbered float registers
in anticipation of Liftoff supporting f32 values on the arm32 port. This is due
to Liftoff assuming a one-to-one mapping between double and float registers.
The ABI must be restricted in order to allow Liftoff compiled and Turbofan
compiled functions to call each other. Turbofan continues to use all float
registers internally however.

Bug: v8:6600
Change-Id: I47d91b8216136e57f42fd9665ed57ec631eb0374
Reviewed-on: https://chromium-review.googlesource.com/c/1352278
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57901}
2018-11-28 12:29:57 +00:00
Andreas Haas
fc54e1090e [wasm] Update spec tests
This new spec test version is https://github.com/WebAssembly/spec/pull/922 now.

R=titzer@chromium.org

Change-Id: I4e88e6fb5d20e0ab1d4c1011db88171937c0ff86
Reviewed-on: https://chromium-review.googlesource.com/c/1352300
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57900}
2018-11-28 11:42:27 +00:00
Maya Lekova
2f530d5c17 Revert "[cpu-profiler] Fix stack iterability for fast C calls with no exit frame"
This reverts commit d5f4a33eb8.

Reason for revert: Seems to cause a no snapshot build failure - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/21967

Original change's description:
> [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
> 
> Before fast C calls, store the current FP and PC on the isolate. When
> iterating frames in SafeStackFrameIterator, check if these fields are
> set and start iterating at the calling frame's FP instead of the current
> FP, which will be in C++ code. We need to do this because c_entry_fp is
> not set on the Isolate for Fast-C-Calls because we don't build an exit
> frame.
> 
> This change makes stack samples that occur within 'Fast-C-Calls'
> iterable, meaning we can properly attribute ticks within the JS caller.
> 
> Fast-C-Calls can't call back into JS code, so we can only ever have one
> such call on the stack at a time, allowing us to store the FP on the
> isolate rather than the stack.
> 
> TBR=v8-mips-ports@googlegroups.com
> 
> Bug: v8:8464, v8:7202
> Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
> Reviewed-on: https://chromium-review.googlesource.com/c/1340241
> Commit-Queue: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
> Reviewed-by: Alexei Filippov <alph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57896}

TBR=alph@chromium.org,jgruber@chromium.org,petermarshall@chromium.org,martyn.capewell@arm.com,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,ibogosavljevic@wavecomp.com

Change-Id: I85f846e57b6fa845e7770c616435cebffdb2a245
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8464, v8:7202
Reviewed-on: https://chromium-review.googlesource.com/c/1352302
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57899}
2018-11-28 11:04:36 +00:00
Jacob Bramley
36243360a7 Make cctest/test-jump-table-assembler/JumpTablePatchingStress reliable on Arm64.
The test was flaky because it assumed that AllocatedAssemblerBuffer
would eventually return an address within near-call range. Rarely, this
did not happen (within the retry limit), and so the test would crash.

This fix allocates a single, kMaxWasmCodeMemory-sized buffer for the
test, and generates call sequences within that buffer.

BUG=v8:8245

Change-Id: I4b44d897c6cbda15a18ab992fa57805de3b2db29
Reviewed-on: https://chromium-review.googlesource.com/c/1347484
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jacob Bramley <jacob.bramley@arm.com>
Cr-Commit-Position: refs/heads/master@{#57898}
2018-11-28 10:43:31 +00:00
Toon Verwaest
86a5d0c18e [parser] Introduce Token:: IsMember, IsProperty, and IsTemplate
Change-Id: Iadc3d916dcda6f03c467e77fedff6d315dbb67f6
Reviewed-on: https://chromium-review.googlesource.com/c/1352299
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57897}
2018-11-28 10:28:10 +00:00
Peter Marshall
d5f4a33eb8 [cpu-profiler] Fix stack iterability for fast C calls with no exit frame
Before fast C calls, store the current FP and PC on the isolate. When
iterating frames in SafeStackFrameIterator, check if these fields are
set and start iterating at the calling frame's FP instead of the current
FP, which will be in C++ code. We need to do this because c_entry_fp is
not set on the Isolate for Fast-C-Calls because we don't build an exit
frame.

This change makes stack samples that occur within 'Fast-C-Calls'
iterable, meaning we can properly attribute ticks within the JS caller.

Fast-C-Calls can't call back into JS code, so we can only ever have one
such call on the stack at a time, allowing us to store the FP on the
isolate rather than the stack.

TBR=v8-mips-ports@googlegroups.com

Bug: v8:8464, v8:7202
Change-Id: I7bf39eba779dad34754d5759d741c421b362a406
Reviewed-on: https://chromium-review.googlesource.com/c/1340241
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57896}
2018-11-28 09:42:34 +00:00
Dan Elphick
e0766dbe5c [cleanup] Move FunctionTemplate::GetFunction to V8_DEPRECATED
Bug: v8:7295, v8:8238
Change-Id: Ide105b69ee77707a5a28d16abfb1ab44ebc3995d
Reviewed-on: https://chromium-review.googlesource.com/c/1352273
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57895}
2018-11-28 09:32:53 +00:00
Marja Hölttä
40604f4d39 [iwyu] Detach date.h from Giant Include Cluster
BUG=v8:7490,v8:8238

Change-Id: Id55ad482903abac635981d9e417e255fec427c52
Reviewed-on: https://chromium-review.googlesource.com/c/1352285
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57894}
2018-11-28 09:26:04 +00:00
Jakob Kummerow
4f79c30583 Speed up two tests by skipping slow asserts
pending a better approach.

Bug: v8:8516
Change-Id: Ic107184b46c85ae5724619cc82c99686aee7edb9
Reviewed-on: https://chromium-review.googlesource.com/c/1352794
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57893}
2018-11-28 09:17:23 +00:00
Toon Verwaest
bd114da7c3 [parser] Set rewritable_length to the correct length rather than 0
Bug: chromium:908975
Change-Id: I3dd9cf32de5b11554c2e1cbc0538c9b11ecda09d
Reviewed-on: https://chromium-review.googlesource.com/c/1352286
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57892}
2018-11-28 08:53:26 +00:00
tzik
894cc02144 Free empty MicrotaskQueue buffer on GC
MicrotaskQueue didn't free its buffer on GC phase if it's empty.

Bug: v8:8124
Change-Id: Icdd6a67873cab164dcf67ed1caf5cca55e3f7954
Reviewed-on: https://chromium-review.googlesource.com/c/1351856
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57891}
2018-11-28 07:24:29 +00:00
v8-ci-autoroll-builder
e3f6dff547 Update V8 DEPS.
Rolling v8/build: 076d347..bbd67a3

Rolling v8/test/wasm-js/data: e822213..3dc2dc2

Rolling v8/third_party/depot_tools: 6c18a1a..44d4b29

Rolling v8/tools/clang: 7fa2bdf..8a671fe

Rolling v8/tools/swarming_client: b6e9e23..157bec8

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

Change-Id: I1ca88060fc4d1f9ca46ca68ba295f76fd50926f8
Reviewed-on: https://chromium-review.googlesource.com/c/1352793
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@{#57890}
2018-11-28 07:23:25 +00:00
Ben Smith
b9c269a55e [wasm] Check decoder in {memory,table}.init
The MemoryInitImmediate and TableInitImmediate read a Memory/Table
index, followed by a segment index. If reading the first index fails, we
need to stop reading, or the decoder will read past the end.

Bug: chromium:907324
Change-Id: I3eb46c08d03e3b2e44ed4081d307b32c799abcec
Reviewed-on: https://chromium-review.googlesource.com/c/1351502
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57889}
2018-11-28 07:22:19 +00:00
Michael Achenbach
b115752cb3 Revert "[Intl] Handle invalid values in locale"
This reverts commit d37f6fd6a7.

Reason for revert:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20gc%20stress/19643

Original change's description:
> [Intl] Handle invalid values in locale
> 
> Fix the bug that we call setKeywordValue w/o convert the key to legacy key.
> 
> Bug: v8:7481
> Change-Id: I5a743e41d02b64385c5050fc1d83279741e24659
> Reviewed-on: https://chromium-review.googlesource.com/c/1339243
> Commit-Queue: Frank Tang <ftang@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Jungshik Shin <jshin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#57886}

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

Change-Id: I3765eed7a9bdf123321c6d0589dfb72ab8ae2b2f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7481
Reviewed-on: https://chromium-review.googlesource.com/c/1352284
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57888}
2018-11-28 07:20:20 +00:00
Aseem Garg
46186c50af [wasm] fix data race in futex-emulation wait
waiting_ flag is now set inside a lock to prevent data race. This means
that waiting_ is false when callback is called at start of wait. To deal
with the new behavior, NotifyWake now always tries to Notify and sets
interrupted_ flag which will be handled by any future wait.

R=binji@chromium.org
BUG=v8:8497

Change-Id: Ia4fd39bcf18875d9be21bafc176ab562b083e68b
Reviewed-on: https://chromium-review.googlesource.com/c/1351237
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Reviewed-by: Ben Smith <binji@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57887}
2018-11-28 00:54:14 +00:00
Frank Tang
d37f6fd6a7 [Intl] Handle invalid values in locale
Fix the bug that we call setKeywordValue w/o convert the key to legacy key.

Bug: v8:7481
Change-Id: I5a743e41d02b64385c5050fc1d83279741e24659
Reviewed-on: https://chromium-review.googlesource.com/c/1339243
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57886}
2018-11-28 00:50:54 +00:00
Sven Sauleau
5686d294f6 [wasm] fix testharness - unreached_func
See usage in the js-api tests; previously it would have thrown without
executing any tests. Now, it can be used to generate trapping functions.

Bug: v8:8319
Change-Id: Ia1643d8f337a10ea86c1e700c7702ed7d3ed0c97
Reviewed-on: https://chromium-review.googlesource.com/c/1352298
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57885}
2018-11-27 22:37:56 +00:00
Jakob Kummerow
449fe71924 [ubsan] Port SmallOrderedHashTable and subclasses
to the new design.

Bug: v8:3770
Change-Id: Ic77a4f645a1ca3ed9be87690155e988723132471
Reviewed-on: https://chromium-review.googlesource.com/c/1350285
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57884}
2018-11-27 22:27:07 +00:00
Igor Sheludko
74f363a835 [heap] Update a check in incremental marker for Contexts
which are no longer derived from FixedArray and therefore IsFixedArray()
check no longer includes Contexts.

Bug: chromium:908877
Change-Id: I3aed0d38f5b1c00c9e27b7d5b6d29cdd5666ba86
Reviewed-on: https://chromium-review.googlesource.com/c/1352280
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#57883}
2018-11-27 20:48:42 +00:00