================ @@ -502,6 +502,15 @@ def CIR_RecordType : CIR_Type<"Record", "record", void complete(llvm::ArrayRef<mlir::Type> members, bool packed, bool isPadded); + + // Utilities for lazily computing and cacheing data layout info. + // FIXME: currently opaque because there's a cycle if CIRTypes.types include + // from CIRAttrs.h. The implementation operates in terms of RecordLayoutAttr + // instead. + private: + mutable mlir::Attribute layoutInfo; ---------------- andykaylor wrote:
I've just put up a PR in the incubator (https://github.com/llvm/clangir/pull/1569) to calculate the required information (and only the required information) on demand. I don't know if we want to make this change there or wait for a proper caching mechanism instead, but I thought it would be useful to have as a preview of a complete implementation following the path we've discussed here. All regression tests passed in my sandbox with that change. https://github.com/llvm/llvm-project/pull/136036 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits