61 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_SPIRV_SPIRV_H10#define LLVM_LIB_TARGET_SPIRV_SPIRV_H11 12#include "MCTargetDesc/SPIRVMCTargetDesc.h"13#include "llvm/CodeGen/MachineFunctionPass.h"14#include "llvm/Target/TargetMachine.h"15 16namespace llvm {17class SPIRVTargetMachine;18class SPIRVSubtarget;19class InstructionSelector;20class RegisterBankInfo;21 22ModulePass *createSPIRVPrepareFunctionsPass(const SPIRVTargetMachine &TM);23FunctionPass *createSPIRVStructurizerPass();24ModulePass *createSPIRVCBufferAccessLegacyPass();25FunctionPass *createSPIRVMergeRegionExitTargetsPass();26FunctionPass *createSPIRVStripConvergenceIntrinsicsPass();27ModulePass *createSPIRVLegalizeImplicitBindingPass();28FunctionPass *createSPIRVLegalizePointerCastPass(SPIRVTargetMachine *TM);29FunctionPass *createSPIRVRegularizerPass();30FunctionPass *createSPIRVPreLegalizerCombiner();31FunctionPass *createSPIRVPreLegalizerPass();32FunctionPass *createSPIRVPostLegalizerPass();33ModulePass *createSPIRVEmitIntrinsicsPass(SPIRVTargetMachine *TM);34ModulePass *createSPIRVPrepareGlobalsPass();35MachineFunctionPass *createSPIRVEmitNonSemanticDIPass(SPIRVTargetMachine *TM);36InstructionSelector *37createSPIRVInstructionSelector(const SPIRVTargetMachine &TM,38 const SPIRVSubtarget &Subtarget,39 const RegisterBankInfo &RBI);40 41void initializeSPIRVModuleAnalysisPass(PassRegistry &);42void initializeSPIRVAsmPrinterPass(PassRegistry &);43void initializeSPIRVConvergenceRegionAnalysisWrapperPassPass(PassRegistry &);44void initializeSPIRVPreLegalizerPass(PassRegistry &);45void initializeSPIRVPreLegalizerCombinerPass(PassRegistry &);46void initializeSPIRVPostLegalizerPass(PassRegistry &);47void initializeSPIRVStructurizerPass(PassRegistry &);48void initializeSPIRVCBufferAccessLegacyPass(PassRegistry &);49void initializeSPIRVEmitIntrinsicsPass(PassRegistry &);50void initializeSPIRVEmitNonSemanticDIPass(PassRegistry &);51void initializeSPIRVLegalizePointerCastPass(PassRegistry &);52void initializeSPIRVRegularizerPass(PassRegistry &);53void initializeSPIRVMergeRegionExitTargetsPass(PassRegistry &);54void initializeSPIRVPrepareFunctionsPass(PassRegistry &);55void initializeSPIRVPrepareGlobalsPass(PassRegistry &);56void initializeSPIRVStripConvergentIntrinsicsPass(PassRegistry &);57void initializeSPIRVLegalizeImplicitBindingPass(PassRegistry &);58} // namespace llvm59 60#endif // LLVM_LIB_TARGET_SPIRV_SPIRV_H61