Commit Graph

47006 Commits

Author SHA1 Message Date
Daniel Clifford
0aa4ec27cd Add antlr4 runtime library to support Torque
Separating from main mega-CL for Torque to make landing it more
manageable.

Change-Id: Ic2cf2f5bff62613cb25cddd065479c85cfd9dd6c
Reviewed-on: https://chromium-review.googlesource.com/963704
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52514}
2018-04-10 10:01:01 +00:00
Jakob Gruber
1e928e9069 Revert "Add boolean runtime checks for different element kinds."
This reverts commit 29308cf0e5.

Reason for revert: Use existing runtime functions instead

Original change's description:
> Add boolean runtime checks for different element kinds.
> 
> This will be used for Array.p.sort benchmarks to ensure that the
> arrays will have the correct element kind.
> 
> R=​cbruni@chromium.org, jgruber@chromium.org
> 
> Bug: v8:7382
> Change-Id: I4fe58d97d7f18fd193d4432964cf6b4f5335e0e7
> Reviewed-on: https://chromium-review.googlesource.com/1004754
> Commit-Queue: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52511}

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

Change-Id: I45742879d3637470752335772f294d7e8ff3ce35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7382
Reviewed-on: https://chromium-review.googlesource.com/1004589
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52513}
2018-04-10 09:54:12 +00:00
Ivica Bogosavljevic
b69eeeedbd MIPS64: Fix [wasm] Merge the WasmContext into WasmInstanceObject
Fix a6d974fe00

Change-Id: I0c8c5f3e86fcb4954f8854d7068c5267abb748a4
Reviewed-on: https://chromium-review.googlesource.com/1004580
Reviewed-by: Sreten Kovacevic <sreten.kovacevic@mips.com>
Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
Cr-Commit-Position: refs/heads/master@{#52512}
2018-04-10 09:45:41 +00:00
Simon Zünd
29308cf0e5 Add boolean runtime checks for different element kinds.
This will be used for Array.p.sort benchmarks to ensure that the
arrays will have the correct element kind.

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

Bug: v8:7382
Change-Id: I4fe58d97d7f18fd193d4432964cf6b4f5335e0e7
Reviewed-on: https://chromium-review.googlesource.com/1004754
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52511}
2018-04-10 09:44:01 +00:00
Sigurd Schneider
0921238162 [cleanup] Remove unnecessary namespace qualification
Bug: v8:7570
Change-Id: I1653f216962b99161e21e0e8342164f10d5928cb
Reviewed-on: https://chromium-review.googlesource.com/1004579
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52510}
2018-04-10 09:33:02 +00:00
Ulan Degenbaev
81fa51c06f [heap] Make OutOfMemoryIneffectiveGC test more robust.
The checked condition now more precisely corresponds to the actual
ineffective GC detection heuristic.

Change-Id: I727932c76ff3183e7b038437eefba564c9778ff7
Reviewed-on: https://chromium-review.googlesource.com/997634
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52509}
2018-04-10 09:13:00 +00:00
Igor Sheludko
75e04cd22c [builtins] Throw on pop()/shift() when JSArray's length is not writable.
Bug: chromium:823069
Change-Id: Ie5be40da1e64a11c7a3c6ba5d2bc193bd78ca737
Reviewed-on: https://chromium-review.googlesource.com/1002560
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52508}
2018-04-10 08:51:07 +00:00
Clemens Hammacher
f9caff464d [cleanup] Remove unneeded reinterpret_cast
Came across this cast while checking a CFI issue. It reinterpret_casts
between two identical function pointers, so it is redundant.

R=ulan@chromium.org

Bug: v8:7570
Change-Id: I2d92e93788027e41abdb12af8371251c0da6a709
Reviewed-on: https://chromium-review.googlesource.com/1004674
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52507}
2018-04-10 08:47:37 +00:00
Marja Hölttä
89f5bf7fde [heap] Remove unnecessary length reloading from ArrayList::Add.
The reloading was needed when GC would compact the Heap::retained_maps
array. But that's no longer true; the compaction is done in
Heap::AddRetainedMap, outside GC. So it's not possible that the length would
change because of an allocation.

(Pre-cleanup for in-place weak ref work.)

BUG=v8:7308

Change-Id: I18554353014865992f9151002cc4097fb986faf1
Reviewed-on: https://chromium-review.googlesource.com/1002775
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52506}
2018-04-10 08:36:17 +00:00
Clemens Hammacher
bbb26b5f75 Reland "Reland "[d8][wasm] Test wasm compilation completion""
The deadlock should be fixed with https://crrev.com/c/1002174.

This is a reland of 4d1c2907d3

Original change's description:
> Reland "[d8][wasm] Test wasm compilation completion"
>
> This is a reland of ed2605f040
>
> 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}
>
> Change-Id: Iadbd5056dfa58da454956c4e89369af8b0455b35
> Reviewed-on: https://chromium-review.googlesource.com/975242
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52154}

Bug: chromium:824681
Change-Id: I4077645bcfcb2320f6573bb779027add36feee3f
Reviewed-on: https://chromium-review.googlesource.com/999632
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52505}
2018-04-10 08:24:27 +00:00
Hannes Payer
042d5f68e0 [heap] Synchronize registration of unprotected MemoryChunks.
Bug: chromium:831072
Change-Id: I17c7174d2910d329a4567a4e0b9b84f3e94802f9
Reviewed-on: https://chromium-review.googlesource.com/1004576
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52504}
2018-04-10 08:19:07 +00:00
Michael Achenbach
9c6b7dc80b Update V8 DEPS.
Rolling v8/build: 6ae4520..c4de990

Rolling v8/buildtools: 10d701f..e8aa02e

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/1e3e74d..b5c70ce

Rolling v8/third_party/googletest/src: a325ad2..7e5f90d

This also ports:
https://chromium-review.googlesource.com/c/chromium/src/+/1002612

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

Change-Id: I24b44acfb898e476df5701860e41a39352081f6d
Reviewed-on: https://chromium-review.googlesource.com/1004035
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52503}
2018-04-10 07:59:07 +00:00
Andreas Haas
813106ad30 [wasm][anyref] Implement ref.is_null
R=titzer@chromium.org

Bug: v8:7581
Change-Id: I30482ddb95a5c8501f1764922cc579855c209fdf
Reviewed-on: https://chromium-review.googlesource.com/998162
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52502}
2018-04-10 07:28:37 +00:00
Andreas Haas
73a231466a [wasm][anyref] Implement the RefNull opcode
R=titzer@chromium.org

Bug: v8:7581
Change-Id: I3a1fcffd3429907bcf9f92a904ab30568e6d4d07
Reviewed-on: https://chromium-review.googlesource.com/998914
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52501}
2018-04-10 07:21:37 +00:00
Michael Achenbach
c1c40d3982 Reland "[build] Share windows runtime dlls with src/build"
This is a reland of 59a5682589

Original change's description:
> [V8] Share windows runtime dlls with src/build
>
> Bug: chromium:653569
> Change-Id: I2fa288d3281c75d3e5d483fb94d29efe454c633b
> Reviewed-on: https://chromium-review.googlesource.com/1000773
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52464}

TBR=jgruber@chromium.org

Bug: chromium:653569
Change-Id: I74f67b25205c6505fc90e41c059fbb6f4e20c078
Reviewed-on: https://chromium-review.googlesource.com/1004454
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52500}
2018-04-10 06:56:07 +00:00
Ben L. Titzer
73c10e77d1 [wasm] Remove LazyCompilationOrchestrator
This class was stateless, other than the frozen-for-testing field, which
has been moved to the NativeModule.

R=clemensh@chromium.org

Change-Id: I68ff2b455a62915904aa4b61710b40e679414c3a
Reviewed-on: https://chromium-review.googlesource.com/999536
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52499}
2018-04-10 05:02:12 +00:00
jing.bao
104e9b1db1 Reland "[ia32][wasm] Add F32x4AddHoriz, I32x4AddHoriz and I16x8AddHoriz"
Change-Id: I6f6c12c2a711a6089e625dd9912a4b3a887df447
Reviewed-on: https://chromium-review.googlesource.com/1002875
Reviewed-by: Bill Budge <bbudge@chromium.org>
Commit-Queue: Jing Bao <jing.bao@intel.com>
Cr-Commit-Position: refs/heads/master@{#52498}
2018-04-10 01:53:37 +00:00
Alexey Kozyatinskiy
f74ad762e9 [inspector] generate preview for nodes
Some protocol clients would like to have preview for all objects.
Preview for node was removed as part of work on inline values in sources,
we can ignore them on frontend side.

R=pfeldman@chromium.org

Bug: none
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ic549ceb654a0e23e4929a2ae2048eed898822b7d
Reviewed-on: https://chromium-review.googlesource.com/1003144
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52497}
2018-04-10 00:42:36 +00:00
Junliang Yan
a2bcfd41d1 PPC/s390: Implement ComputeCodeStartAddress in TurboAssembler
R=joransiu@ca.ibm.com

Change-Id: Ie7387c92f9994cd72d6f0ba660ba7bd275dd429a
Reviewed-on: https://chromium-review.googlesource.com/1001496
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52496}
2018-04-09 21:25:23 +00:00
Eric Holk
1fac51a85b [trap handler] verify signal handler successfully installed on sanitizer builds
Bug: chromium:813376
Change-Id: I7d32f2ea09f7e8a4b75b9826695e129adac69e50
Reviewed-on: https://chromium-review.googlesource.com/987628
Commit-Queue: Eric Holk <eholk@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52495}
2018-04-09 21:23:43 +00:00
Ben Smith
b5757ce50c [wasm] Implement WebAssembly.Global.value{,Of}
See
https://webassembly.github.io/mutable-global/js-api/index.html#globals
for the current spec.

Bug: v8:7625

Change-Id: I70f567a9a0c6fc44c04c245ff496386941a699a9
Reviewed-on: https://chromium-review.googlesource.com/999168
Commit-Queue: Ben Smith <binji@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52494}
2018-04-09 21:00:43 +00:00
Clemens Hammacher
cd782a0345 [wasm] Rename regression test to follow convention
R=eholk@chromium.org

Bug: chromium:769637
Change-Id: I347ed1cf6fe567f5a12a8191b224a27336a757d4
Reviewed-on: https://chromium-review.googlesource.com/1000700
Reviewed-by: Eric Holk <eholk@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52493}
2018-04-09 20:45:22 +00:00
Jakob Kummerow
cfc6a5c2c6 Reland: [cleanup] Refactor the Factory
There is no good reason to have the meat of most objects' initialization
logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
this CL changes the protocol between Heap and Factory to be AllocateRaw,
and all object initialization work after (possibly retried) successful
raw allocation happens in the Factory.

This saves about 20KB of binary size on x64.

Original review: https://chromium-review.googlesource.com/c/v8/v8/+/959533
Originally landed as r52416 / f9a2e24bbc

Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: Id072cbe6b3ed30afd339c7e502844b99ca12a647
Reviewed-on: https://chromium-review.googlesource.com/1000540
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52492}
2018-04-09 19:52:22 +00:00
Junliang Yan
66e03c8832 PPC/s390: [wasm] Merge the WasmContext into WasmInstanceObject
Port a6d974fe00

Original Commit Message:

    This change makes lifetime management of WasmCode much simpler.
    By using the WasmInstanceObject as the context for WASM code execution,
    including the pointer to the memory base and indirect function tables,
    this keeps the instance alive when WASM code is on the stack, since
    the instance object is passed as a parameter and spilled onto the stack.
    This is in preparation of sharing the code between instances and
    isolates.

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

Change-Id: I03c3ecff296cca929c69489e769a5dab60b93830
Reviewed-on: https://chromium-review.googlesource.com/1003117
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52491}
2018-04-09 19:32:17 +00:00
Junliang Yan
5dd33fdbf2 PPC: Fix SwapP/Float32/Double
Loads/Stores are overflowed by huge offsets in 1 test case.

R=joransiu@ca.ibm.com

Change-Id: Ic9bc019e1f281b4ee0cdf1b88d29ea269197c95d
Reviewed-on: https://chromium-review.googlesource.com/1003173
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52490}
2018-04-09 19:31:12 +00:00
Junliang Yan
b20264754d PPC/s390: [Liftoff] Implement 64-bit bitwise operations
Port 17bb05f54d

Original Commit Message:

    This adds support for i64.and, i64.or and i64.xor.

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

Change-Id: I48ca8f14cb01444c495731c1c310acd1be59a19e
Reviewed-on: https://chromium-review.googlesource.com/1003118
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52489}
2018-04-09 19:28:42 +00:00
Jao-ke Chin-Lee
be95ec7953 Generalize default Win10 dimensions.
The Win10 GCE images were recently updated from RS1/14393 to RS2/15063.
Allow tasks triggered via mb to find machines on which to run.

Change-Id: I5a61f7d38d80cb441fa32a4bc9c0c7e23fbba75e
Reviewed-on: https://chromium-review.googlesource.com/1000721
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52488}
2018-04-09 18:53:52 +00:00
Michael Achenbach
74543b0016 Revert "[V8] Share windows runtime dlls with src/build"
This reverts commit 59a5682589.

Reason for revert:
https://build.chromium.org/p/client.v8.fyi/builders/Win%20V8%20FYI%20Release%20%28NVIDIA%29/builds/444

Original change's description:
> [V8] Share windows runtime dlls with src/build
> 
> Bug: chromium:653569
> Change-Id: I2fa288d3281c75d3e5d483fb94d29efe454c633b
> Reviewed-on: https://chromium-review.googlesource.com/1000773
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Commit-Queue: Michael Achenbach <machenbach@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52464}

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

Change-Id: Ie2fd502eb76d162678b3b90f14989ca74410b5a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:653569
Reviewed-on: https://chromium-review.googlesource.com/1003192
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52487}
2018-04-09 18:40:04 +00:00
Clemens Hammacher
489a5da9c6 Replace MUST_USE_RESULT by V8_WARN_UNUSED_RESULT
MUST_USE_RESULT was deprecated for some time. This removes it and
replaces all uses by the equivalent V8_WARN_UNUSED_RESULT.

R=mstarzinger@chromium.org

Bug: v8:7570
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I86883218638e64eeeb7a5891904319ed0844a004
Reviewed-on: https://chromium-review.googlesource.com/999533
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52486}
2018-04-09 18:37:02 +00:00
Michael Lippautz
49c406d1f1 [heap] Put minor MC behind a build time flag
gn flag: v8_enable_minor_mc

The default is 'true' until infra is updated to be able to build and
test with it using this flag.

Bug: v8:7638
Change-Id: I7946eb9bf4087c528d1a844b156a726a1c0671bf
Reviewed-on: https://chromium-review.googlesource.com/1000777
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52485}
2018-04-09 17:59:12 +00:00
Deepti Gandluri
79a6079201 [wasm] Implement I64Atomic Binary operations on ARM64
Bug: v8:6532
Change-Id: I3840df75b745790aaa7e9dec7188adccc70627ce
Reviewed-on: https://chromium-review.googlesource.com/998838
Reviewed-by: Ben Smith <binji@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Martyn Capewell <martyn.capewell@arm.com>
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52484}
2018-04-09 17:06:59 +00:00
Clemens Hammacher
231a96bb72 [wasm] Fix deadlock in async compilation
This fixes a deadlock related to throttling: It can happen that all
background tasks detect that they should not produce more work because
of throttling (!CanAcceptWork()). Reducing the number of running
background tasks is done in a later step (OnBackgroundTaskStopped).
If the finisher task finishes all outstanding units between these two
calls, it will not schedule another background compilation task, but
all background compilation tasks will quit, hence compilation will
never finish.

Fixing this should allow us to reenable the 'wasm-finish-compilation'
test: https://crrev.com/c/999632

R=ahaas@chromium.org

Bug: chromium:824681
Change-Id: I967e4d6b2917d369dd49bb80ce4bef552d10b371
Reviewed-on: https://chromium-review.googlesource.com/1002174
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52483}
2018-04-09 16:42:40 +00:00
Clemens Hammacher
a29a6e8e6a [wasm][cleanup] Always enable throttling
Throttling of background compilation tasks is enabled in all paths
anyway (async compilation, parallel compilation). Hence remove the bool
to control that.

R=ahaas@chromium.org

Change-Id: Id5d4de38d22e1eb63c8864f41c219f4dd28429e0
Reviewed-on: https://chromium-review.googlesource.com/1002814
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52482}
2018-04-09 16:32:39 +00:00
Clemens Hammacher
040a0ab4d4 [wasm] Clean up mutexes in CompilationState
CompilationState had three different mutexes, plus two atomic fields.
Not holding the right mutexes at the right time has already led to
failures. Hence, only use a single mutex to protect all shared state of
the CompilationState.

R=ahaas@chromium.org

Bug: chromium:824681
Change-Id: I2c414f3ddb75e82944621590493fadcbbdfb781c
Reviewed-on: https://chromium-review.googlesource.com/1000783
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52481}
2018-04-09 15:45:26 +00:00
Michael Starzinger
4789c93c2a [wasm] Make {WasmCode::trap_handler_index} private.
R=clemensh@chromium.org

Change-Id: Ib399e6beb1f643ed58d46a19fcaa0e9bf44ba2ea
Reviewed-on: https://chromium-review.googlesource.com/998161
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52480}
2018-04-09 15:07:46 +00:00
Sigurd Schneider
7e0aae9bb9 [deoptimizer] Set FP correctly for Builtin Continuation Frames
This CL ensures that the frame pointer register is set to the innermost
frame for builtin continuations. To make this work, this CL contains a
temporary fix for NotifyDeoptimized, which needs to skip these frames
in order to obtain a valid JavaScript context.

Bug: v8:7584, v8:7639
Change-Id: I8ea318e5441950fdf45d909e1f3ee649daf38dca
Reviewed-on: https://chromium-review.googlesource.com/1001899
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52479}
2018-04-09 14:51:41 +00:00
Sigurd Schneider
4fdafecfeb [deoptimizer] Make deopt stress more effective
This CL adds a forced GC point in Deoptimizer::MaterializeHeapObjects,
which will catch problems with deoptimized frames early and improve
reproducibility.

Bug: v8:7584
Change-Id: Idfad584e821b777542cf8fce673a9080c64d5d7b
Reviewed-on: https://chromium-review.googlesource.com/1002655
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52478}
2018-04-09 14:38:51 +00:00
Michael Starzinger
fa7171c541 [wasm] Remove obsolete {weak_exported_functions} field.
R=clemensh@chromium.org

Change-Id: I51e4210334a50ebb9ed7172c112083d6c3d784d9
Reviewed-on: https://chromium-review.googlesource.com/1000776
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52477}
2018-04-09 14:13:52 +00:00
Sigurd Schneider
e6c4e6d1bf [deoptimizer] Store frame height as proper Smi
For BuiltinContinuationFrames we stored the frame-height as a plain
value, which did not cause problems because height (in bytes) always
looks like a Smi to the GC. This CL introduces proper Smi encoding.

Bug: v8:7584
Change-Id: I5e3c41c2e576926bbb2bad7dbe0f277cc017b495
Reviewed-on: https://chromium-review.googlesource.com/1000782
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52476}
2018-04-09 13:52:01 +00:00
Clemens Hammacher
4fe702806d [wasm] Don't pass rvalue references
std::unique_ptr should never be passed by rvalue reference. This is
also not allowed by our style guide. Instead, just pass it by value.

R=ahaas@chromium.org

Bug: v8:7570
Change-Id: I525d3b4fd88e6ea47b22a517714a713dbb711ef8
Reviewed-on: https://chromium-review.googlesource.com/999419
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52475}
2018-04-09 13:49:01 +00:00
Clemens Hammacher
c65fbba613 [wasm][cleanup] Remove unused GlobalHandleAddress
R=ahaas@chromium.org

Bug: v8:7570
Change-Id: Ib21d96e2b91cac118c79f2969c9fb0d9c80701fe
Reviewed-on: https://chromium-review.googlesource.com/1002175
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52474}
2018-04-09 13:02:47 +00:00
jgruber
05ec0c404a [builtins] Remove unused predicate IsOffHeapSafe
Builtins::IsOffHeapSafe is unused now that embedded builtins are
shipped in the snapshot.

A longer explanation: there used to be a difference between
IsOffHeapSafe and IsIsolateIndependent back at an earlier stage when
we still copied off-heap-safe builtins off the heap on isolate startup.
At that point, off-heap builtins didn't need to be isolate-independent,
e.g. they could still contain embedded external references.
Now that embedded builtins are shipped in the snapshot, this
distinction is no longer needed.

Bug: v8:6666
Change-Id: I0be6120b94b01480262f472f0904ea9037941e2a
Reviewed-on: https://chromium-review.googlesource.com/1002652
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52473}
2018-04-09 12:37:57 +00:00
Michael Achenbach
b8950aaf69 [build] Add MB config for more jumbo builders
NOTRY=true
NOTREECHECKS=true
TBR=sergiyb@chromium.org

Bug: v8:7339
Change-Id: Ie408680f3185f58cd023dcfdb14565e49c28ad0c
Reviewed-on: https://chromium-review.googlesource.com/1002559
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52472}
2018-04-09 11:27:47 +00:00
Kim-Anh Tran
6ed7edf68e [wasm] Add prologue to Liftoff-compiled code for tiering
The prologue checks if optimized code exists, and if not, continues
execution of the current function. Otherwise, it jumps to the address
specified in the native module's code_table.

Also-by: clemensh@chromium.org
Change-Id: If3e76de02115f44ab7758590a949c3f0965a11ca
Reviewed-on: https://chromium-review.googlesource.com/985837
Commit-Queue: Kim-Anh Tran <kimanh@google.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52471}
2018-04-09 09:35:37 +00:00
Peter Marshall
9160b83211 [runtime] Use the correct generic construct stub based on harmony flags
We hardcoded this accidentally in the original CL for the turbofan case,
instead we need to call JSConstructStubGeneric() which will return the
correct construct stub based on the harmony_restrict_constructor_return
flag.

Bug: chromium:829899
Change-Id: I6776a5daebd57d8881d926ad68595141312a877d
Reviewed-on: https://chromium-review.googlesource.com/1001893
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52470}
2018-04-09 09:29:07 +00:00
Simon Zünd
c6cb81a884 Adds CSA builtin for abstract TypedArray constructor.
Also removes the JS constructor.

R=jgruber@chromium.org

Bug: v8:7624
Change-Id: I33493ab2fafb35f95fb1822d46d3f249568c0a56
Reviewed-on: https://chromium-review.googlesource.com/999534
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52469}
2018-04-09 08:10:55 +00:00
Andreas Haas
1800e9bb36 [wasm][anyref] Add support for js-to-wasm and wasm-to-js wrappers
R=titzer@chromium.org

Bug: v8:7581
Change-Id: Ib100a45ad51ec6b6a0400cfe97fe918089c04ead
Reviewed-on: https://chromium-review.googlesource.com/998095
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52468}
2018-04-09 08:00:55 +00:00
Vlad Tsyrklevich
563c352466 [CFI] Refactor x64 test use of FUNCTION_CAST
Replace direct calls to generated code with calls using GeneratedCode to
match the rest of v8.

BUG=v8:7164

Change-Id: I5d90bcb6e90d99e105be18886d4844b83f611b95
Reviewed-on: https://chromium-review.googlesource.com/1000416
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52467}
2018-04-09 07:54:56 +00:00
jgruber
4e8d4bda9d Skip debug-stepout-scope-part* on tsan/stress
Remaining tests also lead to OOM, skip all of them on tsan stress
modes.

Bug: v8:7626
Change-Id: Ie2c128b9a718c7c34c974e628ba60e5549ea04fc
Reviewed-on: https://chromium-review.googlesource.com/1002552
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52466}
2018-04-09 07:52:15 +00:00
Ulan Degenbaev
12708c93e1 [heap-profiler] Make WeakMap key edge name more descriptive.
Currently a WeakMap key edge shows up as '<id> / WeakMap'. This patch
changes it to '<id> / key <KeyName> in WeakMap'.

Bug: chromium:827713
Change-Id: I0306bacdc331ab69739be88cf29d16a21187625f
Reviewed-on: https://chromium-review.googlesource.com/992035
Reviewed-by: Alexei Filippov <alph@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52465}
2018-04-09 07:32:20 +00:00