[Mlir-commits] [mlir] [mlir][ROCDL] Split the dialect declaration to improve build time (NFC) (PR #222794)

Mehdi Amini llvmlistbot at llvm.org
Thu Sep 10 14:56:54 PDT 2026


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

Introduce a self-contained dialect declaration and use it in three consumers that need registration but not the generated operation umbrella.

Across three controlled rebuilds of the affected TUs, median instructions fell from 129.372B to 111.587B (-13.748%) and median wall time fell from 20.62s to 17.72s (-14.064%).

Assisted-by: Codex

>From 071802f7b5e4fdd72dba590b90ebccec1bbe4bc4 Mon Sep 17 00:00:00 2001
From: Mehdi Amini <joker.eph at gmail.com>
Date: Thu, 10 Sep 2026 14:50:50 -0700
Subject: [PATCH] [mlir][ROCDL] Split the dialect declaration (NFC)

Introduce a self-contained dialect declaration and use it in three consumers
that need registration but not the generated operation umbrella.

Across three controlled rebuilds of the affected TUs, median instructions fell
from 129.372B to 111.587B (-13.748%) and median wall time fell from 20.62s to
17.72s (-14.064%).

Assisted-by: Codex
---
 mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h |  4 +---
 .../mlir/Dialect/LLVMIR/ROCDLDialectDecl.h      | 17 +++++++++++++++++
 mlir/lib/CAPI/Dialect/ROCDL.cpp                 |  2 +-
 mlir/lib/RegisterAllDialects.cpp                |  2 +-
 mlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp    |  2 +-
 5 files changed, 21 insertions(+), 6 deletions(-)
 create mode 100644 mlir/include/mlir/Dialect/LLVMIR/ROCDLDialectDecl.h

diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h
index f89c8812ca4d4..36d5d3574d4a7 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialect.h
@@ -24,7 +24,7 @@
 
 #include "mlir/Bytecode/BytecodeOpInterface.h"
 #include "mlir/Dialect/LLVMIR/LLVMDialect.h"
-#include "mlir/IR/Dialect.h"
+#include "mlir/Dialect/LLVMIR/ROCDLDialectDecl.h"
 #include "mlir/IR/OpDefinition.h"
 #include "mlir/Interfaces/SideEffectInterfaces.h"
 
@@ -34,8 +34,6 @@
 #define GET_ATTRDEF_CLASSES
 #include "mlir/Dialect/LLVMIR/ROCDLOpsAttributes.h.inc"
 
-#include "mlir/Dialect/LLVMIR/ROCDLOpsDialect.h.inc"
-
 #define GET_OP_CLASSES
 #include "mlir/Dialect/LLVMIR/ROCDLOps.h.inc"
 
diff --git a/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialectDecl.h b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialectDecl.h
new file mode 100644
index 0000000000000..ba2bfa2d26cb6
--- /dev/null
+++ b/mlir/include/mlir/Dialect/LLVMIR/ROCDLDialectDecl.h
@@ -0,0 +1,17 @@
+//===- ROCDLDialectDecl.h - ROCDL 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_LLVMIR_ROCDLDIALECTDECL_H
+#define MLIR_DIALECT_LLVMIR_ROCDLDIALECTDECL_H
+
+#include "mlir/IR/Dialect.h"
+#include "mlir/IR/Operation.h"
+
+#include "mlir/Dialect/LLVMIR/ROCDLOpsDialect.h.inc"
+
+#endif // MLIR_DIALECT_LLVMIR_ROCDLDIALECTDECL_H
diff --git a/mlir/lib/CAPI/Dialect/ROCDL.cpp b/mlir/lib/CAPI/Dialect/ROCDL.cpp
index 63e2fa881670d..aee15c2fb5843 100644
--- a/mlir/lib/CAPI/Dialect/ROCDL.cpp
+++ b/mlir/lib/CAPI/Dialect/ROCDL.cpp
@@ -8,6 +8,6 @@
 
 #include "mlir-c/Dialect/ROCDL.h"
 #include "mlir/CAPI/Registration.h"
-#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
+#include "mlir/Dialect/LLVMIR/ROCDLDialectDecl.h"
 
 MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(ROCDL, rocdl, mlir::ROCDL::ROCDLDialect)
diff --git a/mlir/lib/RegisterAllDialects.cpp b/mlir/lib/RegisterAllDialects.cpp
index ebc48a4bfc836..91c0b3519461b 100644
--- a/mlir/lib/RegisterAllDialects.cpp
+++ b/mlir/lib/RegisterAllDialects.cpp
@@ -46,7 +46,7 @@
 #include "mlir/Dialect/Index/IR/IndexDialect.h"
 #include "mlir/Dialect/LLVMIR/LLVMDialect.h"
 #include "mlir/Dialect/LLVMIR/NVVMDialect.h"
-#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
+#include "mlir/Dialect/LLVMIR/ROCDLDialectDecl.h"
 #include "mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h"
 #include "mlir/Dialect/LLVMIR/XeVMDialect.h"
 #include "mlir/Dialect/Linalg/IR/Linalg.h"
diff --git a/mlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp b/mlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp
index 616f458e4824c..56d8539d19435 100644
--- a/mlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp
+++ b/mlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp
@@ -16,7 +16,7 @@
 #include "mlir/Dialect/Func/IR/FuncOps.h"
 #include "mlir/Dialect/GPU/Transforms/Passes.h"
 #include "mlir/Dialect/Index/IR/IndexDialect.h"
-#include "mlir/Dialect/LLVMIR/ROCDLDialect.h"
+#include "mlir/Dialect/LLVMIR/ROCDLDialectDecl.h"
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
 #include "mlir/Dialect/Vector/IR/VectorOps.h"
 #include "mlir/IR/PatternMatch.h"



More information about the Mlir-commits mailing list