/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Dialect Declarations *| |* *| |* Automatically generated file, do not edit! *| |* From: NVVMOps.td *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir::NVVM { class NVVMDialect : public ::mlir::Dialect { explicit NVVMDialect(::mlir::MLIRContext *context); void initialize(); friend class ::mlir::MLIRContext; public: ~NVVMDialect() override; static constexpr ::llvm::StringLiteral getDialectNamespace() { return ::llvm::StringLiteral("nvvm"); } /// Parse an attribute registered to this dialect. ::mlir::Attribute parseAttribute(::mlir::DialectAsmParser &parser, ::mlir::Type type) const override; /// Print an attribute registered to this dialect. void printAttribute(::mlir::Attribute attr, ::mlir::DialectAsmPrinter &os) const override; /// Provides a hook for verifying dialect attributes attached to the given /// op. ::llvm::LogicalResult verifyOperationAttribute( ::mlir::Operation *op, ::mlir::NamedAttribute attribute) override; /// Get the name of the attribute used to annotate external kernel /// functions. static StringRef getKernelFuncAttrName() { return "nvvm.kernel"; } /// Get the name of the attribute used to annotate max threads required /// per CTA for kernel functions. static StringRef getMaxntidAttrName() { return "nvvm.maxntid"; } /// Get the name of the metadata names for each dimension static StringRef getMaxntidXName() { return "maxntidx"; } static StringRef getMaxntidYName() { return "maxntidy"; } static StringRef getMaxntidZName() { return "maxntidz"; } /// Get the name of the attribute used to annotate exact threads required /// per CTA for kernel functions. static StringRef getReqntidAttrName() { return "nvvm.reqntid"; } /// Get the name of the metadata names for each dimension static StringRef getReqntidXName() { return "reqntidx"; } static StringRef getReqntidYName() { return "reqntidy"; } static StringRef getReqntidZName() { return "reqntidz"; } /// Get the name of the attribute used to annotate exact CTAs required /// per cluster for kernel functions. static StringRef getClusterDimAttrName() { return "nvvm.cluster_dim"; } /// Get the name of the metadata names for each dimension static StringRef getClusterDimXName() { return "cluster_dim_x"; } static StringRef getClusterDimYName() { return "cluster_dim_y"; } static StringRef getClusterDimZName() { return "cluster_dim_z"; } /// Get the name of the attribute used to annotate maximum number of /// CTAs per cluster for kernel functions. static StringRef getClusterMaxBlocksAttrName() { return "nvvm.cluster_max_blocks"; } /// Get the name of the attribute used to annotate min CTA required /// per SM for kernel functions. static StringRef getMinctasmAttrName() { return "nvvm.minctasm"; } /// Get the name of the attribute used to annotate max number of /// registers that can be allocated per thread. static StringRef getMaxnregAttrName() { return "nvvm.maxnreg"; } /// Get the name of the attribute used to annotate kernel arguments that /// are grid constants. static StringRef getGridConstantAttrName() { return "nvvm.grid_constant"; } /// Get the name of the attribute used to annotate the `.blocksareclusters` /// PTX directive for kernel functions. /// This attribute implies that the grid launch configuration for the /// corresponding kernel function is specifying the number of clusters /// instead of the number of thread blocks. This attribute is only /// allowed for kernel functions and requires nvvm.reqntid and /// nvvm.cluster_dim attributes. static StringRef getBlocksAreClustersAttrName() { return "nvvm.blocksareclusters"; } /// Get the name of the attribute used to annotate managed global variables. static StringRef getManagedAttrName() { return "nvvm.managed"; } /// Verify an attribute from this dialect on the argument at 'argIndex' for /// the region at 'regionIndex' on the given operation. Returns failure if /// the verification failed, success otherwise. This hook may optionally be /// invoked from any operation containing a region. LogicalResult verifyRegionArgAttribute(Operation *op, unsigned regionIndex, unsigned argIndex, NamedAttribute argAttr) override; }; } // namespace mlir::NVVM MLIR_DECLARE_EXPLICIT_TYPE_ID(::mlir::NVVM::NVVMDialect)