xref: /freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPassBuilder.h (revision 5036d9652a5701d00e9e40ea942c278e9f77d33d)
1 //===- lib/Target/AMDGPU/AMDGPUCodeGenPassBuilder.h -----------*- 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 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUCODEGENPASSBUILDER_H
10 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUCODEGENPASSBUILDER_H
11 
12 #include "llvm/MC/MCStreamer.h"
13 #include "llvm/Passes/CodeGenPassBuilder.h"
14 
15 namespace llvm {
16 
17 class AMDGPUTargetMachine;
18 
19 class AMDGPUCodeGenPassBuilder
20     : public CodeGenPassBuilder<AMDGPUCodeGenPassBuilder, AMDGPUTargetMachine> {
21 public:
22   AMDGPUCodeGenPassBuilder(AMDGPUTargetMachine &TM,
23                            const CGPassBuilderOption &Opts,
24                            PassInstrumentationCallbacks *PIC);
25 
26   void addPreISel(AddIRPass &addPass) const;
27   void addAsmPrinter(AddMachinePass &, CreateMCStreamer) const;
28   Error addInstSelector(AddMachinePass &) const;
29 };
30 
31 } // namespace llvm
32 
33 #endif // LLVM_LIB_TARGET_AMDGPU_AMDGPUCODEGENPASSBUILDER_H
34