forked from OSchip/llvm-project
[AMDGPU] Do not generate spurious PAL metadata
My previous fix rL356591 "[AMDGPU] Added MsgPack format PAL metadata" accidentally caused a spurious PAL metadata .note record to be emitted for any AMDGPU output. That caused failures in the lld test amdgpu-relocs.s. Fixed. Differential Revision: https://reviews.llvm.org/D59613 Change-Id: Ie04a2aaae890dcd490f22c89edf9913a77ce070e llvm-svn: 356621
This commit is contained in:
parent
03dbfc2eef
commit
2327c231d6
|
@ -518,6 +518,8 @@ static const char *getRegisterName(unsigned RegNum) {
|
|||
// Convert the accumulated PAL metadata into an asm directive.
|
||||
void AMDGPUPALMetadata::toString(std::string &String) {
|
||||
String.clear();
|
||||
if (!BlobType)
|
||||
return;
|
||||
raw_string_ostream Stream(String);
|
||||
if (isLegacy()) {
|
||||
if (MsgPackDoc.getRoot().getKind() == msgpack::Type::Nil)
|
||||
|
@ -564,11 +566,12 @@ void AMDGPUPALMetadata::toString(std::string &String) {
|
|||
}
|
||||
|
||||
// Convert the accumulated PAL metadata into a binary blob for writing as
|
||||
// a .note record of the specified AMD type.
|
||||
// a .note record of the specified AMD type. Returns an empty blob if
|
||||
// there is no PAL metadata,
|
||||
void AMDGPUPALMetadata::toBlob(unsigned Type, std::string &Blob) {
|
||||
if (Type == ELF::NT_AMD_AMDGPU_PAL_METADATA)
|
||||
toLegacyBlob(Blob);
|
||||
else
|
||||
else if (Type)
|
||||
toMsgPackBlob(Blob);
|
||||
}
|
||||
|
||||
|
@ -678,9 +681,10 @@ const char *AMDGPUPALMetadata::getVendor() const {
|
|||
|
||||
// Get .note record type of metadata blob to be emitted:
|
||||
// ELF::NT_AMD_AMDGPU_PAL_METADATA (legacy key=val format), or
|
||||
// ELF::NT_AMDGPU_METADATA (MsgPack format).
|
||||
// ELF::NT_AMDGPU_METADATA (MsgPack format), or
|
||||
// 0 (no PAL metadata).
|
||||
unsigned AMDGPUPALMetadata::getType() const {
|
||||
return BlobType ? BlobType : unsigned(ELF::NT_AMDGPU_METADATA);
|
||||
return BlobType;
|
||||
}
|
||||
|
||||
// Return whether the blob type is legacy PAL metadata.
|
||||
|
|
|
@ -92,8 +92,8 @@ public:
|
|||
|
||||
// Get .note record type of metadata blob to be emitted:
|
||||
// ELF::NT_AMD_AMDGPU_PAL_METADATA (legacy key=val format), or
|
||||
// ELF::NT_AMD_AMDGPU_PAL_METADATA_MSGPACK or ELF::NT_AMDGPU_METADATA
|
||||
// (MsgPack format).
|
||||
// ELF::NT_AMDGPU_METADATA (MsgPack format), or
|
||||
// 0 (no PAL metadata).
|
||||
unsigned getType() const;
|
||||
|
||||
// Emit the accumulated PAL metadata as a binary blob.
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
# RUN: llvm-mc -triple=amdgcn--amdhsa -mcpu=fiji %s | FileCheck %s --check-prefix=ASM
|
||||
# RUN: llvm-mc -filetype=obj -triple=amdgcn--amdhsa -mcpu=fiji %s -o %t.o
|
||||
# RUN: llvm-objdump -s %t.o | FileCheck %s --check-prefix=OBJDUMP
|
||||
|
||||
# Check that we don't get spurious PAL metadata.
|
||||
|
||||
# ASM-NOT: pal_metadata
|
||||
# OBJDUMP-NOT: section .note
|
Loading…
Reference in New Issue