Commit Graph

46528 Commits

Author SHA1 Message Date
Georg Neis
7d5e6b1516 [compiler] Don't infer receiver map for keyed stores.
This avoids a deopt loop.

Bug: v8:7254
Change-Id: I3a676186bc52fd47b03f03c26cb07d9257993693
Reviewed-on: https://chromium-review.googlesource.com/968503
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52036}
2018-03-19 15:11:09 +00:00
Michael Starzinger
b6ecf53b05 [wasm] Drop some obsolete code modification scopes.
R=clemensh@chromium.org
BUG=v8:6792,v8:7549

Change-Id: I1d153dcff729ed4c0863ae339ac7915efff3c33c
Reviewed-on: https://chromium-review.googlesource.com/968484
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52035}
2018-03-19 15:10:05 +00:00
Michael Achenbach
2ba5b33300 [build] Switch mac gc stress bot to 64 bits
TBR=sergiyb@chromium.org
NOTRY=true
NOTREECHECKS=true

Bug: chromium:822593
Change-Id: Iaa76cbcb95f2262d927a9a031b85cddeebdd2a87
Reviewed-on: https://chromium-review.googlesource.com/968490
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52034}
2018-03-19 15:03:57 +00:00
Michael Achenbach
b16e7aae86 [CQ] Deprecate mac in favor of mac64 trybots
NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:822593
Change-Id: I0c16b879b8dbfc8fba061a2fd42ee339aa6a853e
Reviewed-on: https://chromium-review.googlesource.com/968485
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52033}
2018-03-19 14:20:15 +00:00
v8-autoroll
1891a9d13a Update V8 DEPS.
Rolling v8/build: 95a628b..76da9f5

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/7b53f08..6c4a8ca

Rolling v8/third_party/jinja2: d343832..45571de

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

Change-Id: I576dc15bcc3c4c69572a0ff244d055e804e9e4d8
Reviewed-on: https://chromium-review.googlesource.com/963764
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52032}
2018-03-19 14:15:04 +00:00
Michael Achenbach
188cca4dac [test] Skip death-tests for mac64 asan
NOTRY=true

Bug: chromium:820416
Change-Id: If995357345c2916ed5a3c8d1ad94f783cf6d633a
Reviewed-on: https://chromium-review.googlesource.com/968249
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52031}
2018-03-19 14:13:59 +00:00
Sathya Gunasekaran
f17ad9e316 [numeric separator] Add tests for parseInt
Bug: v8:7317
Change-Id: I6c88de63c4bdb31f873c18c450d26f60659171f2
Reviewed-on: https://chromium-review.googlesource.com/968621
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52030}
2018-03-19 14:12:44 +00:00
Michael Achenbach
7e7c04b677 Revert "[build] Make separate snapshot for trusted variant"
This reverts commit 40d66d8bf8.

Reason for revert:
https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/20910

Original change's description:
> [build] Make separate snapshot for trusted variant
> 
> This enables side-by-side snapshots with and without untrusted-code
> mitigations. It'll be the default in all V8 stand-alone builds
> with external startup data. Internal snapshots are not supported.
> 
> The files snapshot_blob.bin and snapshot_blob_trusted.bin will be
> bundled with V8 on swarming and the correct file is loaded dependent
> on the --untrusted-code-mitigations runtime flag.
> 
> Likewise we embed two snapshots for builtins.
> 
> Side-by-side snapshots won't be supported in Chromium.
> 
> Bug: v8:7441
> Change-Id: I2949ddfd5773649946b1c8e74751d48ad1d9c524
> Reviewed-on: https://chromium-review.googlesource.com/960004
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52028}

TBR=rmcilroy@chromium.org,machenbach@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org

Change-Id: I5b18f7aff7c05a17842fc68d785bb617eeca4a41
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7441
Reviewed-on: https://chromium-review.googlesource.com/968622
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52029}
2018-03-19 13:56:35 +00:00
Michael Achenbach
40d66d8bf8 [build] Make separate snapshot for trusted variant
This enables side-by-side snapshots with and without untrusted-code
mitigations. It'll be the default in all V8 stand-alone builds
with external startup data. Internal snapshots are not supported.

The files snapshot_blob.bin and snapshot_blob_trusted.bin will be
bundled with V8 on swarming and the correct file is loaded dependent
on the --untrusted-code-mitigations runtime flag.

Likewise we embed two snapshots for builtins.

Side-by-side snapshots won't be supported in Chromium.

Bug: v8:7441
Change-Id: I2949ddfd5773649946b1c8e74751d48ad1d9c524
Reviewed-on: https://chromium-review.googlesource.com/960004
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52028}
2018-03-19 13:34:54 +00:00
Marja Hölttä
38525dd209 [reland] [in-place weak refs] Use WeakArray in Script::shared_function_infos.
For serializer changes, see goo.gl/Kh2eop

Previous version: https://chromium-review.googlesource.com/955593

BUG=v8:7308

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I14c92874d04545eb6d04590bedb21dc402326401
Reviewed-on: https://chromium-review.googlesource.com/968245
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52027}
2018-03-19 13:33:24 +00:00
Kim-Anh Tran
bdceff995d [wasm] Add missing early exit from compilation (BackgroundCompileTask)
This CL adds back a check that previously had an early exit within
the compilation loop, when compilation failed.

Change-Id: Ie511010af22029671c8eb71aa2189d6429081b14
Reviewed-on: https://chromium-review.googlesource.com/968504
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Kim-Anh Tran <kimanh@google.com>
Cr-Commit-Position: refs/heads/master@{#52026}
2018-03-19 13:31:44 +00:00
Clemens Hammacher
468a9303fd [wasm] Call FatalProcessOutOfMemory on OOM
Instead of returning nullptr, just always call FatalProcessOutOfMemory
when we cannot allocate more memory.
In a follow-up CL, this should be extended to first try to run a GC and
see if this freed enough memory.
This CL is intentionally minimal in order to make it backmergable.

The unittest for WasmCodeManager needs to be refactored into a
parameterized test, such that each individual (parameterized) test can
die with OOM without affecting other tests.

R=mstarzinger@chromium.org

Bug: chromium:822266
Change-Id: I1336aa05ed50124b77ffaa4435ec9bed70e15c18
Reviewed-on: https://chromium-review.googlesource.com/966501
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52025}
2018-03-19 13:30:30 +00:00
Benedikt Meurer
c15802e11e [async-generators] Add fast-path to skip "then" lookup in AsyncGeneratorResolve.
This extends the Promise#then protector to also guard the intrinsic
%ObjectPrototype%, making it usable for fast-path logic in the
AsyncGeneratorResolve operation, where we can skip the "then" lookup
on the iteratorResult in that case. We also add a corresponding fast-
path to the ResolvePromise builtin itself, which avoids the second
"then" lookup on the async iterator side.

This reduces execution time of the fibonacci-async-es2017-native test
from 186.9ms to 171.2ms, which corresponds to an improvement of 8.4%
in this case.

Bug: v8:7253
Change-Id: Ia09effc81a016703780d5c308f541e3d797ccabe
Reviewed-on: https://chromium-review.googlesource.com/967203
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52024}
2018-03-19 12:21:13 +00:00
Clemens Hammacher
e6bd3ee5cd Revert "[d8][wasm] Test wasm compilation completion"
This reverts commit ed2605f040.

Reason for revert: Test flakes.

Original change's description:
> [d8][wasm] Test wasm compilation completion
> 
> d8 was recently changed to keep running until wasm compilation has
> completed. This adds a message test to test that.
> 
> R=​ahaas@chromium.org
> 
> Change-Id: I73af53b6df4ee5f9a6afd26cf2d71a269140465f
> Reviewed-on: https://chromium-review.googlesource.com/966184
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52008}

TBR=ahaas@chromium.org,clemensh@chromium.org

Change-Id: If1e015bd346a71df1da8effe92882c37a00d1e62
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/968521
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52023}
2018-03-19 12:03:14 +00:00
Clemens Hammacher
d9fd12cfb3 [Liftoff] Implement i64 shifts
This adds support for i64.shl, i64.shr_s, and i64.shr_u.

R=titzer@chromium.org

Bug: v8:6600
Change-Id: Ibc1982064ff3c9f3a494b5fa329841a0d3bc7bce
Reviewed-on: https://chromium-review.googlesource.com/964844
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52022}
2018-03-19 11:48:15 +00:00
Sigurd Schneider
dfc2805ccf [turbofan] Add test for Number.{isFinite,isInteger} inlining
This adds variants of tests already in our test-suite that
exercise inlining fast-paths of Number.{isFinite,isInteger}.

Bug: chromium:823151, chromium:823100
Change-Id: Ibf1192b1325fb4f015acea94053fd51a7a7811a9
Reviewed-on: https://chromium-review.googlesource.com/968361
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52021}
2018-03-19 11:44:56 +00:00
Yang Guo
e0ef8d05e1 Flatten on v8::String::{Write*,Utf8Length} regardless of hint option.
I suspect that this is a premature optimization that we don't actually
need.

R=leszeks@chromium.org
BUG: v8:6780

Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Icdec54cb749897164f287f5a69c7f76a540b45c4
Reviewed-on: https://chromium-review.googlesource.com/968261
Commit-Queue: Yang Guo <yangguo@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52020}
2018-03-19 11:39:54 +00:00
Georgia Kouveli
a33353a00f [instruction scheduler] Fix issue with block terminators and deopts.
Remove IsBlockTerminator and introduce InstructionScheduler::AddTerminator in
order to handle block terminator instructions.

Instead of the kBlockTerminator flags, we now rely on Instruction::IsTrap(),
Instruction::IsDeoptimizeCall() and explicitly denoting block terminators
when adding them with InstructionScheduler::AddTerminator().

IsBlockTerminator incorrectly included deopts when they were not at the end of
a block, which meant that an instruction with side effects could have been
reordered with respect to a deopt as the deopt was not identified correctly.

Since the snapshot does not contain deopts, this is not causing any problems
at the moment (the scheduler is only enabled on the snapshot).

Change-Id: I1c2dad748a9398a3355630d9a542f4ac89afaa42
Reviewed-on: https://chromium-review.googlesource.com/960501
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Cr-Commit-Position: refs/heads/master@{#52019}
2018-03-19 11:22:02 +00:00
Igor Sheludko
65c54c7ac8 [runtime] Change return type of TransitionsAccessor::FindTransitionToField().
... to MaybeHandle<Map> and add TransitionsAccessor::FindTransitionToDataProperty()
which will be used in follow-up CLs.

Bug: v8:7310
Change-Id: I98cc4fe16dc1ef335885101aa457f27c90ecf1a4
Reviewed-on: https://chromium-review.googlesource.com/968222
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52018}
2018-03-19 10:58:32 +00:00
Camillo Bruni
9b07e2ee3f [cleanup] Sort runtime function lists
Bug: v8:7570
Change-Id: Ia5778eb1d843ace71b9a41d156751e7732221af7
Reviewed-on: https://chromium-review.googlesource.com/966721
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52017}
2018-03-19 10:52:52 +00:00
Benedikt Meurer
e57b500eb2 [async-generators] Add fast-path for primitives in AsyncGeneratorYield.
For async generators that yield primitives, there's not really a point
in creating temporary promises first, just to immediately fulfill them
with the primitive values passed to `yield`. Instead we can skip those
steps and just directly schedule a PromiseFulfillReactionJobTask to do
the job.

This improves the execution time of fibonacci-async-es2017-native from
around 189ms to roughly 183ms, which corresponds to almost a ~3% boost
here.

Bug: v8:7253
Change-Id: I91413d2cc5ffdc6c851f72f91ff5c207e048c19d
Reviewed-on: https://chromium-review.googlesource.com/966607
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52016}
2018-03-19 10:50:32 +00:00
Predrag Rudic
5460f9cb73 [build] Add support for the other MIPS architectures
Change-Id: Id17fdcea3d571c6242bfd8358ff106682e023fec
Reviewed-on: https://chromium-review.googlesource.com/966071
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52015}
2018-03-19 10:43:07 +00:00
Predrag Rudic
aa38698d60 MIPS[64] [builtins] Enable embedded builtins on MIPS
This fixes failing tests 'ByteinRodata' and 'ByteInText' on MIPS.

Changed assemble directives for 'test_string0_bytes' and
'test_function0_bytes' from .local to .global, and reordered function
bytes according to endianess.

Change-Id: Iecac3a966a57531b41c8ce8959e16021d465520a
Reviewed-on: https://chromium-review.googlesource.com/966287
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52014}
2018-03-19 10:42:02 +00:00
Kim-Anh Tran
3ffdaaad7e [wasm] Extract compilation state from ModuleCompiler and AsyncCompileJob
The compilation state of a native module is now extracted into its own
datastructure. It reflects which functions are left to compile, and contains
task managers to accomplish parallel and asynchronous compilation.

Bug: 
Change-Id: I45308c7b32ba78e6c83f2d260990846a653bbd9c
Reviewed-on: https://chromium-review.googlesource.com/958865
Commit-Queue: Kim-Anh Tran <kimanh@google.com>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52013}
2018-03-19 10:36:52 +00:00
Georg Neis
21e77157f8 Revert "[compiler] Don't infer receiver maps for stores."
This reverts commit c94dcb2117.

Reason for revert: several performances regressions.

Original change's description:
> [compiler] Don't infer receiver maps for stores.
> 
> This avoids a deopt loop.
> 
> Bug: v8:7254
> Change-Id: I9ab1dfc754c5ad63c451a9e2276aa1d7eb4c27b1
> Reviewed-on: https://chromium-review.googlesource.com/966065
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Commit-Queue: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51994}

TBR=jarin@chromium.org,neis@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: v8:7254
Change-Id: Iff9c6fb61a559e48ad11d2db9e559de61cc0f5ef
Reviewed-on: https://chromium-review.googlesource.com/968302
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52012}
2018-03-19 10:33:22 +00:00
Marja Hölttä
155e8e9abc [snapshot] Refactoring: isolate cases where Object* is not a valid Object*.
BUG=v8:7308

Change-Id: Ib15097beb7c7e4a91df0e6e148f8ce41e5bfd074
Reviewed-on: https://chromium-review.googlesource.com/966521
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52011}
2018-03-19 10:06:22 +00:00
Sigurd Schneider
21dad34f93 [turbofan] Don't treat INFINITY as integer
The fast-path of Number.isInteger and Number.isFinite
both returned true for (-)INFINITY, because kInteger
in the type cache includes both infinities. This CL
uses kSafeInteger range to statically optimize those
two operators.

Bug: chromium:823151, chromium:823100
Change-Id: Icab7f305e8c38f25a4b34b88414f0b515bd7a0fb
Reviewed-on: https://chromium-review.googlesource.com/968201
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52010}
2018-03-19 09:50:52 +00:00
Yang Guo
66fc0b2fea Time isolate initialization.
This mirrors the way we time context initialization.

R=jgruber@chromium.org

Change-Id: I1bddc73726ef86e5863012c292e7b4c39dfd076f
Reviewed-on: https://chromium-review.googlesource.com/968241
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52009}
2018-03-19 09:43:02 +00:00
Clemens Hammacher
ed2605f040 [d8][wasm] Test wasm compilation completion
d8 was recently changed to keep running until wasm compilation has
completed. This adds a message test to test that.

R=ahaas@chromium.org

Change-Id: I73af53b6df4ee5f9a6afd26cf2d71a269140465f
Reviewed-on: https://chromium-review.googlesource.com/966184
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52008}
2018-03-19 09:29:34 +00:00
Andreas Haas
200872dbf2 [v8] Make mstarzinger owner of src/wasm
NOTRY=true
NOPRESUBMIT=true
NOTREECHECKS=true

R=titzer@chromium.org

Change-Id: Ie2deebb260f828d0d553f4676f17235b4728a2d1
Reviewed-on: https://chromium-review.googlesource.com/968221
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52007}
2018-03-19 08:40:44 +00:00
jgruber
fd70917d52 Reland "[builtins] Remove off-heap builtins from the snapshot"
This is a reland of f1b1ec70a6

Original change's description:
> [builtins] Remove off-heap builtins from the snapshot
>
> This CL is the final major step towards shipping off-heap-safe builtins
> embedded into the binary.
>
> Prior to snapshot serialization, we now:
> * create the embedded blob containing off-heap instruction streams,
> * use that to generate embedded.cc (containing embedded binary data),
> * replace off-heap-safe builtins with trampolines,
> * and serialize those into the final snapshot.
>
> The new RelocInfo::OFF_HEAP_TARGET kind is used to fix up trampoline
> targets on deserialization.
>
> Bug: v8:6666
> Change-Id: Ib07aea9e3bd7ecdec42291c1388b3a7453ea96ce
> Reviewed-on: https://chromium-review.googlesource.com/950775
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51960}

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

Cq-Include-Trybots: luci.v8.try:v8_mac64_dbg,v8_mac64_rel
Bug: v8:6666
Change-Id: Id9954af3c8195754ff3658c4603858904fcf88c4
Reviewed-on: https://chromium-review.googlesource.com/964481
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52006}
2018-03-19 07:42:02 +00:00
Kanghua Yu
6031412e0a [x64] Reuse scratch register for ExternalReference
This reduces CEntryStub code size by 64 bytes, and reduces CallApiCallbackStub
by 27 bytes.

Change-Id: I46479077f61fdae6b260ca28c67df3509dee5c1a
Reviewed-on: https://chromium-review.googlesource.com/963652
Commit-Queue: Kanghua Yu <kanghua.yu@intel.com>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52005}
2018-03-19 04:01:32 +00:00
Alexey Kozyatinskiy
97fc20f381 Reland "[inspector] added Runtime.terminateExecution"
This is a reland of 14824520fc

Original change's description:
> [inspector] added Runtime.terminateExecution
>
> Runtime.terminateExecution terminates current or next JavaScript
> call. Termination flag is automatically reset as soon as v8 call
> or microtasks are completed.
>
> R=pfeldman@chromium.org
>
> Bug: chromium:820640
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
> Reviewed-on: https://chromium-review.googlesource.com/957386
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51912}

Bug: chromium:820640
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I6dd30f65c06c2b7eefd1e7beb9a3cf50ea5bf8cd
Reviewed-on: https://chromium-review.googlesource.com/967323
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52004}
2018-03-19 02:14:52 +00:00
Michael Achenbach
7652bd270a Revert "Reland "[inspector] added Runtime.terminateExecution""
This reverts commit 14824520fc.

Reason for revert: Breaks chromium tsan in roll:
https://chromium-review.googlesource.com/c/chromium/src/+/967682

Original change's description:
> Reland "[inspector] added Runtime.terminateExecution"
> 
> This is a reland of 98dec8f240
> 
> Original change's description:
> > [inspector] added Runtime.terminateExecution
> > 
> > Runtime.terminateExecution terminates current or next JavaScript
> > call. Termination flag is automatically reset as soon as v8 call
> > or microtasks are completed.
> > 
> > R=pfeldman@chromium.org
> > 
> > Bug: chromium:820640
> > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
> > Reviewed-on: https://chromium-review.googlesource.com/957386
> > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51912}
> 
> Bug: chromium:820640
> Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Reviewed-on: https://chromium-review.googlesource.com/966681
> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52002}

TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org

Change-Id: I2f3d24b238f479082bfed349363240887b5ba751
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:820640
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/967781
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52003}
2018-03-17 14:40:14 +00:00
Alexey Kozyatinskiy
14824520fc Reland "[inspector] added Runtime.terminateExecution"
This is a reland of 98dec8f240

Original change's description:
> [inspector] added Runtime.terminateExecution
> 
> Runtime.terminateExecution terminates current or next JavaScript
> call. Termination flag is automatically reset as soon as v8 call
> or microtasks are completed.
> 
> R=pfeldman@chromium.org
> 
> Bug: chromium:820640
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7
> Reviewed-on: https://chromium-review.googlesource.com/957386
> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
> Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51912}

Bug: chromium:820640
Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/966681
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52002}
2018-03-17 02:34:38 +00:00
Camillo Bruni
74a663be67 [runtime] Deduplicate the name between SFI and ScopeInfo
With this CL the name of an SFI is either stored directly on the SFI
itself (for uncompiled ones) or on the related ScopeInfo if present.

- Combine scope_info and name field on SFI into name_or_scope_info field
- Change the name of a couple of SFI accessors: name => Name,
  has_shared_name => HasSharedName, set_name => SetName
- Add Runtime::kGetFunctionName due to more complex SFI name accessing

Bug: v8:7066
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Idcce158446c9447b92d9a15125d086952c6e0824
Reviewed-on: https://chromium-review.googlesource.com/964201
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52001}
2018-03-16 16:49:42 +00:00
Michael Starzinger
9f015e7eac [wasm] Inline {WasmInstanceObject::GrowMemory} everywhere.
R=titzer@chromium.org

Change-Id: I9d2bc2fdaec03b109cb6620371e70fc74a1a5ed4
Reviewed-on: https://chromium-review.googlesource.com/966283
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52000}
2018-03-16 16:36:27 +00:00
Andreas Haas
c7d68161bd [d8] Add no-wait-for-wasm flag
The flag lets d8 wait for async compilation of WebAssembly to finish
before d8 shuts down.

R=clemensh@chromium.org
CC=​kimanh@google.com

Change-Id: I4cf59a1f35cc5a0ecaf769d2745df5e2e14eb509
Reviewed-on: https://chromium-review.googlesource.com/966031
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51999}
2018-03-16 15:35:27 +00:00
Sigurd Schneider
82ad20c3ea [turbofan] Move Map#{has,get} to JSCallReducer
Bug: v8:7340, v8:7250
Change-Id: Ibeddeb86928cce33a8622e3ec2d72ad1743028dd
Reviewed-on: https://chromium-review.googlesource.com/966290
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51998}
2018-03-16 15:18:17 +00:00
Sigurd Schneider
59ca2ab4b2 [turbofan] Move Number.isNaN to JSCallReducer
Bug: v8:7340, v8:7250
Change-Id: I7bc40c204678995a5ed9b0675b4f838c5e8e6c4a
Reviewed-on: https://chromium-review.googlesource.com/966066
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51997}
2018-03-16 15:06:28 +00:00
sreten.kovacevic
c123114619 [Liftoff][mips] Add support for C fallbacks in Liftoff
Implement methods for calling C functions in Liftoff on MIPS and
MIPS64.

Bug: v8:6600
Change-Id: I43f43dc3d1e13f15dc8359ce7a8a8b2273f0ff62
Reviewed-on: https://chromium-review.googlesource.com/966282
Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#51996}
2018-03-16 13:46:44 +00:00
Michael Starzinger
d852096f15 [wasm] Remove redundant SharedFunctionInfo allocation.
R=clemensh@chromium.org

Change-Id: Icc3882377c8e40411d556bf7165eed061f600f18
Reviewed-on: https://chromium-review.googlesource.com/965064
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51995}
2018-03-16 13:18:54 +00:00
Georg Neis
c94dcb2117 [compiler] Don't infer receiver maps for stores.
This avoids a deopt loop.

Bug: v8:7254
Change-Id: I9ab1dfc754c5ad63c451a9e2276aa1d7eb4c27b1
Reviewed-on: https://chromium-review.googlesource.com/966065
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51994}
2018-03-16 13:10:24 +00:00
Michael Starzinger
609c0a137e [wasm] Simplify {IsWasmExportedFunction} predicate.
R=clemensh@chromium.org

Change-Id: Ia495e09bdd0c529685de8ed77f6016d58b68f0d6
Reviewed-on: https://chromium-review.googlesource.com/965983
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51993}
2018-03-16 12:37:44 +00:00
Marja Hölttä
1516f3f25e [in-place weak refs] Fix overzealous DCHECK.
BUG=v8:7308,v8:7567

Change-Id: I031c11817686570c8fa5fa772691cd90c54d9ab2
Reviewed-on: https://chromium-review.googlesource.com/966029
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51992}
2018-03-16 12:35:39 +00:00
Sigurd Schneider
8a94f074de [turbofan] Move Number.isInteger to JSCallReducer
This also adds ObjectIsInteger and NumberIsInteger
operators.

Bug: v8:7340, v8:7250
Change-Id: I8067276d12c8532931f90e6397f8435362c2f9af
Reviewed-on: https://chromium-review.googlesource.com/951602
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51991}
2018-03-16 12:34:34 +00:00
Clemens Hammacher
163f8069f1 [Liftoff] Add mips owners
Add OWNERS files for the Liftoff mips implementation, to allow for
shorter delays on reviews.

R=titzer@chromium.org
CC=ivica.bogosavljevic@mips.com, sreten.kovacevic@mips.com
NOTRY=true

Bug: v8:6600
Change-Id: Ied7d2fad8dfe3eeca3b708b6a6a11f3b37aa1dc0
Reviewed-on: https://chromium-review.googlesource.com/966342
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51990}
2018-03-16 12:22:34 +00:00
Sathya Gunasekaran
a1d418edc0 [numeric separator] Add more tests for DecimalLiteral
Bug: v8:7317
Change-Id: I5b3072c84cf8d97c8ebfeb274d0f1134046666c9
Reviewed-on: https://chromium-review.googlesource.com/965063
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51989}
2018-03-16 12:06:54 +00:00
Sathya Gunasekaran
17c2a99450 [numeric separator] Add tests for ToNumber
Bug: v8:7317
Change-Id: I2182edc5169c622280a104036ff07507acc01fb9
Reviewed-on: https://chromium-review.googlesource.com/965982
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51988}
2018-03-16 12:03:34 +00:00
Camillo Bruni
dd5c7fe73d [runtime] Store position information on ScopeInfo
This CL ads a StartPosition and EndPosition accessors on SFI and
ScopeInfo to facilitate future refactoring. In a future CL the
start and end position are no longer stored directly on SFIs.

This CL will temporarily increase memory since the position info
is duplicated on the SFI and the ScopeInfo.

Drive-by-fix: Clean up some constants in ScopeInfo

Bug: v8:7066
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I1a8c5dd4e2156c007e04d92e72e478b915516e0d
Reviewed-on: https://chromium-review.googlesource.com/955629
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51987}
2018-03-16 11:51:04 +00:00