[llvm] [AArch64] Allow LDR merge with same destination register by renaming (PR #71908)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 18 02:27:24 PST 2023
================
@@ -926,31 +938,51 @@ AArch64LoadStoreOpt::mergePairedInsns(MachineBasicBlock::iterator I,
assert((MOP.isImplicit() ||
(MOP.isRenamable() && !MOP.isEarlyClobber())) &&
"Need renamable operands");
- const TargetRegisterClass *RC =
- MI.getRegClassConstraint(OpIdx, TII, TRI);
- if (!RC)
- continue;
- MOP.setReg(GetMatchingSubReg(RC));
+ Register MatchingReg;
+ if (const TargetRegisterClass *RC =
+ MI.getRegClassConstraint(OpIdx, TII, TRI))
+ MatchingReg = GetMatchingSubReg(RC);
+ else
+ MatchingReg = GetMatchingSubReg(
+ TRI->getMinimalPhysRegClass(MOP.getReg()));
+ if (MatchingReg == AArch64::NoRegister)
----------------
davemgreen wrote:
This can be an assert, as opposed to a if with a report_fatal_error.
https://github.com/llvm/llvm-project/pull/71908
More information about the llvm-commits
mailing list