16c69427eSIlia Diachkov //===-- SPIRVMCTargetDesc.h - SPIR-V Target Descriptions --------*- C++ -*-===// 26c69427eSIlia Diachkov // 36c69427eSIlia Diachkov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 46c69427eSIlia Diachkov // See https://llvm.org/LICENSE.txt for license information. 56c69427eSIlia Diachkov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 66c69427eSIlia Diachkov // 76c69427eSIlia Diachkov //===----------------------------------------------------------------------===// 86c69427eSIlia Diachkov // 96c69427eSIlia Diachkov // This file provides SPIR-V specific target descriptions. 106c69427eSIlia Diachkov // 116c69427eSIlia Diachkov //===----------------------------------------------------------------------===// 126c69427eSIlia Diachkov 136c69427eSIlia Diachkov #ifndef LLVM_LIB_TARGET_SPIRV_MCTARGETDESC_SPIRVMCTARGETDESC_H 146c69427eSIlia Diachkov #define LLVM_LIB_TARGET_SPIRV_MCTARGETDESC_SPIRVMCTARGETDESC_H 156c69427eSIlia Diachkov 166c69427eSIlia Diachkov #include "llvm/Support/DataTypes.h" 176c69427eSIlia Diachkov #include <memory> 186c69427eSIlia Diachkov 196c69427eSIlia Diachkov namespace llvm { 206c69427eSIlia Diachkov class MCAsmBackend; 216c69427eSIlia Diachkov class MCCodeEmitter; 226c69427eSIlia Diachkov class MCContext; 236c69427eSIlia Diachkov class MCInstrInfo; 246c69427eSIlia Diachkov class MCObjectTargetWriter; 256c69427eSIlia Diachkov class MCRegisterInfo; 266c69427eSIlia Diachkov class MCSubtargetInfo; 276c69427eSIlia Diachkov class MCTargetOptions; 286c69427eSIlia Diachkov class Target; 296c69427eSIlia Diachkov 306c69427eSIlia Diachkov MCCodeEmitter *createSPIRVMCCodeEmitter(const MCInstrInfo &MCII, 316c69427eSIlia Diachkov MCContext &Ctx); 326c69427eSIlia Diachkov 336c69427eSIlia Diachkov MCAsmBackend *createSPIRVAsmBackend(const Target &T, const MCSubtargetInfo &STI, 346c69427eSIlia Diachkov const MCRegisterInfo &MRI, 356c69427eSIlia Diachkov const MCTargetOptions &Options); 366c69427eSIlia Diachkov 376c69427eSIlia Diachkov std::unique_ptr<MCObjectTargetWriter> createSPIRVObjectTargetWriter(); 386c69427eSIlia Diachkov } // namespace llvm 396c69427eSIlia Diachkov 406c69427eSIlia Diachkov // Defines symbolic names for SPIR-V registers. This defines a mapping from 416c69427eSIlia Diachkov // register name to register number. 426c69427eSIlia Diachkov #define GET_REGINFO_ENUM 436c69427eSIlia Diachkov #include "SPIRVGenRegisterInfo.inc" 446c69427eSIlia Diachkov 456c69427eSIlia Diachkov // Defines symbolic names for the SPIR-V instructions. 466c69427eSIlia Diachkov #define GET_INSTRINFO_ENUM 47*3e0bf1c7SDavid Green #define GET_INSTRINFO_MC_HELPER_DECLS 486c69427eSIlia Diachkov #include "SPIRVGenInstrInfo.inc" 496c69427eSIlia Diachkov 506c69427eSIlia Diachkov #define GET_SUBTARGETINFO_ENUM 516c69427eSIlia Diachkov #include "SPIRVGenSubtargetInfo.inc" 526c69427eSIlia Diachkov 536c69427eSIlia Diachkov #endif // LLVM_LIB_TARGET_SPIRV_MCTARGETDESC_SPIRVMCTARGETDESC_H 54