1 | #ifndef _TRITON_CODEGEN_PASS_H_ |
2 | #define _TRITON_CODEGEN_PASS_H_ |
3 | |
4 | |
5 | #include <memory> |
6 | #include "extern_lib.h" |
7 | |
8 | namespace llvm{ |
9 | class Module; |
10 | class LLVMContext; |
11 | } |
12 | |
13 | namespace triton{ |
14 | |
15 | namespace codegen { |
16 | class target; |
17 | } |
18 | |
19 | namespace ir{ |
20 | class module; |
21 | } |
22 | namespace driver{ |
23 | class device; |
24 | class module; |
25 | class kernel; |
26 | } |
27 | } |
28 | |
29 | namespace triton{ |
30 | namespace codegen{ |
31 | |
32 | // TODO: |
33 | // There should be a proper pass manager there! |
34 | std::unique_ptr<llvm::Module> add_passes_to_emit_bin( |
35 | ir::module &ir, llvm::LLVMContext &ctx, codegen::target *target, |
36 | int num_warps, int num_stages, int &shared_static, |
37 | const ExternLibMap &extern_libs); |
38 | } |
39 | } |
40 | |
41 | #endif |
42 | |