- 
                Notifications
    
You must be signed in to change notification settings  - Fork 5.2k
 
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).
neon-sunset, NinoFloris and PaulusParssinen
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