[llvm] [AArch64][SME] Disable hazard padding when there is only PPRs and GPRs (PR #137817)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Wed May 14 02:22:52 PDT 2025


================
@@ -3533,6 +3533,12 @@ static std::optional<int> getLdStFrameID(const MachineInstr &MI,
   return getMMOFrameID(*MI.memoperands_begin(), MFI);
 }
 
+/// Returns true if PPRs are spilled as ZPRs.
+static bool arePPRsSpilledAsZPR(const MachineFunction &MF) {
+  return MF.getSubtarget().getRegisterInfo()->getSpillSize(
+             AArch64::PPRRegClass) == 16;
----------------
MacDue wrote:

The usual case (via e.g. `str p4, [sp, ...]`). They're only spilled using Z registers when using the `aarch64-enable-zpr-predicate-spills` option (which expands the predicates to full vectors before storing them). 

https://github.com/llvm/llvm-project/pull/137817


More information about the llvm-commits mailing list