1 //===-- SPIRV.h - Top-level interface for SPIR-V representation -*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_LIB_TARGET_SPIRV_SPIRV_H
10 #define LLVM_LIB_TARGET_SPIRV_SPIRV_H
12 #include "MCTargetDesc/SPIRVMCTargetDesc.h"
13 #include "llvm/CodeGen/MachineFunctionPass.h"
14 #include "llvm/Target/TargetMachine.h"
17 class SPIRVTargetMachine
;
19 class InstructionSelector
;
20 class RegisterBankInfo
;
22 ModulePass
*createSPIRVPrepareFunctionsPass(const SPIRVTargetMachine
&TM
);
23 FunctionPass
*createSPIRVMergeRegionExitTargetsPass();
24 FunctionPass
*createSPIRVStripConvergenceIntrinsicsPass();
25 FunctionPass
*createSPIRVRegularizerPass();
26 FunctionPass
*createSPIRVPreLegalizerPass();
27 FunctionPass
*createSPIRVPostLegalizerPass();
28 ModulePass
*createSPIRVEmitIntrinsicsPass(SPIRVTargetMachine
*TM
);
30 createSPIRVInstructionSelector(const SPIRVTargetMachine
&TM
,
31 const SPIRVSubtarget
&Subtarget
,
32 const RegisterBankInfo
&RBI
);
34 void initializeSPIRVModuleAnalysisPass(PassRegistry
&);
35 void initializeSPIRVConvergenceRegionAnalysisWrapperPassPass(PassRegistry
&);
36 void initializeSPIRVPreLegalizerPass(PassRegistry
&);
37 void initializeSPIRVPostLegalizerPass(PassRegistry
&);
38 void initializeSPIRVEmitIntrinsicsPass(PassRegistry
&);
41 #endif // LLVM_LIB_TARGET_SPIRV_SPIRV_H