[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