[Mlir-commits] [mlir] 34379c8 - [mlir] Skip uniquer locks when a context starts without threading (#235294)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sat Oct 24 11:24:49 PDT 2026
Author: Arseniy Obolenskiy
Date: 2026-10-24T20:24:43+02:00
New Revision: 34379c8a88246f340a20a76df24714c41f0a163e
URL: https://github.com/llvm/llvm-project/commit/34379c8a88246f340a20a76df24714c41f0a163e
DIFF: https://github.com/llvm/llvm-project/commit/34379c8a88246f340a20a76df24714c41f0a163e.diff
LOG: [mlir] Skip uniquer locks when a context starts without threading (#235294)
Added:
Modified:
mlir/lib/IR/MLIRContext.cpp
Removed:
################################################################################
diff --git a/mlir/lib/IR/MLIRContext.cpp b/mlir/lib/IR/MLIRContext.cpp
index c5d66c27557c50..350680692a6e0f 100644
--- a/mlir/lib/IR/MLIRContext.cpp
+++ b/mlir/lib/IR/MLIRContext.cpp
@@ -286,8 +286,16 @@ class MLIRContextImpl {
if (threadingIsEnabled) {
ownedThreadPool = std::make_unique<llvm::DefaultThreadPool>();
threadPool = ownedThreadPool.get();
+ } else {
+ disableUniquerMultithreading(true);
}
}
+ /// Update the threading mode for each of the uniquers.
+ void disableUniquerMultithreading(bool disable) {
+ affineUniquer.disableMultithreading(disable);
+ attributeUniquer.disableMultithreading(disable);
+ typeUniquer.disableMultithreading(disable);
+ }
~MLIRContextImpl() {
for (auto typeMapping : registeredTypes)
typeMapping.second->~AbstractType();
@@ -624,10 +632,7 @@ void MLIRContext::disableMultithreading(bool disable) {
impl->threadingIsEnabled = !disable;
- // Update the threading mode for each of the uniquers.
- impl->affineUniquer.disableMultithreading(disable);
- impl->attributeUniquer.disableMultithreading(disable);
- impl->typeUniquer.disableMultithreading(disable);
+ impl->disableUniquerMultithreading(disable);
// Destroy thread pool (stop all threads) if it is no longer needed, or create
// a new one if multithreading was re-enabled.
More information about the Mlir-commits
mailing list