[all-commits] [llvm/llvm-project] 7c4e8c: [mlir] Disentangle dialect and extension registrat...
Nicolas Vasilache via All-commits
all-commits at lists.llvm.org
Mon Aug 21 17:40:26 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7c4e8c6a273f25b3ef33e9c123b3969632ab59bb
https://github.com/llvm/llvm-project/commit/7c4e8c6a273f25b3ef33e9c123b3969632ab59bb
Author: Nicolas Vasilache <nicolasvasilache at users.noreply.github.com>
Date: 2023-08-22 (Tue, 22 Aug 2023)
Changed paths:
M mlir/examples/transform/Ch2/transform-opt/transform-opt.cpp
M mlir/examples/transform/Ch3/transform-opt/transform-opt.cpp
M mlir/include/mlir/Dialect/GPU/Transforms/Passes.h
M mlir/include/mlir/InitAllDialects.h
M mlir/include/mlir/InitAllExtensions.h
M mlir/include/mlir/Target/LLVM/NVVM/Target.h
M mlir/include/mlir/Target/LLVM/ROCDL/Target.h
M mlir/include/mlir/Target/LLVMIR/Dialect/All.h
M mlir/include/mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h
M mlir/lib/CAPI/RegisterEverything/RegisterEverything.cpp
M mlir/lib/Dialect/GPU/Transforms/ModuleToBinary.cpp
M mlir/lib/Dialect/GPU/Transforms/NVVMAttachTarget.cpp
M mlir/lib/Dialect/GPU/Transforms/ROCDLAttachTarget.cpp
M mlir/lib/Dialect/GPU/Transforms/SerializeToBlob.cpp
M mlir/lib/Dialect/GPU/Transforms/SerializeToCubin.cpp
M mlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp
M mlir/lib/Target/LLVM/NVVM/Target.cpp
M mlir/lib/Target/LLVM/ROCDL/Target.cpp
M mlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp
M mlir/lib/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.cpp
M mlir/lib/Target/LLVMIR/Dialect/GPU/SelectObjectAttr.cpp
M mlir/tools/mlir-opt/mlir-opt.cpp
M mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp
M mlir/unittests/Target/LLVM/SerializeROCDLTarget.cpp
Log Message:
-----------
[mlir] Disentangle dialect and extension registrations.
This revision avoids the registration of dialect extensions in Pass::getDependentDialects.
Such registration of extensions can be dangerous because `DialectRegistry::isSubsetOf` is
always guaranteed to return false for extensions (i.e. there is no mechanism to track
whether a lambda is already in the list of already registered extensions).
When the context is already in a multi-threaded mode, this is guaranteed to assert.
Arguably a more structured registration mechanism for extensions with a unique ExtensionID
could be envisioned in the future.
In the process of cleaning this up, multiple usage inconsistencies surfaced around the
registration of translation extensions that this revision also cleans up.
Reviewed By: springerm
Differential Revision: https://reviews.llvm.org/D157703
More information about the All-commits
mailing list