Commit Graph

48563 Commits

Author SHA1 Message Date
Michael Starzinger
7913a2a7cd [wasm] Remove support for trampolines from WasmCodeManager.
R=clemensh@chromium.org

Change-Id: Ic16e1da4ca50070ceff7f9a441250db2d20a868f
Reviewed-on: https://chromium-review.googlesource.com/1104471
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53871}
2018-06-20 10:31:59 +00:00
Georg Neis
0f80a21ccc [turbofan] Weaken map stability assumption for JSGetSuperConstructor.
There's no need to assume anything when we don't reduce the node.

R=bmeurer@chromium.org

Change-Id: Ic39b6e634c662824a72affd91318ca024f3e1055
Reviewed-on: https://chromium-review.googlesource.com/1105832
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53870}
2018-06-20 10:28:59 +00:00
Leszek Swirski
a5bd77326c [serializer] Fix top-level assumption
Fix assumption that only top level code won't have outer scope infos.

Bug: v8:7690
Change-Id: Ia6eec7b406632ad301e7db557597204c7ca66730
Reviewed-on: https://chromium-review.googlesource.com/1107622
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53869}
2018-06-20 10:10:19 +00:00
Jaroslav Sevcik
2439c9672e [turbofan] Refactor allocation sites for fast literal creation.
Bug: v8:7790
Change-Id: I6a6347d7394ddeacbb185a2e6e5187898bfca2dc
Reviewed-on: https://chromium-review.googlesource.com/1106173
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53868}
2018-06-20 09:57:49 +00:00
Théotime Grohens
d020584ac7 [torque] Add constexpr int31 equality operator
This CL adds a constexpr int31 == operator that returns
a constexpr bool value.

It also fixes a bug that this introduces because branch generation
for ternary operators incorrectly assumed that the condition value
was bool, whereas it can also be constexpr bool now.

Change-Id: Ie7d3497c9d1112c121b4a29561fe065b5bf01fb6
Reviewed-on: https://chromium-review.googlesource.com/1106343
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Théotime Grohens <theotime@google.com>
Cr-Commit-Position: refs/heads/master@{#53867}
2018-06-20 09:56:20 +00:00
Sergiy Byelozyorov
ca3c2b59ed [tools] Whitespace CL
TBR=sergiyb@chromium.org

Bug: chromium:854503
Change-Id: I07ae21bee95c2ef781824c6b98929ceb3786b1dd
Reviewed-on: https://chromium-review.googlesource.com/1107559
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53866}
2018-06-20 09:50:09 +00:00
Georg Neis
bffe040eaa Experiment: Bypass the descriptor lookup cache.
This is in order to check if we can get rid of the cache.

Bug: v8:7790
Change-Id: Id6625ffc440665b090f999564b006506f947ae45
Reviewed-on: https://chromium-review.googlesource.com/1107620
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53865}
2018-06-20 09:45:19 +00:00
Simon Zünd
9d406a0249 Reland "[array] Change QuickSort to TimSort for Array.p.sort"
This is a reland of 6bb8236808

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}

Bug: v8:7382
Change-Id: I499d782feaeb36df154e00a11d3b03cd41442347
Reviewed-on: https://chromium-review.googlesource.com/1107497
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53864}
2018-06-20 09:44:09 +00:00
Georgia Kouveli
cdb2ef01f5 [arm64] Remove deopt tables.
We can instead pass the deopt id in a register, where before we were passing the
deopt entry address. This removes the need for the deopt tables altogether,
saving 192kB.

Change-Id: I479d4de1a0245de328720b6b03a1955c8c63f696
Reviewed-on: https://chromium-review.googlesource.com/1076472
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#53863}
2018-06-20 09:19:41 +00:00
Georg Neis
8c4a30acab [turbofan] Make oddball type checks more convenient.
Also fix an oversight in my previous CL.

R=jarin@chromium.org

Bug: v8:7790
Change-Id: I61c783392b7b7b38ea28dc44dc1e932d15b55bc6
Reviewed-on: https://chromium-review.googlesource.com/1106170
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53862}
2018-06-20 08:57:39 +00:00
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