AMDGPU/NFC: Rename code object metadata as HSA metadata

  - Rename AMDGPUCodeObjectMetadata to AMDGPUMetadata (PAL metadata will be included in this file in the follow up change)
  - Rename AMDGPUCodeObjectMetadataStreamer to AMDGPUHSAMetadataStreamer
  - Introduce HSAMD namespace
  - Other minor name changes in function and test names

llvm-svn: 315522
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
index 97b47fd..a5c3745 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -125,7 +125,7 @@
   getTargetStreamer().EmitDirectiveHSACodeObjectVersion(2, 1);
   getTargetStreamer().EmitDirectiveHSACodeObjectISA(
       ISA.Major, ISA.Minor, ISA.Stepping, "AMD", "AMDGPU");
-  getTargetStreamer().EmitStartOfCodeObjectMetadata(M);
+  getTargetStreamer().EmitStartOfHSAMetadata(M);
 }
 
 void AMDGPUAsmPrinter::EmitEndOfAsmFile(Module &M) {
@@ -143,7 +143,7 @@
   if (TM.getTargetTriple().getOS() != Triple::AMDHSA)
     return;
 
-  getTargetStreamer().EmitEndOfCodeObjectMetadata();
+  getTargetStreamer().EmitEndOfHSAMetadata();
 }
 
 bool AMDGPUAsmPrinter::isBlockOnlyReachableByFallthrough(
@@ -176,8 +176,7 @@
 
   if (TM.getTargetTriple().getOS() != Triple::AMDHSA)
     return;
-  getTargetStreamer().EmitKernelCodeObjectMetadata(*MF->getFunction(),
-                                                   KernelCode);
+  getTargetStreamer().EmitKernelHSAMetadata(*MF->getFunction(), KernelCode);
 }
 
 void AMDGPUAsmPrinter::EmitFunctionEntryLabel() {
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
index 73889e6..4545b9c 100644
--- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
@@ -41,7 +41,7 @@
 #include "llvm/MC/MCStreamer.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/MC/MCSymbol.h"
-#include "llvm/Support/AMDGPUCodeObjectMetadata.h"
+#include "llvm/Support/AMDGPUMetadata.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -827,7 +827,7 @@
   bool ParseDirectiveMajorMinor(uint32_t &Major, uint32_t &Minor);
   bool ParseDirectiveHSACodeObjectVersion();
   bool ParseDirectiveHSACodeObjectISA();
-  bool ParseDirectiveCodeObjectMetadata();
+  bool ParseDirectiveHSAMetadata();
   bool ParseAMDKernelCodeTValue(StringRef ID, amd_kernel_code_t &Header);
   bool ParseDirectiveAMDKernelCodeT();
   bool subtargetHasRegister(const MCRegisterInfo &MRI, unsigned RegNo) const;
@@ -2398,7 +2398,7 @@
   return false;
 }
 
-bool AMDGPUAsmParser::ParseDirectiveCodeObjectMetadata() {
+bool AMDGPUAsmParser::ParseDirectiveHSAMetadata() {
   std::string YamlString;
   raw_string_ostream YamlStream(YamlString);
 
@@ -2413,7 +2413,7 @@
 
     if (getLexer().is(AsmToken::Identifier)) {
       StringRef ID = getLexer().getTok().getIdentifier();
-      if (ID == AMDGPU::CodeObject::MetadataAssemblerDirectiveEnd) {
+      if (ID == AMDGPU::HSAMD::AssemblerDirectiveEnd) {
         Lex();
         FoundEnd = true;
         break;
@@ -2430,12 +2430,12 @@
 
   if (getLexer().is(AsmToken::Eof) && !FoundEnd) {
     return TokError(
-        "expected directive .end_amdgpu_code_object_metadata not found");
+        "expected directive .end_amd_amdgpu_hsa_metadata not found");
   }
 
   YamlStream.flush();
 
-  if (!getTargetStreamer().EmitCodeObjectMetadata(YamlString))
+  if (!getTargetStreamer().EmitHSAMetadata(YamlString))
     return Error(getParser().getTok().getLoc(), "invalid code object metadata");
 
   return false;
@@ -2517,8 +2517,8 @@
   if (IDVal == ".hsa_code_object_isa")
     return ParseDirectiveHSACodeObjectISA();
 
-  if (IDVal == AMDGPU::CodeObject::MetadataAssemblerDirectiveBegin)
-    return ParseDirectiveCodeObjectMetadata();
+  if (IDVal == AMDGPU::HSAMD::AssemblerDirectiveBegin)
+    return ParseDirectiveHSAMetadata();
 
   if (IDVal == ".amd_kernel_code_t")
     return ParseDirectiveAMDKernelCodeT();
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp
similarity index 88%
rename from llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp
rename to llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp
index 4a576ca..78eda2a 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp
@@ -1,4 +1,4 @@
-//===--- AMDGPUCodeObjectMetadataStreamer.cpp -------------------*- C++ -*-===//
+//===--- AMDGPUHSAMetadataStreamer.cpp --------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -8,12 +8,12 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief AMDGPU Code Object Metadata Streamer.
+/// \brief AMDGPU HSA Metadata Streamer.
 ///
 //
 //===----------------------------------------------------------------------===//
 
-#include "AMDGPUCodeObjectMetadataStreamer.h"
+#include "AMDGPUHSAMetadataStreamer.h"
 #include "AMDGPU.h"
 #include "llvm/ADT/StringSwitch.h"
 #include "llvm/IR/Constants.h"
@@ -22,24 +22,24 @@
 
 namespace llvm {
 
-static cl::opt<bool> DumpCodeObjectMetadata(
-    "amdgpu-dump-comd",
-    cl::desc("Dump AMDGPU Code Object Metadata"));
-static cl::opt<bool> VerifyCodeObjectMetadata(
-    "amdgpu-verify-comd",
-    cl::desc("Verify AMDGPU Code Object Metadata"));
+static cl::opt<bool> DumpHSAMetadata(
+    "amdgpu-dump-hsa-metadata",
+    cl::desc("Dump AMDGPU HSA Metadata"));
+static cl::opt<bool> VerifyHSAMetadata(
+    "amdgpu-verify-hsa-metadata",
+    cl::desc("Verify AMDGPU HSA Metadata"));
 
 namespace AMDGPU {
-namespace CodeObject {
+namespace HSAMD {
 
 void MetadataStreamer::dump(StringRef YamlString) const {
-  errs() << "AMDGPU Code Object Metadata:\n" << YamlString << '\n';
+  errs() << "AMDGPU HSA Metadata:\n" << YamlString << '\n';
 }
 
 void MetadataStreamer::verify(StringRef YamlString) const {
-  errs() << "AMDGPU Code Object Metadata Parser Test: ";
+  errs() << "AMDGPU HSA Metadata Parser Test: ";
 
-  CodeObject::Metadata FromYamlString;
+  HSAMD::Metadata FromYamlString;
   if (Metadata::fromYamlString(YamlString, FromYamlString)) {
     errs() << "FAIL\n";
     return;
@@ -196,14 +196,14 @@
 }
 
 void MetadataStreamer::emitVersion() {
-  auto &Version = CodeObjectMetadata.mVersion;
+  auto &Version = HSAMetadata.mVersion;
 
-  Version.push_back(MetadataVersionMajor);
-  Version.push_back(MetadataVersionMinor);
+  Version.push_back(VersionMajor);
+  Version.push_back(VersionMinor);
 }
 
 void MetadataStreamer::emitPrintf(const Module &Mod) {
-  auto &Printf = CodeObjectMetadata.mPrintf;
+  auto &Printf = HSAMetadata.mPrintf;
 
   auto Node = Mod.getNamedMetadata("llvm.printf.fmts");
   if (!Node)
@@ -215,7 +215,7 @@
 }
 
 void MetadataStreamer::emitKernelLanguage(const Function &Func) {
-  auto &Kernel = CodeObjectMetadata.mKernels.back();
+  auto &Kernel = HSAMetadata.mKernels.back();
 
   // TODO: What about other languages?
   auto Node = Func.getParent()->getNamedMetadata("opencl.ocl.version");
@@ -233,7 +233,7 @@
 }
 
 void MetadataStreamer::emitKernelAttrs(const Function &Func) {
-  auto &Attrs = CodeObjectMetadata.mKernels.back().mAttrs;
+  auto &Attrs = HSAMetadata.mKernels.back().mAttrs;
 
   if (auto Node = Func.getMetadata("reqd_work_group_size"))
     Attrs.mReqdWorkGroupSize = getWorkGroupDimensions(Node);
@@ -317,8 +317,8 @@
                                      ValueKind ValueKind, StringRef TypeQual,
                                      StringRef BaseTypeName, StringRef AccQual,
                                      StringRef Name, StringRef TypeName) {
-  CodeObjectMetadata.mKernels.back().mArgs.push_back(Kernel::Arg::Metadata());
-  auto &Arg = CodeObjectMetadata.mKernels.back().mArgs.back();
+  HSAMetadata.mKernels.back().mArgs.push_back(Kernel::Arg::Metadata());
+  auto &Arg = HSAMetadata.mKernels.back().mArgs.back();
 
   Arg.mSize = DL.getTypeAllocSize(Ty);
   Arg.mAlign = DL.getABITypeAlignment(Ty);
@@ -355,7 +355,7 @@
 
 void MetadataStreamer::emitKernelCodeProps(
     const amd_kernel_code_t &KernelCode) {
-  auto &CodeProps = CodeObjectMetadata.mKernels.back().mCodeProps;
+  auto &CodeProps = HSAMetadata.mKernels.back().mCodeProps;
 
   CodeProps.mKernargSegmentSize = KernelCode.kernarg_segment_byte_size;
   CodeProps.mWorkgroupGroupSegmentSize =
@@ -375,7 +375,7 @@
   if (!(KernelCode.code_properties & AMD_CODE_PROPERTY_IS_DEBUG_SUPPORTED))
     return;
 
-  auto &DebugProps = CodeObjectMetadata.mKernels.back().mDebugProps;
+  auto &DebugProps = HSAMetadata.mKernels.back().mDebugProps;
 
   // FIXME: Need to pass down debugger ABI version through features. This is ok
   // for now because we only have one version.
@@ -400,8 +400,8 @@
   if (Func.getCallingConv() != CallingConv::AMDGPU_KERNEL)
     return;
 
-  CodeObjectMetadata.mKernels.push_back(Kernel::Metadata());
-  auto &Kernel = CodeObjectMetadata.mKernels.back();
+  HSAMetadata.mKernels.push_back(Kernel::Metadata());
+  auto &Kernel = HSAMetadata.mKernels.back();
 
   Kernel.mName = Func.getName();
   emitKernelLanguage(Func);
@@ -412,25 +412,25 @@
 }
 
 ErrorOr<std::string> MetadataStreamer::toYamlString() {
-  std::string YamlString;
-  if (auto Error = Metadata::toYamlString(CodeObjectMetadata, YamlString))
+  std::string ToYamlString;
+  if (auto Error = Metadata::toYamlString(HSAMetadata, ToYamlString))
     return Error;
 
-  if (DumpCodeObjectMetadata)
-    dump(YamlString);
-  if (VerifyCodeObjectMetadata)
-    verify(YamlString);
+  if (DumpHSAMetadata)
+    dump(ToYamlString);
+  if (VerifyHSAMetadata)
+    verify(ToYamlString);
 
-  return YamlString;
+  return ToYamlString;
 }
 
 ErrorOr<std::string> MetadataStreamer::toYamlString(StringRef YamlString) {
-  if (auto Error = Metadata::fromYamlString(YamlString, CodeObjectMetadata))
+  if (auto Error = Metadata::fromYamlString(YamlString, HSAMetadata))
     return Error;
 
   return toYamlString();
 }
 
-} // end namespace CodeObject
+} // end namespace HSAMD
 } // end namespace AMDGPU
 } // end namespace llvm
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h
similarity index 81%
rename from llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h
rename to llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h
index c668143..beb198a 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h
@@ -1,4 +1,4 @@
-//===--- AMDGPUCodeObjectMetadataStreamer.h ---------------------*- C++ -*-===//
+//===--- AMDGPUHSAMetadataStreamer.h ----------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -8,18 +8,18 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief AMDGPU Code Object Metadata Streamer.
+/// \brief AMDGPU HSA Metadata Streamer.
 ///
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUCODEOBJECTMETADATASTREAMER_H
-#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUCODEOBJECTMETADATASTREAMER_H
+#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H
+#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H
 
 #include "AMDGPU.h"
 #include "AMDKernelCodeT.h"
 #include "llvm/ADT/StringRef.h"
-#include "llvm/Support/AMDGPUCodeObjectMetadata.h"
+#include "llvm/Support/AMDGPUMetadata.h"
 #include "llvm/Support/ErrorOr.h"
 
 namespace llvm {
@@ -32,11 +32,11 @@
 class Type;
 
 namespace AMDGPU {
-namespace CodeObject {
+namespace HSAMD {
 
 class MetadataStreamer final {
 private:
-  Metadata CodeObjectMetadata;
+  Metadata HSAMetadata;
   AMDGPUAS AMDGPUASI;
 
   void dump(StringRef YamlString) const;
@@ -92,8 +92,8 @@
   ErrorOr<std::string> toYamlString(StringRef YamlString);
 };
 
-} // end namespace CodeObject
+} // end namespace HSAMD
 } // end namespace AMDGPU
 } // end namespace llvm
 
-#endif // LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUCODEOBJECTMETADATASTREAMER_H
+#endif // LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUHSAMETADATASTREAMER_H
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
index 6b8d318..ba5ec18 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
@@ -42,18 +42,18 @@
 AMDGPUTargetStreamer::AMDGPUTargetStreamer(MCStreamer &S)
     : MCTargetStreamer(S) {}
 
-void AMDGPUTargetStreamer::EmitStartOfCodeObjectMetadata(const Module &Mod) {
-  CodeObjectMetadataStreamer.begin(Mod);
+void AMDGPUTargetStreamer::EmitStartOfHSAMetadata(const Module &Mod) {
+  HSAMetadataStreamer.begin(Mod);
 }
 
-void AMDGPUTargetStreamer::EmitKernelCodeObjectMetadata(
+void AMDGPUTargetStreamer::EmitKernelHSAMetadata(
     const Function &Func, const amd_kernel_code_t &KernelCode) {
-  CodeObjectMetadataStreamer.emitKernel(Func, KernelCode);
+  HSAMetadataStreamer.emitKernel(Func, KernelCode);
 }
 
-void AMDGPUTargetStreamer::EmitEndOfCodeObjectMetadata() {
-  CodeObjectMetadataStreamer.end();
-  EmitCodeObjectMetadata(CodeObjectMetadataStreamer.toYamlString().get());
+void AMDGPUTargetStreamer::EmitEndOfHSAMetadata() {
+  HSAMetadataStreamer.end();
+  EmitHSAMetadata(HSAMetadataStreamer.toYamlString().get());
 }
 
 //===----------------------------------------------------------------------===//
@@ -100,14 +100,14 @@
   }
 }
 
-bool AMDGPUTargetAsmStreamer::EmitCodeObjectMetadata(StringRef YamlString) {
-  auto VerifiedYamlString = CodeObjectMetadataStreamer.toYamlString(YamlString);
+bool AMDGPUTargetAsmStreamer::EmitHSAMetadata(StringRef YamlString) {
+  auto VerifiedYamlString = HSAMetadataStreamer.toYamlString(YamlString);
   if (!VerifiedYamlString)
     return false;
 
-  OS << '\t' << AMDGPU::CodeObject::MetadataAssemblerDirectiveBegin << '\n';
+  OS << '\t' << AMDGPU::HSAMD::AssemblerDirectiveBegin << '\n';
   OS << VerifiedYamlString.get();
-  OS << '\t' << AMDGPU::CodeObject::MetadataAssemblerDirectiveEnd << '\n';
+  OS << '\t' << AMDGPU::HSAMD::AssemblerDirectiveEnd << '\n';
 
   return true;
 }
@@ -212,8 +212,8 @@
   Symbol->setType(ELF::STT_AMDGPU_HSA_KERNEL);
 }
 
-bool AMDGPUTargetELFStreamer::EmitCodeObjectMetadata(StringRef YamlString) {
-  auto VerifiedYamlString = CodeObjectMetadataStreamer.toYamlString(YamlString);
+bool AMDGPUTargetELFStreamer::EmitHSAMetadata(StringRef YamlString) {
+  auto VerifiedYamlString = HSAMetadataStreamer.toYamlString(YamlString);
   if (!VerifiedYamlString)
     return false;
 
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
index db82c19..a55a6c8 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
@@ -10,7 +10,7 @@
 #ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUTARGETSTREAMER_H
 #define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUTARGETSTREAMER_H
 
-#include "AMDGPUCodeObjectMetadataStreamer.h"
+#include "AMDGPUHSAMetadataStreamer.h"
 #include "AMDKernelCodeT.h"
 #include "llvm/MC/MCStreamer.h"
 
@@ -27,7 +27,7 @@
 
 class AMDGPUTargetStreamer : public MCTargetStreamer {
 protected:
-  AMDGPU::CodeObject::MetadataStreamer CodeObjectMetadataStreamer;
+  AMDGPU::HSAMD::MetadataStreamer HSAMetadataStreamer;
   MCContext &getContext() const { return Streamer.getContext(); }
 
 public:
@@ -44,15 +44,15 @@
 
   virtual void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) = 0;
 
-  virtual void EmitStartOfCodeObjectMetadata(const Module &Mod);
+  virtual void EmitStartOfHSAMetadata(const Module &Mod);
 
-  virtual void EmitKernelCodeObjectMetadata(
+  virtual void EmitKernelHSAMetadata(
       const Function &Func, const amd_kernel_code_t &KernelCode);
 
-  virtual void EmitEndOfCodeObjectMetadata();
+  virtual void EmitEndOfHSAMetadata();
 
   /// \returns True on success, false on failure.
-  virtual bool EmitCodeObjectMetadata(StringRef YamlString) = 0;
+  virtual bool EmitHSAMetadata(StringRef YamlString) = 0;
 
   virtual bool EmitPalMetadata(ArrayRef<uint32_t> Data) = 0;
 };
@@ -73,7 +73,7 @@
   void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override;
 
   /// \returns True on success, false on failure.
-  bool EmitCodeObjectMetadata(StringRef YamlString) override;
+  bool EmitHSAMetadata(StringRef YamlString) override;
 
   bool EmitPalMetadata(ArrayRef<uint32_t> data) override;
 };
@@ -102,7 +102,7 @@
   void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override;
 
   /// \returns True on success, false on failure.
-  bool EmitCodeObjectMetadata(StringRef YamlString) override;
+  bool EmitHSAMetadata(StringRef YamlString) override;
 
   bool EmitPalMetadata(ArrayRef<uint32_t> data) override;
 };
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
index 09e3efa..f9cb467 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
@@ -1,8 +1,8 @@
 add_llvm_library(LLVMAMDGPUDesc
   AMDGPUAsmBackend.cpp
-  AMDGPUCodeObjectMetadataStreamer.cpp
   AMDGPUELFObjectWriter.cpp
   AMDGPUELFStreamer.cpp
+  AMDGPUHSAMetadataStreamer.cpp
   AMDGPUMCAsmInfo.cpp
   AMDGPUMCCodeEmitter.cpp
   AMDGPUMCTargetDesc.cpp