diff options
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/AMDGPU/hsa-globals.ll | 56 |
2 files changed, 58 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index 1ef9f597dc2..0c494e37d1e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp @@ -134,6 +134,8 @@ void AMDGPUAsmPrinter::EmitFunctionEntryLabel() { static bool isModuleLinkage(const GlobalValue *GV) { switch (GV->getLinkage()) { + case GlobalValue::LinkOnceODRLinkage: + case GlobalValue::LinkOnceAnyLinkage: case GlobalValue::InternalLinkage: case GlobalValue::CommonLinkage: return true; diff --git a/llvm/test/CodeGen/AMDGPU/hsa-globals.ll b/llvm/test/CodeGen/AMDGPU/hsa-globals.ll index 90322ac3dc0..a19a33492a7 100644 --- a/llvm/test/CodeGen/AMDGPU/hsa-globals.ll +++ b/llvm/test/CodeGen/AMDGPU/hsa-globals.ll @@ -1,10 +1,14 @@ ; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | FileCheck --check-prefix=ASM %s ; RUN: llc < %s -mtriple=amdgcn--amdhsa -mcpu=kaveri | llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri | llvm-readobj -symbols -s | FileCheck %s --check-prefix=ELF +@linkonce_odr_global_program = linkonce_odr addrspace(1) global i32 0 +@linkonce_global_program = linkonce addrspace(1) global i32 0 @internal_global_program = internal addrspace(1) global i32 0 @common_global_program = common addrspace(1) global i32 0 @external_global_program = addrspace(1) global i32 0 +@linkonce_odr_global_agent = linkonce_odr addrspace(1) global i32 0, section ".hsadata_global_agent" +@linkonce_global_agent = linkonce addrspace(1) global i32 0, section ".hsadata_global_agent" @internal_global_agent = internal addrspace(1) global i32 0, section ".hsadata_global_agent" @common_global_agent = common addrspace(1) global i32 0, section ".hsadata_global_agent" @external_global_agent = addrspace(1) global i32 0, section ".hsadata_global_agent" @@ -16,6 +20,18 @@ define void @test() { ret void } +; ASM: .amdgpu_hsa_module_global linkonce_odr_global +; ASM: .size linkonce_odr_global_program, 4 +; ASM: .hsadata_global_program +; ASM: linkonce_odr_global_program: +; ASM: .long 0 + +; ASM: .amdgpu_hsa_module_global linkonce_global +; ASM: .size linkonce_global_program, 4 +; ASM: .hsadata_global_program +; ASM: linkonce_global_program: +; ASM: .long 0 + ; ASM: .amdgpu_hsa_module_global internal_global ; ASM: .size internal_global_program, 4 ; ASM: .hsadata_global_program @@ -34,6 +50,18 @@ define void @test() { ; ASM: external_global_program: ; ASM: .long 0 +; ASM: .amdgpu_hsa_module_global linkonce_odr_global +; ASM: .size linkonce_odr_global_agent, 4 +; ASM: .hsadata_global_agent +; ASM: linkonce_odr_global_agent: +; ASM: .long 0 + +; ASM: .amdgpu_hsa_module_global linkonce_global +; ASM: .size linkonce_global_agent, 4 +; ASM: .hsadata_global_agent +; ASM: linkonce_global_agent: +; ASM: .long 0 + ; ASM: .amdgpu_hsa_module_global internal_global ; ASM: .size internal_global_agent, 4 ; ASM: .hsadata_global_agent @@ -124,6 +152,34 @@ define void @test() { ; ELF: } ; ELF: Symbol { +; ELF: Name: linkonce_global_agent +; ELF: Size: 4 +; ELF: Binding: Local +; ELF: Section: .hsadata_global_agent +; ELF: } + +; ELF: Symbol { +; ELF: Name: linkonce_global_program +; ELF: Size: 4 +; ELF: Binding: Local +; ELF: Section: .hsadata_global_program +; ELF: } + +; ELF: Symbol { +; ELF: Name: linkonce_odr_global_agent +; ELF: Size: 4 +; ELF: Binding: Local +; ELF: Section: .hsadata_global_agent +; ELF: } + +; ELF: Symbol { +; ELF: Name: linkonce_odr_global_program +; ELF: Size: 4 +; ELF: Binding: Local +; ELF: Section: .hsadata_global_program +; ELF: } + +; ELF: Symbol { ; ELF: Name: external_global_agent ; ELF: Size: 4 ; ELF: Binding: Global |