#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h"
#include "mlir/Dialect/GPU/IR/GPUDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/TypeUtilities.h"
#include "mlir/IR/Verifier.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/TypeSwitch.h"
usingnamespacemlir;
usingnamespacemlir::nvgpu;
#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.cpp.inc"
void nvgpu::NVGPUDialect::initialize() { … }
bool nvgpu::NVGPUDialect::isSharedMemoryAddressSpace(Attribute memorySpace) { … }
bool nvgpu::NVGPUDialect::hasSharedMemoryAddressSpace(MemRefType type) { … }
LogicalResult DeviceAsyncCopyOp::verify() { … }
void MmaSyncOp::build(::mlir::OpBuilder &odsBuilder,
::mlir::OperationState &odsState, Value matrixA,
Value matrixB, Value matrixC, ArrayAttr mmaShape) { … }
void MmaSyncOp::build(::mlir::OpBuilder &odsBuilder,
::mlir::OperationState &odsState, Value matrixA,
Value matrixB, Value matrixC, ArrayRef<int64_t> mmaShape,
bool tf32Enabled) { … }
static LogicalResult verifyMmaSyncOp(Operation *op,
TypedValue<VectorType> matrixA,
TypedValue<VectorType> matrixB,
TypedValue<VectorType> matrixC,
const std::array<int64_t, 3> &mmaShape,
bool tf32Enabled, bool sparse = false) { … }
LogicalResult MmaSyncOp::verify() { … }
void MmaSparseSyncOp::build(::mlir::OpBuilder &odsBuilder,
::mlir::OperationState &odsState, Value matrixA,
Value matrixB, Value matrixC, Value sparseMetadata,
ArrayRef<int64_t> mmaShape) { … }
LogicalResult MmaSparseSyncOp::verify() { … }
LogicalResult LdMatrixOp::verify() { … }
std::optional<InFlightDiagnostic> verifyTmaDescriptorWithMemref(
Operation *op, nvgpu::TensorMapDescriptorType descType,
std::optional<MemRefType> memrefType = std::nullopt) { … }
LogicalResult TmaAsyncLoadOp::verify() { … }
LogicalResult TmaAsyncStoreOp::verify() { … }
LogicalResult TmaCreateDescriptorOp::verify() { … }
LogicalResult WarpgroupGenerateDescriptorOp::verify() { … }
LogicalResult isAllowedWGMMADataType(Type typeD, Type typeA, Type typeB) { … }
LogicalResult isAllowedSizeM(int sizeM) { … }
LogicalResult isAllowedSizeN(int sizeN, Type typeA) { … }
LogicalResult WarpgroupMmaOp::verify() { … }
LogicalResult WarpgroupMmaStoreOp::verify() { … }
LogicalResult WarpgroupMmaInitAccumulatorOp::verify() { … }
LogicalResult RcpOp::verify() { … }
#define GET_ATTRDEF_CLASSES
#include "mlir/Dialect/NVGPU/IR/NVGPUAttrDefs.cpp.inc"
#include "mlir/Dialect/NVGPU/IR/NVGPUEnums.cpp.inc"
#define GET_OP_CLASSES
#include "mlir/Dialect/NVGPU/IR/NVGPU.cpp.inc"
#define GET_TYPEDEF_CLASSES
#include "mlir/Dialect/NVGPU/IR/NVGPUTypes.cpp.inc"