/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Dialect Interface Declarations *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir { /// An interface to be implemented by dialects that can have identifiers in the /// data layout specification entries. Provides hooks for verifying the entry /// validity and combining two entries. class DataLayoutDialectInterface : public ::mlir::DialectInterface::Base { public: /// Checks whether the given data layout entry is valid and reports any errors /// at the provided location. Derived classes should override this. virtual ::mlir::LogicalResult verifyEntry(::mlir::DataLayoutEntryInterface entry, ::mlir::Location loc) const { return ::llvm::success(); } /// Checks whether the given data layout entry is valid and reports any errors /// at the provided location. Derived classes should override this. virtual ::mlir::LogicalResult verifyEntry(::mlir::TargetDeviceSpecInterface entry, ::mlir::Location loc) const { return ::llvm::success(); } /// Combines two entries with identifiers that belong to this dialect. Returns /// the combined entry or null if the entries are not compatible. Derived /// classes likely need to reimplement this. virtual ::mlir::DataLayoutEntryInterface combine(::mlir::DataLayoutEntryInterface outer, ::mlir::DataLayoutEntryInterface inner) const { return defaultCombine(outer, inner); } /// Default implementation of entry combination that combines identical /// entries and returns null otherwise. static ::mlir::DataLayoutEntryInterface defaultCombine(::mlir::DataLayoutEntryInterface outer, ::mlir::DataLayoutEntryInterface inner) { if (!outer || outer == inner) return inner; return {}; } DataLayoutDialectInterface(::mlir::Dialect *dialect) : Base(dialect) {} }; } // namespace mlir