xref: /llvm-project/mlir/include/mlir/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.h (revision 206fad0e218e83799e49ca15545d997c6c5e8a03)
1 //===- AMDGPUToROCDL.h - Convert AMDGPU to ROCDL dialect --*- 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 #ifndef MLIR_CONVERSION_AMDGPUTOROCDL_AMDGPUTOROCDL_H_
9 #define MLIR_CONVERSION_AMDGPUTOROCDL_AMDGPUTOROCDL_H_
10 
11 #include "mlir/Dialect/AMDGPU/Utils/Chipset.h"
12 #include <memory>
13 #include <string>
14 
15 namespace mlir {
16 
17 class LLVMTypeConverter;
18 class RewritePatternSet;
19 class Pass;
20 
21 #define GEN_PASS_DECL_CONVERTAMDGPUTOROCDL
22 #include "mlir/Conversion/Passes.h.inc"
23 
24 /// Note: The ROCDL target does not support the LLVM bfloat type at this time
25 /// and so this function will add conversions to change all `bfloat` uses
26 /// to `i16`.
27 void populateAMDGPUToROCDLConversionPatterns(const LLVMTypeConverter &converter,
28                                              RewritePatternSet &patterns,
29                                              amdgpu::Chipset chipset);
30 
31 std::unique_ptr<Pass> createConvertAMDGPUToROCDLPass();
32 
33 } // namespace mlir
34 
35 #endif // MLIR_CONVERSION_AMDGPUTOROCDL_AMDGPUTOROCDL_H_
36