[llvm] [AArch64][SME] Spill p-regs as z-regs when streaming hazards are possible (PR #123752)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 23 04:20:07 PST 2025
================
@@ -5200,7 +5522,12 @@ void AArch64FrameLowering::emitRemarks(
unsigned RegTy = StackAccess::AccessType::GPR;
if (MFI.getStackID(FrameIdx) == TargetStackID::ScalableVector) {
- if (AArch64::PPRRegClass.contains(MI.getOperand(0).getReg()))
+ // SPILL_PPR_TO_ZPR_SLOT_PSEUDO and FILL_PPR_FROM_ZPR_SLOT_PSEUDO
+ // spill/fill the predicate as a data vector (so are an FPR acess).
+ if (!is_contained({AArch64::SPILL_PPR_TO_ZPR_SLOT_PSEUDO,
+ AArch64::FILL_PPR_FROM_ZPR_SLOT_PSEUDO},
+ MI.getOpcode()) &&
----------------
sdesmalen-arm wrote:
nit:
```suggestion
if (MI.getOpcode() != AArch64::SPILL_PPR_TO_ZPR_SLOT_PSEUDO &&
MI.getOpcode() != AArch64::FILL_PPR_FROM_ZPR_SLOT_PSEUDO &&
AArch64::PPRRegClass.contains(MI.getOperand(0).getReg()))
```
https://github.com/llvm/llvm-project/pull/123752
More information about the llvm-commits
mailing list