Commit Graph

48453 Commits

Author SHA1 Message Date
Yang Guo
70c43402ee [log][api] Fix GCC 4.9 build failure
GCC 4.9 used on some Node.js CI machines complains when the control
reaches the end of a non-void function and no return is encountered.

R=bmeurer@google.com, ofrobots@google.com, yangguo@google.com

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I5af0192cb187eccbf34dbb60ff3ac2e4774af803
Reviewed-on: https://chromium-review.googlesource.com/1105619
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53861}
2018-06-20 08:53:49 +00:00
Clemens Hammacher
f318f9835f [wasm] Move the NativeModule to the WasmModuleObject
The reference to the {NativeModule} (stored in a {Managed}) should live
on the {WasmModuleObject}, not on the individual {WasmCompiledModule}
objects.

R=titzer@chromium.org

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I21dfa088c9643d36d9fd5052a145e7e2af5e47f9
Reviewed-on: https://chromium-review.googlesource.com/1106380
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53860}
2018-06-20 08:13:59 +00:00
Michael Achenbach
e1ffbe2cb8 Whitespace change to trigger bots
TBR=santa

Bug: chromium:854503
Change-Id: I88ae0256b74cbc62df6ef81069d55eb894171a35
Reviewed-on: https://chromium-review.googlesource.com/1107064
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53859}
2018-06-20 07:57:41 +00:00
Clemens Hammacher
ce5b6a4fb8 [wasm] Remove redundant parameters
The {ModuleEnv} already contains a pointer to the {WasmModule}, no need
to pass it explicitly.

R=titzer@chromium.org

Change-Id: Icf0e8ea8b25c33dd5bcaeab2a4a746376e73813d
Reviewed-on: https://chromium-review.googlesource.com/1105828
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53858}
2018-06-20 07:29:49 +00:00
Clemens Hammacher
7e4e5d0fd6 [wasm][test] Fix WasmModule::num_declared_functions
Our tests currently don't set {WasmModule::num_declared_functions}
correctly. This CL fixes that.
This enables the use of {WasmModule::num_declared_functions} instead of
{NativeModule::num_functions_ - NativeModule::num_imported_functions_}.

Drive-by: Fix {std::vector} reservation to reserve enough space for all
functions during decoding.

R=titzer@chromium.org

Change-Id: I6d7783aed1c0de3275fc72787dec17c38ff8c73b
Reviewed-on: https://chromium-review.googlesource.com/1106166
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53857}
2018-06-20 07:22:29 +00:00
Junliang Yan
16de74bba4 PPC/s390: [turbofan] replace linear lookup switches with binary search
Port 825c748113

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

Change-Id: If067828166e44b99f48add7e929d6be8b585f34b
Reviewed-on: https://chromium-review.googlesource.com/1106877
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53856}
2018-06-19 21:56:08 +00:00
Bill Budge
81835bf03d Revert "[async] Optimize await and AsyncFromSyncIterator"
This reverts commit 21c0d77e15.

Reason for revert: Compile failure in bootstrapper.cc

Original change's description:
> [async] Optimize await and AsyncFromSyncIterator
> 
> Simplify the promise wrapping in await and
> %AsyncFromSyncIteratorPrototype%.next/return/throw to reuse the PromiseResolve
> primitive. Now await takes 1 tick instead of 3 on the microtask queue.
> 
> Change-Id: I7e99b8689eb8fcb09c48915b11c1e06684dc0f1a
> Reviewed-on: https://chromium-review.googlesource.com/1090272
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Mathias Bynens <mathias@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53853}

TBR=kozyatinskiy@chromium.org,littledan@chromium.org,gsathya@chromium.org,bmeurer@chromium.org,domenic@chromium.org,mathias@chromium.org,mslekova@chromium.org

Change-Id: Ia631acdfcd5c1f9c28c1540c8da16cdf076abf87
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/1106566
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53855}
2018-06-19 20:22:20 +00:00
Junliang Yan
b4e00ca1c5 s390: fix s390 debug build failures
Change-Id: I3aa30ac6a04b914cdd278a9c016467296a42ef8f
Reviewed-on: https://chromium-review.googlesource.com/1105058
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53854}
2018-06-19 19:56:57 +00:00
Maya Lekova
21c0d77e15 [async] Optimize await and AsyncFromSyncIterator
Simplify the promise wrapping in await and
%AsyncFromSyncIteratorPrototype%.next/return/throw to reuse the PromiseResolve
primitive. Now await takes 1 tick instead of 3 on the microtask queue.

Change-Id: I7e99b8689eb8fcb09c48915b11c1e06684dc0f1a
Reviewed-on: https://chromium-review.googlesource.com/1090272
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53853}
2018-06-19 19:55:52 +00:00
Junliang Yan
eafcdc96e1 PPC/s390: [wasm] Introduce jump table
Port 733b7c8258

Original Commit Message:

    This introduces the concept of a jump table for WebAssembly, which is
    used for every direct and indirect call to any WebAssembly function.
    For lazy compilation, it will initially contain code to call the
    WasmCompileLazy builtin, where it passes the function index to be
    called.
    For non-lazy-compilation, it will contain a jump to the actual code.
    The jump table allows to easily redirect functions for lazy
    compilation, tier-up, debugging and (in the future) code aging. After
    this CL, we will not need to patch existing code any more for any of
    these operations.

R=clemensh@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG= v8:7758

Change-Id: I1a370910ffa56dbdd609be6922067842a6adf1df
Reviewed-on: https://chromium-review.googlesource.com/1105060
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53852}
2018-06-19 19:54:48 +00:00
Dominik Inführ
996a6c1096 [heap] Flag for disabling ephemeron optimizations
Disables all optimizations for WeakMaps/WeakSets.

Bug: chromium:844008
Change-Id: I5395ce981bbdd0e8e03ba0821103afde0889cf56
Reviewed-on: https://chromium-review.googlesource.com/1102513
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53851}
2018-06-19 19:53:43 +00:00
Brian Stell
bc43c8e8fc [intl] Port getAvailableLocales to C++
R=gsathya@chromium.org
Bug: v8:5751

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: If842ab4850fc8d75bebb5331188ee237c5f1e9d7
Reviewed-on: https://chromium-review.googlesource.com/1097419
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Nebojša Ćirić <cira@chromium.org>
Commit-Queue: Brian Stell <bstell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53850}
2018-06-19 19:52:38 +00:00
Jakob Kummerow
8ea702e668 Revert "[array] Change QuickSort to TimSort for Array.p.sort"
This reverts commit 6bb8236808.

Reason for revert: breaks "nosnap" tests: CSA_ASSERT failure, array OOB read, see:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20nosnap%20-%20debug/19207

Original change's description:
> [array] Change QuickSort to TimSort for Array.p.sort
> 
> Bug: v8:7382
> Change-Id: I7f125a62867eb586d2720a2c641fb5f4012b284d
> Reviewed-on: https://chromium-review.googlesource.com/1100881
> Commit-Queue: Simon Zünd <szuend@google.com>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53838}

TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com

Change-Id: I986ab4c3a65666bd06be086c1503d01b6e9e34b4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7382
Reviewed-on: https://chromium-review.googlesource.com/1106717
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53849}
2018-06-19 19:40:09 +00:00
Michael Starzinger
e465e7c22c [assembler] Remove WebAssembly special case for RelocInfo.
This removes special casing in the handling of {RelocInfo::CODE_TARGET}
for cases where such references appeared in {WasmCode}. Such references
can only appear in real {Code} objects and also only target real {Code}
objects by now.

R=clemensh@chromium.org

Change-Id: I87c55c60cd6344bb67fa8c8d04b66fb523d07ba7
Reviewed-on: https://chromium-review.googlesource.com/1104680
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53848}
2018-06-19 16:36:52 +00:00
Clemens Hammacher
d5177a02c9 [wasm] Fix jump table for long jumps on arm
Direct jumps only work for offset up to 64 MB on arm. For longer jumps,
use indirect branches (load target from constant pool into the pc
register).

R=mstarzinger@chromium.org
CC=pierre.langlois@arm.com

Bug: v8:7758
Change-Id: I1cf66b7d1bfb62cfcd6b1619c02816909a1f651e
Reviewed-on: https://chromium-review.googlesource.com/1105996
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53847}
2018-06-19 16:01:00 +00:00
Michael Starzinger
928e28cddd [wasm] Use runtime stubs for coercions in wrappers.
This makes sure we use WebAssembly runtime stubs when performing value
coercions in wrapper code that is compiled into {WasmCode}. It hence
removes the last {RelocInfo::CODE_TARGET} references in {WasmCode}.

R=clemensh@chromium.org
BUG=v8:7424

Change-Id: Ic96e541abe98f90796a6506b09ff99557743b6f7
Reviewed-on: https://chromium-review.googlesource.com/1104462
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53846}
2018-06-19 15:10:10 +00:00
Georg Neis
78b5b32f87 [turbofan] Encapsulate some heap accesses.
This encapuslates some of the heap accesses done by
JSNativeContextSpecialization::ReduceJSLoadGlobal and
JSNativeContextSpecialization::ReduceJSStoreGlobal.

Bug: v8:7790
Change-Id: Ib6c63903809927d6094af22519285cb9d0bbff7a
Reviewed-on: https://chromium-review.googlesource.com/1106141
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53845}
2018-06-19 14:50:09 +00:00
Clemens Hammacher
b78763a125 [wasm] Remove {GetNumFunctionsToCompile}
After the removal of the --skip-compiling-wasm-funcs flag, this helper
does not help that much any more, and contains unneeded logic. This CL
just inlines the computation in the caller.

R=titzer@chromium.org

Bug: v8:7754
Change-Id: I99cf006ffe9c33d79bea2ce186354c38bc63f6af
Reviewed-on: https://chromium-review.googlesource.com/1105767
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53844}
2018-06-19 14:30:30 +00:00
Tobias Tebbi
825c748113 [turbofan] replace linear lookup switches with binary search
Bug: chromium:849098
Change-Id: Iec81d08cf6edb6040445650cadf802a34b65b8e1
Reviewed-on: https://chromium-review.googlesource.com/1092749
Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53843}
2018-06-19 14:24:00 +00:00
Dan Elphick
25cd2453d4 [cleanup] Make Heap::InToSpace static
Like Heap::InFromSpace, it doesn't use any members, so should be made
static. Also clean up call sites to not call via a heap pointer.

Change-Id: If55484ddac51351d789c73093f1f7ebf1c568bea
Reviewed-on: https://chromium-review.googlesource.com/1088618
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53842}
2018-06-19 13:59:20 +00:00
Toon Verwaest
7f2fc562dd Drop parameter names from ScopeInfo
Change-Id: I5fd42cd70aaba15cfef32eea54232f8292aaa874
Reviewed-on: https://chromium-review.googlesource.com/1105775
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53841}
2018-06-19 13:26:09 +00:00
Peter Marshall
2ebd3ed2fa [typedarray] Fix incorrect optimization in IterableToList
Bug: chromium:854066
Change-Id: Icabd9bf5e00868822b9debfb9bbb5d3932726465
Reviewed-on: https://chromium-review.googlesource.com/1105774
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53840}
2018-06-19 13:01:08 +00:00
Théotime Grohens
9fd7ac73be [torque] Improve error message in constexpr conditionals
This CL adds the incorrect return type of the conditional expression
in 'if constexpr' conditionals to the error message displayed
if the return type is different from 'constexpr bool'.

Change-Id: I58be4c140fa6fc475dc907a9ec872005fcb7d839
Reviewed-on: https://chromium-review.googlesource.com/1105768
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#53839}
2018-06-19 12:56:18 +00:00
Simon Zünd
6bb8236808 [array] Change QuickSort to TimSort for Array.p.sort
Bug: v8:7382
Change-Id: I7f125a62867eb586d2720a2c641fb5f4012b284d
Reviewed-on: https://chromium-review.googlesource.com/1100881
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53838}
2018-06-19 12:29:03 +00:00
Théotime Grohens
7b417038b1 [torque][cleanup] Move ToBoolean to base.tq
This CL moves the ToBoolean function from data-view.tq to base.tq.

It used to be in data-view.tq because we couldn't call macros
from one file to the other but this has been fixed now, and it
makes more sense to have it there.

Change-Id: Id201979eacbeb4307ff7d515db48377490d5bed7
Reviewed-on: https://chromium-review.googlesource.com/1104683
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#53837}
2018-06-19 12:27:58 +00:00
Sigurd Schneider
f5a8352b0f [embedded-builtins] Enable on all arches except x86 for benchmarks
This CL enables embedded builtins to get benchmark feedback. We need
this feedback to identify and address remaining performance problems.

Bug: v8:6666
Change-Id: I8f77f218e656b55ddabe1236eb2a1d14a5ac6233
Reviewed-on: https://chromium-review.googlesource.com/1105834
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53836}
2018-06-19 11:39:09 +00:00
Sigurd Schneider
38bec2eadc [TurboFan] Don't generate reloc info for builtin calls at runtime
If a call to a builtin is generated at run-time (vs at snapshot time)
we don't need to tag the call/jump with relocation info, as the builtin
address will not change.

The only way to generate a builtin call at snapshot time is via

MacroAssembler::JumpToInstructionStream where we keep OFF_HEAP_TARGET.
The reloc info for builtin calls and jumps is set to NONE.

Bug: v8:6666
Change-Id: I9e8ad9f23481a2177e69352a56010084336402e7
Reviewed-on: https://chromium-review.googlesource.com/1105758
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53835}
2018-06-19 11:34:08 +00:00
Michael Starzinger
c5dd9f40b2 [turbofan] Use std::setw to print instruction block.
R=jarin@chromium.org

Change-Id: I369684ee6ccff83329bcc4f463b922e0263ae0b0
Reviewed-on: https://chromium-review.googlesource.com/1105823
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53834}
2018-06-19 11:29:58 +00:00
Clemens Hammacher
e69b8f8969 [wasm] Create WasmCompiledModule together with WasmModuleObject
We need to create one {WasmCompiledModule} before creating the
{WasmModuleObject}. This CL refactors the code such that the
{WasmModuleObject} itself creates the {WasmCompiledModule}. This moves
us closer to removing the {WasmCompiledModule}.

R=titzer@chromium.org

Change-Id: I9f85e47f643c39840036f4f1f92df736732c8f74
Reviewed-on: https://chromium-review.googlesource.com/1105762
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53833}
2018-06-19 10:48:28 +00:00
Michael Achenbach
0256c6d0cd [build] Add ubsan blacklist file
The blacklist is needed to make compilation work.

TBR=sergiyb@chromium.org
NOTRY=true

Bug: chromium:853202
Change-Id: Ie867b3605a42ddbcf02514965652ff89121be14d
Reviewed-on: https://chromium-review.googlesource.com/1105830
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53832}
2018-06-19 10:46:53 +00:00
Clemens Hammacher
e238791024 [iwyu] Add missing includes in frame-constants-*.h
This also restores some uniformity in these headers.

R=mstarzinger@chromium.org

Change-Id: Ic3a941bce287596f564ba9f87f3a8ca2c46c2ee2
Reviewed-on: https://chromium-review.googlesource.com/1105763
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53831}
2018-06-19 10:45:48 +00:00
Michael Achenbach
bd4a4e11b8 Revert "[test] Initialize slow-dcheck runtime flag with compile time value"
This reverts commit 2c1e4aa990.

Reason for revert:
https://ci.chromium.org/buildbot/client.v8.ports/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/11591

Original change's description:
> [test] Initialize slow-dcheck runtime flag with compile time value
> 
> This makes sure slow dchecks are part of the snapshot when the compile
> time flag is set. It'll also obviate the need to set the runtime flag
> in general, making configurations simpler.
> 
> It's still possible to opt out at runtime for the non-snapshot dchecks
> using the negated runtime flag.
> 
> Bug: v8:7853
> Change-Id: Iadfc46ed691d32e9d39717e2ea0383e784660d1d
> Reviewed-on: https://chromium-review.googlesource.com/1105050
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53819}

TBR=machenbach@chromium.org,cbruni@chromium.org,jgruber@chromium.org,szuend@google.com

Change-Id: If209aa824749f358a892218dda99c30b1a63b99d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7853
Reviewed-on: https://chromium-review.googlesource.com/1105857
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53830}
2018-06-19 10:41:09 +00:00
Clemens Hammacher
5f56641b41 Reland "[wasm] Introduce jump table"
This is a reland of 733b7c8258.
The arm64 bug was fixed in https://crrev.com/c/1105051.

Original change's description:
> [wasm] Introduce jump table
>
> This introduces the concept of a jump table for WebAssembly, which is
> used for every direct and indirect call to any WebAssembly function.
> For lazy compilation, it will initially contain code to call the
> WasmCompileLazy builtin, where it passes the function index to be
> called.
> For non-lazy-compilation, it will contain a jump to the actual code.
> The jump table allows to easily redirect functions for lazy
> compilation, tier-up, debugging and (in the future) code aging. After
> this CL, we will not need to patch existing code any more for any of
> these operations.
>
> R=mstarzinger@chromium.org, titzer@chromium.org
>
> Bug: v8:7758
> Change-Id: I45f9983c2b06ae81bf5ce9847f4542fb48844a4f
> Reviewed-on: https://chromium-review.googlesource.com/1097075
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53805}

TBR=titzer@chromium.org,mstarzinger@chromium.org

Bug: v8:7758
Change-Id: I68555230c6db97e70f0b8fef784188f55ee04794
Reviewed-on: https://chromium-review.googlesource.com/1105158
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53829}
2018-06-19 10:29:48 +00:00
Leszek Swirski
58339dfe39 [GetIsolate] Add a mixin for safe GetIsolate types
To avoid repeating code for the few places where we can call GetIsolate
and GetHeap safely.

Bug: v8:7786
Change-Id: I6c6de81488bfa79dca50cfd2b6356f432401b68e
Reviewed-on: https://chromium-review.googlesource.com/1104684
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53828}
2018-06-19 10:16:48 +00:00
Michael Achenbach
97f0ddfa77 [build] Add MB config for ubsan bot
TBR=sergiyb@chromium.org
NOTRY=true

Bug: chromium:853202
Change-Id: Ibdb74e840820a7524db7767f94afb84768773da5
Reviewed-on: https://chromium-review.googlesource.com/1105824
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53827}
2018-06-19 10:10:38 +00:00
Dan Elphick
1b0d4a151a [explicit isolates] Remove GetIsolates from Map
This removes several GetIsolate calls from Map:: methods and instead
passes the Isolate in. This is a very noisy change but mostly it is just
adding Isolate to method declarations and forwarding it on.

Bug: v8:7786
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I159505e50a9462d01066f14da0fcc29762bd5531
Reviewed-on: https://chromium-review.googlesource.com/1075267
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53826}
2018-06-19 09:59:58 +00:00
Simon Zünd
af9e4ba2ca [jstests] Change sorting benchmarks to run setup for each iteration
This CL changes all ArraySort benchmarks to execute the setup
function for each iteration (one run call), instead of only once for
all iterations.

Even though we now also measure the time needed to copy and prepare
the array, this is needed, otherwise we would mainly measure sorting
already sorted arrays.

R=cbruni@chromium.org, jgruber@chromium.org

Change-Id: I2e0e301b52b0288b8c825c3c8401c348c4a0dee7
Reviewed-on: https://chromium-review.googlesource.com/1105045
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53825}
2018-06-19 09:40:39 +00:00
Sigurd Schneider
0db5e7b80d [TurboFan] Return MaybeHandle from TurboFan compiler
TurboFan returned null handles if compilation did not succeed. This CL
changes that to a MaybeHandle to make it explicit that client code needs
to handle the error.

Bug: v8:7856
Change-Id: I6087e6263faa1150b9788213dd22c398b4a2fc2d
Reviewed-on: https://chromium-review.googlesource.com/1104688
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53824}
2018-06-19 09:33:18 +00:00
Toon Verwaest
6394fd3571 Mark context slots with the parameter they represent so we can easily compute arguments objects
Change-Id: I566ab09800f4a2873aca86423c858b63c58d6d98
Reviewed-on: https://chromium-review.googlesource.com/1105049
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53823}
2018-06-19 09:25:29 +00:00
Leszek Swirski
89270b1ef8 [GetIsolate] Inline GetIsolate into ScopeInfo::ContextSlotIndex
We want to remove GetIsolate calls, but this particular one is safe
and necessary to avoid either storing the isolate in the parser/scopes,
or passing it through as a parameter throughout the parser.

Bug: v8:7786
Change-Id: I07765f5c20b2c9925bb0b980bc9fe850c91d7811
Reviewed-on: https://chromium-review.googlesource.com/1104685
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53822}
2018-06-19 09:23:59 +00:00
Simon Zünd
ee9c34c5ac [cleanup] Replace custom type with constexpr String in TypedArray.p.sort
R=jgruber@chromium.org

Change-Id: Ibb35c1ae090cd8e79e48c977735af1188414f531
Reviewed-on: https://chromium-review.googlesource.com/1105054
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53821}
2018-06-19 09:20:23 +00:00
Dan Elphick
52e2b5aa38 [explicit isolates] Replace every Handle(T*) in parsing/
Replace all but one Handle<T*>(T*) calls with ones that explicitly pass
in an Isolate.

Requires plumbing Isolate* through several Parser functions which
previously avoided it because of worries about accessing the heap off
the main thread. In all off-main-thread cases, isolate will be nullptr
and every such function asserts with:
DCHECK_EQ(parsing_on_main_thread_, isolate != nullptr);

Also deletes unused function ParseInfo::ReopenHandlesInNewHandleScope.

Bug: v8:7786
Change-Id: I3dd9c49dcde49fdbcb684ba73f47a30d00fc495e
Reviewed-on: https://chromium-review.googlesource.com/1087272
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53820}
2018-06-19 09:19:18 +00:00
Michael Achenbach
2c1e4aa990 [test] Initialize slow-dcheck runtime flag with compile time value
This makes sure slow dchecks are part of the snapshot when the compile
time flag is set. It'll also obviate the need to set the runtime flag
in general, making configurations simpler.

It's still possible to opt out at runtime for the non-snapshot dchecks
using the negated runtime flag.

Bug: v8:7853
Change-Id: Iadfc46ed691d32e9d39717e2ea0383e784660d1d
Reviewed-on: https://chromium-review.googlesource.com/1105050
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53819}
2018-06-19 09:13:38 +00:00
Michael Achenbach
7f28ed7f88 [test] Skip flaky test
TBR=yangguo@chromium.org
NOTRY=true

Bug: v8:7859
Change-Id: Ie3d21f21b12bc2d36eb1b0ea798e2d6030342492
Reviewed-on: https://chromium-review.googlesource.com/1105760
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53818}
2018-06-19 08:43:02 +00:00
Clemens Hammacher
49946f02bb [arm64] Fix WasmCompileLazyFrameConstants
{WasmCompileLazyFrameConstants::kFixedFrameSizeFromFp} did not
incorporate padding. This CL fixes that.

R=mstarzinger@chromium.org

No-Try: true
Bug: chromium:853468
Change-Id: I042e68623bdfd81c96180a39c29ecd70271ba1be
Reviewed-on: https://chromium-review.googlesource.com/1105051
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53817}
2018-06-19 08:41:58 +00:00
Sigurd Schneider
335d162556 [cctest] Bump max old space size for isolate creation
Bump limit for isolate creation in cctest; the test started crashing recently
on nosnap.debug builds, hence we bump the limit.

Bug: v8:7856
Change-Id: I7c2396c7f112a2ed7fc189f0fa72658e0ed75050
Reviewed-on: https://chromium-review.googlesource.com/1104691
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53816}
2018-06-19 08:01:07 +00:00
Clemens Hammacher
0181cf0b31 Revert "[runtime][gc] Drop AllocationSite::weak_next field for sub-literals"
This reverts commit 380dba0a5c.

Reason for revert: Fails gc-stress: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Mac64%20GC%20Stress/1471

Original change's description:
> [runtime][gc] Drop AllocationSite::weak_next field for sub-literals
> 
> Use AllocationSite without Weaknext field for all the allocations in nested
> literal except for Root. The nested field is sufficient to link all the
> allocations in a nested literal. Only the Root is added to heap weak_alloc_list
> for GC to traverse
> 
> Change-Id: I946e63292c6d168197cd2a087f697c73cc431272
> Reviewed-on: https://chromium-review.googlesource.com/1101323
> Commit-Queue: Chandan Reddy <chandanreddy@google.com>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53813}

TBR=ulan@chromium.org,cbruni@chromium.org,chandanreddy@google.com

Change-Id: Icc87027f14f917da3033db256c2535e08e2a4a34
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/1105159
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53815}
2018-06-19 07:54:09 +00:00
Théotime Grohens
33f45e32fc [torque] Add constexpr String handling to Torque
This CL adds a 'constexpr String' type to Torque, which gets compiled
to 'const char*'.

It makes it easier to pass strings around in Torque files,
especially when trying to Print() them.

Bug: v8:7793
Change-Id: I2d4feac7012f5401f2b467475f8df086e46ac18a
Reviewed-on: https://chromium-review.googlesource.com/1104466
Commit-Queue: Théotime Grohens <theotime@google.com>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53814}
2018-06-19 07:27:17 +00:00
Creddy
380dba0a5c [runtime][gc] Drop AllocationSite::weak_next field for sub-literals
Use AllocationSite without Weaknext field for all the allocations in nested
literal except for Root. The nested field is sufficient to link all the
allocations in a nested literal. Only the Root is added to heap weak_alloc_list
for GC to traverse

Change-Id: I946e63292c6d168197cd2a087f697c73cc431272
Reviewed-on: https://chromium-review.googlesource.com/1101323
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53813}
2018-06-19 07:14:17 +00:00
Simon Zünd
5b4b151478 [CSA] OOB check for Load/StoreFixedArrayElement from slow to normal assert
This CL enables out-of-bounds checks for debug builds when loading or
storing FixedArray elements. Since "--enable-slow-asserts" is not passed
through to mksnapshot, the OOB checks were basically never executed.

Bug: v8:7853
Change-Id: I81bdd9ac04868f9ffc362c3f4fd8fa3ddd122ee1
Reviewed-on: https://chromium-review.googlesource.com/1103568
Commit-Queue: Simon Zünd <szuend@google.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53812}
2018-06-19 05:46:04 +00:00