OSDN Git Service

Provide convenient helpers
authorAnton Korobeynikov <asl@math.spbu.ru>
Thu, 7 Aug 2008 09:51:54 +0000 (09:51 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Thu, 7 Aug 2008 09:51:54 +0000 (09:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54451 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetAsmInfo.h
lib/Target/Mips/MipsTargetAsmInfo.cpp
lib/Target/TargetAsmInfo.cpp

index e20a6c8..04e91cb 100644 (file)
@@ -45,6 +45,18 @@ namespace llvm {
       ThreadData,       ///< Initialized TLS data objects
       ThreadBSS         ///< Uninitialized TLS data objects
     };
+
+    static inline bool isReadOnly(Kind K) {
+      return (K == SectionKind::ROData ||
+              K == SectionKind::RODataMergeConst ||
+              K == SectionKind::RODataMergeStr ||
+              K == SectionKind::SmallROData);
+    }
+
+    static inline bool isBSS(Kind K) {
+      return (K == SectionKind::BSS ||
+              K == SectionKind::SmallBSS);
+    }
   }
 
   namespace SectionFlags {
index 10b1d84..04edd0d 100644 (file)
@@ -61,7 +61,7 @@ SectionKindForGlobal(const GlobalValue *GV) const {
   if (Subtarget->hasABICall())
     return K;
 
-  if (K != SectionKind::Data && K != SectionKind::BSS && 
+  if (K != SectionKind::Data && K != SectionKind::BSS &&
       K != SectionKind::RODataMergeConst)
     return K;
 
@@ -69,7 +69,7 @@ SectionKindForGlobal(const GlobalValue *GV) const {
     const TargetData *TD = ETM->getTargetData();
     unsigned Size = TD->getABITypeSize(GV->getType()->getElementType());
     unsigned Threshold = Subtarget->getSSectionThreshold();
-     
+
     if (Size > 0 && Size <= Threshold) {
       if (K == SectionKind::BSS)
         return SectionKind::SmallBSS;
index eb74836..9bc0b40 100644 (file)
@@ -306,15 +306,9 @@ TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
   } else {
     if (Kind == SectionKind::Text)
       return getTextSection_();
-    else if ((Kind == SectionKind::BSS ||
-              Kind == SectionKind::SmallBSS) &&
-             getBSSSection_())
+    else if (isBSS(Kind) && getBSSSection_())
       return getBSSSection_();
-    else if (getReadOnlySection_() &&
-             (Kind == SectionKind::ROData ||
-              Kind == SectionKind::RODataMergeConst ||
-              Kind == SectionKind::RODataMergeStr ||
-              Kind == SectionKind::SmallROData))
+    else if (getReadOnlySection_() && SectionKind::isReadOnly(Kind))
       return getReadOnlySection_();
   }