1 //===-- AMDGPU.h - MachineFunction passes hw codegen --------------*- 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 /// \file
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_LIB_TARGET_AMDGPU_R600_H
11 #define LLVM_LIB_TARGET_AMDGPU_R600_H
12 
13 #include "llvm/Support/CodeGen.h"
14 
15 namespace llvm {
16 
17 class FunctionPass;
18 class TargetMachine;
19 class ModulePass;
20 class PassRegistry;
21 
22 // R600 Passes
23 FunctionPass *createR600VectorRegMerger();
24 FunctionPass *createR600ExpandSpecialInstrsPass();
25 FunctionPass *createR600EmitClauseMarkers();
26 FunctionPass *createR600ClauseMergePass();
27 FunctionPass *createR600Packetizer();
28 FunctionPass *createR600ControlFlowFinalizer();
29 FunctionPass *createAMDGPUCFGStructurizerPass();
30 FunctionPass *createR600ISelDag(TargetMachine *TM, CodeGenOpt::Level OptLevel);
31 ModulePass *createR600OpenCLImageTypeLoweringPass();
32 
33 void initializeR600ClauseMergePassPass(PassRegistry &);
34 extern char &R600ClauseMergePassID;
35 
36 void initializeR600ControlFlowFinalizerPass(PassRegistry &);
37 extern char &R600ControlFlowFinalizerID;
38 
39 void initializeR600ExpandSpecialInstrsPassPass(PassRegistry &);
40 extern char &R600ExpandSpecialInstrsPassID;
41 
42 void initializeR600VectorRegMergerPass(PassRegistry &);
43 extern char &R600VectorRegMergerID;
44 
45 void initializeR600PacketizerPass(PassRegistry &);
46 extern char &R600PacketizerID;
47 
48 } // End namespace llvm
49 
50 #endif
51