[llvm] c7fddf5 - [ARM] Prevent converting virtual register to MCRegister. (#122862)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 14 10:03:54 PST 2025
Author: Craig Topper
Date: 2025-01-14T10:03:51-08:00
New Revision: c7fddf5f786d4ed726b53096d461b62cf7649b90
URL: https://github.com/llvm/llvm-project/commit/c7fddf5f786d4ed726b53096d461b62cf7649b90
DIFF: https://github.com/llvm/llvm-project/commit/c7fddf5f786d4ed726b53096d461b62cf7649b90.diff
LOG: [ARM] Prevent converting virtual register to MCRegister. (#122862)
MCRegister should only be used for physical reigsters.
Added:
Modified:
llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp b/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
index 381ade5c85a65e..4fe4ed47e0081d 100644
--- a/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
+++ b/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
@@ -139,7 +139,7 @@ static void emitThumbRegPlusImmInReg(
return;
}
- bool isHigh = !isARMLowRegister(DestReg) ||
+ bool isHigh = DestReg.isVirtual() || !isARMLowRegister(DestReg) ||
(BaseReg != 0 && !isARMLowRegister(BaseReg));
bool isSub = false;
// Subtract doesn't have high register version. Load the negative value
@@ -153,7 +153,7 @@ static void emitThumbRegPlusImmInReg(
Register LdReg = DestReg;
if (DestReg == ARM::SP)
assert(BaseReg == ARM::SP && "Unexpected!");
- if (!isARMLowRegister(DestReg) && !DestReg.isVirtual())
+ if (!DestReg.isVirtual() && !isARMLowRegister(DestReg))
LdReg = MF.getRegInfo().createVirtualRegister(&ARM::tGPRRegClass);
if (NumBytes <= 255 && NumBytes >= 0 && CanChangeCC) {
More information about the llvm-commits
mailing list