Find a file
Vyacheslav Egorov 9fe6571a75 [vm/compiler] Let Parameter carry its location
Previously we would specify parameter offset and base register and
use SpecialParameter instruction to represent values passed in
registers.

This CL simplifies and merges these concepts: now every Parameter
instruction simply carries around its Location.

This CL also tweaks printing of stack slot locations so that they
are easier to read: `S+1` becomes `fp[1]` or `sp[1]` depending on the
base register, DS+1 becomes `dword fp[1]` / `dword sp[1]` and `QS+1`
expands to `qword fp[1]`/`qword sp[1]`.

Additionally we clean `BlockBuilder` API a bit - instead of
passing `with_frame` to `AddParameter` we make this the
property of the builder itself, set at construction time.

Issue https://github.com/dart-lang/sdk/issues/54955
Closes https://github.com/dart-lang/sdk/issues/31956

TEST=ci

Cq-Include-Trybots: luci.dart.try:vm-aot-linux-debug-simarm_x64-try,vm-aot-linux-release-arm64-try,vm-aot-linux-release-simarm_x64-try,vm-ffi-qemu-linux-release-arm-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-linux-product-x64-try,vm-aot-mac-release-x64-try
Change-Id: Ie24dc6b6c47b3a45db722813218bc53c3a06c91d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353081
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-02-20 23:54:08 +00:00
.dart_tool
.github Bump actions/upload-artifact from 4.1.0 to 4.3.0 2024-01-29 17:59:54 +00:00
benchmarks [dart2wasm] Switch binaryen optimization levels from -O3 to -Os 2024-02-14 13:45:13 +00:00
build Revert "Roll zlib to 646b7f569718921d7d4b5b8e22572ff6c76f2596." 2024-02-13 10:03:56 +00:00
docs [docs] minor cleanup of the docs/ directory 2023-11-15 20:06:51 +00:00
pkg Clean up TODOs in TryConstantEvaluator. 2024-02-20 21:46:43 +00:00
runtime [vm/compiler] Let Parameter carry its location 2024-02-20 23:54:08 +00:00
samples fix use of deprecated members in ffi samples 2024-01-31 22:31:59 +00:00
sdk [VM/Service] Define vmservice entry points only under non product mode 2024-02-20 22:48:47 +00:00
tests Fix analyzer handling of record literal type inference. 2024-02-20 20:21:48 +00:00
third_party [dap] Restore DAP readme 2024-02-12 07:54:09 +00:00
tools [vm] Make iso-stress builder use valid -Dtest_configuration when compiling the giant stress test 2024-02-20 09:39:00 +00:00
utils Reland "[ddc] Fix running d8 with test.py" 2024-02-13 20:09:58 +00:00
.clang-format
.gitattributes Remove the legacy "_2" tests. \o/ 2023-11-17 20:17:23 +00:00
.gitconfig
.gitignore [docs] update the messaging for dart:html and related libraries 2024-01-22 21:28:02 +00:00
.gn [build] Switch to Fuchsia core SDK. 2023-11-10 19:23:11 +00:00
.mailmap
.style.yapf
AUTHORS
BUILD.gn [vm] Do not bundle dart.lib in the Dart SDK 2024-02-15 14:09:37 +00:00
CHANGELOG.md [io] Make it possible to change the line ending output by stdout and stderr. 2024-02-16 20:06:03 +00:00
codereview.settings
CONTRIBUTING.md Update CONTRIBUTING.md 2023-11-20 09:29:37 +00:00
DEPS Bump http to 6d9f9efe04886d9685fbfb1a76ba24a71b6c951c 2024-02-20 20:53:18 +00:00
LICENSE
OWNERS Assign owners to each top level file. 2023-12-14 12:38:11 +00:00
PATENT_GRANT
PRESUBMIT.py [presubmit] first check for formatting errors in bulk. 2024-02-15 19:29:42 +00:00
README.dart-sdk Update README.dart-sdk for inclusion of AOT snapshots 2023-11-21 10:33:22 +00:00
README.md Update readme content 2023-12-18 15:30:58 +00:00
sdk.code-workspace [cleanup] Remove co19_2 and other references to _2 suites 2023-11-22 11:15:57 +00:00
sdk_args.gni
SECURITY.md
WATCHLISTS [analyzer] Properly close analyzer WATCHLISTS entry 2023-12-10 18:02:25 +00:00

Dart

An approachable, portable, and productive language for high-quality apps on any platform

Dart is:

  • Approachable: Develop with a strongly typed programming language that is consistent, concise, and offers modern language features like null safety and patterns.

  • Portable: Compile to ARM, x64, or RISC-V machine code for mobile, desktop, and backend. Compile to JavaScript or WebAssembly for the web.

  • Productive: Make changes iteratively: use hot reload to see the result instantly in your running app. Diagnose app issues using DevTools.

Dart's flexible compiler technology lets you run Dart code in different ways, depending on your target platform and goals:

  • Dart Native: For programs targeting devices (mobile, desktop, server, and more), Dart Native includes both a Dart VM with JIT (just-in-time) compilation and an AOT (ahead-of-time) compiler for producing machine code.

  • Dart Web: For programs targeting the web, Dart Web includes both a development time compiler (dartdevc) and a production time compiler (dart2js).

Dart platforms illustration

License & patents

Dart is free and open source.

See LICENSE and PATENT_GRANT.

Using Dart

Visit dart.dev to learn more about the language, tools, and to find codelabs.

Browse pub.dev for more packages and libraries contributed by the community and the Dart team.

Our API reference documentation is published at api.dart.dev, based on the stable release. (We also publish docs from our beta and dev channels, as well as from the primary development branch).

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.