-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Open
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIruntime-asynctenet-performancePerformance related issuePerformance related issue
Milestone
Description
Developers frequently create synchronous Task-returning methods wrapping an async one to avoid additional state machines. For example, it is being done right now in #115688.
With runtime async this is a significant deoptimization. We should figure out how to optimize this pattern. One possible way would be to boost inlining for synchronous Task-returning methods calls by runtime async methods, and then adding an additional IR-based optimization of AsyncHelpers.Await(M()) later in the JIT (the current optimization is based on IL pattern recognition that will not kick in after inlining).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIruntime-asynctenet-performancePerformance related issuePerformance related issue