[llvm] CodeGen: Add RegisterClass by HwMode (PR #158269)

Sergei Barannikov via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 15 08:20:41 PDT 2025


================
@@ -1044,6 +1065,40 @@ void InstrInfoEmitter::run(raw_ostream &OS) {
 
   // MCInstrInfo initialization routine.
   Timer.startTimer("Emit initialization routine");
+
+  if (NumClassesByHwMode != 0) {
+    OS << "extern const int16_t " << TargetName << "RegClassByHwModeTables["
+       << NumModes << "][" << NumClassesByHwMode << "] = {\n";
+
+    for (unsigned M = 0; M < NumModes; ++M) {
+      OS << "  { // " << CGH.getModeName(M, /*IncludeDefault=*/true) << '\n';
+      for (unsigned I = 0; I != NumClassesByHwMode; ++I) {
+        const Record *Class = RegClassByHwMode[I];
+        const HwModeSelect &ModeSelect = CGH.getHwModeSelect(Class);
+
+        bool Seen = false;
+        for (const HwModeSelect::PairType &P : ModeSelect.Items) {
----------------
s-barannikov wrote:

Structured bindings or maybe find_if

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


More information about the llvm-commits mailing list