From: Anton Korobeynikov Date: Tue, 22 Jul 2008 17:09:41 +0000 (+0000) Subject: Tie small stuff to non-small by default on ELF platforms X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=09809801749d6ad3bcb79f6a53e8361c70b54b49;hp=c92a0e90b73a502d218249b29ff496256e87a596 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 --- diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 98247e8d801..852e03a3791 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 eb3608dcaa5..6ce01a836b4 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 += "\"";