Alexander Markov
28d7984e31
[modular_aot] Use primary constructors
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I7476ec7e66edd958c66e31dabcd6ab8d818594e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509640
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-06-08 10:32:03 -07:00
Alexander Markov
ea1360fbaf
[modular_aot] Fixes for code generation of TypeCast
...
* Use exact code pattern for calling TTS which is expected by
the VM at runtime.
* Always set instantiator/function type arguments registers for TTS.
* List all registers potentially clobbered by TTS.
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I011bcfc8b755864271877cc36d365ba2b5f10648
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509480
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-06-08 07:17:10 -07:00
Alexander Markov
3060ea57d7
[modular_aot] Handle parallel moves when the same source location is used multiple times
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Iffa54fdfd3b221ed5f25c49214aa920b2ae590ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509064
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-06-04 06:20:20 -07:00
Alexander Markov
8b77454b37
[modular_aot] Fix LiveRange.findRegisterUseAfter
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I6a599d32001d6df31e61b8ea5c68569792cc82bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508704
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-06-03 12:10:01 -07:00
Alexander Markov
b6015976c9
[modular_aot] Fix splitting of a live range which has a split tail already
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I9d78195dcfd6f70f793c98710106fa5f1f8834c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/508280
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-06-02 05:42:48 -07:00
Alexander Markov
1aa61dabf7
[modular_aot] Fix accesses to certain fields of Dart objects
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I4c14828fec7487b2d97643d8089fb2d4a18e754e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505020
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-20 11:43:22 -07:00
Alexander Markov
c0902a81a0
[modular_aot] Code generation for NullCheck
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I0a3ba9dae62514ed9330366e9e4e33b38f44e4c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504760
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-05-20 11:42:54 -07:00
Alexander Markov
ca9c12f1b6
[modular_aot] Support more cases of parallel moves and double immediates
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I8b167ea819d4247ca748f5200b5509e99a68d56e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503560
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-18 10:10:21 -07:00
Alexander Markov
a99020a90b
[modular_aot] Revise canBeSmi predicate
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I423814f5ca1ebe57cdcd980a0844e9feaf7e57e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503900
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-18 08:12:02 -07:00
Alexander Markov
ccbcd76265
[modular_aot] Records
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ie6ba4148ca9193b5b28de3d90efa7bb55427ef53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/498660
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-18 08:03:32 -07:00
Alexander Markov
e09282c8f2
[modular_aot] Closures, part 2
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Id8029dddd75b5f771ddf8197190d18aea9efd192
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503080
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-13 05:58:22 -07:00
Alexander Markov
a04ca7e2fa
[modular_aot] Write barrier wrapper stub
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I9d3909dffead10d3b820c89ad176ff0c119164c0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/501680
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-08 07:30:22 -07:00
Alexander Markov
76ffb5053c
[modular_aot] Instantiation of type arguments
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I019ebc77c9e3f8d1748797fe76b17ccce82a0d5d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/501260
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-05-08 07:22:17 -07:00
Alexander Markov
aec3f9f9b0
[modular_aot] Fix matching names of optional parameters
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I0f3d51190718f0551504f11faf5fa991e534ddbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/500600
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-08 07:15:08 -07:00
Alexander Markov
3ea6ec325b
[modular_aot] Code generation for unary int -, ~, toDouble
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I7050f3c751647a969d1f4b25529bb263ccde4826
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/500581
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-05-08 07:14:06 -07:00
Alexander Markov
c067ade460
[modular_aot] Code generation for comparisons (except FP and identical)
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I2a48c47e2e04b095960fb45164fe89c97cb2452c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/500483
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-05-08 07:00:00 -07:00
Alexander Markov
27a5d75c2f
[modular_aot] Code generation for UnaryBoolOp
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ia3913b94b6aa357b352d10572342fab3b55b4825
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/500482
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-06 09:48:04 -07:00
Alexander Markov
6251367ab1
[modular_aot] Compile closure functions and support captured variables
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ibbb4b4ed73c89f458e2b08898a96f4f1979965eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/492663
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-06 09:47:58 -07:00
Alexander Markov
470f6e9fad
[modular_aot] Regalloc fixes
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Idceb800084ace76b880f170683686b532ac4df67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/499941
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-05-04 08:16:18 -07:00
Alexander Markov
54e607854a
[modular_aot] Code generation for async/async*/sync*/await/yield/yield*
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ie8da89e09bfad68c65980abc1df69f9273bd6d00
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/497400
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-28 05:45:31 -07:00
Alexander Markov
dff95e77a4
[modular_aot] Avoid generating code for instance members of mixins
...
After mixin transformation, original members of mixins should not be
called. Only their clones in the mixin application classes can be
called.
By removing their bodies we can reduce code size and avoid any
complexity related to super-invocations of abstract members.
Change-Id: I0ae1bbac6e4c82356841fdc870bfd8ca1bac8fb6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/497102
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-22 06:30:33 -07:00
Alexander Markov
11d732e537
[modular_aot] Translate async/async*/sync*/await/yield/yield* to CFG IR
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/496660
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-22 06:19:44 -07:00
Alexander Markov
7bf09be8f3
[modular_aot] Bugfixes and improvements in regalloc
...
TEST=pkg/native_compiler/testcases/register_allocator_test.dart
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I22d88a6962290bd8aab0d4d3239d652e69242fbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/495522
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-21 08:45:52 -07:00
Alexander Markov
4f960f11b1
[modular_aot] Initial implementation of late local variables
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I8414ff832a569c106728fc583ece6248f73c91e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/494942
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-16 07:18:48 -07:00
Alexander Markov
015b06f0f5
[modular_aot] Fix register eviction to ignore AnyLocation uses
...
TEST=pkg/native_compiler/testcases/register_allocator_test.dart
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ibffdadfbf5faf4856f8cd2c5520acdb6853cb47f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/495520
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-16 07:17:04 -07:00
Alexander Markov
51d1c8923a
Reland "[vm,dart2bytecode,modular_aot] Variable-length closure objects"
...
This is a reland of commit 88496ba1c3
Fixes on top of the original change:
* Closure layout is changed to avoid gap between fixed fields and
variable-length elements on compressed pointers architecture.
This gap was causing crashes in the GC when scanning closure
objects.
* pkg/vm_snapshot_analysis/test/instruction_sizes_test is fixed
on arm64 by decreasing threshold for detecting size changes.
Original change's description:
> [vm,dart2bytecode,modular_aot] Variable-length closure objects
>
> Extend closure objects with variable number of elements to capture.
> This is needed to support capturing multiple independent contexts
> after capturing is computed in the front-end.
>
> The following fixed Closure fields are moved into variable-length
> elements:
> - delayed type arguments;
> - instantiator type arguments;
> - function type arguments;
> - context.
>
> Number of elements and presence/indices of various type arguments
> are encoded into the new length_and_flags field in the Closure.
>
> Most closure objects don't need any of the type arguments so this
> change will reduce average Closure object size.
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61572
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I8685e632e2d0832766ecdc470f3cf9a6b880de48
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/494243
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Tess Strickland <sstrickl@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-04-10 06:15:22 -07:00
Alexander Markov
0dfaa16dc7
Revert "[vm,dart2bytecode,modular_aot] Variable-length closure objects"
...
This reverts commit 88496ba1c3 .
Reason for revert: crashes on arm64c
Original change's description:
> [vm,dart2bytecode,modular_aot] Variable-length closure objects
>
> Extend closure objects with variable number of elements to capture.
> This is needed to support capturing multiple independent contexts
> after capturing is computed in the front-end.
>
> The following fixed Closure fields are moved into variable-length
> elements:
> - delayed type arguments;
> - instantiator type arguments;
> - function type arguments;
> - context.
>
> Number of elements and presence/indices of various type arguments
> are encoded into the new length_and_flags field in the Closure.
>
> Most closure objects don't need any of the type arguments so this
> change will reduce average Closure object size.
>
> TEST=ci
> Issue: https://github.com/dart-lang/sdk/issues/61572
> Issue: https://github.com/dart-lang/sdk/issues/61635
>
> Change-Id: I7ca5cec0fd8725c432a01d51781fb14e803997dd
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/489482
> Commit-Queue: Alexander Markov <alexmarkov@google.com >
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Reviewed-by: Slava Egorov <vegorov@google.com >
> Reviewed-by: Tess Strickland <sstrickl@google.com >
Issue: https://github.com/dart-lang/sdk/issues/61572
Issue: https://github.com/dart-lang/sdk/issues/61635
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I94c88f8922f6ea49251e942ba791fee714911e25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/494261
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Nate Biggs <natebiggs@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-09 14:12:09 -07:00
Alexander Markov
88496ba1c3
[vm,dart2bytecode,modular_aot] Variable-length closure objects
...
Extend closure objects with variable number of elements to capture.
This is needed to support capturing multiple independent contexts
after capturing is computed in the front-end.
The following fixed Closure fields are moved into variable-length
elements:
- delayed type arguments;
- instantiator type arguments;
- function type arguments;
- context.
Number of elements and presence/indices of various type arguments
are encoded into the new length_and_flags field in the Closure.
Most closure objects don't need any of the type arguments so this
change will reduce average Closure object size.
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61572
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I7ca5cec0fd8725c432a01d51781fb14e803997dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/489482
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
Reviewed-by: Tess Strickland <sstrickl@google.com >
2026-04-09 12:22:21 -07:00
Alexander Markov
5789ef3f58
[modular_aot] Revise code generation for TypeTest
...
* Fix operand register.
* Correct Smi fast path.
* Implement slow path via runtime call.
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I12cac0db8465a057ce426e33dcbd8c9beb1823a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/493460
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-08 07:52:06 -07:00
Alexander Markov
da81aaa165
[modular_aot] Code generation for type literals
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Icbb7ff58d07e20b7119726d2a551157f844f25ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/493102
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-04-08 07:44:08 -07:00
Alexander Markov
b205d4c074
[modular_aot] Initial code generation for int shifts
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I59fbd4695aed381e834b03d617fee5dd9d371ec3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/492920
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-04-08 06:50:29 -07:00
Alexander Markov
7ea3545d2c
[modular_aot] Fix receiving of optional and named parameters when type arguments are passed
...
ArgumentsDescriptor.count does not include type arguments argument,
so receiving optional and named parameters should account for that
both when comparing count to a number of arguments and when
computing offset of an argument.
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I58c7f38e834453bdf15a5026051fa4f0375eae15
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/488561
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-18 14:53:17 -07:00
Alexander Markov
d611d205e3
[modular_aot] Initial code generation for TypeCast, TypeTest
...
Also:
* Revise code generation for cycles in parallel moves using temporary
register.
* Support splitting of live intervals both at even and odd positions.
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I900edc275b59daf93604668eada1421dd125b217
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/487982
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-18 14:53:09 -07:00
Alexander Markov
4d7a07355c
[modular_aot] Initial code generation for AllocateList, SetListElement
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I49486d860d0a6222a439678664e855d733d9ce0f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/487540
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-16 07:41:04 -07:00
Alexander Markov
5f0275c5f0
[modular_aot] Compute object tags for predefined classes
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I83a700f87f273c5d426b6181350325cf0b905721
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/487102
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-11 14:06:49 -07:00
Alexander Markov
085ed51099
[modular_aot] Support large offsets, revise usage of temp registers and fix BoxInt codegen
...
* Support large and unaligned offsets in Assembler.address, pairAddress
and loadFromPool.
* Revise how temporary registers are used: reserve tempReg for code gen
and temp2Reg for assembler.
* Clarify that inputs and outputs of the instruction can be allocated to
the same register. Fix BoxInt code generation to account for the same
input and output.
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Iaebc824ac2b5e8e0bdfed168c167528a1dbd82d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/486821
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-11 13:21:54 -07:00
Alexander Markov
6746db1f31
[modular_aot] Fix live ranges of non-fixed temps, fix serialization of two-byte strings
...
* Live ranges of non-fixed register temporaries should interfere both
with live ranges of inputs and outputs.
* When serializing a two-byte (non-Latin1) strings, ensure that
characters in the data section are aligned by 2.
However, already written data in the serialization buffer
may be misaligned (as we're writing to a series of buffers), so
write each code unit as separate bytes instead of writing them as
Uint16List.
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ia9919218e473979529c8af48480a09adc1659b1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/486540
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-09 13:02:03 -07:00
Alexander Markov
6fbd8491d8
[modular_aot] Code generation for binary int operations add/sub/mul/or/and/xor
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ic922522f77624ede28b05ab6c9e67f33c82859c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/486281
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-09 13:01:58 -07:00
Alexander Markov
d97566551b
[vm,modular_aot] Boxing/unboxing of int and double values
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I9fe47364bf772ccedf21f95aa5b16b92b0215b3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/486240
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-09 11:34:09 -07:00
Alexander Markov
b8389a7de2
[modular_aot] Closure calls
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Icd9a5ddc1a21785a946dcfd63cfce4ac54f8637b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/485561
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-03-05 15:51:29 -08:00
Alexander Markov
fd18bbb4a3
[vm,modular_aot] Dynamic calls
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I13eaccbefae4917500ee3aeb6a09d71f480a4c94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/485560
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-05 15:51:29 -08:00
Alexander Markov
8a6955a272
[modular_aot] Optional and named parameters
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ib8a4cbb7312110b7daa82ca40555b452b0599549
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/485200
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-05 15:51:29 -08:00
Alexander Markov
eb043c1725
[modular_aot] Initial code generation for AllocateClosure
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I15a08e9ac99510fceedbf3297fe9ed14904cbf5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/484021
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-03-02 08:13:41 -08:00
Alexander Markov
0ec57dd561
[vm,modular_aot] Initial code generation for static field loads and stores
...
TEST=ci
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I07aa7cabf8fe78c0f98c17b98ae85bdc903b99c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/482920
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-02-24 08:54:39 -08:00
Alexander Markov
dc2d8a06b9
[vm,modular_aot] Lowering of type parameters
...
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I06098a379ba3f04b5e13bad11acc0dcc391fb30c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/482364
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-02-24 06:16:51 -08:00
Alexander Markov
ba4bfeabda
[vm,modular_aot] Support getter and setter selector names
...
Add 'get:' and 'set:' prefixes to getter and setter selectors.
Also revise snapshot serialization of private names to support
private getter and setter names. ast.Name is replaced with
VM-specific PrivateName as private getter/setter names
such as get:_foo are considered public by ast.Name
(as they don't start with '_').
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I7447cb457aa2463836c8cf6af3d12e1998fe325c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/481441
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-02-23 08:07:29 -08:00
Alexander Markov
7eb7da6890
[vm,modular_aot] Initial code generation for interface calls
...
Also:
* Support arguments descriptors.
* Fix order of ClosureCall inputs in local function invocations.
* Fix order of passing arguments in all Dart calls.
* Fix handling of fields in InstanceSerializationCluster.
* Do not compile abstract methods and fields.
* Do not generate initializer functions for fields with trivial
initializers.
* Initialize Code::code_source_map to an empty CodeSourceMap
(in order to avoid failed assertions).
TEST=tools/test.py -n vm-modaot-mac-debug-arm64 language
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: I40ff1b8234c32c41e08f3288a23e4abc173efcfd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/480020
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-02-23 08:03:48 -08:00
Alexander Markov
7712167f28
[vm,modular_aot] Refactor Smi size to depend on compressed word size
...
Smi should fit into the compressed word, so its size in bits
can be defined using kCompressedWordSize.
TEST=ci
Change-Id: Iabea40318edadd7245d3a4771b4606f81b689867
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/479521
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-02-10 09:05:51 -08:00
Alexander Markov
3a9dbc9efa
Initial code generation for instance field loads and stores
...
Also:
* Support receiving parameters on the stack.
* Computation of stack frame size.
* Mach-O symbols for functions and stubs.
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ic89ce5dbcad27c34d18790f2b526f1d33dfd6693
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/478161
Reviewed-by: Slava Egorov <vegorov@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2026-02-05 11:40:00 -08:00
Alexander Markov
151bc79032
Object allocation
...
TEST=tools/test.py -n vm-modaot-mac-debug-arm64 language
Issue: https://github.com/dart-lang/sdk/issues/61635
Change-Id: Ie569c19ef37e27f7f711dfc3d62db818691f28fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/476600
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Slava Egorov <vegorov@google.com >
2026-02-03 13:09:02 -08:00