[llvm] [M68k] Fix build after removal of RegisterClasses pointer array (PR #207364)
Sylvestre Ledru via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 3 03:05:26 PDT 2026
https://github.com/sylvestre created https://github.com/llvm/llvm-project/pull/207364
Commit 4d8ec1968023 ("[CodeGen][NFC] Remove RegisterClasses pointer array (#207204)") removed regclass_begin()/regclass_end() from TargetRegisterInfo, so those names now resolve to the MCRegisterInfo versions whose iterator dereferences to a MCRegisterClass rather than a const TargetRegisterClass *, breaking getMaximalPhysRegClass():
error: cannot convert 'const llvm::MCRegisterClass' to
'const llvm::TargetRegisterClass*' in initialization
M68k was not updated in that commit. Switch to the range-based regclasses() idiom used elsewhere in the same change.
Regressor: 4d8ec1968023 ("[CodeGen][NFC] Remove RegisterClasses pointer array") (#207204)
>From feff3323cf300557a4ff70b6d82fd9a6296ee14b Mon Sep 17 00:00:00 2001
From: Sylvestre Ledru <sylvestre at debian.org>
Date: Fri, 3 Jul 2026 12:01:05 +0200
Subject: [PATCH] [M68k] Fix build after removal of RegisterClasses pointer
array
Commit 4d8ec1968023 ("[CodeGen][NFC] Remove RegisterClasses pointer
array (#207204)") removed regclass_begin()/regclass_end() from
TargetRegisterInfo, so those names now resolve to the MCRegisterInfo
versions whose iterator dereferences to a MCRegisterClass rather than a
const TargetRegisterClass *, breaking getMaximalPhysRegClass():
error: cannot convert 'const llvm::MCRegisterClass' to
'const llvm::TargetRegisterClass*' in initialization
M68k was not updated in that commit. Switch to the range-based
regclasses() idiom used elsewhere in the same change.
Regressor: 4d8ec1968023 ("[CodeGen][NFC] Remove RegisterClasses pointer array") (#207204)
---
llvm/lib/Target/M68k/M68kRegisterInfo.cpp | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Target/M68k/M68kRegisterInfo.cpp b/llvm/lib/Target/M68k/M68kRegisterInfo.cpp
index 62fb72ba4fd5e..af5e824b37bea 100644
--- a/llvm/lib/Target/M68k/M68kRegisterInfo.cpp
+++ b/llvm/lib/Target/M68k/M68kRegisterInfo.cpp
@@ -89,14 +89,12 @@ M68kRegisterInfo::getMaximalPhysRegClass(unsigned reg, MVT VT) const {
// Pick the most sub register class of the right type that contains
// this physreg.
const TargetRegisterClass *BestRC = nullptr;
- for (regclass_iterator I = regclass_begin(), E = regclass_end(); I != E;
- ++I) {
- const TargetRegisterClass *RC = *I;
- if ((VT == MVT::Other || isTypeLegalForClass(*RC, VT)) &&
- RC->contains(reg) &&
+ for (const TargetRegisterClass &RC : regclasses()) {
+ if ((VT == MVT::Other || isTypeLegalForClass(RC, VT)) &&
+ RC.contains(reg) &&
(!BestRC ||
- (BestRC->hasSubClass(RC) && RC->getNumRegs() > BestRC->getNumRegs())))
- BestRC = RC;
+ (BestRC->hasSubClass(&RC) && RC.getNumRegs() > BestRC->getNumRegs())))
+ BestRC = &RC;
}
assert(BestRC && "Couldn't find the register class");
More information about the llvm-commits
mailing list