MLIR  20.0.0git
InitAllDialects.h
Go to the documentation of this file.
1 //===- InitAllDialects.h - 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 #ifndef MLIR_INITALLDIALECTS_H_
15 #define MLIR_INITALLDIALECTS_H_
16 
36 #include "mlir/Dialect/DLTI/DLTI.h"
97 #include "mlir/IR/Dialect.h"
102 
103 namespace mlir {
104 
105 /// Add all the MLIR dialects to the provided registry.
106 inline void registerAllDialects(DialectRegistry &registry) {
107  // clang-format off
108  registry.insert<acc::OpenACCDialect,
109  affine::AffineDialect,
110  amdgpu::AMDGPUDialect,
111  amx::AMXDialect,
112  arith::ArithDialect,
113  arm_neon::ArmNeonDialect,
114  arm_sme::ArmSMEDialect,
115  arm_sve::ArmSVEDialect,
116  async::AsyncDialect,
117  bufferization::BufferizationDialect,
118  cf::ControlFlowDialect,
119  complex::ComplexDialect,
120  DLTIDialect,
121  emitc::EmitCDialect,
122  func::FuncDialect,
123  gpu::GPUDialect,
124  index::IndexDialect,
125  irdl::IRDLDialect,
126  linalg::LinalgDialect,
127  LLVM::LLVMDialect,
128  math::MathDialect,
129  memref::MemRefDialect,
130  mesh::MeshDialect,
131  ml_program::MLProgramDialect,
132  mpi::MPIDialect,
133  nvgpu::NVGPUDialect,
134  NVVM::NVVMDialect,
135  omp::OpenMPDialect,
136  pdl::PDLDialect,
137  pdl_interp::PDLInterpDialect,
138  polynomial::PolynomialDialect,
139  ptr::PtrDialect,
140  quant::QuantDialect,
141  ROCDL::ROCDLDialect,
142  scf::SCFDialect,
143  shape::ShapeDialect,
144  sparse_tensor::SparseTensorDialect,
145  spirv::SPIRVDialect,
146  tensor::TensorDialect,
147  tosa::TosaDialect,
148  transform::TransformDialect,
149  ub::UBDialect,
150  vector::VectorDialect,
151  x86vector::X86VectorDialect,
152  xegpu::XeGPUDialect>();
153  // clang-format on
154 
155  // Register all external models.
162  registry);
194 }
195 
196 /// Append all the MLIR dialects to the registry contained in the given context.
197 inline void registerAllDialects(MLIRContext &context) {
198  DialectRegistry registry;
199  registerAllDialects(registry);
200  context.appendDialectRegistry(registry);
201 }
202 
203 } // namespace mlir
204 
205 #endif // MLIR_INITALLDIALECTS_H_
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
MLIRContext is the top-level object for a collection of MLIR operations.
Definition: MLIRContext.h:60
void appendDialectRegistry(const DialectRegistry &registry)
Append the contents of the given dialect registry to the registry associated with this context.
void registerInlinerInterface(DialectRegistry &registry)
Register the LLVMInlinerInterface implementation of DialectInlinerInterface with the LLVM dialect.
void registerNVVMTargetInterfaceExternalModels(DialectRegistry &registry)
Registers the TargetAttrInterface for the #nvvm.target attribute in the given registry.
Definition: Target.cpp:69
void registerROCDLTargetInterfaceExternalModels(DialectRegistry &registry)
Registers the TargetAttrInterface for the #rocdl.target attribute in the given registry.
Definition: Target.cpp:69
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferViewFlowOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferDeallocationOpInterfaceExternalModels(DialectRegistry &registry)
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerCastOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferDeallocationOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferDeallocationOpInterfaceExternalModels(DialectRegistry &registry)
void registerAllDialectInterfaceImplementations(DialectRegistry &registry)
void registerRuntimeVerifiableOpInterfaceExternalModels(DialectRegistry &registry)
void registerMemorySlotExternalModels(DialectRegistry &registry)
void registerAllocationOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferViewFlowOpInterfaceExternalModels(DialectRegistry &registry)
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
void registerRuntimeVerifiableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferDeallocationOpInterfaceExternalModels(DialectRegistry &registry)
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerSPIRVTargetInterfaceExternalModels(DialectRegistry &registry)
Registers the TargetAttrInterface for the #spirv.target_env attribute in the given registry.
Definition: Target.cpp:44
void registerInferTypeOpInterfaceExternalModels(mlir::DialectRegistry &registry)
Registers external models for Infer Type interfaces for tensor ops.
void registerSubsetOpInterfaceExternalModels(DialectRegistry &registry)
void registerFindPayloadReplacementOpInterfaceExternalModels(DialectRegistry &registry)
void registerTilingInterfaceExternalModels(mlir::DialectRegistry &registry)
Registers external models for Tiling interface for tensor ops.
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
void registerShardingInterfaceExternalModels(DialectRegistry &registry)
void registerSubsetOpInterfaceExternalModels(DialectRegistry &registry)
void registerBufferizableOpInterfaceExternalModels(DialectRegistry &registry)
void registerValueBoundsOpInterfaceExternalModels(DialectRegistry &registry)
Include the generated interface declarations.
void registerAllDialects(DialectRegistry &registry)
Add all the MLIR dialects to the provided registry.