MLIR
22.0.0git
lib
RegisterAllDialects.cpp
Go to the documentation of this file.
1
//===- RegisterAllDialects.cpp - MLIR Dialects Registration -----*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file defines a helper to trigger the registration of all dialects and
10
// passes to the system.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#include "
mlir/InitAllDialects.h
"
15
16
#include "
mlir/Dialect/AMDGPU/IR/AMDGPUDialect.h
"
17
#include "
mlir/Dialect/AMX/AMXDialect.h
"
18
#include "
mlir/Dialect/Affine/IR/AffineOps.h
"
19
#include "
mlir/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.h
"
20
#include "
mlir/Dialect/Arith/IR/Arith.h
"
21
#include "
mlir/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.h
"
22
#include "
mlir/Dialect/Arith/Transforms/BufferDeallocationOpInterfaceImpl.h
"
23
#include "
mlir/Dialect/Arith/Transforms/BufferViewFlowOpInterfaceImpl.h
"
24
#include "
mlir/Dialect/Arith/Transforms/BufferizableOpInterfaceImpl.h
"
25
#include "
mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h
"
26
#include "
mlir/Dialect/ArmNeon/ArmNeonDialect.h
"
27
#include "
mlir/Dialect/ArmSME/IR/ArmSME.h
"
28
#include "
mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h
"
29
#include "
mlir/Dialect/Async/IR/Async.h
"
30
#include "
mlir/Dialect/Bufferization/IR/Bufferization.h
"
31
#include "
mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h
"
32
#include "
mlir/Dialect/Complex/IR/Complex.h
"
33
#include "
mlir/Dialect/ControlFlow/IR/ControlFlow.h
"
34
#include "
mlir/Dialect/ControlFlow/Transforms/BufferDeallocationOpInterfaceImpl.h
"
35
#include "
mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h
"
36
#include "
mlir/Dialect/DLTI/DLTI.h
"
37
#include "
mlir/Dialect/EmitC/IR/EmitC.h
"
38
#include "
mlir/Dialect/Func/IR/FuncOps.h
"
39
#include "
mlir/Dialect/GPU/IR/GPUDialect.h
"
40
#include "
mlir/Dialect/GPU/IR/ValueBoundsOpInterfaceImpl.h
"
41
#include "
mlir/Dialect/GPU/Transforms/BufferDeallocationOpInterfaceImpl.h
"
42
#include "
mlir/Dialect/IRDL/IR/IRDL.h
"
43
#include "
mlir/Dialect/Index/IR/IndexDialect.h
"
44
#include "
mlir/Dialect/LLVMIR/LLVMDialect.h
"
45
#include "
mlir/Dialect/LLVMIR/NVVMDialect.h
"
46
#include "
mlir/Dialect/LLVMIR/ROCDLDialect.h
"
47
#include "
mlir/Dialect/LLVMIR/Transforms/InlinerInterfaceImpl.h
"
48
#include "
mlir/Dialect/LLVMIR/XeVMDialect.h
"
49
#include "
mlir/Dialect/Linalg/IR/Linalg.h
"
50
#include "
mlir/Dialect/Linalg/Transforms/AllInterfaces.h
"
51
#include "
mlir/Dialect/Linalg/Transforms/RuntimeOpVerification.h
"
52
#include "
mlir/Dialect/MLProgram/IR/MLProgram.h
"
53
#include "
mlir/Dialect/MLProgram/Transforms/BufferizableOpInterfaceImpl.h
"
54
#include "
mlir/Dialect/MPI/IR/MPI.h
"
55
#include "
mlir/Dialect/Math/IR/Math.h
"
56
#include "
mlir/Dialect/MemRef/IR/MemRef.h
"
57
#include "
mlir/Dialect/MemRef/IR/MemRefMemorySlot.h
"
58
#include "
mlir/Dialect/MemRef/IR/ValueBoundsOpInterfaceImpl.h
"
59
#include "
mlir/Dialect/MemRef/Transforms/AllocationOpInterfaceImpl.h
"
60
#include "
mlir/Dialect/MemRef/Transforms/BufferViewFlowOpInterfaceImpl.h
"
61
#include "
mlir/Dialect/MemRef/Transforms/RuntimeOpVerification.h
"
62
#include "
mlir/Dialect/NVGPU/IR/NVGPUDialect.h
"
63
#include "
mlir/Dialect/OpenACC/OpenACC.h
"
64
#include "
mlir/Dialect/OpenMP/OpenMPDialect.h
"
65
#include "
mlir/Dialect/PDL/IR/PDL.h
"
66
#include "
mlir/Dialect/PDLInterp/IR/PDLInterp.h
"
67
#include "
mlir/Dialect/Ptr/IR/PtrDialect.h
"
68
#include "
mlir/Dialect/Quant/IR/Quant.h
"
69
#include "
mlir/Dialect/SCF/IR/SCF.h
"
70
#include "
mlir/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.h
"
71
#include "
mlir/Dialect/SCF/TransformOps/SCFTransformOps.h
"
72
#include "
mlir/Dialect/SCF/Transforms/BufferDeallocationOpInterfaceImpl.h
"
73
#include "
mlir/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.h
"
74
#include "
mlir/Dialect/SMT/IR/SMTDialect.h
"
75
#include "
mlir/Dialect/SPIRV/IR/SPIRVDialect.h
"
76
#include "
mlir/Dialect/Shape/IR/Shape.h
"
77
#include "
mlir/Dialect/Shape/Transforms/BufferizableOpInterfaceImpl.h
"
78
#include "
mlir/Dialect/Shard/IR/ShardDialect.h
"
79
#include "
mlir/Dialect/SparseTensor/IR/SparseTensor.h
"
80
#include "
mlir/Dialect/SparseTensor/Transforms/BufferizableOpInterfaceImpl.h
"
81
#include "
mlir/Dialect/Tensor/IR/Tensor.h
"
82
#include "
mlir/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.h
"
83
#include "
mlir/Dialect/Tensor/IR/TensorTilingInterfaceImpl.h
"
84
#include "
mlir/Dialect/Tensor/IR/ValueBoundsOpInterfaceImpl.h
"
85
#include "
mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h
"
86
#include "
mlir/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.h
"
87
#include "
mlir/Dialect/Tensor/Transforms/RuntimeOpVerification.h
"
88
#include "
mlir/Dialect/Tensor/Transforms/SubsetInsertionOpInterfaceImpl.h
"
89
#include "
mlir/Dialect/Tosa/IR/ShardingInterfaceImpl.h
"
90
#include "
mlir/Dialect/Tosa/IR/TosaOps.h
"
91
#include "
mlir/Dialect/Transform/IR/TransformDialect.h
"
92
#include "
mlir/Dialect/Transform/PDLExtension/PDLExtension.h
"
93
#include "
mlir/Dialect/UB/IR/UBOps.h
"
94
#include "
mlir/Dialect/Vector/IR/ValueBoundsOpInterfaceImpl.h
"
95
#include "
mlir/Dialect/Vector/IR/VectorOps.h
"
96
#include "
mlir/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.h
"
97
#include "
mlir/Dialect/Vector/Transforms/SubsetOpInterfaceImpl.h
"
98
#include "
mlir/Dialect/WasmSSA/IR/WasmSSA.h
"
99
#include "
mlir/Dialect/X86Vector/X86VectorDialect.h
"
100
#include "
mlir/Dialect/XeGPU/IR/XeGPU.h
"
101
#include "
mlir/IR/Dialect.h
"
102
#include "
mlir/Interfaces/CastInterfaces.h
"
103
#include "
mlir/Target/LLVM/NVVM/Target.h
"
104
#include "
mlir/Target/LLVM/ROCDL/Target.h
"
105
#include "
mlir/Target/LLVM/XeVM/Target.h
"
106
#include "
mlir/Target/SPIRV/Target.h
"
107
108
/// Add all the MLIR dialects to the provided registry.
109
void
mlir::registerAllDialects
(
DialectRegistry
®istry) {
110
// clang-format off
111
registry.
insert
<acc::OpenACCDialect,
112
affine::AffineDialect,
113
amdgpu::AMDGPUDialect,
114
amx::AMXDialect,
115
arith::ArithDialect,
116
arm_neon::ArmNeonDialect,
117
arm_sme::ArmSMEDialect,
118
arm_sve::ArmSVEDialect,
119
async::AsyncDialect,
120
bufferization::BufferizationDialect,
121
cf::ControlFlowDialect,
122
complex::ComplexDialect,
123
DLTIDialect,
124
emitc::EmitCDialect,
125
func::FuncDialect,
126
gpu::GPUDialect,
127
index::IndexDialect,
128
irdl::IRDLDialect,
129
linalg::LinalgDialect,
130
LLVM::LLVMDialect,
131
math::MathDialect,
132
memref::MemRefDialect,
133
shard::ShardDialect,
134
ml_program::MLProgramDialect,
135
mpi::MPIDialect,
136
nvgpu::NVGPUDialect,
137
NVVM::NVVMDialect,
138
omp::OpenMPDialect,
139
pdl::PDLDialect,
140
pdl_interp::PDLInterpDialect,
141
ptr::PtrDialect,
142
quant::QuantDialect,
143
ROCDL::ROCDLDialect,
144
scf::SCFDialect,
145
shape::ShapeDialect,
146
smt::SMTDialect,
147
sparse_tensor::SparseTensorDialect,
148
spirv::SPIRVDialect,
149
tensor::TensorDialect,
150
tosa::TosaDialect,
151
transform::TransformDialect,
152
ub::UBDialect,
153
vector::VectorDialect,
154
wasmssa::WasmSSADialect,
155
x86vector::X86VectorDialect,
156
xegpu::XeGPUDialect,
157
xevm::XeVMDialect>();
158
// clang-format on
159
160
// Register all external models.
161
affine::registerValueBoundsOpInterfaceExternalModels
(registry);
162
arith::registerBufferDeallocationOpInterfaceExternalModels
(registry);
163
arith::registerBufferizableOpInterfaceExternalModels
(registry);
164
arith::registerBufferViewFlowOpInterfaceExternalModels
(registry);
165
arith::registerShardingInterfaceExternalModels
(registry);
166
arith::registerValueBoundsOpInterfaceExternalModels
(registry);
167
bufferization::func_ext::registerBufferizableOpInterfaceExternalModels
(
168
registry);
169
builtin::registerCastOpInterfaceExternalModels
(registry);
170
cf::registerBufferizableOpInterfaceExternalModels
(registry);
171
cf::registerBufferDeallocationOpInterfaceExternalModels
(registry);
172
gpu::registerBufferDeallocationOpInterfaceExternalModels
(registry);
173
gpu::registerValueBoundsOpInterfaceExternalModels
(registry);
174
LLVM::registerInlinerInterface
(registry);
175
NVVM::registerInlinerInterface
(registry);
176
linalg::registerAllDialectInterfaceImplementations
(registry);
177
linalg::registerRuntimeVerifiableOpInterfaceExternalModels
(registry);
178
memref::registerAllocationOpInterfaceExternalModels
(registry);
179
memref::registerBufferViewFlowOpInterfaceExternalModels
(registry);
180
memref::registerRuntimeVerifiableOpInterfaceExternalModels
(registry);
181
memref::registerValueBoundsOpInterfaceExternalModels
(registry);
182
memref::registerMemorySlotExternalModels
(registry);
183
ml_program::registerBufferizableOpInterfaceExternalModels
(registry);
184
scf::registerBufferDeallocationOpInterfaceExternalModels
(registry);
185
scf::registerBufferizableOpInterfaceExternalModels
(registry);
186
scf::registerValueBoundsOpInterfaceExternalModels
(registry);
187
shape::registerBufferizableOpInterfaceExternalModels
(registry);
188
sparse_tensor::registerBufferizableOpInterfaceExternalModels
(registry);
189
tensor::registerBufferizableOpInterfaceExternalModels
(registry);
190
tensor::registerFindPayloadReplacementOpInterfaceExternalModels
(registry);
191
tensor::registerInferTypeOpInterfaceExternalModels
(registry);
192
tensor::registerRuntimeVerifiableOpInterfaceExternalModels
(registry);
193
tensor::registerSubsetOpInterfaceExternalModels
(registry);
194
tensor::registerTilingInterfaceExternalModels
(registry);
195
tensor::registerValueBoundsOpInterfaceExternalModels
(registry);
196
tosa::registerShardingInterfaceExternalModels
(registry);
197
vector::registerBufferizableOpInterfaceExternalModels
(registry);
198
vector::registerSubsetOpInterfaceExternalModels
(registry);
199
vector::registerValueBoundsOpInterfaceExternalModels
(registry);
200
NVVM::registerNVVMTargetInterfaceExternalModels
(registry);
201
ROCDL::registerROCDLTargetInterfaceExternalModels
(registry);
202
spirv::registerSPIRVTargetInterfaceExternalModels
(registry);
203
xevm::registerXeVMTargetInterfaceExternalModels
(registry);
204
}
205
206
/// Append all the MLIR dialects to the registry contained in the given context.
207
void
mlir::registerAllDialects
(
MLIRContext
&context) {
208
DialectRegistry
registry;
209
registerAllDialects
(registry);
210
context.
appendDialectRegistry
(registry);
211
}
AMDGPUDialect.h
AMXDialect.h
AffineOps.h
ValueBoundsOpInterfaceImpl.h
AllInterfaces.h
AllocationOpInterfaceImpl.h
ValueBoundsOpInterfaceImpl.h
BufferDeallocationOpInterfaceImpl.h
BufferViewFlowOpInterfaceImpl.h
BufferizableOpInterfaceImpl.h
ShardingInterfaceImpl.h
ArmNeonDialect.h
ArmSME.h
ArmSVEDialect.h
Bufferization.h
CastInterfaces.h
Complex.h
BufferDeallocationOpInterfaceImpl.h
BufferizableOpInterfaceImpl.h
DLTI.h
FuncBufferizableOpInterfaceImpl.h
FuncOps.h
GPUDialect.h
ValueBoundsOpInterfaceImpl.h
BufferDeallocationOpInterfaceImpl.h
Dialect.h
IndexDialect.h
InitAllDialects.h
InlinerInterfaceImpl.h
LLVMDialect.h
Target.h
Target.h
Target.h
RuntimeOpVerification.h
BufferizableOpInterfaceImpl.h
MPI.h
MemRefMemorySlot.h
ValueBoundsOpInterfaceImpl.h
BufferViewFlowOpInterfaceImpl.h
RuntimeOpVerification.h
NVGPUDialect.h
NVVMDialect.h
OpenACC.h
OpenMPDialect.h
PDLExtension.h
PDLInterp.h
PtrDialect.h
ROCDLDialect.h
SCFTransformOps.h
ValueBoundsOpInterfaceImpl.h
BufferDeallocationOpInterfaceImpl.h
BufferizableOpInterfaceImpl.h
SMTDialect.h
SPIRVDialect.h
Target.h
BufferizableOpInterfaceImpl.h
ShardDialect.h
BufferizableOpInterfaceImpl.h
SubsetOpInterfaceImpl.h
TensorInferTypeOpInterfaceImpl.h
TensorTilingInterfaceImpl.h
TensorTransformOps.h
ValueBoundsOpInterfaceImpl.h
BufferizableOpInterfaceImpl.h
RuntimeOpVerification.h
SubsetInsertionOpInterfaceImpl.h
TosaOps.h
ShardingInterfaceImpl.h
TransformDialect.h
UBOps.h
VectorOps.h
ValueBoundsOpInterfaceImpl.h
BufferizableOpInterfaceImpl.h
WasmSSA.h
X86VectorDialect.h
XeGPU.h
XeVMDialect.h
mlir::DialectRegistry
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
Definition:
DialectRegistry.h:139
mlir::DialectRegistry::insert
void insert()
Definition:
DialectRegistry.h:152
mlir::MLIRContext
MLIRContext is the top-level object for a collection of MLIR operations.
Definition:
MLIRContext.h:63
mlir::MLIRContext::appendDialectRegistry
void appendDialectRegistry(const DialectRegistry ®istry)
Append the contents of the given dialect registry to the registry associated with this context.
Definition:
MLIRContext.cpp:413
Arith.h
Async.h
ControlFlow.h
EmitC.h
IRDL.h
Linalg.h
MLProgram.h
Math.h
MemRef.h
PDL.h
Quant.h
SCF.h
Shape.h
SparseTensor.h
Tensor.h
mlir::LLVM::registerInlinerInterface
void registerInlinerInterface(DialectRegistry ®istry)
Register the LLVMInlinerInterface implementation of DialectInlinerInterface with the LLVM dialect.
Definition:
InlinerInterfaceImpl.cpp:831
mlir::NVVM::registerNVVMTargetInterfaceExternalModels
void registerNVVMTargetInterfaceExternalModels(DialectRegistry ®istry)
Registers the TargetAttrInterface for the #nvvm.target attribute in the given registry.
Definition:
Target.cpp:73
mlir::ROCDL::registerROCDLTargetInterfaceExternalModels
void registerROCDLTargetInterfaceExternalModels(DialectRegistry ®istry)
Registers the TargetAttrInterface for the #rocdl.target attribute in the given registry.
Definition:
Target.cpp:69
mlir::affine::registerValueBoundsOpInterfaceExternalModels
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
ValueBoundsOpInterfaceImpl.cpp:155
mlir::arith::registerBufferizableOpInterfaceExternalModels
void registerBufferizableOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
BufferizableOpInterfaceImpl.cpp:215
mlir::arith::registerBufferViewFlowOpInterfaceExternalModels
void registerBufferViewFlowOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
BufferViewFlowOpInterfaceImpl.cpp:39
mlir::arith::registerShardingInterfaceExternalModels
void registerShardingInterfaceExternalModels(DialectRegistry ®istry)
Definition:
ShardingInterfaceImpl.cpp:98
mlir::arith::registerBufferDeallocationOpInterfaceExternalModels
void registerBufferDeallocationOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
BufferDeallocationOpInterfaceImpl.cpp:80
mlir::builtin::registerCastOpInterfaceExternalModels
void registerCastOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
CastInterfaces.cpp:80
mlir::linalg::registerAllDialectInterfaceImplementations
void registerAllDialectInterfaceImplementations(DialectRegistry ®istry)
Definition:
AllInterfaces.cpp:17
mlir::linalg::registerRuntimeVerifiableOpInterfaceExternalModels
void registerRuntimeVerifiableOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
RuntimeOpVerification.cpp:122
mlir::linalg::registerSubsetOpInterfaceExternalModels
void registerSubsetOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
SubsetInsertionOpInterfaceImpl.cpp:72
mlir::linalg::registerTilingInterfaceExternalModels
void registerTilingInterfaceExternalModels(DialectRegistry ®istry)
Definition:
TilingInterfaceImpl.cpp:1407
mlir::memref::registerMemorySlotExternalModels
void registerMemorySlotExternalModels(DialectRegistry ®istry)
Definition:
MemRefMemorySlot.cpp:347
mlir::memref::registerAllocationOpInterfaceExternalModels
void registerAllocationOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
AllocationOpInterfaceImpl.cpp:62
mlir::spirv::registerSPIRVTargetInterfaceExternalModels
void registerSPIRVTargetInterfaceExternalModels(DialectRegistry ®istry)
Registers the TargetAttrInterface for the #spirv.target_env attribute in the given registry.
Definition:
Target.cpp:44
mlir::tensor::registerInferTypeOpInterfaceExternalModels
void registerInferTypeOpInterfaceExternalModels(mlir::DialectRegistry ®istry)
Registers external models for Infer Type interfaces for tensor ops.
Definition:
TensorInferTypeOpInterfaceImpl.cpp:128
mlir::tensor::registerFindPayloadReplacementOpInterfaceExternalModels
void registerFindPayloadReplacementOpInterfaceExternalModels(DialectRegistry ®istry)
Definition:
TensorTransformOps.cpp:71
mlir::xevm::registerXeVMTargetInterfaceExternalModels
void registerXeVMTargetInterfaceExternalModels(mlir::DialectRegistry ®istry)
Registers the TargetAttrInterface for the #xevm.target attribute in the given registry.
Definition:
Target.cpp:64
mlir::registerAllDialects
void registerAllDialects(DialectRegistry ®istry)
Add all the MLIR dialects to the provided registry.
Definition:
RegisterAllDialects.cpp:109
Generated on Wed Sep 10 2025 04:32:44 for MLIR by
1.9.1