blob: 18ba773a59caf09b08be2715b7dd7cb6d26d6aa0 [file] [log] [blame]
Tom Stellard75aadc22012-12-11 21:25:42 +00001//===-- AMDGPUMCTargetDesc.h - AMDGPU Target Descriptions -----*- 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/// \file
11/// \brief Provides AMDGPU specific target descriptions.
12//
13//===----------------------------------------------------------------------===//
14//
15
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000016#ifndef LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCTARGETDESC_H
17#define LLVM_LIB_TARGET_R600_MCTARGETDESC_AMDGPUMCTARGETDESC_H
Tom Stellard75aadc22012-12-11 21:25:42 +000018
Reid Kleckner294fa7a2015-03-09 20:23:14 +000019#include "llvm/Support/DataTypes.h"
Tom Stellard75aadc22012-12-11 21:25:42 +000020#include "llvm/ADT/StringRef.h"
21
22namespace llvm {
23class MCAsmBackend;
24class MCCodeEmitter;
25class MCContext;
26class MCInstrInfo;
Tom Stellard99916592013-04-15 17:51:21 +000027class MCObjectWriter;
Tom Stellard75aadc22012-12-11 21:25:42 +000028class MCRegisterInfo;
29class MCSubtargetInfo;
30class Target;
Tom Stellard99916592013-04-15 17:51:21 +000031class raw_ostream;
Tom Stellard75aadc22012-12-11 21:25:42 +000032
33extern Target TheAMDGPUTarget;
Tom Stellard49f8bfd2015-01-06 18:00:21 +000034extern Target TheGCNTarget;
Tom Stellard75aadc22012-12-11 21:25:42 +000035
36MCCodeEmitter *createR600MCCodeEmitter(const MCInstrInfo &MCII,
Tom Stellardedade942013-05-17 15:23:12 +000037 const MCRegisterInfo &MRI,
38 const MCSubtargetInfo &STI);
Tom Stellard75aadc22012-12-11 21:25:42 +000039
40MCCodeEmitter *createSIMCCodeEmitter(const MCInstrInfo &MCII,
41 const MCRegisterInfo &MRI,
42 const MCSubtargetInfo &STI,
43 MCContext &Ctx);
44
Bill Wendling58e2d3d2013-09-09 02:37:14 +000045MCAsmBackend *createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI,
46 StringRef TT, StringRef CPU);
Tom Stellard99916592013-04-15 17:51:21 +000047
48MCObjectWriter *createAMDGPUELFObjectWriter(raw_ostream &OS);
Tom Stellard75aadc22012-12-11 21:25:42 +000049} // End llvm namespace
50
51#define GET_REGINFO_ENUM
52#include "AMDGPUGenRegisterInfo.inc"
53
54#define GET_INSTRINFO_ENUM
55#include "AMDGPUGenInstrInfo.inc"
56
57#define GET_SUBTARGETINFO_ENUM
58#include "AMDGPUGenSubtargetInfo.inc"
59
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000060#endif