[AMDGPU] Make note record name a static const member of target streamer
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Thu, 20 Oct 2016 18:22:36 +0000 (18:22 +0000)
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>
Thu, 20 Oct 2016 18:22:36 +0000 (18:22 +0000)
Differential Revision: https://reviews.llvm.org/D25746

llvm-svn: 284760

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h

index c893864..fe0d10a 100644 (file)
@@ -86,6 +86,8 @@ void AMDGPUTargetAsmStreamer::EmitAMDGPUHsaProgramScopeGlobal(
 // AMDGPUTargetELFStreamer
 //===----------------------------------------------------------------------===//
 
+const char *AMDGPUTargetELFStreamer::NoteName = "AMD";
+
 AMDGPUTargetELFStreamer::AMDGPUTargetELFStreamer(MCStreamer &S)
     : AMDGPUTargetStreamer(S), Streamer(S) { }
 
@@ -100,15 +102,14 @@ AMDGPUTargetELFStreamer::EmitDirectiveHSACodeObjectVersion(uint32_t Major,
   MCSectionELF *Note =
       OS.getContext().getELFSection(".note", ELF::SHT_NOTE, ELF::SHF_ALLOC);
 
-  unsigned NameSZ = 4;
-
   OS.PushSection();
   OS.SwitchSection(Note);
-  OS.EmitIntValue(NameSZ, 4);                            // namesz
-  OS.EmitIntValue(8, 4);                                 // descz
-  OS.EmitIntValue(NT_AMDGPU_HSA_CODE_OBJECT_VERSION, 4); // type
-  OS.EmitBytes(StringRef("AMD", NameSZ));                // name
-  OS.EmitIntValue(Major, 4);                             // desc
+  OS.EmitIntValue(strlen(NoteName) + 1, 4);                // namesz
+  OS.EmitIntValue(8, 4);                                   // descz
+  OS.EmitIntValue(NT_AMDGPU_HSA_CODE_OBJECT_VERSION, 4);   // type
+  OS.EmitBytes(StringRef(NoteName, strlen(NoteName) + 1)); // name
+  OS.EmitValueToAlignment(4);
+  OS.EmitIntValue(Major, 4);                               // desc
   OS.EmitIntValue(Minor, 4);
   OS.EmitValueToAlignment(4);
   OS.PopSection();
@@ -124,7 +125,6 @@ AMDGPUTargetELFStreamer::EmitDirectiveHSACodeObjectISA(uint32_t Major,
   MCSectionELF *Note =
       OS.getContext().getELFSection(".note", ELF::SHT_NOTE, ELF::SHF_ALLOC);
 
-  unsigned NameSZ = 4;
   uint16_t VendorNameSize = VendorName.size() + 1;
   uint16_t ArchNameSize = ArchName.size() + 1;
   unsigned DescSZ = sizeof(VendorNameSize) + sizeof(ArchNameSize) +
@@ -133,11 +133,12 @@ AMDGPUTargetELFStreamer::EmitDirectiveHSACodeObjectISA(uint32_t Major,
 
   OS.PushSection();
   OS.SwitchSection(Note);
-  OS.EmitIntValue(NameSZ, 4);                            // namesz
-  OS.EmitIntValue(DescSZ, 4);                            // descsz
-  OS.EmitIntValue(NT_AMDGPU_HSA_ISA, 4);                 // type
-  OS.EmitBytes(StringRef("AMD", 4));                     // name
-  OS.EmitIntValue(VendorNameSize, 2);                    // desc
+  OS.EmitIntValue(strlen(NoteName) + 1, 4);                // namesz
+  OS.EmitIntValue(DescSZ, 4);                              // descsz
+  OS.EmitIntValue(NT_AMDGPU_HSA_ISA, 4);                   // type
+  OS.EmitBytes(StringRef(NoteName, strlen(NoteName) + 1)); // name
+  OS.EmitValueToAlignment(4);
+  OS.EmitIntValue(VendorNameSize, 2);                      // desc
   OS.EmitIntValue(ArchNameSize, 2);
   OS.EmitIntValue(Major, 4);
   OS.EmitIntValue(Minor, 4);
index b3d59e8..809400d 100644 (file)
@@ -71,6 +71,7 @@ class AMDGPUTargetELFStreamer : public AMDGPUTargetStreamer {
     NT_AMDGPU_HSA_HLDEBUG_TARGET = 102
   };
 
+  static const char *NoteName;
   MCStreamer &Streamer;
 
 public: