Commit Graph

47071 Commits

Author SHA1 Message Date
Junliang Yan
20a427f6a5 PPC/s390: fix compilation error
R=joransiu@ca.ibm.com

Change-Id: I995c7ea23899a00a92b350cbd1878c41d56760c2
Reviewed-on: https://chromium-review.googlesource.com/1005279
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#52529}
2018-04-10 17:11:15 +00:00
Sigurd Schneider
79b5f0b560 [mjsunit] Fix flakyness in mjsunittest
This mjsunittest assumed specific internal types (i.e. Smi)
for certain fields; it generates some dozens of variants of
the test using new Function, but used the same property names
in all of them. This causes V8 to sometimes learn more general
types for fields (i.e. unboxed double), which the test did not
expect. This commit uses unique field names for each of the test
variants.


Change-Id: Ib1ecb3ae33a57c8a1293a29a2233dad4e16a39fb
Reviewed-on: https://chromium-review.googlesource.com/1004897
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52528}
2018-04-10 16:50:45 +00:00
Michael Starzinger
f590c153e2 [frames] Turn all frame constants into {constexpr}.
This is in preparation of using some of these constants to compute
values for the Liftoff assembler that are themselves constexpr.

R=clemensh@chromium.org

Change-Id: I573ef4ca164e0107968e482996963fde9a3960b0
Reviewed-on: https://chromium-review.googlesource.com/1005056
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52527}
2018-04-10 16:11:13 +00:00
Ben L. Titzer
ff64dfa092 [wasm] Improve patching behavior for lazy compilation
This CL fixes the pathological O(n^2) patching behavior that
was introduced when simplifying the wasm instance/context data
structures. It introduces a per-instance reverse mapping of
function indexes to where they appear in import and indirect
function tables. The mapping is created lazily and rebuild in
response to too many failed lookups, which makes it robust
to table mutations in the future.

This CL also fixes a bug where the anonymous lazy compile stub
was not being used for direct calls, confusing the indirect
call patching mechanism.

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

Bug: v8:7424, chromium:830558
Change-Id: Ice0212593b31eb64687a3d52bd238020682a857f
Reviewed-on: https://chromium-review.googlesource.com/1004294
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52526}
2018-04-10 14:32:32 +00:00
Clemens Hammacher
3c2a693324 [cleanup] Remove redundant ROUND_UP macro
Replace all uses by the existing RoundUp function.

R=ulan@chromium.org

Bug: v8:7570
Change-Id: I7ff5e76ebea7b429ff4e4f3a8157ee831e7891ae
Reviewed-on: https://chromium-review.googlesource.com/1004898
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52525}
2018-04-10 14:15:00 +00:00
Ulan Degenbaev
2e8a98721c [heap] Make OutOfMemoryIneffectiveGC test more robust (the second try).
Change-Id: Ic10f599b6bb1c258082db61494a4e5c73220b00f
Reviewed-on: https://chromium-review.googlesource.com/1005255
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52524}
2018-04-10 14:07:31 +00:00
Igor Sheludko
b590d6a40c [runtime] Temporarily disable double fields unboxing.
... to see if it improves things in real-world area.

Change-Id: Icf6a1ff47f35eb3f7e25b549d736f7404148f6ab
Reviewed-on: https://chromium-review.googlesource.com/1004587
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52523}
2018-04-10 13:50:37 +00:00
Sigurd Schneider
543f2de418 [frames] Add context slot for builtin continuations
This CL adds a context slot to builtin continuation frames which
stores the context, even for stub continuations. This context slot
is used in NotifyDeoptimized to provide the JavaScript context.

Bug: v8:7639
Change-Id: Ibdfe24141a759cda6d319db0933bea57919dc171
Reviewed-on: https://chromium-review.googlesource.com/1002776
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52522}
2018-04-10 13:32:17 +00:00
Daniel Clifford
4eebf032e0 Add missing CSA routines in preparation for Torque
Change-Id: I170f47ee1c1e7e1a1296d5e5fc7fd1e2ab28a2f7
Reviewed-on: https://chromium-review.googlesource.com/1005076
Commit-Queue: Daniel Clifford <danno@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52521}
2018-04-10 13:08:23 +00:00
peterwmwong
b4cf629812 [js-perf-test] Add benchmark for String.prototype.matchAll
Bug: v8:6890
Change-Id: I0778aee65985852950c48b519baeb7fe6d81f8eb
Reviewed-on: https://chromium-review.googlesource.com/998394
Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52520}
2018-04-10 12:47:33 +00:00
Marja Hölttä
3d222e13be [in-place weak refs] Fix weak slots in new space.
New space objects which die after scavenging might contain weak references.
IncrementalMarking::UpdateWeakReferencesAfterScavenge must drop the
corresponding slot.

This bug didn't surface before, since all weak slots are in the old space (but
this will change soon).

BUG=v8:7308

Change-Id: Ib1e507d4207e35547240dc0867ec7787b3f3103e
Reviewed-on: https://chromium-review.googlesource.com/1005000
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52519}
2018-04-10 11:50:33 +00:00
Jaroslav Sevcik
963062fb73 [turbofan] Re-enable stack pointer poisoning.
This re-enables stack pointer poisoning with untrusted code mitigations.

Bug: chromium:798964
Change-Id: I68b60641efefccbf0c4fd81c54809777feabc4be
Reviewed-on: https://chromium-review.googlesource.com/1002563
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52518}
2018-04-10 11:42:43 +00:00
Daniel Clifford
297c0b7521 Removed unused antlr4 files
Change-Id: Ic1f222e726694ffc5afe158ae1839ce9c55ec6d5
Reviewed-on: https://chromium-review.googlesource.com/1004996
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52517}
2018-04-10 11:40:44 +00:00
v8-autoroll
36d0336e66 Update V8 DEPS.
Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/b5c70ce..1bae362

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

Change-Id: I963fd7e0240434546b1cc5620741f850b85ece23
Reviewed-on: https://chromium-review.googlesource.com/1004914
Reviewed-by: v8 autoroll <v8-autoroll@chromium.org>
Commit-Queue: v8 autoroll <v8-autoroll@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52516}
2018-04-10 10:26:51 +00:00
Jakob Gruber
affbe85e92 Revert "[runtime] Do some more StringTable shrinking"
This reverts commit 6823c0a496.

Reason for revert: https://crbug.com/830499

Original change's description:
> [runtime] Do some more StringTable shrinking
> 
> This CL further lowers the kMaxEmptyFactor constant to more aggressively shrink
> the StringTable when it's empty.
> 
> Bug: v8:5443, chromium:818642
> Change-Id: I1c263a0afd7e6bed8a8bb857db032bf126c3ef4b
> Reviewed-on: https://chromium-review.googlesource.com/995473
> Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
> Commit-Queue: Camillo Bruni <cbruni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#52401}

TBR=mlippautz@chromium.org,cbruni@chromium.org

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

Bug: v8:5443, chromium:818642
Change-Id: Ibd009fe1e9fcd0b36f168ad425e1eb5e663a1ca8
Reviewed-on: https://chromium-review.googlesource.com/1004456
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52515}
2018-04-10 10:18:21 +00:00
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