aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-07-22 17:09:41 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-07-22 17:09:41 +0000
commit09809801749d6ad3bcb79f6a53e8361c70b54b49 (patch)
treefaacdb80097b39d1ace6dced8d376c47634950d9
parentc92a0e90b73a502d218249b29ff496256e87a596 (diff)
Tie small stuff to non-small by default on ELF platforms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53919 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Target/TargetAsmInfo.h5
-rw-r--r--lib/Target/ELFTargetAsmInfo.cpp5
2 files changed, 8 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index 98247e8d80..852e03a379 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -40,8 +40,8 @@ namespace llvm {
RODataMergeStr, ///< Readonly data section (mergeable strings)
RODataMergeConst, ///< Readonly data section (mergeable constants)
SmallData, ///< Small data section
- SmallBSS, ///< Small bss section
- SmallROData, ///< Small readonly section
+ SmallBSS, ///< Small bss section
+ SmallROData, ///< Small readonly section
ThreadData, ///< Initialized TLS data objects
ThreadBSS ///< Uninitialized TLS data objects
};
@@ -58,6 +58,7 @@ namespace llvm {
const unsigned TLS = 1 << 5; ///< Section contains thread-local data
const unsigned Debug = 1 << 6; ///< Section contains debug data
const unsigned Linkonce = 1 << 7; ///< Section is linkonce
+ const unsigned Small = 1 << 8; ///< Section is small
const unsigned TypeFlags = 0xFF;
// Some gap for future flags
const unsigned Named = 1 << 23; ///< Section is named
diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index eb3608dcaa..6ce01a836b 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -63,11 +63,14 @@ ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
} else {
switch (Kind) {
case SectionKind::Data:
+ case SectionKind::SmallData:
return getDataSection_();
case SectionKind::BSS:
+ case SectionKind::SmallBSS:
// ELF targets usually have BSS sections
return getBSSSection_();
case SectionKind::ROData:
+ case SectionKind::SmallROData:
return getReadOnlySection_();
case SectionKind::RODataMergeStr:
return MergeableStringSection(GVar);
@@ -147,6 +150,8 @@ std::string ELFTargetAsmInfo::PrintSectionFlags(unsigned flags) const {
Flags += 'S';
if (flags & SectionFlags::TLS)
Flags += 'T';
+ if (flags & SectionFlags::Small)
+ Flags += 's';
Flags += "\"";