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

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 16 10:15:02 PST 2025


================
@@ -1718,15 +1719,30 @@ class Record {
   ArrayRef<AssertionInfo> getAssertions() const { return Assertions; }
   ArrayRef<DumpInfo> getDumps() const { return Dumps; }
 
-  ArrayRef<std::pair<const Record *, SMRange>> getSuperClasses() const {
-    return SuperClasses;
+  /// Append all superclasses in post-order to \p Classes.
+  void getSuperClasses(std::vector<const Record *> &Classes) const {
+    for (const auto &[SC, R] : DirectSuperClasses) {
----------------
topperc wrote:

Use `_` instead of `R` like you did in `isSubClassOf`?

Or can we use `make_first_range`?

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


More information about the llvm-commits mailing list