LLVM  3.7.0
AMDGPUTargetStreamer.h
Go to the documentation of this file.
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 #include "AMDKernelCodeT.h"
11 #include "llvm/MC/MCStreamer.h"
12 #include "llvm/MC/MCSymbol.h"
13 #include "llvm/Support/Debug.h"
14 namespace llvm {
15 
16 class MCELFStreamer;
17 
19 public:
21  virtual void EmitDirectiveHSACodeObjectVersion(uint32_t Major,
22  uint32_t Minor) = 0;
23 
24  virtual void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor,
25  uint32_t Stepping,
26  StringRef VendorName,
27  StringRef ArchName) = 0;
28 
29  virtual void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) = 0;
30 };
31 
34 public:
36  void EmitDirectiveHSACodeObjectVersion(uint32_t Major,
37  uint32_t Minor) override;
38 
39  void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor,
40  uint32_t Stepping, StringRef VendorName,
41  StringRef ArchName) override;
42 
43  void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override;
44 };
45 
47 
48  enum NoteType {
49  NT_AMDGPU_HSA_CODE_OBJECT_VERSION = 1,
50  NT_AMDGPU_HSA_HSAIL = 2,
51  NT_AMDGPU_HSA_ISA = 3,
52  NT_AMDGPU_HSA_PRODUCER = 4,
53  NT_AMDGPU_HSA_PRODUCER_OPTIONS = 5,
54  NT_AMDGPU_HSA_EXTENSION = 6,
55  NT_AMDGPU_HSA_HLDEBUG_DEBUG = 101,
56  NT_AMDGPU_HSA_HLDEBUG_TARGET = 102
57  };
58 
59  MCStreamer &Streamer;
60 
61 public:
63 
65 
66  void EmitDirectiveHSACodeObjectVersion(uint32_t Major,
67  uint32_t Minor) override;
68 
69  void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor,
70  uint32_t Stepping, StringRef VendorName,
71  StringRef ArchName) override;
72 
73  void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override;
74 
75 };
76 
77 }
formatted_raw_ostream - A raw_ostream that wraps another one and keeps track of line and column posit...
Target specific streamer interface.
Definition: MCStreamer.h:73
void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor, uint32_t Stepping, StringRef VendorName, StringRef ArchName) override
void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor, uint32_t Stepping, StringRef VendorName, StringRef ArchName) override
AMD Kernel Code Object (amd_kernel_code_t).
Streaming machine code generation interface.
Definition: MCStreamer.h:157
void EmitDirectiveHSACodeObjectVersion(uint32_t Major, uint32_t Minor) override
AMDGPUTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS)
virtual void EmitDirectiveHSACodeObjectISA(uint32_t Major, uint32_t Minor, uint32_t Stepping, StringRef VendorName, StringRef ArchName)=0
void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override
virtual void EmitAMDKernelCodeT(const amd_kernel_code_t &Header)=0
void EmitDirectiveHSACodeObjectVersion(uint32_t Major, uint32_t Minor) override
virtual void EmitDirectiveHSACodeObjectVersion(uint32_t Major, uint32_t Minor)=0
void EmitAMDKernelCodeT(const amd_kernel_code_t &Header) override
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:40