[llvm] r253052 - ELFYAML: Add support for parsing AMDGPU section attribute flags

Tom Stellard via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 13 09:06:30 PST 2015


Author: tstellar
Date: Fri Nov 13 11:06:29 2015
New Revision: 253052

URL: http://llvm.org/viewvc/llvm-project?rev=253052&view=rev
Log:
ELFYAML: Add support for parsing AMDGPU section attribute flags

Reviewers: silvas

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14444

Modified:
    llvm/trunk/lib/Object/ELFYAML.cpp
    llvm/trunk/test/Object/AMDGPU/elf-definitios.yaml

Modified: llvm/trunk/lib/Object/ELFYAML.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ELFYAML.cpp?rev=253052&r1=253051&r2=253052&view=diff
==============================================================================
--- llvm/trunk/lib/Object/ELFYAML.cpp (original)
+++ llvm/trunk/lib/Object/ELFYAML.cpp Fri Nov 13 11:06:29 2015
@@ -402,6 +402,7 @@ void ScalarEnumerationTraits<ELFYAML::EL
 
 void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
                                                   ELFYAML::ELF_SHF &Value) {
+  const auto *Object = static_cast<ELFYAML::Object *>(IO.getContext());
 #define BCase(X) IO.bitSetCase(Value, #X, ELF::X);
   BCase(SHF_WRITE)
   BCase(SHF_ALLOC)
@@ -414,6 +415,17 @@ void ScalarBitSetTraits<ELFYAML::ELF_SHF
   BCase(SHF_OS_NONCONFORMING)
   BCase(SHF_GROUP)
   BCase(SHF_TLS)
+  switch(Object->Header.Machine) {
+  case ELF::EM_AMDGPU:
+    BCase(SHF_AMDGPU_HSA_GLOBAL)
+    BCase(SHF_AMDGPU_HSA_READONLY)
+    BCase(SHF_AMDGPU_HSA_CODE)
+    BCase(SHF_AMDGPU_HSA_AGENT)
+    break;
+  default:
+    // Nothing to do.
+    break;
+  }
 #undef BCase
 }
 

Modified: llvm/trunk/test/Object/AMDGPU/elf-definitios.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/AMDGPU/elf-definitios.yaml?rev=253052&r1=253051&r2=253052&view=diff
==============================================================================
--- llvm/trunk/test/Object/AMDGPU/elf-definitios.yaml (original)
+++ llvm/trunk/test/Object/AMDGPU/elf-definitios.yaml Fri Nov 13 11:06:29 2015
@@ -1,7 +1,16 @@
 # RUN: yaml2obj -format=elf %s > %t.o
-# RUN: llvm-readobj -file-headers %t.o | FileCheck %s
+# RUN: llvm-readobj -s -file-headers %t.o | FileCheck %s
 
 # CHECK:  Machine: EM_AMDGPU (0xE0)
+# CHECK: Sections [
+# CHECK: Section {
+# CHECK: Name: .shf_amdgpu
+# CHECK: Flags [ (0xF00000)
+# CHECK: SHF_AMDGPU_HSA_AGENT (0x800000)
+# CHECK: SHF_AMDGPU_HSA_CODE (0x400000)
+# CHECK: SHF_AMDGPU_HSA_GLOBAL (0x100000)
+# CHECK: SHF_AMDGPU_HSA_READONLY (0x200000)
+# CHECK: }
 
 ---
 FileHeader:
@@ -9,4 +18,10 @@ FileHeader:
   Data:    ELFDATA2LSB
   Type:    ET_REL
   Machine: EM_AMDGPU
+
+Sections:
+  - Name:  .shf_amdgpu
+    Type:  SHT_PROGBITS
+    Flags: [ SHF_AMDGPU_HSA_GLOBAL, SHF_AMDGPU_HSA_READONLY,
+             SHF_AMDGPU_HSA_CODE, SHF_AMDGPU_HSA_AGENT]
 ...




More information about the llvm-commits mailing list