-
Notifications
You must be signed in to change notification settings - Fork 14k
Open
Labels
A-patternsRelating to patterns and pattern matchingRelating to patterns and pattern matchingC-optimizationCategory: An issue highlighting optimization opportunities or PRs implementing suchCategory: An issue highlighting optimization opportunities or PRs implementing suchT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
With inline_const_pat being removed in #138492, it might be nice to optimize codegen of pat if pat == const { .. }.
Right now
match a {
1 => 42,
b if b == 7 => 100,
_ => 99,
}Produces a SwitchInt and then a separate equality check.
Changing the second pattern to 7 => 100 produces a single SwitchInt.
I assume that the optimizer can recover this (at least for simpler cases), but it might be nice for the compiler to generate the simplified MIR directly (especially with inline_const_pat gone).
Metadata
Metadata
Assignees
Labels
A-patternsRelating to patterns and pattern matchingRelating to patterns and pattern matchingC-optimizationCategory: An issue highlighting optimization opportunities or PRs implementing suchCategory: An issue highlighting optimization opportunities or PRs implementing suchT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.