Commit Graph

58255 Commits

Author SHA1 Message Date
Michael Achenbach
952d14a3f9 Whitespace change to test bots
Change-Id: I14103a02fa96f66f220559780e9d8ee116ff3e10
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796548
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63663}
2019-09-11 07:42:25 +00:00
Michael Achenbach
a6fa59c0a8 Revert "Update V8 DEPS."
This reverts commit d72ae9abf8.

Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Android%20Arm%20-%20builder/27990

Original change's description:
> Update V8 DEPS.
> 
> Rolling v8/build: 2d9fa32..0f7adef
> 
> Rolling v8/buildtools: 74cfb57..cd73d21
> 
> Rolling v8/buildtools/linux64: git_revision:152c5144ceed9592c20f0c8fd55769646077569b..git_revision:ad9e442d92dcd9ee73a557428cfc336b55cbd533
> 
> Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/884c81e..050abd8
> 
> Rolling v8/third_party/depot_tools: e5641be..d207f49
> 
> Rolling v8/third_party/googletest/src: 3a45039..33a0d4f
> 
> TBR=machenbach@chromium.org,tmrts@chromium.org
> 
> Change-Id: I465ba35dd9e70e02c684687b656c34c5bd53ff23
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796705
> Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
> Cr-Commit-Position: refs/heads/master@{#63661}

TBR=machenbach@chromium.org,v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com,tmrts@chromium.org

Change-Id: I0ffabeb2df5a2949adf5ebb319bec20513a04c55
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796545
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63662}
2019-09-11 06:43:07 +00:00
v8-ci-autoroll-builder
d72ae9abf8 Update V8 DEPS.
Rolling v8/build: 2d9fa32..0f7adef

Rolling v8/buildtools: 74cfb57..cd73d21

Rolling v8/buildtools/linux64: git_revision:152c5144ceed9592c20f0c8fd55769646077569b..git_revision:ad9e442d92dcd9ee73a557428cfc336b55cbd533

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/884c81e..050abd8

Rolling v8/third_party/depot_tools: e5641be..d207f49

Rolling v8/third_party/googletest/src: 3a45039..33a0d4f

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I465ba35dd9e70e02c684687b656c34c5bd53ff23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796705
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#63661}
2019-09-11 03:51:55 +00:00
Frank Tang
8574ecf2b7 Remove CHECK which fail while the locale is long.
Bug: chromium:997401
Change-Id: I7a78f4ad1fd05ab2bb2dbcd343060b2647aef4e6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771954
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63660}
2019-09-10 19:28:54 +00:00
Michael Lippautz
aa7c6e22f9 [heap] Provide async GC for JS
Reuse the existing builtin and extension infrastructure to provide a
garbage collection mechanism that allows for asynchronous execution.

On --expose-gc, this changes the gc call to parse parameters the
following:
(1) Parse options when encountering an options object with known properties.
(2) No parameters is parsed as
    {type: 'major', execution: 'sync'}.
(3) Truthy parameter that is not setting options is parsed as
    {type: 'minor', execution: 'sync'}.

(2) and (3) preserve backwards compatibility for existing callers as this may be
used widely across various test and benchmarking infrastructures.

Valid options:
- type: 'major' or 'minor' for full GC and Scavenge, respectively.
- execution: 'sync' or 'async' for synchronous and asynchronous
  execution respectively.

Returns a Promise that resolves when GC is done when asynchronous execution
is requested, and undefined otherwise.

Note: This is implemented as builtin to avoid having any stack at all. This
information is also passed to the embedder to allow skipping stack scanning.

Change-Id: Ie5c9b6f0d55238abfeb9051ffa1837501d474934
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1793143
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63659}
2019-09-10 18:58:21 +00:00
Santiago Aboy Solanes
09af9adf9a [CSA][cleanup] TNodify the binary op assembler
Bug: v8:6949, v8:9396
Change-Id: I4c9382079190379661a26fbe6e1f4f6040a56d08
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792902
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63658}
2019-09-10 18:37:00 +00:00
Gus Caplan
67180425bc Stage optional chaining
Bug: v8:9553
Change-Id: I376d4bd3d1554e1ed0bdeea79c47bd2a45e643d8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795886
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63657}
2019-09-10 18:24:40 +00:00
Z Nguyen-Huu
fa636ac36a [builtins] Port Regexp search to Torque
Bug: v8:8976
Change-Id: I281dc72dcdf03a1d05fdc632c9e9228d62bd85b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1783099
Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63656}
2019-09-10 16:20:58 +00:00
Milad Farazmand
4ae9075b7b PPC/s390: [wasm-c-api] Add tests and fixes
Port f72c844aa7

Original Commit Message:

    Port f5ab7d38be

    Port 65f3861e3b

    Original Commit Message:

        In a new test suite: "wasm-api-tests", using a new binary "wasm_api_tests",
        powered by gtest/gmock (like unittests).
        Also fix a bunch of issues that these tests uncovered, mostly to ensure
        that the stack is walkable.

R=miladfar@ca.ibm.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Id52e771fee79210d6c295cecf56a322657cf2b8f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795864
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#63655}
2019-09-10 16:02:31 +00:00
Clemens Hammacher
03c1b90f0f Revert "[wasm] Patch jump tables in all code spaces"
This reverts commit d7d25d2abc.

Reason for revert: crashes win32-debug: https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/21970

Original change's description:
> [wasm] Patch jump tables in all code spaces
> 
> If there are multiple code spaces, make sure to patch the jump tables
> in all of them.
> 
> R=​mstarzinger@chromium.org
> 
> Bug: v8:9477
> Change-Id: I2ec3d3de913b99623fd310004555337329588da0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789289
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63651}

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

Change-Id: I4bdeb7394ebf002e3a84fececb0defba8bc9065d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:9477
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796064
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63654}
2019-09-10 15:51:33 +00:00
Igor Sheludko
493a79f629 Revert "Temporarily disable frozen/sealed elements kinds"
This reverts commit 05d83a0e73.

Reason for revert: We passed the M78 branch point and should proceed testing
the new elements kinds support.

Original change's description:
> Temporarily disable frozen/sealed elements kinds
>
> ... to prepare for merging this back to stable channel.
>
> Bug: chromium:992914
> Change-Id: Icbb257b5c02417d9222e60346575567360376264
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762021
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Commit-Queue: Leszek Swirski <leszeks@chromium.org>
> Auto-Submit: Igor Sheludko <ishell@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63277}

TBR=leszeks@chromium.org,ishell@chromium.org

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

Bug: chromium:992914, v8:996176
Change-Id: Iaa36c140c0c9c72ca0e58f5c3e7d4cad67027085
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795342
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63653}
2019-09-10 15:45:46 +00:00
Leszek Swirski
8bc5405294 [csa] Merge in- and out-of-object store paths
Rather than duplicating code paths for in- and out-of-object stores,
have one code path which checks whether it needs to load the property
store (and change the storage location to the HeapNumber value for
unboxed doubles).

As a drive-by, change the representation dispatch into a switch, and
inline the representation checks into that switch, to make explicit
what checks for what and which paths transform the value. Also, TNodify
some of the surrounding functions.

Change-Id: Ia1bf698b4cec3ffce9aaa5732cda2e3be9efd8e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795345
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63652}
2019-09-10 15:44:41 +00:00
Clemens Hammacher
d7d25d2abc [wasm] Patch jump tables in all code spaces
If there are multiple code spaces, make sure to patch the jump tables
in all of them.

R=mstarzinger@chromium.org

Bug: v8:9477
Change-Id: I2ec3d3de913b99623fd310004555337329588da0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789289
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63651}
2019-09-10 15:14:37 +00:00
Bill Budge
e362c487d0 [cleanup] Eliminate non-const reference parameters
- Eliminates non-const reference parameters in src/objects.

Bug: v8:9429
Change-Id: Ic39a59d54bda26c622db29f07143055c3cc6c7a0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1794683
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63650}
2019-09-10 13:57:34 +00:00
Michael Achenbach
6a5c85ff63 [test] Bump shards on slow builder
NOTRY=true
TBR=mslekova@chromium.org

Change-Id: I3793426aaebd400ac93015b85ef11db5aecef52f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795357
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63649}
2019-09-10 13:54:43 +00:00
Ana Peško
2ad2a623e6 [regexp] Turn off tier-up when interpret all is on
This CL changes how we handle the case when both --regexp-tier-up and
--regexp-interpret-all flags are on. Previously, we had a CHECK that would
crash if both flags were turned on, now we turn off the tier-up flag and
print a warning message.

Change-Id: I902a59cac9aaf316be05ab2acaee233aa32e023d
Bug: chromium:1002242
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795353
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Ana Pesko <anapesko@google.com>
Cr-Commit-Position: refs/heads/master@{#63648}
2019-09-10 13:50:43 +00:00
Clemens Hammacher
52ad60e671 Un-skip bit-not test
After https://crrev.com/c/1793065 the test should be fast enough to
execute it everywhere.

R=mslekova@chromium.org

Bug: v8:9696, v8:7783
Change-Id: I2485d703d6e973217eddde2f2814e31f7fcd8a61
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795343
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63647}
2019-09-10 12:39:29 +00:00
Joshua Litt
0b324dd4f5 [protectors] Move PromiseSpeciesProtector to Protectors
Bug: v8:9463
Change-Id: I49d74c5103f4ee2e09114a609cffe82c838655dc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792782
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Joshua Litt <joshualitt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63646}
2019-09-10 12:13:59 +00:00
Simon Zünd
a6db4bd048 Change {this} check for arrow functions in DebugStackTraceIterator
An upcoming CL will remove the COLLECT_NON_LOCALS support of the
ScopeIterator. The DebugStackTraceIterator uses the list of non-locals
to restore the receiver for arrow functions.

This CL extracts the relevant logic into a small helper and calls
it directly.

Change-Id: Ia396fd599e41ca65810497d2f5228619cfdf7cc4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795347
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63645}
2019-09-10 12:07:19 +00:00
Rong Wang
e7c2a24e7f [heap] Additional V8_DISABLE_WRITE_BARRIERS guards
This CL is necessary for disabling write-barriers that involoves
referencing pages via address arithmetic, which is required from
third-party heap implementation.

Change-Id: I1d3f572d48015e5c8cf691b2dc71a32834621c2f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781008
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63644}
2019-09-10 11:57:09 +00:00
Bill Budge
faa0b50dfc [cleanup] Eliminate non-const reference parameters
- Eliminates non-const reference parameters in test/unittests.

Bug: v8:9429
Change-Id: Ia7b41482811183324a62859d27fc263e4032219a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1794802
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63643}
2019-09-10 11:47:39 +00:00
Clemens Hammacher
859b2d77c6 Replace base::make_unique by std::make_unique
Since we switched to C++14 now, we can use {std::make_unique} instead
of our own {base::make_unique} from {template-utils.h}.

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

Bug: v8:9687
No-Try: true
Change-Id: I660eb30038bbb079cee93c7861cd87ccd134f01b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789300
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63642}
2019-09-10 11:21:51 +00:00
Thibaud Michaud
d0c980e1f1 [regalloc] Enable control-flow aware allocation
This is meant to check the performance impact of:
https://chromium-review.googlesource.com/c/v8/v8/+/1776085/3

R=neis@chromium.org

Bug: v8:9088
Change-Id: I8aad5272c1427b8bcaca02bdd0e51bf2779f7451
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781054
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63641}
2019-09-10 11:07:05 +00:00
Suraj Sharma
738d870db6 [ic] Create a new Smi handler for Stores involving interceptors.
based on dicussion at
docs.google.com/document/d/1UzCOai9H07fYcSaSqvF_H7BS2-sF5q91A4r9O1mRnHc/

Bug: v8:9305
Change-Id: I7464d4267b6465cc02bc27dffb602c8871d846f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1696285
Commit-Queue: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63640}
2019-09-10 10:31:03 +00:00
Mythri A
ecf178a159 Fix EmitGenericPropertyStore to bailout on stores to TypedArrays
We don't handle all cases for stores to typed arrays in the builtins
related to storing a property. Bailout to runtime when storing into
a typed array if the property is not found on the object.

Bug: chromium:996161
Change-Id: I684c7c4f526b15cdfb5bfe3fd23218910486a59e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789396
Commit-Queue: Mythri Alle <mythria@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63639}
2019-09-10 10:13:38 +00:00
v8-ci-autoroll-builder
c0ffaf682f Update V8 DEPS.
Rolling v8/build: 6ff11c8..2d9fa32

Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/fcd6915..884c81e

Rolling v8/third_party/depot_tools: efce0d1..e5641be

Rolling v8/third_party/googletest/src: 3f05f65..3a45039

TBR=machenbach@chromium.org,tmrts@chromium.org

Change-Id: I99a0be4d07f3e390d44aa11771d3c0dfc784f51a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1794125
Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63638}
2019-09-10 10:07:08 +00:00
Dominik Inführ
28f303df3e [heap] Do not invalidate object on MakeThin
No invalidation of slots necessary for String::MakeThin. ThinString
only stores tagged value, so it can't store an untagged value in a
recorded slot. CreateFillerObjectAt takes care of slots in case of
right-trimming objects.

Bug: v8:9454
Change-Id: Id16e8ebceb334a845bdbf77282fbeb2069efce7d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1794682
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63637}
2019-09-10 09:40:17 +00:00
Bill Budge
ab0f971091 [cleanup] Eliminate non-const reference parameters
- Eliminates non-const reference parameters in test/cctest.

Bug: v8:9429
Change-Id: I9b3f06d6dda447285673269819bdb405ebac2187
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1793064
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Bill Budge <bbudge@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63636}
2019-09-10 09:31:07 +00:00
Dan Elphick
6f17f5d1ae [parser] Fix arrowhead parsing in the script scope
When analyzing functions scopes with the script_scope as parent, don't
skip migrating unresolved variables upwards if we could still be inside
an arrow head, which means accesses to those variables will be
correctly context allocated.

Bug: v8:8510, chromium:1000094
Change-Id: I684f2f8bc692de420203990f93e5c943b5b769c9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789705
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63635}
2019-09-10 09:11:07 +00:00
Milad Farazmand
6d52e81a27 PPC: [cleanup] Eliminate non-const reference parameters
Port af063685fe

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

Change-Id: Iccbb0a968cd8490cfa1191ea8adb31007739b297
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1790544
Reviewed-by: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63634}
2019-09-10 09:04:37 +00:00
Mu Tao
e21f832b47 [mips][cleanup] Eliminate non-const reference parameters
Fix build errors introduced by

commit af063685fe

Change-Id: I467ea39f020d07bed00875f69152191b94029dd1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1794327
Auto-Submit: Mu Tao <pamilty@gmail.com>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63633}
2019-09-10 09:03:17 +00:00
Mu Tao
07ee3ac7d6 [mips][wasm] Add an additional stack check for functions with big frames
Port 9f01d5c1e0

Original Commit Message:

    Stack overflow checks are typically implemented as part of the TurboFan
    graph of a function. This means that the stack check code is executed
    after frame construction. When a frame is too big, though, there may not
    be enough space on the stack anymore to throw the stack overflow
    exception after frame construction. With this CL we do an additional
    stack check before frame construction for functions with big frames.

    As discussed offline with mstarzinger, I do this change currently only
    for WebAssembly.

    This CL contains only the changes for arm. I will do the other platforms
    in separate CLs

R=xwafish@gmail.com

Change-Id: I46c6dd8fac1385e5da13e03cfffd9c640a7c2c57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792582
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Auto-Submit: Mu Tao <pamilty@gmail.com>
Cr-Commit-Position: refs/heads/master@{#63632}
2019-09-10 09:02:07 +00:00
Michael Starzinger
83729f18eb [turbofan][cleanup] Remove dead ExplicitOperand class.
R=mvstanton@chromium.org
BUG=v8:9396

Change-Id: Iaf1f6af19d3c4236c6f1c4b215b90b2e390e81d3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789297
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63631}
2019-09-10 08:23:40 +00:00
Clemens Hammacher
3951a351b1 Remove slow and pointless test code
It looks like the loop is there to create objects and trigger GC. It's
also tailored to Crankshaft, which was removed long ago.
This code currently times out on some arm bots, and it's hard to see
any value in it. Thus remove it.

R=mslekova@chromium.org

Change-Id: Ia47d4f70d679f79cfea523f467ff7adc3360cf6c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1793065
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63630}
2019-09-10 08:22:19 +00:00
Mike Stanton
06c8d3116e ./unittests/compiler/regalloc OWNERS file is unnecessary.
NOPRESUBMIT=true
NOTRY=true
TBR=hpayer@chromium.org

Change-Id: I87108e6dd739d2e4d5459b3abc27dee1f36d430b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792164
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63629}
2019-09-10 08:20:31 +00:00
Zhi An Ng
08b9d21461 Revert "[wasm-simd] Implement F64x2ConvertI64x2 for x64"
This reverts commit 306bb635b7.

Reason for revert: Fails on Win64 msvc https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20-%20msvc/10601

Original change's description:
> [wasm-simd] Implement F64x2ConvertI64x2 for x64
> 
> Bug: v8:8460
> Change-Id: Icefb90c67af77ac93bd75b4e452ba426232de83a
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710332
> Commit-Queue: Zhi An Ng <zhin@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
> Reviewed-by: Bill Budge <bbudge@chromium.org>
> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63627}

TBR=bbudge@chromium.org,mstarzinger@chromium.org,gdeepti@chromium.org,zhin@chromium.org

Change-Id: I3ad568ec01f93e89ccc758170681035413b8414e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8460
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792232
Reviewed-by: Zhi An Ng <zhin@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63628}
2019-09-09 18:04:14 +00:00
Ng Zhi An
306bb635b7 [wasm-simd] Implement F64x2ConvertI64x2 for x64
Bug: v8:8460
Change-Id: Icefb90c67af77ac93bd75b4e452ba426232de83a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710332
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Bill Budge <bbudge@chromium.org>
Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63627}
2019-09-09 17:27:13 +00:00
Ross McIlroy
db3cc4a247 [Test] Add TurboProp test variant.
BUG=v8:9684

Change-Id: Ifdcb8497fbbae157df270e87451639779f8a78c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784917
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63626}
2019-09-09 16:49:24 +00:00
Santiago Aboy Solanes
c9ce4fb627 [CSA][cleanup] TNodify low hanging fruits in interpreter-generator
TNodify:
 * FloatOp
 * BigIntOp
 * Loads into their respective types
 * return type of:
  * GetContextAtDepth
  * ConstructWithSpread
  * Construct
  * CallBuiltin


Also TNodify CheckEnumCache in code-stub-assembler.

Bug: v8:6949, v8:9396
Change-Id: I79a90296b4851e47f4b89ed52fadfc9b61be1e6a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789161
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63625}
2019-09-09 16:28:02 +00:00
Seth Brenith
0a31d508f1 [tools] Teach v8_debug_helper where heap spaces start in ptr-compr mode
v8_debug_helper attempts to flag known object pointers when it can
recognize them, even if the memory pointed to is not available in the
crash dump. In ptr-compr builds, the first pages of the map space,
read-only space, and old space are always at the same offsets within the
heap reservation region, so we can more easily detect known objects.

Bug: v8:9376
Change-Id: I04e0d2357143d753f575f556e94f8fd42ce9d811
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1783729
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63624}
2019-09-09 16:14:12 +00:00
Ana Peško
2f8361d4f3 [regexp] Multiple interpreter executions tier-up
This CL implements the tier-up strategy where the interpreter can be used for
an arbitrary number of executions for every regex, before tiering-up to the
compiler. The only exception is for functional global replaces, where we
eagerly tier-up to native code right away.

To use the tier-up logic --regexp-tier-up=value needs to be set. It is
currently set to 0 by default.

Change-Id: I770857e5eae710a952fe47661cb42957c53848b4
Bug: v8:9566
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789299
Commit-Queue: Ana Pesko <anapesko@google.com>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63623}
2019-09-09 15:43:42 +00:00
Bill Budge
af063685fe [cleanup] Eliminate non-const reference parameters
Bug: v8:9429

Change-Id: I13780eab38230ea62334485e10a5fa4dbb432e90
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789395
Commit-Queue: Bill Budge <bbudge@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63622}
2019-09-09 15:32:24 +00:00
Andreas Haas
f87505ca3e [wasm][bigint] Allow only bigints as i64-global imports
The fuzzer found a crash when we want to execute the {valueOf} function
of an imported value for an i64-global. The problem is that we cannot
execute JavaScript at that moment (I did not check why, I guess we open
some scope at some point). I checked the WebAssembly spec now, and it
defines that only numbers are valid values for imported globals. I
adjust our bigint implementation accordingly with this CL, i.e. that
only bigint values are valid as imported i64-globalsl.
I also created github issues to discuss this problem.

R=jkummerow@chromium.org

Bug: chromium:1001804
Change-Id: I47f0b31fab53163346f341ad290fd3c58e7707bf
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792167
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63621}
2019-09-09 15:29:02 +00:00
Igor Sheludko
6165355e96 [interpreter] Use builtin names for bytecode handlers
... to make them unique. With this fix the --trace-turbo no longer
overwrites bytecode handler graphs and --trace-turbo-filter allows
to select exact bytecode handler version.

Bug: v8:9396
Change-Id: I260edc8872e320aadd5d70aa95cf5bf2cd24b22f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792904
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Auto-Submit: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63620}
2019-09-09 15:19:52 +00:00
Jakob Kummerow
3041f17089 Reland "[wasm-c-api][test] Run Wasm C API tests on bots"
by including them in the "bot_default" and "default" test sets.
The build targets are already up to date, only the test runner
needs to be updated.

This is a reland of a5d279da00.
This CL itself is unchanged since the previous attempt; the
issue that caused the revert was fixed by
https://chromium-review.googlesource.com/c/v8/v8/+/1781695.

Originally reviewed on:
https://chromium-review.googlesource.com/c/v8/v8/+/1768370

Change-Id: Ifd40a398b8d55ff948f5acfb25cb676937cb7794
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789158
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63619}
2019-09-09 14:14:32 +00:00
Santiago Aboy Solanes
f6ffe8e33e [CSA] Finish TNodifying interpreter assembler
TNodified:
 * AbortIfRegisterCountInvalid
 * MaybeDropFrames
 * TraceBytecodeDispatch
 * UpdateInterruptBudget
 * OperandOffset

There are currently no more Node* in interpreter-assembler!

Bug: v8:6949
Change-Id: I352a1fd18444c6ffb0f85d95f5da2e3e4a1681e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787432
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63618}
2019-09-09 13:33:32 +00:00
Ulan Degenbaev
b6b7de0d60 Reland x6 [arraybuffer] Rearchitect backing store ownership
This reverts commit 9da3483136

Original change's description:
> "Reland x4 [arraybuffer] Rearchitect backing store ownership"
>
> This is a reland of bc33f5aeba
>
> Contributed by titzer@chromium.org
>
> Original change's description:
> > [arraybuffer] Rearchitect backing store ownership
> >
> > This CL completely rearchitects the ownership of array buffer backing stores,
> > consolidating ownership into a {BackingStore} C++ object that is tracked
> > throughout V8 using unique_ptr and shared_ptr where appropriate.
> >
> > Overall, lifetime management is simpler and more explicit. The numerous
> > ways that array buffers were initialized have been streamlined to one
> > Attach() method on JSArrayBuffer. The array buffer tracker in the
> > GC implementation now manages std::shared_ptr<BackingStore> pointers,
> > and the construction and destruction of the BackingStore object itself
> > handles the underlying page or embedder-allocated memory.
> >
> > The embedder API remains unchanged for now. We use the
> > v8::ArrayBuffer::Contents struct to hide an additional shared_ptr to
> > keep the backing store alive properly, even in the case of aliases
> > from live heap objects. Thus the embedder has a lower chance of making
> > a mistake. Long-term, we should move the embedder to a model where they
> > manage backing stores using shared_ptr to an opaque backing store object.
>
> TBR=yangguo@chromium.org
>
> BUG=v8:9380,v8:9221,chromium:986318
>
> Change-Id: If671a4a9ca0476e8f084efae46e0d2bf99ed99ef
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1731005
> Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>

> Cr-Commit-Position: refs/heads/master@{#63041}

TBR=yangguo@chromium.org

Change-Id: I3cc4bb80081c662b1751234bc16a821c20e744be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792166
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63617}
2019-09-09 13:07:42 +00:00
Clemens Hammacher
27e22e6c82 [wasm] Async-ify wasm-stepping test
This increases readability of the wasm-stepping test significantly.
Drive-by: Use more 'let' instead of 'var'.

R=yangguo@chromium.org

Change-Id: If80ba3a4b92cd3ab1c994e17fb8f40f5526517da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789298
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63616}
2019-09-09 13:03:02 +00:00
Santiago Aboy Solanes
48de043bb7 [CSA] TNodified methods related to call and construct
Also TNodified context in interpreter-intrinsics-generator.cc

Bug: v8:6949
Change-Id: Ia5d5b4dd61aa83592f1c7e1b502f34504cb25dbd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784918
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63615}
2019-09-09 12:34:12 +00:00
Clemens Hammacher
06cf78e570 [wasm] Inline test-only method
After https://crrev.com/c/1789294, the {AddAndPublishAnonymousCode} has
only a single caller, {AddCodeForTesting}. Thus inline the method there.

R=mstarzinger@chromium.org

Change-Id: I698b37baa55221b82ead0b0bb8205233693ffced
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1789703
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63614}
2019-09-09 12:28:12 +00:00