[clang] [llvm] [mlir] [TableGen] Only store direct superclasses in Record (PR #123072)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 17 09:37:29 PST 2025


================
@@ -3415,10 +3419,11 @@ namespace {
     AttrClass *findSuperClass(const Record *R) const {
       // TableGen flattens the superclass list, so we just need to walk it
       // in reverse.
-      auto SuperClasses = R->getSuperClasses();
-      for (signed i = 0, e = SuperClasses.size(); i != e; ++i) {
-        auto SuperClass = findClassByRecord(SuperClasses[e - i - 1].first);
-        if (SuperClass) return SuperClass;
+      std::vector<const Record *> SuperClasses = R->getSuperClasses();
+      for (const Record *R : reverse(SuperClasses)) {
+        AttrClass *SuperClass = findClassByRecord(R);
+        if (SuperClass)
+          return SuperClass;
----------------
mshockwave wrote:

```suggestion
        if (AttrClass *SuperClass = findClassByRecord(R);)
          return SuperClass;
```

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


More information about the llvm-commits mailing list