Commit Graph

48235 Commits

Author SHA1 Message Date
Clemens Hammacher
9f7abe66dc Revert "[debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes."
This reverts commit 9e27d4735f.

Reason for revert: Fails MSan (use of uninitialized value): https://ci.chromium.org/buildbot/client.v8/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/21562

Original change's description:
> [debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes.
> 
> This CL also bottlenecks all current scope handling in the ScopeIterator, and cleans up frame handling in debug-frames and the deoptimizer.
> 
> Change-Id: I061922a356ce17794262f8d77d5d7c824558fc50
> Reviewed-on: https://chromium-review.googlesource.com/1095094
> Commit-Queue: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Yang Guo <yangguo@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53741}

TBR=yangguo@chromium.org,jarin@chromium.org,neis@chromium.org,jgruber@chromium.org,verwaest@chromium.org

Change-Id: Ief87c1e79fa2ec40f52fd747ec4ebbacf0da798b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/1101377
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53743}
2018-06-14 17:34:09 +00:00
Sigurd Schneider
cf885c6c46 [mjsunit] Speed up array constructor test
Bug: v8:7783
Change-Id: Ieb29bcbd7400a84619aaf08ad86f8847e8bd78c3
Reviewed-on: https://chromium-review.googlesource.com/1101023
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53742}
2018-06-14 16:45:23 +00:00
Toon Verwaest
9e27d4735f [debugger] Rewrite the ScopeIterator/DebugEvaluate to use Scope rather than ScopeInfo for inner scopes.
This CL also bottlenecks all current scope handling in the ScopeIterator, and cleans up frame handling in debug-frames and the deoptimizer.

Change-Id: I061922a356ce17794262f8d77d5d7c824558fc50
Reviewed-on: https://chromium-review.googlesource.com/1095094
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53741}
2018-06-14 16:28:53 +00:00
Igor Sheludko
7664dc27c3 [csa][builtins] Port ArrayConstructorImpl builtin to CSA.
Bug: v8:5269, v8:7703
Change-Id: I3e1f8a7892192a06ce6a71563cc16a47c51f9d89
Reviewed-on: https://chromium-review.googlesource.com/1097487
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53740}
2018-06-14 15:59:33 +00:00
Sigurd Schneider
f85023570d [mjsunit] Speed up test by using const
Bug: v8:7783
Change-Id: I0399d20c990e40b1a6dad8a7c12eb6fbce022d12
Reviewed-on: https://chromium-review.googlesource.com/1101028
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53739}
2018-06-14 15:56:03 +00:00
Sigurd Schneider
95bc6c7b87 [mjsunit] Use OptimizeOsr to speed up test
Bug: v8:7783
Change-Id: I878e8dd8bcfb7b797515b44bbe4333a7d85e8cc4
Reviewed-on: https://chromium-review.googlesource.com/1101024
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53738}
2018-06-14 15:54:53 +00:00
jgruber
9ff644ae67 Fix stack check pattern matching for CSA code
The stack check instruction sequence is pattern-matched in
instruction-selector-{ia32,x64}.cc and replaced with its own specialized
opcode, for which we later generate an efficient stack check in a single
instruction.

But this pattern matching has never worked for CSA-generated code. The
matcher expected LoadStackPointer in the right operand and the external
reference load in the left operand. CSA generated exactly vice-versa.

This CL does a few things; it
1. reverts the recent change to load the
limit from smi roots:

Revert "[csa] Load the stack limit from smi roots"
This reverts commit 507c29c940.

2. tweaks the CSA instruction sequence to output what the matcher
expects.
3. refactors stack check matching into a new StackCheckMatcher class.
4. typifies CSA::PerformStackCheck as a drive-by.

Bug: v8:6666,v8:7844
Change-Id: I9bb879ac10bfe7187750c5f9e7834dc4accf28b5
Reviewed-on: https://chromium-review.googlesource.com/1099068
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53737}
2018-06-14 15:21:53 +00:00
Dominik Inführ
9c22f3d7e1 [heap] Visit Ephemerons in Parallel
Use ItemParallelJob to walk ephemerons in parallel.

Bug: chromium:844008
Change-Id: Iffc72422f7577458437764f42d13d3f2ee020758
Reviewed-on: https://chromium-review.googlesource.com/1100825
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53736}
2018-06-14 15:07:07 +00:00
Georg Neis
17db4a30cc [turbofan] Rearrange heap broker classes.
Bug: v8:7790
Change-Id: I0508596370470068ee07bfd7e441a4e393266c11
Reviewed-on: https://chromium-review.googlesource.com/1099238
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53735}
2018-06-14 14:33:37 +00:00
Michael Starzinger
87fe40134a [wasm] Allow calling runtime stubs with stub linkage.
This allows WebAssembly runtime stubs implemented as {WasmCode} to be
called with regular stub linkage. So far we have only been able to call
such stubs with WebAssembly linkage.

Also switch two more on-heap builtins over to WebAssembly runtime stubs.

R=clemensh@chromium.org
BUG=v8:7424

Change-Id: Ifa553b5908ee27a1be780c325a114449d7fe7001
Reviewed-on: https://chromium-review.googlesource.com/1100882
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53734}
2018-06-14 14:29:46 +00:00
Clemens Hammacher
8e2e125791 Reland "Introduce StdoutStream which prints to Android log or stdout"
This is a reland of 0909dbe3d6.
Added missing V8_EXPORT_PRIVATE to AndroidLogStream.

TBR=mstarzinger@chromium.org

Original change's description:
> Introduce StdoutStream which prints to Android log or stdout
>
> The often used construct {OFStream(stdout)} does not work on Android.
> This CL introduces an {StdoutStream} which behaves exactly like
> {OFStream(stdout)} on non-android platforms, and redirects to the
> Android log on appropriate systems and configurations.
>
> R=mstarzinger@chromium.org
>
> Bug: v8:7820
> Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b
> Reviewed-on: https://chromium-review.googlesource.com/1088911
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53692}

Bug: v8:7820
Change-Id: I8164bad78a401dbe4246c9ffcacd050fe511ed58
Reviewed-on: https://chromium-review.googlesource.com/1100636
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53733}
2018-06-14 13:29:01 +00:00
Clemens Hammacher
ef0513807d [cleanup] Properly undef TRACE_ISOLATE
R=mstarzinger@chromium.org

Bug: v8:7754
Change-Id: I1da5aea2a67047ea8ed48e2b3080d2b8cbf97100
Reviewed-on: https://chromium-review.googlesource.com/1100878
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53732}
2018-06-14 13:27:10 +00:00
Leszek Swirski
d5b02187cb [GetIsolate] Remove GetIsolate from src/ast/*
Bug: v8:7786
Change-Id: Id6a2e38e99fdaeaa619c7ec3e18865c3f64a2a47
Reviewed-on: https://chromium-review.googlesource.com/1095112
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53731}
2018-06-14 11:14:20 +00:00
Igor Sheludko
02a891a898 [csa][builtins] Port AllocateIn[New,Old]Space builtins to CSA.
Bug: v8:5269
Change-Id: I78678aee42b2ae930b995cd194b4d20516e0d229
Reviewed-on: https://chromium-review.googlesource.com/1098929
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53730}
2018-06-14 10:55:20 +00:00
Clemens Hammacher
2dda64aabf [wasm] Introduce JumpTableAssembler
Extract code generation (for the trampoline) from {wasm-code-manager.cc}
to a new {JumpTableAssembler}. This prepares a CL to add more logic to
the {JumpTableAssembler} to also generate jump tables for lazy
compilation and tier up.

R=mstarzinger@chromium.org

Change-Id: I383585b7e4b5a4af3ca08d07e374b44654c1a09f
Reviewed-on: https://chromium-review.googlesource.com/1046585
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53729}
2018-06-14 10:25:50 +00:00
Dominik Inführ
9ee78d965b [heap] Flag for parallel ephemeron marking
New flag for disabling of parallel marking after visiting all
ephemerons.

Bug: chromium:844008
Change-Id: I3dfc4e6a05ffc8e065313ef4955279617246802c
Reviewed-on: https://chromium-review.googlesource.com/1100468
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Cr-Commit-Position: refs/heads/master@{#53728}
2018-06-14 09:28:10 +00:00
Peter Marshall
919114211c [cleanup] Make ownership in the ArrayBufferCollector clearer
The allocations vector does not need to be dynamically allocated, we can
just std::move it around instead.

Change-Id: If38af59deeccc06005397f255e18a2fa1bdf4298
Reviewed-on: https://chromium-review.googlesource.com/1099063
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53727}
2018-06-14 08:48:19 +00:00
Stephan Herhut
83864aa236 [wasm] Fold constant to pointer conversion
On 64 bit architectures, reading memory in wasm requires a conversion
of the 32 bit index into a 64 bit value. For this, we generate a
ChangeUint32ToUint64 graph node, which later materializes as a move
and hence consumes a register. This generates unneccesary register
pressure, especially with gvn enabled.

Now, the WasmGraphBuilder will emit a IntPtrConstant node right
away if the index is a constant.

Change-Id: Id8d7efa90c6bd8e4d7b6419e2075802dfc1eb383
Reviewed-on: https://chromium-review.googlesource.com/1099061
Commit-Queue: Stephan Herhut <herhut@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53726}
2018-06-14 08:13:39 +00:00
Michael Achenbach
d2e1620cd4 Revert "Introduce StdoutStream which prints to Android log or stdout"
This reverts commit 0909dbe3d6.

Reason for revert: Blocks roll:
https://chromium-review.googlesource.com/c/chromium/src/+/1099143

Original change's description:
> Introduce StdoutStream which prints to Android log or stdout
> 
> The often used construct {OFStream(stdout)} does not work on Android.
> This CL introduces an {StdoutStream} which behaves exactly like
> {OFStream(stdout)} on non-android platforms, and redirects to the
> Android log on appropriate systems and configurations.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: v8:7820
> Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b
> Reviewed-on: https://chromium-review.googlesource.com/1088911
> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53692}

TBR=mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,clemensh@chromium.org,bmeurer@chromium.org

Change-Id: Iadadd9a0df10dca0fad647138a83db50148e864d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:7820
Reviewed-on: https://chromium-review.googlesource.com/1100635
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53725}
2018-06-14 06:23:17 +00:00
Wez
5376bc2534 [heap] Fix Commit() and GrowTo() not to call RewindPages() with zero.
Commit() and GrowTo() iterate allocating pages, and call RewindPages()
if an iteration fails. This is true even if the first iteration fails,
in which case there are no pages to rewind, and RewindPages() DCHECKs.

Only call RewindPages() if we are on the second or later iteration.

Bug: chromium:851626
Change-Id: Ifb644416331b5129c679983bc6af0d21c3ce14d8
Reviewed-on: https://chromium-review.googlesource.com/1099605
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53724}
2018-06-14 04:09:17 +00:00
Junliang Yan
80ec11d20d PPC/s390: [wasm] Use the modules runtime stub for {DoubleToI}.
Port 98d7b23e59

Original Commit Message:

    This uses a WebAssembly runtime stub for the out-of-line {DoubleToI}
    computation instead of a builtin specific to a certain Isolate. It is
    another step towards making {WasmCode} independent of the Isolate.

R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:7424
LOG=N

Change-Id: I2f78432134ea150bb00bea339a6e71c11aa625b0
Reviewed-on: https://chromium-review.googlesource.com/1099877
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53723}
2018-06-13 23:09:36 +00:00
Aseem Garg
0091973e82 Reland "[wasm] Add simd mem and shift ops to interpreter"
This is a reland of 2338a2fd63

Original change's description:
> [wasm] Add simd mem and shift ops to interpreter
>
> R=clemensh@chromium.org
> BUG=v8:6020
>
> Change-Id: I5d95e4c23240ae4e174d896d31e1b9b1d89d9418
> Reviewed-on: https://chromium-review.googlesource.com/1096493
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53717}

Bug: v8:6020
Change-Id: I38a73f5e389617a05a12e0a9477544c4e3aa2883
Reviewed-on: https://chromium-review.googlesource.com/1099895
Reviewed-by: Ben Smith <binji@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53722}
2018-06-13 22:03:46 +00:00
Nebojsa Ciric
0444636091 Add regression tests for Intl.Locale constructor.
- Test that order of getter initialization doesn't change.
- Test properties of each getter against the spec.

Bug: v8:7684
Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
Change-Id: I85d0d80947e55233f10f62f96fe33d4281db4315
Reviewed-on: https://chromium-review.googlesource.com/1083879
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53721}
2018-06-13 21:56:26 +00:00
Junliang Yan
ab2538d868 s390: [csa][builtin] Port ArrayConstructor builtin to CSA.
Port 7745c73a82

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

Change-Id: I34a7bda297486455ad3d809f2def490113bcf15c
Reviewed-on: https://chromium-review.googlesource.com/1099640
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53720}
2018-06-13 21:13:13 +00:00
Wez
dc53e17e92 [tools] Remove unused V8 dependency on Fuchsia's "launchpad" package.
R=sergiyb@chromium.org

Bug: chromium:848028
Change-Id: If8ce38ff0e991e171eae68e2bea708365e63a35c
Reviewed-on: https://chromium-review.googlesource.com/1099601
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53719}
2018-06-13 21:12:08 +00:00
Sathya Gunasekaran
76cc2ad07e Revert "[wasm] Add simd mem and shift ops to interpreter"
This reverts commit 2338a2fd63.

Reason for revert: broke mips

see https://ci.chromium.org/buildbot/client.v8.ports/V8%20Mips%20-%20builder/17573

Original change's description:
> [wasm] Add simd mem and shift ops to interpreter
> 
> R=​clemensh@chromium.org
> BUG=v8:6020
> 
> Change-Id: I5d95e4c23240ae4e174d896d31e1b9b1d89d9418
> Reviewed-on: https://chromium-review.googlesource.com/1096493
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#53717}

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

Change-Id: I8e5b2e9a9c1c09d035335ba6681bbe3e1ce5abfb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:6020
Reviewed-on: https://chromium-review.googlesource.com/1099776
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53718}
2018-06-13 21:10:18 +00:00
Aseem Garg
2338a2fd63 [wasm] Add simd mem and shift ops to interpreter
R=clemensh@chromium.org
BUG=v8:6020

Change-Id: I5d95e4c23240ae4e174d896d31e1b9b1d89d9418
Reviewed-on: https://chromium-review.googlesource.com/1096493
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53717}
2018-06-13 19:42:03 +00:00
jgruber
9b0b3ab0a8 [build] Tweak default value of v8_enable_embedded_builtins
Embedded builtins are currently unsupported in no-snapshot builds.
This lets BUILD.gn reflect that (both in the default value and an added
assertion).

Bug: v8:6666,v8:7837
Change-Id: I5c56f655733505e481017408f8a1a14d857f0b4a
Reviewed-on: https://chromium-review.googlesource.com/1096758
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53716}
2018-06-13 19:36:23 +00:00
Michael Achenbach
874d5ba132 [CQ] Remove obsolete sign-cla check
The check moved to gerrit.

NOTRY=true
TBR=sergiyb@chromium.org

Bug: chromium:851737
Change-Id: I1db1f320bb1c71c8abbce29ef545cbd70ff4d168
Reviewed-on: https://chromium-review.googlesource.com/1099382
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53715}
2018-06-13 19:28:42 +00:00
Junliang Yan
35a94c2677 PPC/s390: Remove CodeAssembler::LookupExternalReference
Port faf64532d5

Original Commit Message:

    Indirections for external references are now handled completely in
    macro assemblers, which can produce more efficient code.

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

Change-Id: Ic94019affc7418e2d69944f5d8932502f7912684
Reviewed-on: https://chromium-review.googlesource.com/1099421
Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53714}
2018-06-13 18:45:42 +00:00
Sigurd Schneider
0b4552c737 [turbolizer] Display instruction ranges in turbolizer
Bug: v8:7327
Change-Id: I8cd57abf612393852532a695663175dff8e3a199
Reviewed-on: https://chromium-review.googlesource.com/1098955
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53713}
2018-06-13 18:06:32 +00:00
Sigurd Schneider
e5e15e579e [turbofan] Add instruction ranges to --trace-turbo
Bug: v8:7327
Change-Id: I6f378f0d36444e8413dfe7ad3e097091e3b86df1
Reviewed-on: https://chromium-review.googlesource.com/1098919
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53712}
2018-06-13 16:34:42 +00:00
Junliang Yan
0fe56b84d5 s390: skip slow tests on s390
Change-Id: Iefcee48e44b6eb6c00923500be03056e723d8550
Reviewed-on: https://chromium-review.googlesource.com/1095841
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#53711}
2018-06-13 16:20:12 +00:00
Michael Starzinger
d3e65b5094 [wasm] Remove obsolete import wrapper validation.
The validation in {ValidateImportWrapperReferencesImmovables} is by now
subsumed by the stricter {WasmCode::Validate}, which is applied to all
WebAssembly code, not just import wrappers.

R=titzer@chromium.org

Change-Id: I8a8cf6e0f07cb289f33b641fe8f674e9698e7f44
Reviewed-on: https://chromium-review.googlesource.com/1099067
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53710}
2018-06-13 16:10:22 +00:00
Ben L. Titzer
d9d88f5dc6 [disassembler] Gracefully handle null Isolate
R=mstarzinger@chromium.org

Change-Id: Ie7ad0277378af59860dd92482f90981bbdc216c8
Reviewed-on: https://chromium-review.googlesource.com/1099056
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53709}
2018-06-13 16:04:02 +00:00
Ben L. Titzer
37bc035896 [assembler] Factor up list of heap allocation requests
Lift the declaration of the heap allocation request list and the method
which adds to the list up to AssemblerBase.

Change-Id: I099260425af8cb579144998c71c538f19ba00e65
Reviewed-on: https://chromium-review.googlesource.com/1098959
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Ben Titzer <titzer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53708}
2018-06-13 15:52:12 +00:00
Camillo Bruni
9718d079e9 [CSA] Fix Array.prototype.reduceRight CAS_ASSERT
- Add typed IsHeapNumberPositive, IsNumberNonNegativeSafeInteger, IsInteger,
  IsSafeInteger and IsHeapNumberUint32 helpers on CodeStubAssembler
- Type NumberIsInteger and NumberIsSafeInteger builtin

Bug: chromium:847204, v8:6949
Change-Id: I27d3ab79bd17312c223209ed0b221c174024126e
Reviewed-on: https://chromium-review.googlesource.com/1087961
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53707}
2018-06-13 15:38:01 +00:00
Dominik Inführ
2aa166a633 [heap] Clear ephemeron worklist when tearing down
Bug: chromium:852308, chromium:844008
Change-Id: I99551c1f75d5916edfb780998963140b8282a570
Reviewed-on: https://chromium-review.googlesource.com/1099065
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53706}
2018-06-13 15:28:21 +00:00
Kanghua Yu
418bf412fe [ia32] Bugfix for jump optimization
The jump optimization maybe run Turbofan pipeline twice for each TF/CS builtins,
and relies on the fact that the number of j/jmp instruction generated is always
the same.
The behavior of {AddMatcher::SwapInputs} should be aware the two times code
generation, and prevents the flipping of child nodes.

For example:

1: Int32Add(2, 3)   --- We shouldn't swap the input #2 and #3 in this situation
2: Int32Sub(4, 5)
3: Int32Add(6, 7)
4: ...
5: ...
6: ...
7: ...

R=danno@chromium.org

Bug: v8:7839
Change-Id: Ia97de3ab28294e595ac27b5898c099c0d782e9f9
Reviewed-on: https://chromium-review.googlesource.com/1098678
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Kanghua Yu <kanghua.yu@intel.com>
Cr-Commit-Position: refs/heads/master@{#53705}
2018-06-13 15:08:19 +00:00
Michael Starzinger
19171311ef [wasm] Remove uses of deprecated {NativeModule::module_object}.
R=clemensh@chromium.org

Change-Id: Ib85efebbfc18861709186f5257b9f85f145bb6b4
Reviewed-on: https://chromium-review.googlesource.com/1097324
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53704}
2018-06-13 14:47:39 +00:00
Daniel Clifford
2506963a4e [torque] Correctly generate one .h/.cc file pair per module
In the process and as a test case of the module/file-handling, separate
Array.p.forEach into its own Torque file.

Bug: v8:7793
Change-Id: If45103a9df3bf8fade34e7bcf7c7c9c060e25966
Reviewed-on: https://chromium-review.googlesource.com/1097755
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Daniel Clifford <danno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53703}
2018-06-13 14:28:50 +00:00
Michael Starzinger
98d7b23e59 [wasm] Use the modules runtime stub for {DoubleToI}.
This uses a WebAssembly runtime stub for the out-of-line {DoubleToI}
computation instead of a builtin specific to a certain Isolate. It is
another step towards making {WasmCode} independent of the Isolate.

R=clemensh@chromium.org
BUG=v8:7424

Change-Id: Ifdaa8e2511b67468d75e0e4aaf70010ced04a11a
Reviewed-on: https://chromium-review.googlesource.com/1098672
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53702}
2018-06-13 14:15:59 +00:00
Simon Zünd
696e8ea9f1 [torque] Fix multi-line AssertStatements
R=tebbi@chromium.org

Bug: v8:7793
Change-Id: I691b3682aec3269350ee02c29b48ce1d46a1ffcb
Reviewed-on: https://chromium-review.googlesource.com/1098656
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#53701}
2018-06-13 14:01:59 +00:00
Ben L. Titzer
e3d957e34b [wasm] "fix" critical memory pressure notification
Previously, we sent a critical low memory pressure notification when
attempting to commit WASM code when the code manager was near the
limit for total amount of code allocated.
https://chromium-review.googlesource.com/c/v8/v8/+/1073412 "fixed" that,
but it causes OOMs on Windows.

Since we no longer have the isolate on the code manager, and thus cannot
send this notification on commit, send the notification upon the next
module creation.

This is still not optimal, but should fix OOM issues for lots of
small modules on Windows.

BUG=v8:7845
R=mstarzinger@chromium.org
CC=clemensh@chromium.org

Change-Id: I6e20d0c1ee9bc6926a83e0c2fbdc9e9e453588ec
Reviewed-on: https://chromium-review.googlesource.com/1098921
Commit-Queue: Ben Titzer <titzer@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53700}
2018-06-13 13:52:19 +00:00
Clemens Hammacher
4d867c7af1 [wasm] Use standard way of defining builtins
No need to have a separately defined CallDescriptor.

R=titzer@chromium.org

Change-Id: Ic7c0ee87d458fa8e55bef4d750aa7f61a763237f
Reviewed-on: https://chromium-review.googlesource.com/1098927
Reviewed-by: Ben Titzer <titzer@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53699}
2018-06-13 13:12:49 +00:00
Clemens Hammacher
b9b4b8798f [wasm] Merge {WasmSharedModuleData} with {WasmModuleObject}
The {WasmSharedModuleData} struct was introduced to hold data common to
all wasm instances belonging to the same module. The idea was to keep
"internal state" separate from the JS-facing {WasmModuleObject}. Since
this objective has no real value, and we already store some internal
data on the {WasmModuleObject}, this CL merges these two objects.

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

Bug: v8:7754
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: I04f6d07bf5d812bc4717af26f0f64231345861f9
Reviewed-on: https://chromium-review.googlesource.com/1097491
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53698}
2018-06-13 13:10:19 +00:00
Creddy
1fe33e266f [CSA] Typify UpdateWord, TrapAllocationMemento, PageFromAddress
and CreateAllocationSiteInFeedbackVector

Change-Id: I935083f1244e62cfe9e4049c9b725db48ce4ce8f
Reviewed-on: https://chromium-review.googlesource.com/1090830
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53697}
2018-06-13 12:06:58 +00:00
Creddy
6030d0b9ce [runtime] Create different maps for AllocationSites.
Use DEFINE_FIELD_OFFSET_CONSTANTS to describe AllocationSite fields

Change-Id: I03ae84e1f4720da9da7e2a8a784f56fe6f155e18
Reviewed-on: https://chromium-review.googlesource.com/1095308
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53696}
2018-06-13 11:51:48 +00:00
Georgia Kouveli
652a3e1337 Merge deoptimization type enums
Replace all uses of Deoptimizer::BailoutType and CodeEventListener::DeoptKind
with DeoptimizeKind from src/globals.h.

Change-Id: I5b9002583a69bc43d995cacc7619b018e5a70727
Reviewed-on: https://chromium-review.googlesource.com/1097331
Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53695}
2018-06-13 11:32:58 +00:00
Dominik Inführ
249d0ea4df [heap] Parallel marking for ephemerons
After marking ephemerons process the worklist in parallel.

Bug: chromium:844008
Change-Id: Id750c19d0f564675f051cc4f9933d41fa0afb42b
Reviewed-on: https://chromium-review.googlesource.com/1097490
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53694}
2018-06-13 11:04:18 +00:00