About
Contact
QtCreator
KDevelop
Solarized
1
//===- InitAllExtensions.h - MLIR Extension 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 dialect
10
// extensions to the system.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#
ifndef
MLIR_INITALLEXTENSIONS_H_
15
#define
MLIR_INITALLEXTENSIONS_H_
16
17
#include
"mlir/Conversion/ArithToLLVM/ArithToLLVM.h"
18
#include
"mlir/Conversion/ComplexToLLVM/ComplexToLLVM.h"
19
#include
"mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
20
#include
"mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
21
#include
"mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
22
#include
"mlir/Conversion/MathToLLVM/MathToLLVM.h"
23
#include
"mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h"
24
#include
"mlir/Conversion/NVVMToLLVM/NVVMToLLVM.h"
25
#include
"mlir/Conversion/UBToLLVM/UBToLLVM.h"
26
#include
"mlir/Dialect/Affine/TransformOps/AffineTransformOps.h"
27
#include
"mlir/Dialect/Bufferization/TransformOps/BufferizationTransformOps.h"
28
#include
"mlir/Dialect/Func/Extensions/AllExtensions.h"
29
#include
"mlir/Dialect/Func/TransformOps/FuncTransformOps.h"
30
#include
"mlir/Dialect/GPU/TransformOps/GPUTransformOps.h"
31
#include
"mlir/Dialect/Linalg/TransformOps/DialectExtension.h"
32
#include
"mlir/Dialect/MemRef/TransformOps/MemRefTransformOps.h"
33
#include
"mlir/Dialect/NVGPU/TransformOps/NVGPUTransformOps.h"
34
#include
"mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
35
#include
"mlir/Dialect/SparseTensor/TransformOps/SparseTensorTransformOps.h"
36
#include
"mlir/Dialect/Tensor/TransformOps/TensorTransformOps.h"
37
#include
"mlir/Dialect/Transform/DebugExtension/DebugExtension.h"
38
#include
"mlir/Dialect/Transform/LoopExtension/LoopExtension.h"
39
#include
"mlir/Dialect/Transform/PDLExtension/PDLExtension.h"
40
#include
"mlir/Dialect/Vector/TransformOps/VectorTransformOps.h"
41
#include
"mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
42
#include
"mlir/Target/LLVMIR/Dialect/GPU/GPUToLLVMIRTranslation.h"
43
#include
"mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
44
#include
"mlir/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.h"
45
46
#include
<cstdlib>
47
48
namespace
mlir
{
49
50
/// This function may be called to register all MLIR dialect extensions with the
51
/// provided registry.
52
/// If you're building a compiler, you generally shouldn't use this: you would
53
/// individually register the specific extensions that are useful for the
54
/// pipelines and transformations you are using.
55
inline
void
registerAllExtensions
(
DialectRegistry
&
registry
) {
56
// Register all conversions to LLVM extensions.
57
arith::
registerConvertArithToLLVMInterface
(
registry
);
58
registerConvertComplexToLLVMInterface
(
registry
);
59
cf::
registerConvertControlFlowToLLVMInterface
(
registry
);
60
func::
registerAllExtensions
(
registry
);
61
registerConvertFuncToLLVMInterface
(
registry
);
62
index::
registerConvertIndexToLLVMInterface
(
registry
);
63
registerConvertMathToLLVMInterface
(
registry
);
64
registerConvertMemRefToLLVMInterface
(
registry
);
65
registerConvertNVVMToLLVMInterface
(
registry
);
66
ub::
registerConvertUBToLLVMInterface
(
registry
);
67
68
// Register all transform dialect extensions.
69
affine::
registerTransformDialectExtension
(
registry
);
70
bufferization::
registerTransformDialectExtension
(
registry
);
71
func::
registerTransformDialectExtension
(
registry
);
72
gpu::
registerTransformDialectExtension
(
registry
);
73
linalg::
registerTransformDialectExtension
(
registry
);
74
memref::
registerTransformDialectExtension
(
registry
);
75
nvgpu::
registerTransformDialectExtension
(
registry
);
76
scf::
registerTransformDialectExtension
(
registry
);
77
sparse_tensor::
registerTransformDialectExtension
(
registry
);
78
tensor::
registerTransformDialectExtension
(
registry
);
79
transform::
registerDebugExtension
(
dialectRegistry&:
registry
);
80
transform::
registerLoopExtension
(
dialectRegistry&:
registry
);
81
transform::
registerPDLExtension
(
dialectRegistry&:
registry
);
82
vector::
registerTransformDialectExtension
(
registry
);
83
84
// Translation extensions need to be registered by calling
85
// `registerAllToLLVMIRTranslations` (see All.h).
86
}
87
88
}
// namespace mlir
89
90
#
endif
// MLIR_INITALLEXTENSIONS_H_
91