Commit Graph

46005 Commits

Author SHA1 Message Date
Clemens Hammacher
962f025adf [Liftoff] [ia32] Optimize stack limit check on ia32
On ia32, we can encode the address of the stack limit in the operand
directly, saving one mov instruction and reducing register pressure.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: I2742efbfea16d56d648c233a2dba1d8672dc489d
Reviewed-on: https://chromium-review.googlesource.com/930961
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51463}
2018-02-22 10:41:42 +00:00
Peter Marshall
9af1556f80 [cleanup] Add CSA types to ToSmiLength and callers.
Bug: v8:7310
Change-Id: Ic9c96708d6f6319d71b7e3ecae5434fb1e8eb504
Reviewed-on: https://chromium-review.googlesource.com/928767
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51462}
2018-02-22 10:34:22 +00:00
Peter Marshall
aaa78c330e [typedarray] Fix IterableToList when Number has an iterator
IterableToListCanBeElided checked that the input was always a HeapObject
but this is not true when an iterator symbol is defined on the Number
prototype, meaning Smi and HeapNumber can also be passed in.

Added a regression test for the crash and some correctness tests for
smi and double input to TA.from.

Also factored out the tests in typedarray-from.js that modify global
state e.g. protector cells, so that one iteration of the top level
loop does not interfere with the next.

Bug: chromium:814643
Change-Id: I364d11f011faf8370446f905a35a945d47e4477f
Reviewed-on: https://chromium-review.googlesource.com/930962
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51461}
2018-02-22 10:23:32 +00:00
sreten.kovacevic
ef93026137 [Liftoff][mips64] Fix {kAvailableSpace} in PatchPrepareStackFrame
Fix value of {kAvailableSpace} to prevent buffer growing.

Bug: v8:6600
Change-Id: Ifc1c3e191929db9e20aa302b2f52d450fba54909
Reviewed-on: https://chromium-review.googlesource.com/930881
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51460}
2018-02-22 10:18:02 +00:00
jgruber
58fe4d3aca Let RelocInfo::Print print the name of code targets
For builtin and stub code targets, we can be a bit more descriptive and
print their name along with the code kind.

Before:
0x1fafde09c5cf  code target (BUILTIN)  (0x1fafde088280)
0x1fafde09c5f0  code target (STUB)  (0x1fafde084060)

After:
0x1fafde09c5cf  code target (BUILTIN Abort)  (0x1fafde088280)
0x1fafde09c5f0  code target (STUB CEntryStub)  (0x1fafde084060)


Bug: v8:6666
Change-Id: I27d205361748c6bae5e69e14f65efb7f85f23da7
Reviewed-on: https://chromium-review.googlesource.com/928766
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51459}
2018-02-22 10:13:53 +00:00
Gabriel Charette
3c62f7ae07 Use all available workers for concurrent marking.
R=ulan@chromium.org

Bug: chromium:812178
Change-Id: I35a727cb6c663bbd5f1beab98324e5d1b1ecf5c7
Reviewed-on: https://chromium-review.googlesource.com/918663
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51458}
2018-02-22 09:39:10 +00:00
Erik Luo
28c81eeef7 Revert "[debug] add tests, mark side-effect-free (Typed)Array, WeakMap/Set fns"
This reverts commit ba5bac8ceb.

Reason for revert: Breaks the build, needs investigation

Original change's description:
> [debug] add tests, mark side-effect-free (Typed)Array, WeakMap/Set fns
> 
> Adds more whitelisted methods in debug-evaluate for:
> Array, TypedArray, ArrayBuffer, DataView, WeakMap, WeakSet
> 
> Bug: chromium:810176
> Change-Id: I502776ad3191ccc2a355e5684b5f885a5f58d186
> Reviewed-on: https://chromium-review.googlesource.com/923414
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Erik Luo <luoe@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51456}

TBR=yangguo@chromium.org,luoe@chromium.org

Change-Id: I864e5747fa3277e27feffba08a50c8c241291f41
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:810176
Reviewed-on: https://chromium-review.googlesource.com/929922
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51457}
2018-02-22 08:57:41 +00:00
Erik Luo
ba5bac8ceb [debug] add tests, mark side-effect-free (Typed)Array, WeakMap/Set fns
Adds more whitelisted methods in debug-evaluate for:
Array, TypedArray, ArrayBuffer, DataView, WeakMap, WeakSet

Bug: chromium:810176
Change-Id: I502776ad3191ccc2a355e5684b5f885a5f58d186
Reviewed-on: https://chromium-review.googlesource.com/923414
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51456}
2018-02-22 08:12:40 +00:00
Ulan Degenbaev
d3c883f082 [heap-profiler] Fix a crash in NativeObjectsExplorer.
The crash happens while adding an embedder edge. The |from| heap entry
can be invalidated when the |to| heap entry is added to the snapshot.

This happens because heap entries are pointers into the std::vector
backing store.

Bug: chromium:813515
Change-Id: I6a61bb3fc383a272887925c5da163766d23a0606
Reviewed-on: https://chromium-review.googlesource.com/926525
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51455}
2018-02-22 06:27:55 +00:00
Sathya Gunasekaran
4d4f141923 [class] Stage private class fields
Bug: v8:5368
Change-Id: I3eb8612dec80f7f613d0f4a7c13913e65ecfa41e
Reviewed-on: https://chromium-review.googlesource.com/930706
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51454}
2018-02-22 05:17:33 +00:00
v8-autoroll
fffec8edf5 Update V8 DEPS.
Rolling v8/build: 3206b7c..b3523c3

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7ae2122..d2d530b

Rolling v8/tools/clang: a695c30..c29e3d7

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

Change-Id: Ie664631804df932cc3af3a09f7543e55aaa6d8a5
Reviewed-on: https://chromium-review.googlesource.com/930403
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51453}
2018-02-22 04:58:53 +00:00
Sathya Gunasekaran
f3cfe09549 [class] Throw on private field access miss
Private fields should not return undefined on access miss, but instead
should throw a TypeError.

This patch uses a bit on v8::Symbol to mark if this symbol is a
private field or not.

This patch also changes the LookupIterator code path that deals with
LookupIterator::State::DATA to deal with JSReceiver instead of
JSObject.

Note: the error message doesn't output the field name, but that's a
WIP.

Bug: v8:5368
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I8ae960b478eb6ae1ebf9bc90658ce3654d687977
Reviewed-on: https://chromium-review.googlesource.com/905627
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51452}
2018-02-22 01:43:13 +00:00
Junliang Yan
51958ed97d Make v8 build with -Wimplicit-fallthrough in ppc and s390 configs.
R=joransiu@ca.ibm.com

Change-Id: I1377d90de81eb5f0ecfe9318c3126f55fb36cac2
Reviewed-on: https://chromium-review.googlesource.com/929753
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#51451}
2018-02-21 21:27:19 +00:00
Michael Achenbach
2fa7633233 Revert "[debuger/deoptimizer] Remove GC invocation"
This reverts commit a7c7863197.

Reason for revert:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/21788

See: https://github.com/v8/v8/wiki/Blink-layout-tests

Original change's description:
> [debuger/deoptimizer] Remove GC invocation
> 
> This CL removes a GC invocation which might not be needed anymore.
> 
> Change-Id: I27c57936677ba2ec0bc32588c485a2c3b6ffed01
> Reviewed-on: https://chromium-review.googlesource.com/928241
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51428}

TBR=yangguo@chromium.org,sigurds@chromium.org

Change-Id: Ifff9fdd060f7792208dfa01901836a1845b67bde
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/929661
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51450}
2018-02-21 19:15:28 +00:00
Sathya Gunasekaran
3cdb96b0ac [class] Ban private field deletion
Bug: v8:5368
Change-Id: I7c4f9101837a0bf4917bbb0c2f09587118168a02
Reviewed-on: https://chromium-review.googlesource.com/923362
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51449}
2018-02-21 19:14:23 +00:00
Michael Achenbach
f991f3a40b [test] Skip test on deopt fuzzer
NOTRY=true
TBR=petermarshall@chromium.org

Bug: v8:7466
Change-Id: I1ac9735ee130c43cebf56f8b69528429c47a42f6
Reviewed-on: https://chromium-review.googlesource.com/929586
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51448}
2018-02-21 19:10:53 +00:00
Gabriel Charette
2c1b6d383e [v8] Even finer grain trace events for EVACUATE_COPY step.
Fine grain events are showing that LiveObjectVisitor::VisitBlackObjectsNoFail
is the suspiciously slow step, breaking it down further.
https://docs.google.com/document/d/1bdlWAWeP3j2yo2DYfeok6URqFCrt57yx-nucGMybGGQ/edit#heading=h.97pqg2eosnw8
https://drive.google.com/file/d/1FKZHkXtWK2fZCk_3PClPcbpzKilnbuOr/view

R=mlippautz@chromium.org

Bug: chromium:813824
Change-Id: Idcebcbb268d3e00f5f1e304c66564b4b9c85a064
Reviewed-on: https://chromium-review.googlesource.com/929161
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51447}
2018-02-21 18:50:12 +00:00
Nico Weber
dab696e7ae v8: Turn on -Wimplicit-fallthrough.
https://chromium-review.googlesource.com/911731 made things build with
this on x64, and https://chromium-review.googlesource.com/923528 added
x86, arm, arm64, mips, mips64.  This are all the configs covered by
v8's trybots.  If this breaks yet another config I don't know about,
these two CLs should give you a good idea how to fix them.

Bug: chromium:812686
Change-Id: Ib9a9714a070dd876a8f5911a1bc974ffd7aa3995
Reviewed-on: https://chromium-review.googlesource.com/928842
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51446}
2018-02-21 18:33:33 +00:00
Clemens Hammacher
093b771801 [testing] Remove isCrankshafted
Crankshaft is gone, and this function is not used anywhere.

R=mstarzinger@chromium.org

Bug: v8:7310,v8:6408
Change-Id: Ic1f859e659008c891cc35d20e95a8214de42bd21
Reviewed-on: https://chromium-review.googlesource.com/928981
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51445}
2018-02-21 18:16:43 +00:00
Ross McIlroy
6687007028 [Compiler] Use conditional move / select to generate poison mask.
Replace bitwise arithmetic with conditional move / select instructions
on ia32, x64, Arm and Arm64. In local tests this improves --noopt Ignition
performance by between 2-5%.

BUG=chromium:798964

Change-Id: I82832e5d28469a574a575119c1a665b5c2c93bb2
Reviewed-on: https://chromium-review.googlesource.com/916561
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51444}
2018-02-21 17:58:17 +00:00
Ross McIlroy
aa9843d796 [Compiler] Don't save FeedbackVector in CompilationCache for Scripts.
The compilation logic never used the saved FeedbackVector for Script
compiles when looking up the CompilationCache, so remove it and
simplify the return value of LookupScript to be a
MaybeHandle<SharedFunctionInfo>

Change-Id: Ib1d833f997b299e2e79621bd8509bdfd911d4e10
Reviewed-on: https://chromium-review.googlesource.com/924002
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51443}
2018-02-21 17:07:13 +00:00
Sigurd Schneider
08fdc1fbb2 [turbofan] Make CheckString deopt reason more informative
Bug: v8:7310
Change-Id: I54f16a65d478d65cb7df611626397376df22a975
Reviewed-on: https://chromium-review.googlesource.com/928702
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51442}
2018-02-21 16:36:33 +00:00
Andreas Haas
76d97255dc [cleanup] Add message test for assertTrue in mjsunit.js
This is a first testing CL to add tests for mjsunit assertions to the
message tests.

R=clemensh@chromium.org

Bug: v8:7310
Change-Id: Ibbeafebb116f9608c70687f141986ab4534c6b2a
Reviewed-on: https://chromium-review.googlesource.com/803555
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51441}
2018-02-21 15:55:54 +00:00
Clemens Hammacher
a677243034 [wasm] Enable more asm.js tests
They were disabled for some reason, but they are working, so reenable
them.

R=titzer@chromium.org

Change-Id: I24cab05d01060b9eae3d6191a978cdb04daf626b
Reviewed-on: https://chromium-review.googlesource.com/928648
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51440}
2018-02-21 15:42:22 +00:00
sreten.kovacevic
3e08654d5e [mips] Add FPURegister Move with uint argument
Refactor existing and add new Move instructions that get uint32_t
and uint64_t to prevent compiler to set quiet-nan on passing
float and double by value.

Change-Id: I544e98e1bb288666140a3b1d2437b31d9e36ca55
Reviewed-on: https://chromium-review.googlesource.com/928722
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#51439}
2018-02-21 15:41:17 +00:00
Ross McIlroy
0d872514ef [Compiler] Simplify and unify GetSharedFunctionFor[Streamed]Script.
Unifies GetSharedFunctionForStreamedScript with GetSharedFunctionForScript
so that both share a more similar API and some common code can be moved to
common helpers.

Introduces a Compiler::ScriptDetails struct to hold script meta-data
used to build new script objects.

BUG=v8:5203

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I3e6b4cd50da9bb92ef5a2bfd666a09b3619c34a4
Reviewed-on: https://chromium-review.googlesource.com/924189
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51438}
2018-02-21 15:40:13 +00:00
Nico Weber
19e0e69a97 Make v8 build with -Wimplicit-fallthrough in x86, arm, arm64, mips, mips64 configs.
x86, arm, arm64: no change in behavior
mips, mips64: disasm-mips(64).cc grows an UNREACHABLE that's
              maybe optimistic (but if it's not true, then that
              looks like a current unintentional fallthrough at
              that spot)
test-js-typed-lowering.cc: looks like a clear bug, but test-only code

Follow-up to https://chromium-review.googlesource.com/c/v8/v8/+/911731 which
did this for x64.

Doesn't turn on the warning yet.

Bug: chromium:812686
Change-Id: I7dd79c9885c90f41dd7e3a595256a954ab0ae643
Reviewed-on: https://chromium-review.googlesource.com/923528
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51437}
2018-02-21 15:37:03 +00:00
Sathya Gunasekaran
3da7cd3645 [class] Allow CallExpressions to access private fields
Bug: v8:5368
Change-Id: I92874d5ea190cd892f3cb5216e0f4bb5373d5350
Reviewed-on: https://chromium-review.googlesource.com/927345
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51436}
2018-02-21 15:27:13 +00:00
Peter Marshall
c933b65d04 [cleanup] Adds some CSA types in typed array builtins
Bug: v8:7310
Change-Id: Ia14a5ce3d675be745c71ec3994f3ef58ba9e995b
Reviewed-on: https://chromium-review.googlesource.com/928764
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51435}
2018-02-21 15:20:52 +00:00
jgruber
ad74be52fa [builtins] Add builtins constants list to roots
This is a step towards off-heap (and eventually isolate-independent)
builtins.

Off-heap code cannot use the standard CallStub/CallRuntime mechanisms,
since they directly embed the callee code object pointer within the
caller.  There are two main issues with that: 1. the callee may be
moved by GC, and 2. the pc-relative addressing we currently use breaks
(i.e. ends up pointing to a random spot on the heap) when moving the
caller off-heap.

This CL addresses that by introducing a constants list stored on the
roots array.  Instead of embedding code targets, we now have the option
of loading them from constants list. The code sequence is:

REX.W movq rax,[r13+0x4a0]  // Load the constants cache.
REX.W movq rdx,[rax+0xf]    // From there, load the code target.
...
REX.W addq rdx,0x5f         // Add instruction_start.
call rdx

There's no visible performance impact on the web tooling benchmark.

This list will later be extended to also contain other constants such
as Strings.

Bug: v8:6666
Change-Id: Ifcf67d1f682804ba0b6d3d0383216e16575b6bf5
Reviewed-on: https://chromium-review.googlesource.com/923729
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51434}
2018-02-21 15:07:42 +00:00
Ben Noordhuis
46c4979e86 Use wider types for max_old_space_size and co.
Make --max_old_space_size and friends work with values >= 2**31.
Such values did not work reliably (or sometimes not all) due to
signed integer overflow in size computations, which is UB.

Fixes https://github.com/nodejs/node/issues/18786.

Bug: chromium:814138
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: Ibe23cef2417fd5b4a727022b8b0d4b50f1417182
Reviewed-on: https://chromium-review.googlesource.com/927063
Commit-Queue: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51433}
2018-02-21 15:04:12 +00:00
Ulan Degenbaev
4724d0ff81 [heap-profiler] Fix a bug in MergeNames function.
Bug: chromium:811925
Change-Id: I0b2d9562fa77d6d198a689769705a2d5e977abf9
Reviewed-on: https://chromium-review.googlesource.com/928701
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51432}
2018-02-21 13:52:09 +00:00
Benedikt Meurer
a98c889313 [turbofan] We don't need write barriers for immortal immovable maps.
WriteBarrierKindFor would always return kMapWriteBarrier in
SimplifiedLowering even if the map that's to be stored is part
of the immortal immovable roots which don't need write barriers
ever.

Bug: v8:7310
Change-Id: I0a87a1c3ddd7f71ccf8ebacba8409067dc00cd1c
Reviewed-on: https://chromium-review.googlesource.com/928564
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51431}
2018-02-21 13:16:18 +00:00
Gabriel Charette
7badc3f0c4 Reland : Preempt ConcurrentMarking tasks ASAP when cancelling marking.
Reland reason : the failure was

Check failed: IsGlobalEmpty().
    v8::base::debug::StackTrace::StackTrace()
    v8::platform::(anonymous namespace)::PrintStackTrace()
    V8_Fatal(char const*, int, char const*, ...)
    v8::internal::Worklist<v8::internal::HeapObject*, 64>::~Worklist()
    v8::internal::MarkCompactCollector::~MarkCompactCollector()
    v8::internal::MarkCompactCollector::~MarkCompactCollector()
    v8::internal::Heap::TearDown()
    v8::internal::Isolate::Deinit()
    v8::internal::Isolate::TearDown()
    v8::Shell::OnExit(v8::Isolate*)
    v8::Shell::Main(int, char**)

this is believed to be fixed by the change to flush the shared
worklist to global in
https://chromium-review.googlesource.com/c/v8/v8/+/925267

Follow-up to https://chromium-review.googlesource.com/c/v8/v8/+/924867

(cherry picked from commit 8b53b9d908)

Bug: chromium:812178
Change-Id: I796204656e2c89e7efecda2c275a1888c31aba7b
Reviewed-on: https://chromium-review.googlesource.com/925268
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51430}
2018-02-21 13:09:39 +00:00
Yang Guo
b64afff338 [sample] fix potential memory leak.
R=petermarshall@chromium.org

Bug: v8:7433
Change-Id: Ibeef2c6855b8ffb6076be889a859da513877171f
Reviewed-on: https://chromium-review.googlesource.com/928563
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51429}
2018-02-21 13:06:18 +00:00
Sigurd Schneider
a7c7863197 [debuger/deoptimizer] Remove GC invocation
This CL removes a GC invocation which might not be needed anymore.

Change-Id: I27c57936677ba2ec0bc32588c485a2c3b6ffed01
Reviewed-on: https://chromium-review.googlesource.com/928241
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51428}
2018-02-21 12:56:24 +00:00
Ben L. Titzer
0c1b4c257b [wasm] Move indirect function tables into the WasmContext
This CL changes the WASM implementation to access indirect function
tables through the WasmContext, whereas previously indirect function
tables and their sizes were constants that were inlined into compiled
into code, requiring code patching. This is a necessary step for sharing
code between instances and eventually, isolates.

R=clemensh@chromium.org,mstarzinger@chromium.org

Bug: v8:7424
Change-Id: Ida4138ed92729730dfbc0a81a84d8484b233d808
Reviewed-on: https://chromium-review.googlesource.com/895683
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51427}
2018-02-21 12:29:21 +00:00
Sigurd Schneider
fb0144f6f9 [turbofan] Move Math.* builtins to JSCallReducer
This CL also adds speculation to all Math builtins,
and refactors the JSCallReducer.

Bug: v8:7250, v8:7240
Change-Id: Icdaddb767e875bb191939d907f65c7a8dcf79b8b
Reviewed-on: https://chromium-review.googlesource.com/873916
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51426}
2018-02-21 12:21:20 +00:00
Martyn Capewell
efb8508440 [arm] Support CSDB instruction
Add support for CSDB in the 32-bit assembler, disassembler and simulator.

Change-Id: I0e5432e4d219dd4699d5f9b7f911791acc87114c
Reviewed-on: https://chromium-review.googlesource.com/928522
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#51425}
2018-02-21 12:14:48 +00:00
Marja Hölttä
54640073f9 [heap] Remove unnecessary Relaxed_Stores in Scavenger.
(Simplifying the code in preparation for in-place weak references.)

BUG=v8:7308

Change-Id: I8348e108ae12bcd5b218f2d987f34017a1eb5394
Reviewed-on: https://chromium-review.googlesource.com/928421
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51424}
2018-02-21 11:59:28 +00:00
Gabriel Charette
78ff04c54f Reland: Preempt ConcurrentMarking tasks instead of merely pausing in PauseScope.
Reland reason : fixed errors, see PS1->PS4 diff.

Follow-up to https://chromium-review.googlesource.com/c/v8/v8/+/924867

This is the core goal of the initial CL @
https://chromium-review.googlesource.com/c/v8/v8/+/922103
which was since split into multiple to diagnose a bots-only failure.

R=ulan@chromium.org

(cherry picked from commit e9750cb806)

Bug: chromium:812178
Change-Id: Ib9474b5c90bf11f4741a93ac35c99b4979e8b4f9
Reviewed-on: https://chromium-review.googlesource.com/925267
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51423}
2018-02-21 11:39:30 +00:00
Clemens Hammacher
05309447e9 [Liftoff] Implement f64 loads and stores
R=titzer@chromium.org

Bug: v8:6600
Change-Id: Id2bd29b89a0db47d7e9ea957521df1558baa6e4a
Reviewed-on: https://chromium-review.googlesource.com/926201
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51422}
2018-02-21 11:32:00 +00:00
Ross McIlroy
d2a370494e [Compiler] Move BackgroundParsingTask to compiler.cc
Moves BackgroundParsingTask to compiler.cc and renames as BackgroundCompileTask.
This moves code out api.cc and parsing/ into compiler.cc where it belongs.

BUG=v8:7311,v8:5203

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: I08a72ab8a6bdb480f519d42b36875d347b801ddc
Reviewed-on: https://chromium-review.googlesource.com/919481
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51421}
2018-02-21 11:18:22 +00:00
Martyn Capewell
a33945a1a1 [arm64] Support CSDB instruction
Add support for CSDB, equivalent to HINT #20, in the system instruction space.

Additionally, relax the "unallocated" identification of hint instructions that
we don't support, such that they'll now disassemble as "unimplemented (System)"
rather than "unallocated".

Change-Id: Ia36d13fe17a98edb872f234e7cdda33d033618e8
Reviewed-on: https://chromium-review.googlesource.com/926806
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Martyn Capewell <martyn.capewell@arm.com>
Cr-Commit-Position: refs/heads/master@{#51420}
2018-02-21 10:33:32 +00:00
Dan Elphick
d9e305d47c Remove redundant logic in AllowedToBeMigrated
Simplifies boolean logic since shortcuts mean most will never be
executed and also replaces variables with constants to improve
readability.

Change-Id: Ic1678bc60c3e85daced758ce139f7d03c25632dc
Reviewed-on: https://chromium-review.googlesource.com/928320
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51419}
2018-02-21 10:25:48 +00:00
sreten.kovacevic
3537bc6e81 [Liftoff][mips] Add fp32 and fp64 ops on MIPS
Implemented fp binops for both 32-bit and 64-bit operands.

Bug: v8:6600
Change-Id: Ide223ad0df58f625adef2b2232d0e93c7dcb3524
Reviewed-on: https://chromium-review.googlesource.com/926802
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51418}
2018-02-21 10:24:42 +00:00
Peter Marshall
9e855013ef [turbofan] Add a frame state for inlined Promise constructors.
This adds a frame state for the call to the executor in inlined promise
constructors. We provide a continuation function in case of deopts which
just returns the created promise. This is not totally correct yet: if
the executor function also throws, we need to catch it and call the
reject function instead.

We also still need to add a frame state for the isCallable check on the
executor, so that the stack is correct for the thrown TypeError.

Bug: v8:7253
Change-Id: I3ee042ec82f1a9a35d59e576f6c8efe9bc98698c
Reviewed-on: https://chromium-review.googlesource.com/926523
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51417}
2018-02-21 10:05:01 +00:00
Mythri
5a68df2ab5 Remove support for unused compile options.
We don't use parser caches anymore and request code caches
explicitly using ScriptCompiler::CreateCodeCache. Hence
removing the support for both parser cache and code cache options.
They are still retained in CompileOptions for backwards
compatibility. Apart from the api.cc, no other part should see
this option.

Bug: chromium:779254, chromium:783124
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
Change-Id: Ic8ad9afe3fa44bbb5adc71bdde59c0b4057a523d
Reviewed-on: https://chromium-review.googlesource.com/916261
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51416}
2018-02-21 09:51:31 +00:00
Choongwoo Han
dea41745ee [typedarray] Optimize TypedArray.prototype.slice
- Use CallCFunction to call C implementation of copying elements for
slice, instead of Runtime call
- Copy elements without allocating handles when copying different types
of typed arrays

Bug: v8:5929
Change-Id: Icd4fed8846542e71b623e600ba9aaac64062f0d4
Reviewed-on: https://chromium-review.googlesource.com/920563
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51415}
2018-02-21 09:25:41 +00:00
Clemens Hammacher
a65e007623 [Liftoff] Allow f64 parameters and arguments
This allows liftoff compiled functions to receive f64 values as
parameters and pass f64 values as arguments to called functions.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: Ie7467b424ccdf1ec8b7f7625d9439ab4ea427022
Reviewed-on: https://chromium-review.googlesource.com/926105
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51414}
2018-02-21 08:51:40 +00:00