Files
gps/tools/local/circt/include/mlir/Dialect/LLVMIR/NVVMOpsDialect.h.inc
T
2026-07-12 11:01:51 +03:00

104 lines
5.0 KiB
C++

/*===- 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)