-
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 SuperPMI
Milestone
Description
This issue captures a list of potential enhancements to physical promotion, in no particular order.
CQ
- Decomposition via arithmetic
- Share backing storage when promoted locals are stack spilled
- Allow small-typed mismatches (JIT: Physical promotion bails on signedness mismatch on small types #104898)
- Support some bitcasts
- Partial lifetime promotion
- Allow promoted struct parameters to stay in registers (JIT: [experiment] Add an explicit IR representation for parameter definitions #92026)
- Allow promoted struct returns to stay in registers
- Custom class layouts with GC pointers (for some efficient decomposed copies) (JIT should support custom
ClassLayoutinstances with GC refs #103362) - Readback/writeback resolution
- Full support for
GetElemet/WithElementfor SIMDs (potentially as a separate pass) - Assignment decomposition for
GetElement/WithElement(JIT: Support decomposition into WithElement/GetElement in physical promotion #87554) - Field support for
LCL_ADDRpropagation (JIT: suboptimal generated code for struct overlapped field manipulation #69254)
Throughput
- Stop tracking accesses early when we know we won't promote
** Clean up
- Delete
LclVarDsc::lvFieldAccessedonce old promotion is gone
Related issues
BoyBaykillerneon-sunset
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 SuperPMI