[Mlir-commits] [mlir] [mlir][NVGPU] Split out the dialect declaration to improve build time (NFC) (PR #222767)

Mehdi Amini llvmlistbot at llvm.org
Thu Sep 10 13:51:32 PDT 2026


https://github.com/joker-eph created https://github.com/llvm/llvm-project/pull/222767

Move NVGPUDialect to a self-contained declaration header and use it in three consumers that do not need generated NVGPU operations.

Median instructions fell from 221.225B to 166.874B (-24.568%) and wall time from 34.31s to 25.61s (-25.357%).

Assisted-by: Codex

>From f72a8a813a4e22f21ca9eafb667706517b709399 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Tue, 8 Sep 2026 05:51:27 -0700
Subject: [PATCH] [mlir][NVGPU] Split out the dialect declaration (NFC)

Move NVGPUDialect to a self-contained declaration header and use it in
three consumers that do not need generated NVGPU operations.

Median instructions fell from 221.225B to 166.874B (-24.568%) and wall
time from 34.31s to 25.61s (-25.357%).

Assisted-by: Codex
---
 .../mlir/Dialect/NVGPU/IR/NVGPUDialect.h      |  3 +--
 .../mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h  | 20 +++++++++++++++++++
 .../TransformOps/MemRefTransformOps.cpp       |  2 +-
 mlir/lib/RegisterAllDialects.cpp              |  2 +-
 .../Dialect/Vector/TestVectorTransforms.cpp   |  2 +-
 5 files changed, 24 insertions(+), 5 deletions(-)
 create mode 100644 mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h

diff --git a/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialect.h b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialect.h
index 41f134fd12925..7c90c8c5ca03d 100644
--- a/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialect.h
+++ b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialect.h
@@ -15,6 +15,7 @@
 
 #include "mlir/Bytecode/BytecodeOpInterface.h"
 #include "mlir/Dialect/LLVMIR/NVVMDialect.h"
+#include "mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h"
 #include "mlir/IR/BuiltinTypes.h"
 #include "mlir/IR/Dialect.h"
 #include "mlir/IR/OpDefinition.h"
@@ -56,8 +57,6 @@ constexpr unsigned kTMALastdimByte = 16;
 #define GET_TYPEDEF_CLASSES
 #include "mlir/Dialect/NVGPU/IR/NVGPUTypeDefs.h.inc"
 
-#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h.inc"
-
 #define GET_OP_CLASSES
 #include "mlir/Dialect/NVGPU/IR/NVGPUOps.h.inc"
 
diff --git a/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h
new file mode 100644
index 0000000000000..a5987e4488497
--- /dev/null
+++ b/mlir/include/mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h
@@ -0,0 +1,20 @@
+//===- NVGPUDialectDecl.h - NVGPU dialect declaration ----------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_DIALECT_NVGPU_IR_NVGPUDIALECTDECL_H
+#define MLIR_DIALECT_NVGPU_IR_NVGPUDIALECTDECL_H
+
+#include "mlir/IR/Dialect.h"
+
+namespace mlir {
+class MemRefType;
+} // namespace mlir
+
+#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h.inc"
+
+#endif // MLIR_DIALECT_NVGPU_IR_NVGPUDIALECTDECL_H
diff --git a/mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp b/mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
index 4a3c124d8560c..2f21a7994b03b 100644
--- a/mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
+++ b/mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
@@ -16,7 +16,7 @@
 #include "mlir/Dialect/MemRef/Transforms/Passes.h"
 #include "mlir/Dialect/MemRef/Transforms/Transforms.h"
 #include "mlir/Dialect/MemRef/Utils/MemRefUtils.h"
-#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h"
+#include "mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h"
 #include "mlir/Dialect/SCF/IR/SCF.h"
 #include "mlir/Dialect/Transform/IR/TransformDialect.h"
 #include "mlir/Dialect/Transform/IR/TransformTypes.h"
diff --git a/mlir/lib/RegisterAllDialects.cpp b/mlir/lib/RegisterAllDialects.cpp
index ebc48a4bfc836..f58575fdba48b 100644
--- a/mlir/lib/RegisterAllDialects.cpp
+++ b/mlir/lib/RegisterAllDialects.cpp
@@ -62,7 +62,7 @@
 #include "mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h"
 #include "mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h"
 #include "mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h"
-#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h"
+#include "mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h"
 #include "mlir/Dialect/NVGPU/Transforms/MemoryAccessOpInterfacesImpl.h"
 #include "mlir/Dialect/OpenACC/OpenACC.h"
 #include "mlir/Dialect/OpenMP/OpenMPDialect.h"
diff --git a/mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp b/mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
index c0f8a85206cdf..51ea9b451924a 100644
--- a/mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
+++ b/mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
@@ -15,7 +15,7 @@
 #include "mlir/Dialect/GPU/IR/GPUDialect.h"
 #include "mlir/Dialect/Linalg/Passes.h"
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
-#include "mlir/Dialect/NVGPU/IR/NVGPUDialect.h"
+#include "mlir/Dialect/NVGPU/IR/NVGPUDialectDecl.h"
 #include "mlir/Dialect/SCF/IR/SCF.h"
 #include "mlir/Dialect/SCF/Transforms/Patterns.h"
 #include "mlir/Dialect/Tensor/IR/Tensor.h"



More information about the Mlir-commits mailing list