[L] Change in dart/sdk[main]: [modular_aot] Translate async/async*/sync*/await/yield/yield* to CFG IR

0 views
Skip to first unread message

Alexander Markov (Gerrit)

unread,
Apr 20, 2026, 2:27:52 PM (2 days ago) Apr 20
to Alexander Markov, Slava Egorov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org
Attention needed from Slava Egorov

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 2
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Comment-Date: Mon, 20 Apr 2026 18:27:46 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Slava Egorov (Gerrit)

unread,
Apr 21, 2026, 8:45:29 AM (yesterday) Apr 21
to Alexander Markov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org
Attention needed from Alexander Markov

Slava Egorov added 3 comments

File pkg/cfg/lib/ir/flow_graph_checker.dart
Line 346, Patchset 2 (Latest): void visitTypeArguments(TypeArguments instr) {
Slava Egorov . unresolved

Should there be a similar check for constants which contain type arguments inside?

Line 350, Patchset 2 (Latest): switch (user) {
Slava Egorov . unresolved

I would have expected `Suspend` (with typecheck) to be in this list as well given how `addSuspend` looks like.

File pkg/cfg/testcases/suspendable.dart
Line 12, Patchset 2 (Latest): final obj = await x; // ignore: await_only_futures
Slava Egorov . unresolved

Consider adding a test where runtime type check is non-constant.

Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Markov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 2
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Attention: Alexander Markov <alexm...@google.com>
Gerrit-Comment-Date: Tue, 21 Apr 2026 12:45:23 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Slava Egorov (Gerrit)

unread,
Apr 21, 2026, 8:45:32 AM (yesterday) Apr 21
to Alexander Markov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org
Attention needed from Alexander Markov

Slava Egorov voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Markov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 2
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Attention: Alexander Markov <alexm...@google.com>
Gerrit-Comment-Date: Tue, 21 Apr 2026 12:45:27 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Alexander Markov (Gerrit)

unread,
Apr 21, 2026, 12:06:33 PM (23 hours ago) Apr 21
to Alexander Markov, Slava Egorov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org
Attention needed from Slava Egorov

Alexander Markov added 4 comments

Patchset-level comments
File-level comment, Patchset 3 (Latest):
Alexander Markov . resolved

Thank you for the thorough review!

PTAL once again

File pkg/cfg/lib/ir/flow_graph_checker.dart
Line 346, Patchset 2: void visitTypeArguments(TypeArguments instr) {
Slava Egorov . resolved

Should there be a similar check for constants which contain type arguments inside?

Alexander Markov

Done

Line 350, Patchset 2: switch (user) {
Slava Egorov . resolved

I would have expected `Suspend` (with typecheck) to be in this list as well given how `addSuspend` looks like.

Alexander Markov

Done

File pkg/cfg/testcases/suspendable.dart
Line 12, Patchset 2: final obj = await x; // ignore: await_only_futures
Slava Egorov . resolved

Consider adding a test where runtime type check is non-constant.

Alexander Markov

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Comment-Date: Tue, 21 Apr 2026 16:06:29 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Slava Egorov <veg...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Slava Egorov (Gerrit)

unread,
3:35 AM (8 hours ago) 3:35 AM
to Alexander Markov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org
Attention needed from Alexander Markov

Slava Egorov voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Markov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Attention: Alexander Markov <alexm...@google.com>
Gerrit-Comment-Date: Wed, 22 Apr 2026 07:35:08 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Alexander Markov (Gerrit)

unread,
9:19 AM (2 hours ago) 9:19 AM
to Alexander Markov, Slava Egorov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, dart-...@luci-project-accounts.iam.gserviceaccount.com, rev...@dartlang.org

Alexander Markov voted Commit-Queue+2

Commit-Queue+2
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Aprelev <a...@google.com>
Gerrit-CC: Nate Biggs <nate...@google.com>
Gerrit-CC: Nicholas Shahan <nsh...@google.com>
Gerrit-CC: Stephen Adams <s...@google.com>
Gerrit-CC: Tess Strickland <sstr...@google.com>
Gerrit-Comment-Date: Wed, 22 Apr 2026 13:19:31 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

dart-scoped@luci-project-accounts.iam.gserviceaccount.com (Gerrit)

unread,
9:19 AM (2 hours ago) 9:19 AM
to Alexander Markov, Slava Egorov, Nate Biggs, Alexander Aprelev, Tess Strickland, Nicholas Shahan, Stephen Adams, rev...@dartlang.org

dart-...@luci-project-accounts.iam.gserviceaccount.com submitted the change

Change information

Commit message:
[modular_aot] Translate async/async*/sync*/await/yield/yield* to CFG IR
Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Reviewed-by: Slava Egorov <veg...@google.com>
Commit-Queue: Alexander Markov <alexm...@google.com>
Files:
  • M pkg/cfg/lib/front_end/ast_to_ir.dart
  • M pkg/cfg/lib/ir/constant_value.dart
  • M pkg/cfg/lib/ir/flow_graph_builder.dart
  • M pkg/cfg/lib/ir/flow_graph_checker.dart
  • M pkg/cfg/lib/ir/functions.dart
  • M pkg/cfg/lib/ir/instructions.dart
  • M pkg/cfg/lib/ir/ir_to_text.dart
  • M pkg/cfg/lib/ir/visitor.dart
  • M pkg/cfg/lib/passes/constant_propagation.dart
  • M pkg/cfg/lib/passes/simplification.dart
  • A pkg/cfg/testcases/suspendable.dart
  • A pkg/cfg/testcases/suspendable.dart.expect
  • M pkg/native_compiler/lib/back_end/arm64/code_generator.dart
  • M pkg/native_compiler/lib/back_end/arm64/constraints.dart
Change size: L
Delta: 14 files changed, 472 insertions(+), 47 deletions(-)
Branch: refs/heads/main
Submit Requirements:
  • requirement satisfiedCode-Review: +1 by Slava Egorov
Open in Gerrit
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: merged
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: Ib5a7bc509e0382ceea53365b9ca3543a76a7cce1
Gerrit-Change-Number: 496660
Gerrit-PatchSet: 4
Gerrit-Owner: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Alexander Markov <alexm...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
open
diffy
satisfied_requirement
Reply all
Reply to author
Forward
0 new messages