xref: /freebsd/contrib/llvm-project/llvm/lib/Target/SPIRV/SPIRV.h (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
1 //===-- SPIRV.h - Top-level interface for SPIR-V representation -*- 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_SPIRV_SPIRV_H
10 #define LLVM_LIB_TARGET_SPIRV_SPIRV_H
11 
12 #include "MCTargetDesc/SPIRVMCTargetDesc.h"
13 #include "llvm/CodeGen/MachineFunctionPass.h"
14 #include "llvm/Target/TargetMachine.h"
15 
16 namespace llvm {
17 class SPIRVTargetMachine;
18 class SPIRVSubtarget;
19 class InstructionSelector;
20 class RegisterBankInfo;
21 
22 FunctionPass *createSPIRVPreLegalizerPass();
23 FunctionPass *createSPIRVEmitIntrinsicsPass(SPIRVTargetMachine *TM);
24 InstructionSelector *
25 createSPIRVInstructionSelector(const SPIRVTargetMachine &TM,
26                                const SPIRVSubtarget &Subtarget,
27                                const RegisterBankInfo &RBI);
28 
29 void initializeSPIRVModuleAnalysisPass(PassRegistry &);
30 void initializeSPIRVPreLegalizerPass(PassRegistry &);
31 void initializeSPIRVEmitIntrinsicsPass(PassRegistry &);
32 } // namespace llvm
33 
34 #endif // LLVM_LIB_TARGET_SPIRV_SPIRV_H
35