blob: 2ea58e496cb2c9a6183eedfb06763141ff73d36b [file] [log] [blame]
Tom Stellard75aadc22012-12-11 21:25:42 +00001//===- 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//
Tom Stellard75aadc22012-12-11 21:25:42 +00008//===----------------------------------------------------------------------===//
9
Matt Arsenault6b6a2c32016-03-11 08:00:27 +000010#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
11#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
Tom Stellard75aadc22012-12-11 21:25:42 +000012
13namespace llvm {
14
Tom Stellardc721a232014-05-16 20:56:47 +000015class AMDGPUSubtarget;
Tom Stellard1b9748c2016-09-26 17:29:25 +000016class AsmPrinter;
Tom Stellard75aadc22012-12-11 21:25:42 +000017class MachineInstr;
Matt Arsenault236d9af2014-06-23 18:00:20 +000018class MCContext;
19class MCInst;
Tom Stellard75aadc22012-12-11 21:25:42 +000020
21class AMDGPUMCInstLower {
Tom Stellard9e90b582012-12-17 15:14:54 +000022 MCContext &Ctx;
Tom Stellardc721a232014-05-16 20:56:47 +000023 const AMDGPUSubtarget &ST;
Tom Stellard1b9748c2016-09-26 17:29:25 +000024 const AsmPrinter ≈
Tom Stellardc721a232014-05-16 20:56:47 +000025
Tom Stellard75aadc22012-12-11 21:25:42 +000026public:
Tom Stellard1b9748c2016-09-26 17:29:25 +000027 AMDGPUMCInstLower(MCContext &ctx, const AMDGPUSubtarget &ST,
28 const AsmPrinter &AP);
Tom Stellard75aadc22012-12-11 21:25:42 +000029
30 /// \brief Lower a MachineInstr to an MCInst
31 void lower(const MachineInstr *MI, MCInst &OutMI) const;
32
33};
34
35} // End namespace llvm
36
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000037#endif