/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Interface Declarations *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir::irdl { /// Interface to get an IRDLConstraintverifier from an operation. class VerifyConstraintInterface; } // namespace mlir::irdl namespace mlir::irdl { /// Interface to get an IRDLRegionverifier from an operation. class VerifyRegionInterface; } // namespace mlir::irdl namespace mlir::irdl { /// Interface to get an IRDLConstraintverifier from an operation. namespace detail { struct VerifyConstraintInterfaceInterfaceTraits { struct Concept { /// The methods defined by the interface. std::unique_ptr<::mlir::irdl::Constraint> (*getVerifier)(const Concept *impl, ::mlir::Operation *, ::mlir::ArrayRef, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const&, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const&); }; template class Model : public Concept { public: using Interface = ::mlir::irdl::VerifyConstraintInterface; Model() : Concept{getVerifier} {} static inline std::unique_ptr<::mlir::irdl::Constraint> getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; template class FallbackModel : public Concept { public: using Interface = ::mlir::irdl::VerifyConstraintInterface; FallbackModel() : Concept{getVerifier} {} static inline std::unique_ptr<::mlir::irdl::Constraint> getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; template class ExternalModel : public FallbackModel { public: using ConcreteEntity = ConcreteOp; }; }; template struct VerifyConstraintInterfaceTrait; } // namespace detail class VerifyConstraintInterface : public ::mlir::OpInterface { public: using ::mlir::OpInterface::OpInterface; template struct Trait : public detail::VerifyConstraintInterfaceTrait {}; /// Get an instance of a constraint verifier for the associated operation." /// Returns `nullptr` upon failure. std::unique_ptr<::mlir::irdl::Constraint> getVerifier(::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; } // namespace mlir::irdl namespace mlir::irdl { /// Interface to get an IRDLRegionverifier from an operation. namespace detail { struct VerifyRegionInterfaceInterfaceTraits { struct Concept { /// The methods defined by the interface. std::unique_ptr<::mlir::irdl::RegionConstraint> (*getVerifier)(const Concept *impl, ::mlir::Operation *, ::mlir::ArrayRef, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const&, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const&); }; template class Model : public Concept { public: using Interface = ::mlir::irdl::VerifyRegionInterface; Model() : Concept{getVerifier} {} static inline std::unique_ptr<::mlir::irdl::RegionConstraint> getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; template class FallbackModel : public Concept { public: using Interface = ::mlir::irdl::VerifyRegionInterface; FallbackModel() : Concept{getVerifier} {} static inline std::unique_ptr<::mlir::irdl::RegionConstraint> getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; template class ExternalModel : public FallbackModel { public: using ConcreteEntity = ConcreteOp; }; }; template struct VerifyRegionInterfaceTrait; } // namespace detail class VerifyRegionInterface : public ::mlir::OpInterface { public: using ::mlir::OpInterface::OpInterface; template struct Trait : public detail::VerifyRegionInterfaceTrait {}; /// Get an instance of a constraint verifier for the associated operation." /// Returns `nullptr` upon failure. std::unique_ptr<::mlir::irdl::RegionConstraint> getVerifier(::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs); }; } // namespace mlir::irdl namespace mlir::irdl::detail { template struct VerifyConstraintInterfaceTrait : public ::mlir::OpInterface::Trait { }; } // namespace mlir::irdl::detail namespace mlir::irdl::detail { template struct VerifyRegionInterfaceTrait : public ::mlir::OpInterface::Trait { }; } // namespace mlir::irdl::detail namespace mlir::irdl { template std::unique_ptr<::mlir::irdl::Constraint> detail::VerifyConstraintInterfaceInterfaceTraits::Model::getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs) { return (llvm::cast(tablegen_opaque_val)).getVerifier(valueToConstr, types, attrs); } template std::unique_ptr<::mlir::irdl::Constraint> detail::VerifyConstraintInterfaceInterfaceTraits::FallbackModel::getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs) { return static_cast(impl)->getVerifier(tablegen_opaque_val, valueToConstr, types, attrs); } } // namespace mlir::irdl namespace mlir::irdl { template std::unique_ptr<::mlir::irdl::RegionConstraint> detail::VerifyRegionInterfaceInterfaceTraits::Model::getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs) { return (llvm::cast(tablegen_opaque_val)).getVerifier(valueToConstr, types, attrs); } template std::unique_ptr<::mlir::irdl::RegionConstraint> detail::VerifyRegionInterfaceInterfaceTraits::FallbackModel::getVerifier(const Concept *impl, ::mlir::Operation *tablegen_opaque_val, ::mlir::ArrayRef valueToConstr, ::mlir::DenseMap<::mlir::irdl::TypeOp, std::unique_ptr<::mlir::DynamicTypeDefinition>> const& types, ::mlir::DenseMap<::mlir::irdl::AttributeOp, std::unique_ptr<::mlir::DynamicAttrDefinition>> const& attrs) { return static_cast(impl)->getVerifier(tablegen_opaque_val, valueToConstr, types, attrs); } } // namespace mlir::irdl