summaryrefslogtreecommitdiff
path: root/lib/Target
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2007-05-03 16:38:57 +0000
committerDan Gohman <gohman@apple.com>2007-05-03 16:38:57 +0000
commit6f858e250b689038f2ff4d903f51db74632fd09a (patch)
tree8b75ef4c45aec80cb5b64e7ca2898ecbd6c1e0dc /lib/Target
parent46040234123b0a8de399fb52ba7c8cb8203d1b5f (diff)
downloadllvm-6f858e250b689038f2ff4d903f51db74632fd09a.tar.gz
llvm-6f858e250b689038f2ff4d903f51db74632fd09a.tar.bz2
llvm-6f858e250b689038f2ff4d903f51db74632fd09a.tar.xz
Sets the section names for fixed-size constants and use the mergeable
flag for ELF on x86 so that duplicate constants can be eliminated by the linker. This matches what GCC does with its -fmerge-constants option, which is enabled at most -O levels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36666 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/X86TargetAsmInfo.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/X86/X86TargetAsmInfo.cpp b/lib/Target/X86/X86TargetAsmInfo.cpp
index 85ac7a4421..67196b6f8f 100644
--- a/lib/Target/X86/X86TargetAsmInfo.cpp
+++ b/lib/Target/X86/X86TargetAsmInfo.cpp
@@ -107,6 +107,11 @@ X86TargetAsmInfo::X86TargetAsmInfo(const X86TargetMachine &TM) {
// HasDotFile - True if target asm supports .file directives.
// bool HasDotFile; // Defaults to false.
ReadOnlySection = "\t.section\t.rodata\n";
+ FourByteConstantSection = "\t.section\t.rodata.cst4,\"aM\",@progbits,4";
+ EightByteConstantSection = "\t.section\t.rodata.cst8,\"aM\",@progbits,8";
+ SixteenByteConstantSection =
+ "\t.section\t.rodata.cst16,\"aM\",@progbits,16";
+ CStringSection = "\t.section\t.rodata.str1.1,\"aMS\",@progbits,1";
PrivateGlobalPrefix = ".L";
WeakRefDirective = "\t.weak\t";
SetDirective = "\t.set\t";