================ @@ -1630,9 +1630,9 @@ class Record { SmallVector<AssertionInfo, 0> Assertions; SmallVector<DumpInfo, 0> Dumps; - // All superclasses in the inheritance forest in post-order (yes, it + // Direct superclasses, which are roots of the inheritance forest (yes, it // must be a forest; diamond-shaped inheritance is not allowed). - SmallVector<std::pair<const Record *, SMRange>, 0> SuperClasses; + SmallVector<std::pair<const Record *, SMRange>, 0> DirectSuperClasses; ---------------- jayfoad wrote:
I tried N=1 but it seemed to increase memory usage overall. I think the problem is that `Record` is used for too many different things, some of which have superclasses and some do not. I would much prefer that we use more specialized types. Most importantly I think "static" objects like `class` statements and `def` statements should be represented differently from "runtime" objects like instantiated defs. https://github.com/llvm/llvm-project/pull/123072 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits