Skip to content

Recursive Promotion of structs containing fields of structs with a single pointer-sized field #7576

Closed
@sivarv

Description

@sivarv

The current implementation lies about the type of struct field as the type of its underlying scalar field. Because of which, in some cases it could lead to an IR where either RHS or LHS of copyblk asg is a scalar type var. These cases has following limitations

  1. LHS is a scalar local var. This will be marked as DoNotEnregister by fgMorphCopyblk
  2. RHS is a scalar local var. AssertionProp will not perform const prop on RHS such an asg since copyblk could be incorrectly considered as initblk by morph logic.

These two limitations could be avoided by implementing recursive struct promotion.

category:cq
theme:structs
skill-level:expert
cost:large
impact:medium

Metadata

Metadata

Assignees

Labels

Priority:2Work that is important, but not critical for the releasearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIenhancementProduct code improvement that does NOT require public API changes/additionsoptimizationtenet-performancePerformance related issue

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions