1 //===-- AMDGPUMCTargetDesc.h - AMDGPU Target Descriptions -----*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 /// Provides AMDGPU specific target descriptions.
12 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCTARGETDESC_H
16 #define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCTARGETDESC_H
25 class MCObjectTargetWriter
;
27 class MCSubtargetInfo
;
28 class MCTargetOptions
;
32 class raw_pwrite_stream
;
34 enum AMDGPUDwarfFlavour
: unsigned { Wave64
= 0, Wave32
= 1 };
36 MCRegisterInfo
*createGCNMCRegisterInfo(AMDGPUDwarfFlavour DwarfFlavour
);
38 MCCodeEmitter
*createR600MCCodeEmitter(const MCInstrInfo
&MCII
,
39 const MCRegisterInfo
&MRI
,
41 MCInstrInfo
*createR600MCInstrInfo();
43 MCCodeEmitter
*createSIMCCodeEmitter(const MCInstrInfo
&MCII
,
44 const MCRegisterInfo
&MRI
,
47 MCAsmBackend
*createAMDGPUAsmBackend(const Target
&T
,
48 const MCSubtargetInfo
&STI
,
49 const MCRegisterInfo
&MRI
,
50 const MCTargetOptions
&Options
);
52 std::unique_ptr
<MCObjectTargetWriter
>
53 createAMDGPUELFObjectWriter(bool Is64Bit
, uint8_t OSABI
,
54 bool HasRelocationAddend
, uint8_t ABIVersion
);
55 } // End llvm namespace
57 #define GET_REGINFO_ENUM
58 #include "AMDGPUGenRegisterInfo.inc"
60 #define GET_REGINFO_ENUM
61 #include "R600GenRegisterInfo.inc"
63 #define GET_INSTRINFO_ENUM
64 #define GET_INSTRINFO_OPERAND_ENUM
65 #define GET_INSTRINFO_SCHED_ENUM
66 #include "AMDGPUGenInstrInfo.inc"
68 #define GET_INSTRINFO_ENUM
69 #define GET_INSTRINFO_OPERAND_ENUM
70 #define GET_INSTRINFO_SCHED_ENUM
71 #include "R600GenInstrInfo.inc"
73 #define GET_SUBTARGETINFO_ENUM
74 #include "AMDGPUGenSubtargetInfo.inc"
76 #define GET_SUBTARGETINFO_ENUM
77 #include "R600GenSubtargetInfo.inc"