Skip to content

JIT: register shuffles after the null inlinee gc refs change #7447

@AndyAyersMS

Description

@AndyAyersMS

dotnet/coreclr#9479 created some cases where the RA did back to back register shuffles that weren't there before. Would be nice to get rid of these.

Some examples from the core library:

System.CurrentSystemTimeZone:.ctor():this

       call     CachedData:CreateLocal():ref:this
       mov      rdi, rax
G_M12143_IG03:
       mov      rax, rdi
       mov      rdi, rax

System.String:Concat(ref):ref

       call     CORINFO_HELP_ASSIGN_REF
G_M54378_IG15:
       mov      rax, rdi
       mov      rdi, rax

System.DateTime:FromBinary(long):struct

       call     CachedData:CreateLocal():ref:this
       mov      rbp, rax
G_M34503_IG04:
       mov      rcx, rbp

category:cq
theme:register-allocator
skill-level:expert
cost:medium

Metadata

Metadata

Assignees

Labels

area-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