[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 14:08:58 PDT 2026


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

>From 35672286a07d5c51af4b28c501a2a5e3037b829a 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.

Across three controlled rebuilds of the affected TUs, median instructions
fell from 162.958B to 126.072B (-22.635%) and median wall time fell from
25.38s to 19.34s (-23.798%).

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