AMDGPUTargetStreamer.h (341825) | AMDGPUTargetStreamer.h (344779) |
---|---|
1//===-- AMDGPUTargetStreamer.h - AMDGPU Target Streamer --------*- 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_MCTARGETDESC_AMDGPUTARGETSTREAMER_H 11#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUTARGETSTREAMER_H 12 13#include "AMDKernelCodeT.h" | 1//===-- AMDGPUTargetStreamer.h - AMDGPU Target Streamer --------*- 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_MCTARGETDESC_AMDGPUTARGETSTREAMER_H 11#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUTARGETSTREAMER_H 12 13#include "AMDKernelCodeT.h" |
14#include "llvm/BinaryFormat/MsgPackTypes.h" |
|
14#include "llvm/MC/MCStreamer.h" 15#include "llvm/MC/MCSubtargetInfo.h" 16#include "llvm/Support/AMDGPUMetadata.h" 17#include "llvm/Support/AMDHSAKernelDescriptor.h" 18 19namespace llvm { 20#include "AMDGPUPTNote.h" 21 --- 4 unchanged lines hidden (view full) --- 26class MDNode; 27class Module; 28class Type; 29 30class AMDGPUTargetStreamer : public MCTargetStreamer { 31protected: 32 MCContext &getContext() const { return Streamer.getContext(); } 33 | 15#include "llvm/MC/MCStreamer.h" 16#include "llvm/MC/MCSubtargetInfo.h" 17#include "llvm/Support/AMDGPUMetadata.h" 18#include "llvm/Support/AMDHSAKernelDescriptor.h" 19 20namespace llvm { 21#include "AMDGPUPTNote.h" 22 --- 4 unchanged lines hidden (view full) --- 27class MDNode; 28class Module; 29class Type; 30 31class AMDGPUTargetStreamer : public MCTargetStreamer { 32protected: 33 MCContext &getContext() const { return Streamer.getContext(); } 34 |
34 /// \returns Equivalent EF_AMDGPU_MACH_* value for given \p GPU name. 35 unsigned getMACH(StringRef GPU) const; 36 | |
37public: | 35public: |
38 /// \returns Equivalent GPU name for an EF_AMDGPU_MACH_* value. 39 static const char *getMachName(unsigned Mach); 40 | |
41 AMDGPUTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} 42 43 virtual void EmitDirectiveAMDGCNTarget(StringRef Target) = 0; 44 45 virtual void EmitDirectiveHSACodeObjectVersion(uint32_t Major, 46 uint32_t Minor) = 0; 47 48 virtual void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor, --- 4 unchanged lines hidden (view full) --- 53 virtual void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) = 0; 54 55 virtual void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) = 0; 56 57 /// \returns True on success, false on failure. 58 virtual bool EmitISAVersion(StringRef IsaVersionString) = 0; 59 60 /// \returns True on success, false on failure. | 36 AMDGPUTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {} 37 38 virtual void EmitDirectiveAMDGCNTarget(StringRef Target) = 0; 39 40 virtual void EmitDirectiveHSACodeObjectVersion(uint32_t Major, 41 uint32_t Minor) = 0; 42 43 virtual void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor, --- 4 unchanged lines hidden (view full) --- 48 virtual void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) = 0; 49 50 virtual void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) = 0; 51 52 /// \returns True on success, false on failure. 53 virtual bool EmitISAVersion(StringRef IsaVersionString) = 0; 54 55 /// \returns True on success, false on failure. |
61 virtual bool EmitHSAMetadata(StringRef HSAMetadataString); | 56 virtual bool EmitHSAMetadataV2(StringRef HSAMetadataString); |
62 63 /// \returns True on success, false on failure. | 57 58 /// \returns True on success, false on failure. |
59 virtual bool EmitHSAMetadataV3(StringRef HSAMetadataString); 60 61 /// Emit HSA Metadata 62 /// 63 /// When \p Strict is true, known metadata elements must already be 64 /// well-typed. When \p Strict is false, known types are inferred and 65 /// the \p HSAMetadata structure is updated with the correct types. 66 /// 67 /// \returns True on success, false on failure. 68 virtual bool EmitHSAMetadata(std::shared_ptr<msgpack::Node> &HSAMetadata, 69 bool Strict) = 0; 70 71 /// \returns True on success, false on failure. |
|
64 virtual bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) = 0; 65 66 /// \returns True on success, false on failure. 67 virtual bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) = 0; 68 69 virtual void EmitAmdhsaKernelDescriptor( 70 const MCSubtargetInfo &STI, StringRef KernelName, 71 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 72 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 73 bool ReserveXNACK) = 0; | 72 virtual bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) = 0; 73 74 /// \returns True on success, false on failure. 75 virtual bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) = 0; 76 77 virtual void EmitAmdhsaKernelDescriptor( 78 const MCSubtargetInfo &STI, StringRef KernelName, 79 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 80 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 81 bool ReserveXNACK) = 0; |
82 83 static StringRef getArchNameFromElfMach(unsigned ElfMach); 84 static unsigned getElfMach(StringRef GPU); |
|
74}; 75 76class AMDGPUTargetAsmStreamer final : public AMDGPUTargetStreamer { 77 formatted_raw_ostream &OS; 78public: 79 AMDGPUTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS); 80 81 void EmitDirectiveAMDGCNTarget(StringRef Target) override; --- 8 unchanged lines hidden (view full) --- 90 void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override; 91 92 void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override; 93 94 /// \returns True on success, false on failure. 95 bool EmitISAVersion(StringRef IsaVersionString) override; 96 97 /// \returns True on success, false on failure. | 85}; 86 87class AMDGPUTargetAsmStreamer final : public AMDGPUTargetStreamer { 88 formatted_raw_ostream &OS; 89public: 90 AMDGPUTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS); 91 92 void EmitDirectiveAMDGCNTarget(StringRef Target) override; --- 8 unchanged lines hidden (view full) --- 101 void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override; 102 103 void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override; 104 105 /// \returns True on success, false on failure. 106 bool EmitISAVersion(StringRef IsaVersionString) override; 107 108 /// \returns True on success, false on failure. |
109 bool EmitHSAMetadata(std::shared_ptr<msgpack::Node> &HSAMetadata, 110 bool Strict) override; 111 112 /// \returns True on success, false on failure. |
|
98 bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) override; 99 100 /// \returns True on success, false on failure. 101 bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) override; 102 103 void EmitAmdhsaKernelDescriptor( 104 const MCSubtargetInfo &STI, StringRef KernelName, 105 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 106 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 107 bool ReserveXNACK) override; 108}; 109 110class AMDGPUTargetELFStreamer final : public AMDGPUTargetStreamer { 111 MCStreamer &Streamer; 112 | 113 bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) override; 114 115 /// \returns True on success, false on failure. 116 bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) override; 117 118 void EmitAmdhsaKernelDescriptor( 119 const MCSubtargetInfo &STI, StringRef KernelName, 120 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 121 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 122 bool ReserveXNACK) override; 123}; 124 125class AMDGPUTargetELFStreamer final : public AMDGPUTargetStreamer { 126 MCStreamer &Streamer; 127 |
113 void EmitAMDGPUNote(const MCExpr *DescSize, unsigned NoteType, 114 function_ref<void(MCELFStreamer &)> EmitDesc); | 128 void EmitNote(StringRef Name, const MCExpr *DescSize, unsigned NoteType, 129 function_ref |
115 116public: 117 AMDGPUTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI); 118 119 MCELFStreamer &getStreamer(); 120 121 void EmitDirectiveAMDGCNTarget(StringRef Target) override; 122 --- 7 unchanged lines hidden (view full) --- 130 void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override; 131 132 void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override; 133 134 /// \returns True on success, false on failure. 135 bool EmitISAVersion(StringRef IsaVersionString) override; 136 137 /// \returns True on success, false on failure. | 130 131public: 132 AMDGPUTargetELFStreamer(MCStreamer &S, const MCSubtargetInfo &STI); 133 134 MCELFStreamer &getStreamer(); 135 136 void EmitDirectiveAMDGCNTarget(StringRef Target) override; 137 --- 7 unchanged lines hidden (view full) --- 145 void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override; 146 147 void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override; 148 149 /// \returns True on success, false on failure. 150 bool EmitISAVersion(StringRef IsaVersionString) override; 151 152 /// \returns True on success, false on failure. |
153 bool EmitHSAMetadata(std::shared_ptr<msgpack::Node> &HSAMetadata, 154 bool Strict) override; 155 156 /// \returns True on success, false on failure. |
|
138 bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) override; 139 140 /// \returns True on success, false on failure. 141 bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) override; 142 143 void EmitAmdhsaKernelDescriptor( 144 const MCSubtargetInfo &STI, StringRef KernelName, 145 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 146 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 147 bool ReserveXNACK) override; 148}; 149 150} 151#endif | 157 bool EmitHSAMetadata(const AMDGPU::HSAMD::Metadata &HSAMetadata) override; 158 159 /// \returns True on success, false on failure. 160 bool EmitPALMetadata(const AMDGPU::PALMD::Metadata &PALMetadata) override; 161 162 void EmitAmdhsaKernelDescriptor( 163 const MCSubtargetInfo &STI, StringRef KernelName, 164 const amdhsa::kernel_descriptor_t &KernelDescriptor, uint64_t NextVGPR, 165 uint64_t NextSGPR, bool ReserveVCC, bool ReserveFlatScr, 166 bool ReserveXNACK) override; 167}; 168 169} 170#endif |