1 //===- AMDGPUMCInstLower.h MachineInstr Lowering Interface ------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
11 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
15 class AMDGPUSubtarget;
17 class MachineBasicBlock;
25 class AMDGPUMCInstLower {
27 const AMDGPUSubtarget &ST;
30 const MCExpr *getLongBranchBlockExpr(const MachineBasicBlock &SrcBB,
31 const MachineOperand &MO) const;
34 AMDGPUMCInstLower(MCContext &ctx, const AMDGPUSubtarget &ST,
35 const AsmPrinter &AP);
37 bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp) const;
39 /// \brief Lower a MachineInstr to an MCInst
40 void lower(const MachineInstr *MI, MCInst &OutMI) const;
44 } // End namespace llvm