1*d415bd75Srobert //=- SPIRVMCInstLower.h -- Convert SPIR-V MachineInstr to MCInst --*- C++ -*-=// 2*d415bd75Srobert // 3*d415bd75Srobert // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*d415bd75Srobert // See https://llvm.org/LICENSE.txt for license information. 5*d415bd75Srobert // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*d415bd75Srobert // 7*d415bd75Srobert //===----------------------------------------------------------------------===// 8*d415bd75Srobert 9*d415bd75Srobert #ifndef LLVM_LIB_TARGET_SPIRV_SPIRVMCINSTLOWER_H 10*d415bd75Srobert #define LLVM_LIB_TARGET_SPIRV_SPIRVMCINSTLOWER_H 11*d415bd75Srobert 12*d415bd75Srobert #include "llvm/Support/Compiler.h" 13*d415bd75Srobert 14*d415bd75Srobert namespace llvm { 15*d415bd75Srobert class MCInst; 16*d415bd75Srobert class MachineInstr; 17*d415bd75Srobert namespace SPIRV { 18*d415bd75Srobert struct ModuleAnalysisInfo; 19*d415bd75Srobert } // namespace SPIRV 20*d415bd75Srobert 21*d415bd75Srobert // This class is used to lower a MachineInstr into an MCInst. 22*d415bd75Srobert class LLVM_LIBRARY_VISIBILITY SPIRVMCInstLower { 23*d415bd75Srobert public: 24*d415bd75Srobert void lower(const MachineInstr *MI, MCInst &OutMI, 25*d415bd75Srobert SPIRV::ModuleAnalysisInfo *MAI) const; 26*d415bd75Srobert }; 27*d415bd75Srobert } // namespace llvm 28*d415bd75Srobert 29*d415bd75Srobert #endif // LLVM_LIB_TARGET_SPIRV_SPIRVMCINSTLOWER_H 30