[llvm-branch-commits] [llvm] release/19.x: [AArch64] Remove redundant COPY from loadRegFromStackSlot (#107396) (PR #107435)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Sep 5 10:08:39 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-aarch64
Author: None (llvmbot)
<details>
<summary>Changes</summary>
Backport 91a3c6f3d66b866bcda8a0f7d4815bc8f2dbd86c
Requested by: @<!-- -->sdesmalen-arm
---
Full diff: https://github.com/llvm/llvm-project/pull/107435.diff
2 Files Affected:
- (modified) llvm/lib/Target/AArch64/AArch64InstrInfo.cpp (-4)
- (modified) llvm/test/CodeGen/AArch64/spillfill-sve.mir (+36-1)
``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
index 377bcd5868fb64..805684ef69a592 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
@@ -5144,10 +5144,6 @@ void AArch64InstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
if (PNRReg.isValid() && !PNRReg.isVirtual())
MI.addDef(PNRReg, RegState::Implicit);
MI.addMemOperand(MMO);
-
- if (PNRReg.isValid() && PNRReg.isVirtual())
- BuildMI(MBB, MBBI, DebugLoc(), get(TargetOpcode::COPY), PNRReg)
- .addReg(DestReg);
}
bool llvm::isNZCVTouchedInInstructionRange(const MachineInstr &DefMI,
diff --git a/llvm/test/CodeGen/AArch64/spillfill-sve.mir b/llvm/test/CodeGen/AArch64/spillfill-sve.mir
index 11cf388e385312..83c9b73c575708 100644
--- a/llvm/test/CodeGen/AArch64/spillfill-sve.mir
+++ b/llvm/test/CodeGen/AArch64/spillfill-sve.mir
@@ -11,6 +11,7 @@
define aarch64_sve_vector_pcs void @spills_fills_stack_id_ppr2mul2() #0 { entry: unreachable }
define aarch64_sve_vector_pcs void @spills_fills_stack_id_pnr() #1 { entry: unreachable }
define aarch64_sve_vector_pcs void @spills_fills_stack_id_virtreg_pnr() #1 { entry: unreachable }
+ define aarch64_sve_vector_pcs void @spills_fills_stack_id_virtreg_ppr_to_pnr() #1 { entry: unreachable }
define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr() #0 { entry: unreachable }
define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr2() #0 { entry: unreachable }
define aarch64_sve_vector_pcs void @spills_fills_stack_id_zpr2strided() #0 { entry: unreachable }
@@ -216,7 +217,7 @@ body: |
; EXPAND: STR_PXI killed renamable $pn8, $sp, 7
;
; EXPAND: renamable $pn8 = LDR_PXI $sp, 7
- ; EXPAND: $p0 = PEXT_PCI_B killed renamable $pn8, 0
+ ; EXPAND-NEXT: $p0 = PEXT_PCI_B killed renamable $pn8, 0
%0:pnr_p8to15 = WHILEGE_CXX_B undef $x0, undef $x0, 0, implicit-def dead $nzcv
@@ -242,6 +243,40 @@ body: |
RET_ReallyLR
...
---
+name: spills_fills_stack_id_virtreg_ppr_to_pnr
+tracksRegLiveness: true
+registers:
+ - { id: 0, class: ppr }
+ - { id: 1, class: pnr_p8to15 }
+stack:
+body: |
+ bb.0.entry:
+ liveins: $p0
+
+ %0:ppr = COPY $p0
+
+ $pn0 = IMPLICIT_DEF
+ $pn1 = IMPLICIT_DEF
+ $pn2 = IMPLICIT_DEF
+ $pn3 = IMPLICIT_DEF
+ $pn4 = IMPLICIT_DEF
+ $pn5 = IMPLICIT_DEF
+ $pn6 = IMPLICIT_DEF
+ $pn7 = IMPLICIT_DEF
+ $pn8 = IMPLICIT_DEF
+ $pn9 = IMPLICIT_DEF
+ $pn10 = IMPLICIT_DEF
+ $pn11 = IMPLICIT_DEF
+ $pn12 = IMPLICIT_DEF
+ $pn13 = IMPLICIT_DEF
+ $pn14 = IMPLICIT_DEF
+ $pn15 = IMPLICIT_DEF
+
+ %1:pnr_p8to15 = COPY %0
+ $p0 = PEXT_PCI_B %1, 0
+ RET_ReallyLR
+...
+---
name: spills_fills_stack_id_zpr
tracksRegLiveness: true
registers:
``````````
</details>
https://github.com/llvm/llvm-project/pull/107435
More information about the llvm-branch-commits
mailing list