[llvm] r356621 - [AMDGPU] Do not generate spurious PAL metadata
Tim Renouf via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 20 15:02:09 PDT 2019
Author: tpr
Date: Wed Mar 20 15:02:09 2019
New Revision: 356621
URL: http://llvm.org/viewvc/llvm-project?rev=356621&view=rev
Log:
[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
Added:
llvm/trunk/test/MC/AMDGPU/spurious-pal-metadata.s
Modified:
llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp
llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h
Modified: llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp?rev=356621&r1=356620&r2=356621&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.cpp Wed Mar 20 15:02:09 2019
@@ -518,6 +518,8 @@ static const char *getRegisterName(unsig
// 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::st
}
// 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
// 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.
Modified: llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h?rev=356621&r1=356620&r2=356621&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h (original)
+++ llvm/trunk/lib/Target/AMDGPU/Utils/AMDGPUPALMetadata.h Wed Mar 20 15:02:09 2019
@@ -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.
Added: llvm/trunk/test/MC/AMDGPU/spurious-pal-metadata.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AMDGPU/spurious-pal-metadata.s?rev=356621&view=auto
==============================================================================
--- llvm/trunk/test/MC/AMDGPU/spurious-pal-metadata.s (added)
+++ llvm/trunk/test/MC/AMDGPU/spurious-pal-metadata.s Wed Mar 20 15:02:09 2019
@@ -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
More information about the llvm-commits
mailing list