]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.h
MFC r343918: Teach /etc/rc.d/growfs how to handle systems running ZFS.
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / AMDGPU / AMDGPUMCInstLower.h
1 //===- AMDGPUMCInstLower.h MachineInstr Lowering Interface ------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
11 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
12
13 namespace llvm {
14
15 class AMDGPUSubtarget;
16 class AsmPrinter;
17 class MachineBasicBlock;
18 class MachineInstr;
19 class MachineOperand;
20 class MCContext;
21 class MCExpr;
22 class MCInst;
23 class MCOperand;
24
25 class AMDGPUMCInstLower {
26   MCContext &Ctx;
27   const AMDGPUSubtarget &ST;
28   const AsmPrinter ≈
29
30   const MCExpr *getLongBranchBlockExpr(const MachineBasicBlock &SrcBB,
31                                        const MachineOperand &MO) const;
32
33 public:
34   AMDGPUMCInstLower(MCContext &ctx, const AMDGPUSubtarget &ST,
35                     const AsmPrinter &AP);
36
37   bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp) const;
38
39   /// \brief Lower a MachineInstr to an MCInst
40   void lower(const MachineInstr *MI, MCInst &OutMI) const;
41
42 };
43
44 } // End namespace llvm
45
46 #endif