Repository navigation
ARM64: Optimize pair of "ldr reg, [fp]" to ldp #35130
Copy link
Copy link
Closed
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
Activity
- addeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Apr 17, 2020 Dotnet-GitSync-Bot commented
on Apr 17, 2020 CollaboratorMore actionsI couldn't figure out the best area label to add to this issue. Please help me learn by adding exactly one area label.
- addedarea-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
on Apr 17, 2020 Related: #35132
I noticed a few things from the attached file:
- Sometimes the low offset comes first, sometimes it comes second in the instruction stream. A peep would need to handle both cases.
- There are a few cases in the attached examples of non-contiguous loads that wouldn't be mergeable (e.g.,
[fp,#72]/[fp,#32]) - Were there any cases of consecutive loads of the
wsub-registers? Or the floating-point registers?
Extending this to arm32, we could use
STMwith a register mask to collapse multiple store (if the consecutive stores were using increasing register numbers, and possibly other conditions were met).- removeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Apr 20, 2020 - addedJitUntriagedCLR JIT issues needing additional triageCLR JIT issues needing additional triage
on Oct 28, 2020 - removedJitUntriagedCLR JIT issues needing additional triageCLR JIT issues needing additional triage
on Nov 9, 2020 - added a commit that references this issue
on Jan 12, 2023 - added a commit that references this issue
on Jan 27, 2023 Fixed in various peepholes, latest being #85032.
- ghost locked as resolved and limited conversation to collaborators
on May 27, 2023
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
Type
Projects
- StatusShow more project fieldsDone
can be combined into
ldpif the loads are happening from subsequent memory.I collected no. of such
ldrpairs in framework libraries and found approx. 28K pairs in 13K methods.Details:
ldr_ldr_fp_to_ldp.txt
category:cq
theme:optimization
skill-level:intermediate
cost:small
impact:medium