Commit Graph

607 Commits

Author SHA1 Message Date
Ryan Macnak 68951ae5a1 [infra] Define NNBD versions of the RISC-V builders.
Change-Id: I7cb158d2e30e999564c11454783082837c7e5984
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259901
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-09-21 17:23:36 +00:00
Aske Simon Christensen d0d509d4fc [dart2wasm] Add relevant co19 and lib tests
A few co19 tests are marked as skipped for now, as they are hanging
due to https://github.com/dart-lang/sdk/issues/50026

Increase the number of shards to match the increased number of tests.

Change-Id: Ib91127986d13140164c357a22f2d1d9b7b2b7636
Cq-Include-Trybots: luci.dart.try:dart2wasm-linux-x64-d8-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260361
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2022-09-21 16:11:22 +00:00
Jonas Termansen 6622249c7f [infra] Remove win SDK builder test matrix entry.
Both the production and try builders for the Windows SDK have been
migrated to the new recipe that doesn't use the test matrix.

Bug: b/247507699
Change-Id: I7a603e716492ffa272a43eea959b721c8c4a8f1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259842
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2022-09-20 10:54:35 +00:00
Jonas Termansen 822ae59aca [infra] Remove mac SDK builder test matrix entry.
Both the production and try builders for the macOS SDK have been
migrated to the new recipe that doesn't use the test matrix.

Bug: b/236109661
Change-Id: I4f578a162c866da6673b228023adb5966f1ca505
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259423
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2022-09-15 20:10:09 +00:00
Ryan Macnak 84a39b064f [infra] Disable Goma on dartk-linux-release-riscv64-qemu.
This is faster than Goma's local fallback.

Change-Id: Ieedfaf773279270ed6138d189d3b6b5ab6bbc8d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256242
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-08-24 21:09:01 +00:00
Srujan Gaddam 9f10a3bc16 [pkg:js] Add JsInteropChecks to Wasm backend
Also cleans up and unifies some behavior across the backends:

- avoiding reinstantiating JsInteropChecks for every library
- having the native classes as a member instead of recomputing on dart2js

Now that these checks exist, we can add lib/js/static_interop_test to
the test directories the wasm trybot runs.

Change-Id: I912aae988afe7915e80cc13d00b8c47818dfa520
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255760
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2022-08-19 17:48:38 +00:00
Michael Thomsen a23a6b250f Discontinue the non-null FFI sample.
Please refer to the null safety version:
https://github.com/dart-lang/sdk/tree/main/samples

Bug: none
Change-Id: I4db097842b35129f184516aa9ac5cd0e4d165092
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255246
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2022-08-18 15:44:04 +00:00
Ryan Macnak 4f7bb16cc5 [vm] Add a stub simx64.
This allows building gen_snapshot with host=arm64, target=x64.

TEST=ci
Bug: https://github.com/flutter/flutter/issues/103386
Change-Id: I478cc0917462896de9b598455d2ed68401323b50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252962
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-07-29 18:11:01 +00:00
William Hesse 145a9230de [test] Change default branch for test runner to main
Change-Id: Id5f6676c916810b6d4748dda1aff3ee4438a112b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251764
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
2022-07-18 12:48:33 +00:00
Alexander Thomas 3e74df1fbc [infra] Un-shard vm-kernel-precomp-mac-product-x64
Fixes: https://github.com/dart-lang/sdk/issues/49174
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-mac-product-x64-try
Change-Id: I6e6c95e50ca4fdf9316e5a370de4c60e017e6a6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251262
Reviewed-by: William Hesse <whesse@google.com>
2022-07-13 10:34:05 +00:00
Ryan Macnak 6e3ef8b9e6 [standalone] Update tcmalloc to 2.10.
Remove some architecture limitations.

TEST=ci
Change-Id: I9703729d3e871687cd4951ec40d3d09ae579871f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247864
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2022-07-06 17:34:20 +00:00
Alexander Thomas 5eb920d40f [infra] Optimize shards for the analyzer builders
Fixes: b/237755665
Change-Id: I11c066e8db7665ccd15ee671e2a706759cb1ef5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/250386
Auto-Submit: Alexander Thomas <athom@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2022-07-05 18:19:49 +00:00
Devon Carew 2cd9404f26 [infra] move pkg/ analysis to the pkg- bots and analyze all of pkg/ (and tools/).
Change-Id: I7328a130c629e15695d0d2a1feffe00c50b45249
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/250411
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2022-07-02 23:48:25 +00:00
Janice Collins 822cd1cbd5 Remove dartanalyzer from built SDK.
Bug: https://github.com/dart-lang/sdk/issues/48457
Change-Id: Ic0d038299712989b8445859590ff870ce3bdc13a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249662
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-07-01 17:43:20 +00:00
Alexander Thomas 81d86a05b2 [testing] Simplify analyzer configurations
Bug: b/237755665
Cq-Include-Trybots: luci.dart.try:analyzer-linux-release-try,analyzer-mac-release-try,analyzer-win-release-try
Change-Id: Ia48331d6fd6bf00df9dbe1b895e157a0957064f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249608
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-07-01 16:16:42 +00:00
Nicholas Shahan 6bcb186436 [ddc] Add new test and builder configurations
- Add new versions of exisiting configurations to support the arm64
architecture. The current DDC configurations don't name one but
default to x64. In the future I would like to remove the default
and simply specify (x64|arm64) but I'm not making this change now
because I don't want to break the history in the test database.

- Add new "canary" named test configurations that rely on a
specific builder to pass a build time flag
`--gn-args ddc_canary=true`.

Change-Id: I675899ea2e952e2183b8379b60ddaa67e8b864a5
Issue: https://github.com/dart-lang/sdk/issues/48950
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243562
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2022-06-14 17:54:47 +00:00
Devon Carew 2acf036023 move the third_party/pkg_tested packages into third_party/pkg
Change-Id: I7e2499aafb1ae85da4699358909ac67337593a11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247927
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-06-13 17:04:36 +00:00
Alexander Thomas ddad653842 [test_runner] Use package:args
* Use lowercase-with-hyphens for option names
* Add backwards compatible aliases_with_underscores.
* Deny list `reset-browser-configuration`.
* Add more tests.

Bug: b/232495224
Change-Id: Ife56c48450b5e15577c4aec859355e80c2f57bdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245366
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2022-05-24 10:51:51 +00:00
Ryan Macnak 93f3065cac [infra] Define AOT product builders for Mac and Windows.
Change-Id: I3bc96b69f751679165afeb83311533161c13aafc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245060
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2022-05-18 16:24:14 +00:00
Aske Simon Christensen f5e63fdca8 [dart2wasm] Add missing files in fileset and reduce number of shards
This matches previous changes to the build process for dart2wasm.

Change-Id: Ib55b78fccd6c400edab15758e68d74af15a58d55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245164
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2022-05-18 15:19:59 +00:00
Devon Carew 063ee76dc7 [pkg/dart2native] address several lint issues
Change-Id: I3414710e504e1c63a9689028bbcca066f913d7b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243923
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2022-05-10 16:50:13 +00:00
Jonas Termansen 5eb2734296 [infra] Remove .packages from filesets.
.dart_tool/package_config.json is already present in each fileset.

Bug: https://github.com/dart-lang/sdk/issues/48275
Change-Id: Ib75fd91060f0b9eaeb1446cf65cb8678b2ddc63c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/240842
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2022-05-10 11:34:15 +00:00
Aske Simon Christensen 6c7604291c [dart2wasm] Build platform dill and compile dart2wasm to AOT snapshots
This adds a --platform= option to dart2wasm to read the SDK libraries
from that dill file instead of compiling them from source every time.
If the option is not given, the SDK libraries are compiled, like before.

Also adds a "dart2wasm" build target, which will build the dart2wasm
platform dill and compile dart2wasm to two AOT snapshots (with and
without asserts). The dart2wasm scripts in sdk/bin are updated to run
via these snapshots and use this platform dill.

This speeds up test runs for the dart2wasm-hostasserts-linux-x64-d8
configuration by approximately 45x.

Change-Id: If2c7750a6eb39725310745f887792784d0dfc583
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243624
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2022-05-10 10:06:06 +00:00
Devon Carew 69bd8e7c5b [core libs] address ~5 analysis issues in the docs for dart:isolate
Change-Id: Iebe275335fd098419ede97dbb8baff8efaf9dc1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241161
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-05-05 16:58:55 +00:00
Devon Carew eec99f4f0b [core libs] add dart:developer, dart:js_util, and dart:wasm to the set of validated libraries
Change-Id: Id54af09f7b7559c5eb751db822aba8cd6b413559
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/241160
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-04-25 15:53:32 +00:00
Ryan Macnak 8778e322cc [build] Toolchain setup for ARM64 Windows.
Bug: https://github.com/dart-lang/sdk/issues/47824
Change-Id: I75fa3be1ea66d7f9c5fbafc8cd05640324531cc1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/239542
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-04-20 17:21:58 +00:00
Devon Carew 47c011abd7 [infra] re-land work to auto-generate .dart_tool/package_config.json
Change-Id: I0ec833062bbffa5a3f01d6dc4152b29cf0461214
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/239721
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-04-12 17:21:02 +00:00
Ryan Macnak 2d530c1556 [infra] Upload RISCV64 SDK.
gclient sync will need a prebuilt SDK on RISCV64 hosts.

Bug: https://github.com/dart-lang/sdk/issues/48545
Change-Id: I90358d27c66e1ec8228419ae0fa463c98e2cb5e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237627
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-03-30 22:18:50 +00:00
Joshua Litt 856fcb9c8c [dart2wasm] Add experimental JS interop API for dart2wasm.
This is a fork of `js_util` to support the needs of Wasm. It is very
much a WIP. We're landing this now to facilitate prototyping, and so we
can get a sense of what the right JS interop API might look like for
Wasm.

Change-Id: I8b2ddda07e906f1938d4cd5fe0e63203e9cdd6d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230120
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-03-30 17:00:20 +00:00
Daco Harkes 89c5ddef4f [infra] Add MSVC windows to test matrix
Includes precompiled build targets to ensure we try to build most of the
C++ code.

Does not include any tests. We assume that if the build succeeds the
executables will behave the same. If this turns out to not be the case,
we could add a tests later.

Bug: https://github.com/dart-lang/sdk/issues/48544

Change-Id: I5f6b74676d9bb705d29303c8597d4f420f9030d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237340
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2022-03-15 12:17:28 +00:00
Alexander Thomas 54fedc818d [infra] Increase the number of shards for dart2wasm to 30
Change-Id: I7e985e52d01f821db9c3626eac433e7352484217
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/235221
Reviewed-by: William Hesse <whesse@google.com>
2022-03-03 14:47:41 +00:00
Joshua Litt 66f14f2996 [dart2wasm] Double number of shards for dart2wasm bot.
Change-Id: Ib424a6a96b48e241667f9d7c9cbe1afe6920b5ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234902
Auto-Submit: Joshua Litt <joshualitt@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2022-03-02 18:30:42 +00:00
Devon Carew c7680744b0 Revert "Auto-generate the package_config.json file on gclient sync."
This reverts commit 92868580b4.

Reason for revert: I'm seeing failures in golem:

ninja: error: '../../third_party/dart/.dart_tool/package_config.json', needed by 'vm_outline_strong.dill', missing and no known rule to make it

Original change's description:
> Auto-generate the package_config.json file on gclient sync.
>
> Change-Id: Ibb5e548c0738e7dd0061433cf054af8336a0683b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234320
> Reviewed-by: Alexander Thomas <athom@google.com>
> Reviewed-by: Lasse Nielsen <lrn@google.com>
> Commit-Queue: Devon Carew <devoncarew@google.com>

TBR=lrn@google.com,devoncarew@google.com,athom@google.com

Change-Id: Ic2b7ae3feedfa064ddbbdb0b36f0e3db088bf177
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234802
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-03-01 18:20:29 +00:00
Devon Carew 92868580b4 Auto-generate the package_config.json file on gclient sync.
Change-Id: Ibb5e548c0738e7dd0061433cf054af8336a0683b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/234320
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2022-03-01 17:05:28 +00:00
Joshua Litt 75ea74d31a [dart2wasm] Test matrix changes for dart2wasm.
Change-Id: I2388f92a4300e5ee691182e7380091499bb02865
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/233503
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2022-02-19 18:10:33 +00:00
Aske Simon Christensen 6faa5f3bd0 [dart2wasm] Initial commit for the Dart-to-WasmGC compiler.
This is work in progress. Several language features are still
unimplemented or only partially implemented.

Instructions for running the compiler and its output can be found in
pkg/dart2wasm/dart2wasm.md. These procedures are preliminary and
expected to change.

The best version of d8 to use for this version of dart2wasm is 10.0.40,
as explained here: https://dart-review.googlesource.com/c/sdk/+/232097

This commit also adds a dart2wasm-hostasserts-linux-x64-d8 testing
configuration to run the compiler over the test suite.

The history of the prototype that this is based on can be seen here:

https://github.com/askeksa-google/sdk/tree/wasm_prototype

Issue: https://github.com/dart-lang/sdk/issues/32894

Change-Id: I910b6ff239ef9c5f66863e4ca97b39b8202cce85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175728
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2022-02-16 11:11:14 +00:00
Ryan Macnak 554e5660b7 [infra] Simply vm filesets.
Listing each possible output directory separately doesn't reduce the amount copied to shards as there are no other files in "out" to skip.

Change-Id: Ie55bb68d3ffe670d48eba5b03af2bc8ce7ce0dcc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231337
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-02-07 19:02:46 +00:00
Jens Johansen b41922f925 [DDC][infra] Shard DDC nnbd differently
Currently:
 * "ddc nnbd weak tests" is split into 5 shards.
 * "ddc nnbd weak co19 tests" is split into 2 shards.
 * "ddc nnbd strong tests" is not spit into shards.
 * "ddc nnbd strong co19 tests" is not spit into shards.

From a recent run taking a total of 45 minutes the timings
were like this:

```
ddc nnbd weak tests shard 1: 02:57
ddc nnbd weak tests shard 2: 01:56
ddc nnbd weak tests shard 3: 02:16
ddc nnbd weak tests shard 4: 01:49
ddc nnbd weak tests shard 5: 02:31
```

(i.e. a combined total time of 11:39 if run one after another)

```
ddc nnbd weak co19 tests shard 1: 08:45
ddc nnbd weak co19 tests shard 2: 09:48
```

(i.e. a combined total time of 18:33 if run one after another)

```
ddc nnbd strong tests: 09:51
```

```
ddc nnbd strong co19 tests: 20:44
```

Here I try to change the sharding "robin hood style" so that
"ddc nnbd weak tests shard" which seems pretty fast gets fewer,
but "ddc nnbd strong co19 tests" gets sharded.

Hopefully the result will be something like

ddc nnbd weak tests shard 1: 06:00
ddc nnbd weak tests shard 2: 06:00
ddc nnbd weak co19 tests shard 1: 09:00
ddc nnbd weak co19 tests shard 2: 09:00
ddc nnbd strong co19 tests shard 1: 7:00
ddc nnbd strong co19 tests shard 2: 7:00
ddc nnbd strong co19 tests shard 3: 7:00
ddc nnbd strong tests: 10:00

Which - with the same number of shards used - would hopefully cut off
~20 minutes (as the shards run concurrently)

Update: Total runtime was ~21 minutes, and runtimes seems pretty
agreeing with the expected.

Change-Id: Ie699e5687ab9a0d49cd197a4064bc8007d1dd806
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231700
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2022-02-04 17:41:59 +00:00
Ryan Macnak 3d2371180f [infra] Add missing out directories to vm-kernel fileset.
Change-Id: I41e34cd88084b057225fac33baf1e7160e0a8afa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231281
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-02-02 23:00:16 +00:00
Ryan Macnak 66efc26520 [infra] Can't use clang when cross-building for RISC-V.
Change-Id: If8d37c1569550feb252b12c9970a786f4462d4f7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230951
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-02-02 00:18:26 +00:00
Ryan Macnak d1adda2be5 [infra] Fill out some missing builders in the test matrix.
Change-Id: I1e8f24b61bb704e1d9d4c8c23dd4d464ee32290b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230380
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2022-01-28 08:46:11 +00:00
Michael Thomsen 208e7bc2e2 Remove dartdoc commands
Part of previously announced deprecation, see:
https://github.com/dart-lang/sdk/issues/46100

Fixes https://github.com/dart-lang/sdk/issues/44610

Change-Id: Ic3eaa793149da412b7520b154a0909ee59fbfb5d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/228647
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2022-01-27 08:12:00 +00:00
Ryan Macnak 230bdbd229 [infra] Split the fuzzer build into steps to avoid exceeding the maximum number of threads.
Change-Id: I311a8b66e113cf99b946a356e3eabc8fadf419e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229065
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-01-20 16:26:57 +00:00
Ryan Macnak 04ba20aa98 [vm] Support RISC-V.
Implements a backend targeting RV32GC and RV64GC, based on Linux standardizing around GC. The assembler is written to make it easy to disable usage of C, but because the sizes of some instruction sequences are compile-time constants, an additional build configuration would need to be defined to make use of it.

The assembler and disassembler cover every RV32/64GC instruction. The simulator covers all instructions except accessing CSRs and the floating point state accessible through such, include accrued exceptions and dynamic rounding mode.

Quirks:
  - RISC-V is a compare-and-branch architecture, but some existing "architecture-independent" parts of the Dart compiler assume a condition code architecture. To avoid rewriting these parts, we use a peephole in the assembler to map to compare-and-branch. See Assembler::BranchIf. Luckily nothing depended on taking multiple branches on the same condition code set.
  - There are no hardware overflow checks, so we must use Hacker's Delight style software checks. Often these are very cheap: if the sign of one operand is known, a single branch is needed.
  - The ranges of RISC-V branches and jumps are such that we use 3 levels of generation for forward branches, instead of the 2 levels of near and far branches used on ARM[64]. Nearly all code is handled by the first two levels with 20-bits of range, with enormous regex matchers triggering the third level that uses aupic+jalr to get 32-bits of range.
  - For PC-relative calls in AOT, we always generate auipc+jalr pairs with 32-bits of range, so we never generate trampolines.
  - Only a subset of registers are available in some compressed instructions, so we assign the most popular uses to these registers. In particular, THR, TMP[2], CODE and PP. This has the effect of assigning CODE and PP to volatile registers in the C calling convention, whereas they are assigned preserved registers on the other architectures. As on ARM64, PP is untagged; this is so short indices can be accessed with a compressed instruction.
  - There are no push or pop instructions, so combining pushes and pops is preferred so we can update SP once.
  - The C calling convention has a strongly aligned stack, but unlike on ARM64 we don't need to use an alternate stack pointer. The author ensured language was added to the RISC-V psABI making the OS responsible for realigning the stack pointer for signal handlers, allowing Dart to leave the stack pointer misaligned from the C calling convention's point of view until a foreign call.
  - We don't bother with the link register tracking done on ARM[64]. Instead we make use of an alternate link register to avoid inline spilling in the write barrier.

Unimplemented:
 - non-trivial FFI cases
 - Compressed pointers - No intention to implement.
 - Unboxed SIMD - We might make use of the V extension registers when the V extension is ratified.
 - BigInt intrinsics

TEST=existing tests for IL level, new tests for assembler/disassembler/simulator
Bug: https://github.com/dart-lang/sdk/issues/38587
Bug: https://github.com/dart-lang/sdk/issues/48164
Change-Id: I991d1df4be5bf55efec5371b767b332d37dfa3e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217289
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2022-01-20 00:57:57 +00:00
Ben Konyi 9f5ef6d5bc [ DDS ] Move package:dds/vm_service_extensions.dart into package:dds_service_extensions
Reduces dependency complexity for tools which don't need the full
contents of package:dds

Change-Id: Ib9c5ce93eea72421f56114ab8a8efaa0dca6ae02
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/225240
Reviewed-by: Kenzie (Schmoll) Davisson <kenzieschmoll@google.com>
2022-01-10 21:11:33 +00:00
Joshua Litt 53c21d7b66 [infra] Remove use-sdk from dart2js canary builders.
Change-Id: Id6241b0eda38399447b5ed07f66517de4acac1e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/224620
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2021-12-20 18:39:42 +00:00
Vyacheslav Egorov 13d27d669d [vm] Improve Code cluster layout for startup
This change bakes binary search table which maps PC ranges
to corresponding stack maps and Code objects (if still present
in the snapshot) into RO data section of the snapshot - instead
of constructing it at load time.

This allows to considerably reduce amount of work done when
loading Code cluster for programs which have majority of their
Code objects discarded (i.e. in DWARF stack traces mode): as
we no longer write / read any information for discarded Code
objects.

This CL also changes program visitor to deduplicate Code objects
if their instructions are deduplicated in AOT mode. Only a single
Code object can be choose as a representative for the given
PC range so it does not make sense to write multiple Code objects
into the snapshot which refer to the same Instructions.

The overall improvement is hard to quantify but ReadProgramSnapshot
shows the following improvement when starting a large
Flutter application on a slow Android device:

  before  223.55±59.94 (192.02 .. 391.74) ms
  after   178.06±47.03 (151.31 .. 291.34) ms

This CL packs CompressedStackMaps next to the binary search table
itself allowing us to address them via offsets instead of
pointers.

Snapshot sizes are actually affected positively by this change. On
the same large Flutter application I see

  DWARF stack traces on:  -1.34% total SO size
  DWARF stack traces off: -1.63% total SO size

Issue https://github.com/dart-lang/sdk/issues/46116

TEST=ci

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-dwarf-linux-product-x64-try,vm-kernel-precomp-linux-debug-simarm64c-try,vm-kernel-precomp-linux-debug-simarm_x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-precomp-linux-product-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-simarm_x64-try,vm-kernel-precomp-linux-release-x64-try
Change-Id: Ic997045a33daa81ec68df462a0792915885df66b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220766
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2021-12-16 10:39:49 +00:00
Sam Rawlins 296167d3c9 Add flutter/gallery to flutter-analyze bot
Fixes https://github.com/dart-lang/sdk/issues/47527

Change-Id: I24a7b20f9756197a058eefd507dc139d19762642
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222660
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-12-14 22:38:45 +00:00
Joshua Litt 80119cb900 [infra] Add dart2js-canary builder.
Change-Id: Ibf41b38e2ee590aed46f4f763f103c0e42bca311
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221985
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2021-12-08 17:04:51 +00:00
Joshua Litt b735151bbc [dart2js] Restore test coverage for modular analysis.
Change-Id: Iedfc6c1779064db469c209545c361e047ee0318c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221026
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2021-11-30 01:02:34 +00:00