Skip to content

JIT: Investigate adding "phantom" replacements during physical promotion #87371

@jakobbotsch

Description

@jakobbotsch

By phantom I mean making replacements of fields that we have not seen any uses of. There are at least two situations where this would be beneficial:

  • Assignment decomposition will introduce new LCL_FLD nodes that we can try to anticipate.
  • If the unpromoted remainder can be represented as a primitive then that will allow us to get completely rid of the struct local. That often results in smaller prolog code.

The potential benefits can be predicted by simply repeating physical promotion a number of times. In my experiments, repeating physical promotion 10 times results in -120K with physical promotion enabled, and -2 MB with old promotion disabled.

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions