diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-28 20:13:31 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-28 20:13:31 +0000 |
| commit | b43d51de956be1ce30e6e7943153201cd1362ead (patch) | |
| tree | b48abd75f94bee80b4200cda9bc40eeb71e6f753 /llvm/test | |
| parent | 9e32475f18c118987e523b0b6713515a106040c4 (diff) | |
| download | bcm5719-llvm-b43d51de956be1ce30e6e7943153201cd1362ead.tar.gz bcm5719-llvm-b43d51de956be1ce30e6e7943153201cd1362ead.zip | |
On MachO, don't put non-private constants in mergeable sections.
On MachO, putting a symbol that doesn't start with a 'L' or 'l' in one of the
__TEXT,__literal* sections prevents the linker from merging the context of the
section.
Since private GVs are the ones the get mangled to start with 'L' or 'l', we now
only put those on the __TEXT,__literal* sections.
llvm-svn: 216682
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/global-sections.ll | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/X86/global-sections.ll b/llvm/test/CodeGen/X86/global-sections.ll index c763f3947e5..fa1169d8a8e 100644 --- a/llvm/test/CodeGen/X86/global-sections.ll +++ b/llvm/test/CodeGen/X86/global-sections.ll @@ -53,21 +53,20 @@ define void @F1() { ; _Complex long long const G4 = 34; -@G4 = unnamed_addr constant {i64,i64} { i64 34, i64 0 } +@G4 = private unnamed_addr constant {i64,i64} { i64 34, i64 0 } ; DARWIN: .section __TEXT,__literal16,16byte_literals -; DARWIN: _G4: +; DARWIN: L_G4: ; DARWIN: .long 34 ; DARWIN-STATIC: .section __TEXT,__literal16,16byte_literals -; DARWIN-STATIC: _G4: +; DARWIN-STATIC: L_G4: ; DARWIN-STATIC: .long 34 ; DARWIN64: .section __TEXT,__literal16,16byte_literals -; DARWIN64: _G4: +; DARWIN64: L_G4: ; DARWIN64: .quad 34 - ; int G5 = 47; @G5 = global i32 47 @@ -194,3 +193,23 @@ define void @F1() { ; WIN32-SECTIONS: L_G14: ; WIN32-SECTIONS: .asciz "foo" +; cannot be merged on MachO, but can on other formats. +@G15 = unnamed_addr constant i64 0 + +; LINUX: .section .rodata.cst8,"aM",@progbits,8 +; LINUX: G15: + +; DARWIN: .section __TEXT,__const +; DARWIN: _G15: + +; DARWIN-STATIC: .section __TEXT,__const +; DARWIN-STATIC: _G15: + +; DARWIN64: .section __TEXT,__const +; DARWIN64: _G15: + +; LINUX-SECTIONS: .section .rodata.G15,"aM",@progbits,8 +; LINUX-SECTIONS: G15: + +; WIN32-SECTIONS: .section .rdata,"rd",one_only,_G15 +; WIN32-SECTIONS: _G15: |

