[PATCH] D55267: [AMDGPU] Set metadata access for explicit section

Piotr Sobczak via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 12 03:23:27 PST 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL348922: [AMDGPU] Set metadata access for explicit section (authored by piotr, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D55267?vs=176626&id=177833#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55267/new/

https://reviews.llvm.org/D55267

Files:
  llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
  llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h
  llvm/trunk/test/CodeGen/AMDGPU/elf.metadata.ll


Index: llvm/trunk/test/CodeGen/AMDGPU/elf.metadata.ll
===================================================================
--- llvm/trunk/test/CodeGen/AMDGPU/elf.metadata.ll
+++ llvm/trunk/test/CodeGen/AMDGPU/elf.metadata.ll
@@ -0,0 +1,56 @@
+; RUN: llc < %s -march=amdgcn -mcpu=fiji -filetype=obj | llvm-readobj -symbols -s -sd - | FileCheck %s
+
+; CHECK: Section {
+; CHECK: Name: .AMDGPU.metadata.info_1
+; CHECK: Type: SHT_PROGBITS (0x1)
+; CHECK: Flags [ (0x0)
+; CHECK: Size: 16
+; CHECK: SectionData (
+; CHECK: 0000: 414D4431 414D4431 414D4431 414D4431  |AMD1AMD1AMD1AMD1|
+; CHECK: )
+; CHECK: }
+
+; CHECK: Section {
+; CHECK: Name: .AMDGPU.metadata.info_2
+; CHECK: Type: SHT_PROGBITS (0x1)
+; CHECK: Flags [ (0x0)
+; CHECK: Size: 16
+; CHECK: SectionData (
+; CHECK: 0000: 414D4432 414D4432 414D4432 414D4432  |AMD2AMD2AMD2AMD2|
+; CHECK: )
+; CHECK: }
+
+; CHECK: Section {
+; CHECK: Name: .AMDGPU.metadata.info_3
+; CHECK: Type: SHT_PROGBITS (0x1)
+; CHECK: Flags [ (0x0)
+; CHECK: Size: 16
+; CHECK: SectionData (
+; CHECK: 0000: 414D4433 414D4433 414D4433 414D4433  |AMD3AMD3AMD3AMD3|
+; CHECK: )
+; CHECK: }
+
+; CHECK: Symbol {
+; CHECK: Name: metadata_info_var_1
+; CHECK: Size: 16
+; CHECK: Binding: Local
+; CHECK: Section: .AMDGPU.metadata.info_1
+; CHECK: }
+
+; CHECK: Symbol {
+; CHECK: Name: metadata_info_var_2
+; CHECK: Size: 16
+; CHECK: Binding: Global
+; CHECK: Section: .AMDGPU.metadata.info_2
+; CHECK: }
+
+; CHECK: Symbol {
+; CHECK: Name: metadata_info_var_3
+; CHECK: Size: 16
+; CHECK: Binding: Global
+; CHECK: Section: .AMDGPU.metadata.info_3
+; CHECK: }
+
+ at metadata_info_var_1 = internal global [4 x i32][i32 826559809, i32 826559809, i32 826559809, i32 826559809], align 1, section ".AMDGPU.metadata.info_1"
+ at metadata_info_var_2 = constant [4 x i32][i32 843337025, i32 843337025, i32 843337025, i32 843337025], align 1, section ".AMDGPU.metadata.info_2"
+ at metadata_info_var_3 = global [4 x i32][i32 860114241, i32 860114241, i32 860114241, i32 860114241], align 1, section ".AMDGPU.metadata.info_3"
Index: llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h
===================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h
@@ -26,6 +26,8 @@
   public:
     MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,
                                       const TargetMachine &TM) const override;
+    MCSection *getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind,
+                                        const TargetMachine &TM) const override;
 };
 
 } // end namespace llvm
Index: llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
===================================================================
--- llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
+++ llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
@@ -29,3 +29,13 @@
 
   return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM);
 }
+
+MCSection *AMDGPUTargetObjectFile::getExplicitSectionGlobal(
+    const GlobalObject *GO, SectionKind SK, const TargetMachine &TM) const {
+  // Set metadata access for the explicit section
+  StringRef SectionName = GO->getSection();
+  if (SectionName.startswith(".AMDGPU.metadata."))
+    SK = SectionKind::getMetadata();
+
+  return TargetLoweringObjectFileELF::getExplicitSectionGlobal(GO, SK, TM);
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55267.177833.patch
Type: text/x-patch
Size: 3436 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181212/e43ef251/attachment.bin>


More information about the llvm-commits mailing list