/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Interface Declarations *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir { /// Interface for collecting all convert to LLVM attributes stored in an /// operation. See `ConvertToLLVMAttrInterface` for more information on these /// attributes. class ConvertToLLVMOpInterface; } // namespace mlir namespace mlir { /// Interface for collecting all convert to LLVM attributes stored in an /// operation. See `ConvertToLLVMAttrInterface` for more information on these /// attributes. namespace detail { struct ConvertToLLVMOpInterfaceInterfaceTraits { struct Concept { /// The methods defined by the interface. void (*getConvertToLLVMConversionAttrs)(const Concept *impl, ::mlir::Operation *, ::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>&); }; template class Model : public Concept { public: using Interface = ::mlir::ConvertToLLVMOpInterface; Model() : Concept{getConvertToLLVMConversionAttrs} {} static inline void getConvertToLLVMConversionAttrs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>& attrs); }; template class FallbackModel : public Concept { public: using Interface = ::mlir::ConvertToLLVMOpInterface; FallbackModel() : Concept{getConvertToLLVMConversionAttrs} {} static inline void getConvertToLLVMConversionAttrs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>& attrs); }; template class ExternalModel : public FallbackModel { public: using ConcreteEntity = ConcreteOp; }; }; template struct ConvertToLLVMOpInterfaceTrait; } // namespace detail class ConvertToLLVMOpInterface : public ::mlir::OpInterface { public: using ::mlir::OpInterface::OpInterface; template struct Trait : public detail::ConvertToLLVMOpInterfaceTrait {}; /// Populate the provided vector with a list of convert to LLVM attributes /// to apply. void getConvertToLLVMConversionAttrs(::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>& attrs); }; } // namespace mlir namespace mlir::detail { template struct ConvertToLLVMOpInterfaceTrait : public ::mlir::OpInterface::Trait { }; } // namespace mlir::detail namespace mlir { template void detail::ConvertToLLVMOpInterfaceInterfaceTraits::Model::getConvertToLLVMConversionAttrs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>& attrs) { return (llvm::cast(tablegen_opaque_val)).getConvertToLLVMConversionAttrs(attrs); } template void detail::ConvertToLLVMOpInterfaceInterfaceTraits::FallbackModel::getConvertToLLVMConversionAttrs(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::llvm::SmallVectorImpl<::mlir::ConvertToLLVMAttrInterface>& attrs) { return static_cast(impl)->getConvertToLLVMConversionAttrs(tablegen_opaque_val, attrs); } } // namespace mlir