Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D15426
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255689
91177308-0d34-0410-b5e6-
96231b3b80d8
void AMDGPUAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) {
- if (TM.getTargetTriple().getOS() != Triple::AMDHSA ||
- GV->isDeclaration()) {
+ if (TM.getTargetTriple().getOS() != Triple::AMDHSA) {
+ AsmPrinter::EmitGlobalVariable(GV);
+ return;
+ }
+
+ if (GV->isDeclaration() || GV->getLinkage() == GlobalValue::PrivateLinkage) {
AsmPrinter::EmitGlobalVariable(GV);
return;
}
return DataGlobalProgramSection;
}
- if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GV))
- return RodataReadonlyAgentSection;
-
- return TargetLoweringObjectFileELF::SelectSectionForGlobal(GV, Kind, Mang, TM);
+ return AMDGPUTargetObjectFile::SelectSectionForGlobal(GV, Kind, Mang, TM);
}
-; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
+; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=NOHSA %s
+; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=HSA %s
@readonly = private unnamed_addr addrspace(2) constant [4 x float] [float 0.0, float 1.0, float 2.0, float 3.0]
@readonly2 = private unnamed_addr addrspace(2) constant [4 x float] [float 4.0, float 5.0, float 6.0, float 7.0]
; GCN: s_getpc_b64 s{{\[}}[[PC1_LO:[0-9]+]]:[[PC1_HI:[0-9]+]]{{\]}}
; GCN-NEXT: s_add_u32 s{{[0-9]+}}, s[[PC1_LO]], readonly
; GCN: s_addc_u32 s{{[0-9]+}}, s[[PC1_HI]], 0
-; GCN: .text
+; NOHSA: .text
+; HSA: .hsatext
; GCN: readonly:
; GCN: readonly2:
define void @main(i32 %index, float addrspace(1)* %out) {
; ASM: .long 0
; ASM: .amdgpu_hsa_module_global internal_readonly
-; ASM: .hsarodata_readonly_agent
+; ASM: .hsatext
; ASM: internal_readonly:
; ASM: .long 0
; ASM: .amdgpu_hsa_program_global external_readonly
-; ASM: .hsarodata_readonly_agent
+; ASM: .hsatext
; ASM: external_readonly:
; ASM: .long 0
; ELF: ]
; ELF: }
-; ELF: Section {
-; ELF: Name: .hsarodata_readonly_agent
-; ELF: Type: SHT_PROGBITS (0x1)
-; ELF: Flags [ (0xA00002)
-; ELF: SHF_ALLOC (0x2)
-; ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
-; ELF: SHF_AMDGPU_HSA_READONLY (0x200000)
-; ELF: ]
-
; ELF: Symbol {
; ELF: Name: common_global_agent
; ELF: Binding: Local
; ELF: Name: internal_readonly
; ELF: Binding: Local
; ELF: Type: Object
-; ELF: Section: .hsarodata_readonly_agent
+; ELF: Section: .hsatext
; ELF: }
; ELF: Symbol {
; ELF: Name: external_readonly
; ELF: Binding: Global
; ELF: Type: Object
-; ELF: Section: .hsarodata_readonly_agent
+; ELF: Section: .hsatext
; ELF: }