-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Open
Labels
arch-arm64area-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
While generating indirect call for R2R, I have noticed we generate redundant indirect address loads in x11 as well as x4 and end up using the one present in x4. In dotnet/coreclr#5020 we fixed x11 as being a register to store indirect cell address, but in dotnet/coreclr#16171 we moved to morph phase. However with that, we end up creating 2nd redundant addrp/add pair inside lower that uses x4 register.
9000000B adrp x11, [RELOC #0x20a0e212c50]
9100016B add x11, x11, #0
90000004 adrp x4, [RELOC #0x20a0e212c50]
91000084 add x4, x4, #0
F9400084 ldr x4, [x4]
D63F0080 blr x4We need to investigate to see why x4 is needed and if yes, then simplify it to mov x4, x11.
category:cq
theme:ready-to-run
skill-level:intermediate
cost:large
Metadata
Metadata
Assignees
Labels
arch-arm64area-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