[llvm-commits] [llvm] r78495 - in /llvm/trunk: include/llvm/Target/TargetLoweringObjectFile.h lib/Target/ARM/ARMTargetObjectFile.h lib/Target/TargetLoweringObjectFile.cpp lib/Target/XCore/XCoreTargetObjectFile.cpp

Chris Lattner sabre at nondot.org
Sat Aug 8 13:22:20 PDT 2009


Author: lattner
Date: Sat Aug  8 15:22:20 2009
New Revision: 78495

URL: http://llvm.org/viewvc/llvm-project?rev=78495&view=rev
Log:
now that getOrCreateSection is all object-file specific,
give the impls an object-file-specific name.  In the future
they can take different arguments etc.

Modified:
    llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h
    llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h
    llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp
    llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp

Modified: llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h?rev=78495&r1=78494&r2=78495&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h (original)
+++ llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h Sat Aug  8 15:22:20 2009
@@ -207,9 +207,8 @@
   const MCSection *MergeableConst16Section;
   
 protected:
-  const MCSection *getOrCreateSection(const char *Name,
-                                      bool isDirective,
-                                      SectionKind K) const;
+  const MCSection *getELFSection(const char *Name, bool isDirective,
+                                 SectionKind Kind) const;
 public:
   /// ELF Constructor - AtIsCommentChar is true if the CommentCharacter from TAI
   /// is "@".
@@ -250,10 +249,6 @@
   const MCSection *FourByteConstantSection;
   const MCSection *EightByteConstantSection;
   const MCSection *SixteenByteConstantSection;
-protected:
-  const MCSection *getOrCreateSection(const char *Name,
-                                      bool isDirective,
-                                      SectionKind K) const;
 public:
   
   virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
@@ -277,16 +272,12 @@
   /// getMachOSection - Return the MCSection for the specified mach-o section.
   /// FIXME: Switch this to a semantic view eventually.
   const MCSection *getMachOSection(const char *Name, bool isDirective,
-                                   SectionKind K);
+                                   SectionKind K) const;
 };
 
 
 
 class TargetLoweringObjectFileCOFF : public TargetLoweringObjectFile {
-protected:
-  const MCSection *getOrCreateSection(const char *Name,
-                                      bool isDirective,
-                                      SectionKind K) const;
 public:
   virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
   
@@ -304,7 +295,7 @@
   /// getCOFFSection - Return the MCSection for the specified COFF section.
   /// FIXME: Switch this to a semantic view eventually.
   const MCSection *getCOFFSection(const char *Name, bool isDirective,
-                                  SectionKind K);
+                                  SectionKind K) const;
 };
 
 } // end namespace llvm

Modified: llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h?rev=78495&r1=78494&r2=78495&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h (original)
+++ llvm/trunk/lib/Target/ARM/ARMTargetObjectFile.h Sat Aug  8 15:22:20 2009
@@ -25,11 +25,11 @@
       // That will allow not treating these as "directives".
       if (TM.getSubtarget<ARMSubtarget>().isAAPCS_ABI()) {
         StaticCtorSection =
-          getOrCreateSection("\t.section .init_array,\"aw\",%init_array", true,
-                             SectionKind::getDataRel());
+          getELFSection("\t.section .init_array,\"aw\",%init_array", true,
+                        SectionKind::getDataRel());
         StaticDtorSection =
-          getOrCreateSection("\t.section .fini_array,\"aw\",%fini_array", true,
-                             SectionKind::getDataRel());
+          getELFSection("\t.section .fini_array,\"aw\",%fini_array", true,
+                        SectionKind::getDataRel());
       }
     }
   };

Modified: llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp?rev=78495&r1=78494&r2=78495&view=diff

==============================================================================
--- llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp (original)
+++ llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp Sat Aug  8 15:22:20 2009
@@ -280,7 +280,7 @@
 //===----------------------------------------------------------------------===//
 
 const MCSection *TargetLoweringObjectFileELF::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getELFSection(const char *Name, bool isDirective, SectionKind Kind) const {
   if (MCSection *S = getContext().GetSection(Name))
     return S;
   return MCSection::Create(Name, isDirective, Kind, getContext());
@@ -290,47 +290,47 @@
                                              const TargetMachine &TM) {
   TargetLoweringObjectFile::Initialize(Ctx, TM);
   if (!HasCrazyBSS)
-    BSSSection = getOrCreateSection("\t.bss", true, SectionKind::getBSS());
+    BSSSection = getELFSection("\t.bss", true, SectionKind::getBSS());
   else
     // PPC/Linux doesn't support the .bss directive, it needs .section .bss.
     // FIXME: Does .section .bss work everywhere??
     // FIXME2: this should just be handle by the section printer.  We should get
     // away from syntactic view of the sections and MCSection should just be a
     // semantic view.
-    BSSSection = getOrCreateSection("\t.bss", false, SectionKind::getBSS());
+    BSSSection = getELFSection("\t.bss", false, SectionKind::getBSS());
 
     
-  TextSection = getOrCreateSection("\t.text", true, SectionKind::getText());
-  DataSection = getOrCreateSection("\t.data", true, SectionKind::getDataRel());
+  TextSection = getELFSection("\t.text", true, SectionKind::getText());
+  DataSection = getELFSection("\t.data", true, SectionKind::getDataRel());
   ReadOnlySection =
-    getOrCreateSection("\t.rodata", false, SectionKind::getReadOnly());
+    getELFSection("\t.rodata", false, SectionKind::getReadOnly());
   TLSDataSection =
-    getOrCreateSection("\t.tdata", false, SectionKind::getThreadData());
+    getELFSection("\t.tdata", false, SectionKind::getThreadData());
   
-  TLSBSSSection = getOrCreateSection("\t.tbss", false, 
+  TLSBSSSection = getELFSection("\t.tbss", false, 
                                      SectionKind::getThreadBSS());
 
-  DataRelSection = getOrCreateSection("\t.data.rel", false,
+  DataRelSection = getELFSection("\t.data.rel", false,
                                       SectionKind::getDataRel());
-  DataRelLocalSection = getOrCreateSection("\t.data.rel.local", false,
+  DataRelLocalSection = getELFSection("\t.data.rel.local", false,
                                    SectionKind::getDataRelLocal());
-  DataRelROSection = getOrCreateSection("\t.data.rel.ro", false,
+  DataRelROSection = getELFSection("\t.data.rel.ro", false,
                                 SectionKind::getReadOnlyWithRel());
   DataRelROLocalSection =
-    getOrCreateSection("\t.data.rel.ro.local", false,
+    getELFSection("\t.data.rel.ro.local", false,
                        SectionKind::getReadOnlyWithRelLocal());
     
-  MergeableConst4Section = getOrCreateSection(".rodata.cst4", false,
+  MergeableConst4Section = getELFSection(".rodata.cst4", false,
                                 SectionKind::getMergeableConst4());
-  MergeableConst8Section = getOrCreateSection(".rodata.cst8", false,
+  MergeableConst8Section = getELFSection(".rodata.cst8", false,
                                 SectionKind::getMergeableConst8());
-  MergeableConst16Section = getOrCreateSection(".rodata.cst16", false,
+  MergeableConst16Section = getELFSection(".rodata.cst16", false,
                                SectionKind::getMergeableConst16());
 
   StaticCtorSection =
-    getOrCreateSection(".ctors", false, SectionKind::getDataRel());
+    getELFSection(".ctors", false, SectionKind::getDataRel());
   StaticDtorSection =
-    getOrCreateSection(".dtors", false, SectionKind::getDataRel());
+    getELFSection(".dtors", false, SectionKind::getDataRel());
   
   // Exception Handling Sections.
   
@@ -339,33 +339,33 @@
   // runtime hit for C++ apps.  Either the contents of the LSDA need to be
   // adjusted or this should be a data section.
   LSDASection =
-    getOrCreateSection(".gcc_except_table", false, SectionKind::getReadOnly());
+    getELFSection(".gcc_except_table", false, SectionKind::getReadOnly());
   EHFrameSection =
-    getOrCreateSection(".eh_frame", false, SectionKind::getDataRel());
+    getELFSection(".eh_frame", false, SectionKind::getDataRel());
   
   // Debug Info Sections.
   DwarfAbbrevSection = 
-    getOrCreateSection(".debug_abbrev", false, SectionKind::getMetadata());
+    getELFSection(".debug_abbrev", false, SectionKind::getMetadata());
   DwarfInfoSection = 
-    getOrCreateSection(".debug_info", false, SectionKind::getMetadata());
+    getELFSection(".debug_info", false, SectionKind::getMetadata());
   DwarfLineSection = 
-    getOrCreateSection(".debug_line", false, SectionKind::getMetadata());
+    getELFSection(".debug_line", false, SectionKind::getMetadata());
   DwarfFrameSection = 
-    getOrCreateSection(".debug_frame", false, SectionKind::getMetadata());
+    getELFSection(".debug_frame", false, SectionKind::getMetadata());
   DwarfPubNamesSection = 
-    getOrCreateSection(".debug_pubnames", false, SectionKind::getMetadata());
+    getELFSection(".debug_pubnames", false, SectionKind::getMetadata());
   DwarfPubTypesSection = 
-    getOrCreateSection(".debug_pubtypes", false, SectionKind::getMetadata());
+    getELFSection(".debug_pubtypes", false, SectionKind::getMetadata());
   DwarfStrSection = 
-    getOrCreateSection(".debug_str", false, SectionKind::getMetadata());
+    getELFSection(".debug_str", false, SectionKind::getMetadata());
   DwarfLocSection = 
-    getOrCreateSection(".debug_loc", false, SectionKind::getMetadata());
+    getELFSection(".debug_loc", false, SectionKind::getMetadata());
   DwarfARangesSection = 
-    getOrCreateSection(".debug_aranges", false, SectionKind::getMetadata());
+    getELFSection(".debug_aranges", false, SectionKind::getMetadata());
   DwarfRangesSection = 
-    getOrCreateSection(".debug_ranges", false, SectionKind::getMetadata());
+    getELFSection(".debug_ranges", false, SectionKind::getMetadata());
   DwarfMacroInfoSection = 
-    getOrCreateSection(".debug_macinfo", false, SectionKind::getMetadata());
+    getELFSection(".debug_macinfo", false, SectionKind::getMetadata());
 }
 
 
@@ -401,7 +401,7 @@
   // Infer section flags from the section name if we can.
   Kind = getELFKindForNamedSection(GV->getSection().c_str(), Kind);
   
-  return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+  return getELFSection(GV->getSection().c_str(), false, Kind);
 }
       
       
@@ -497,7 +497,7 @@
   if (GV->isWeakForLinker()) {
     const char *Prefix = getSectionPrefixForUniqueGlobal(Kind);
     std::string Name = Mang->makeNameProper(GV->getNameStr());
-    return getOrCreateSection((Prefix+Name).c_str(), false, Kind);
+    return getELFSection((Prefix+Name).c_str(), false, Kind);
   }
   
   if (Kind.isText()) return TextSection;
@@ -522,7 +522,7 @@
     
     
     std::string Name = SizeSpec + utostr(Align);
-    return getOrCreateSection(Name.c_str(), false, Kind);
+    return getELFSection(Name.c_str(), false, Kind);
   }
   
   if (Kind.isMergeableConst()) {
@@ -574,36 +574,29 @@
 //                                 MachO
 //===----------------------------------------------------------------------===//
 
+
 const MCSection *TargetLoweringObjectFileMachO::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getMachOSection(const char *Name, bool isDirective, SectionKind Kind) const {
   if (MCSection *S = getContext().GetSection(Name))
     return S;
   return MCSection::Create(Name, isDirective, Kind, getContext());
 }
 
-const MCSection *TargetLoweringObjectFileMachO::
-getMachOSection(const char *Name, bool isDirective, SectionKind K) {
-  // FOR NOW, Just forward.
-  return getOrCreateSection(Name, isDirective, K);  
-}
-
 
 
 void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
                                                const TargetMachine &TM) {
   TargetLoweringObjectFile::Initialize(Ctx, TM);
-  TextSection = getOrCreateSection("\t.text", true,
-                                   SectionKind::getText());
-  DataSection = getOrCreateSection("\t.data", true, 
-                                   SectionKind::getDataRel());
-  
-  CStringSection = getOrCreateSection("\t.cstring", true,
-                                      SectionKind::getMergeable1ByteCString());
-  UStringSection = getOrCreateSection("__TEXT,__ustring", false,
-                                      SectionKind::getMergeable2ByteCString());
-  FourByteConstantSection = getOrCreateSection("\t.literal4\n", true,
-                                             SectionKind::getMergeableConst4());
-  EightByteConstantSection = getOrCreateSection("\t.literal8\n", true,
+  TextSection = getMachOSection("\t.text", true, SectionKind::getText());
+  DataSection = getMachOSection("\t.data", true, SectionKind::getDataRel());
+  
+  CStringSection = getMachOSection("\t.cstring", true,
+                                   SectionKind::getMergeable1ByteCString());
+  UStringSection = getMachOSection("__TEXT,__ustring", false,
+                                   SectionKind::getMergeable2ByteCString());
+  FourByteConstantSection = getMachOSection("\t.literal4\n", true,
+                                            SectionKind::getMergeableConst4());
+  EightByteConstantSection = getMachOSection("\t.literal8\n", true,
                                              SectionKind::getMergeableConst8());
   
   // ld_classic doesn't support .literal16 in 32-bit mode, and ld64 falls back
@@ -611,93 +604,90 @@
   if (TM.getRelocationModel() != Reloc::Static &&
       TM.getTargetData()->getPointerSize() == 32)
     SixteenByteConstantSection = 
-      getOrCreateSection("\t.literal16\n", true, 
-                         SectionKind::getMergeableConst16());
+      getMachOSection("\t.literal16\n", true, 
+                      SectionKind::getMergeableConst16());
   else
     SixteenByteConstantSection = 0;
   
-  ReadOnlySection = getOrCreateSection("\t.const", true, 
-                                       SectionKind::getReadOnly());
+  ReadOnlySection = getMachOSection("\t.const", true,
+                                    SectionKind::getReadOnly());
   
   TextCoalSection =
-  getOrCreateSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions",
-                     false, SectionKind::getText());
-  ConstTextCoalSection = getOrCreateSection("\t__TEXT,__const_coal,coalesced",
-                                            false,
-                                           SectionKind::getText());
-  ConstDataCoalSection = getOrCreateSection("\t__DATA,__const_coal,coalesced",
-                                            false, 
-                                          SectionKind::getText());
-  ConstDataSection = getOrCreateSection("\t.const_data", true,
-                                SectionKind::getReadOnlyWithRel());
-  DataCoalSection = getOrCreateSection("\t__DATA,__datacoal_nt,coalesced",
-                                       false,
-                                       SectionKind::getDataRel());
+    getMachOSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions",
+                    false, SectionKind::getText());
+  ConstTextCoalSection = getMachOSection("\t__TEXT,__const_coal,coalesced",
+                                         false, SectionKind::getText());
+  ConstDataCoalSection = getMachOSection("\t__DATA,__const_coal,coalesced",
+                                         false, SectionKind::getText());
+  ConstDataSection = getMachOSection("\t.const_data", true,
+                                     SectionKind::getReadOnlyWithRel());
+  DataCoalSection = getMachOSection("\t__DATA,__datacoal_nt,coalesced",
+                                    false, SectionKind::getDataRel());
 
   if (TM.getRelocationModel() == Reloc::Static) {
     StaticCtorSection =
-      getOrCreateSection(".constructor", true, SectionKind::getDataRel());
+      getMachOSection(".constructor", true, SectionKind::getDataRel());
     StaticDtorSection =
-      getOrCreateSection(".destructor", true, SectionKind::getDataRel());
+      getMachOSection(".destructor", true, SectionKind::getDataRel());
   } else {
     StaticCtorSection =
-      getOrCreateSection(".mod_init_func", true, SectionKind::getDataRel());
+      getMachOSection(".mod_init_func", true, SectionKind::getDataRel());
     StaticDtorSection =
-      getOrCreateSection(".mod_term_func", true, SectionKind::getDataRel());
+      getMachOSection(".mod_term_func", true, SectionKind::getDataRel());
   }
   
   // Exception Handling.
-  LSDASection = getOrCreateSection("__DATA,__gcc_except_tab", false,
-                                   SectionKind::getDataRel());
+  LSDASection = getMachOSection("__DATA,__gcc_except_tab", false,
+                                SectionKind::getDataRel());
   EHFrameSection =
-    getOrCreateSection("__TEXT,__eh_frame,coalesced,no_toc+strip_static_syms"
-                       "+live_support", false, SectionKind::getReadOnly());
+    getMachOSection("__TEXT,__eh_frame,coalesced,no_toc+strip_static_syms"
+                    "+live_support", false, SectionKind::getReadOnly());
 
   // Debug Information.
   // FIXME: Don't use 'directive' syntax: need flags for debug/regular??
   // FIXME: Need __DWARF segment.
   DwarfAbbrevSection = 
-    getOrCreateSection(".section __DWARF,__debug_abbrev,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_abbrev,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfInfoSection =  
-    getOrCreateSection(".section __DWARF,__debug_info,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_info,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfLineSection =  
-    getOrCreateSection(".section __DWARF,__debug_line,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_line,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfFrameSection =  
-    getOrCreateSection(".section __DWARF,__debug_frame,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_frame,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfPubNamesSection =  
-    getOrCreateSection(".section __DWARF,__debug_pubnames,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_pubnames,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfPubTypesSection =  
-    getOrCreateSection(".section __DWARF,__debug_pubtypes,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_pubtypes,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfStrSection =  
-    getOrCreateSection(".section __DWARF,__debug_str,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_str,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfLocSection =  
-    getOrCreateSection(".section __DWARF,__debug_loc,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_loc,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfARangesSection =  
-    getOrCreateSection(".section __DWARF,__debug_aranges,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_aranges,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfRangesSection =  
-    getOrCreateSection(".section __DWARF,__debug_ranges,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_ranges,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfMacroInfoSection =  
-    getOrCreateSection(".section __DWARF,__debug_macinfo,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_macinfo,regular,debug", true,
+                    SectionKind::getMetadata());
   DwarfDebugInlineSection = 
-    getOrCreateSection(".section __DWARF,__debug_inlined,regular,debug", true,
-                       SectionKind::getMetadata());
+    getMachOSection(".section __DWARF,__debug_inlined,regular,debug", true,
+                    SectionKind::getMetadata());
 }
 
 const MCSection *TargetLoweringObjectFileMachO::
 getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, 
                          Mangler *Mang, const TargetMachine &TM) const {
-  return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+  return getMachOSection(GV->getSection().c_str(), false, Kind);
 }
 
 const MCSection *TargetLoweringObjectFileMachO::
@@ -794,72 +784,66 @@
 //                                  COFF
 //===----------------------------------------------------------------------===//
 
+
 const MCSection *TargetLoweringObjectFileCOFF::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getCOFFSection(const char *Name, bool isDirective, SectionKind Kind) const {
   if (MCSection *S = getContext().GetSection(Name))
     return S;
   return MCSection::Create(Name, isDirective, Kind, getContext());
 }
 
-const MCSection *TargetLoweringObjectFileCOFF::
-getCOFFSection(const char *Name, bool isDirective, SectionKind K) {
-  return getOrCreateSection(Name, isDirective, K);
-}
-
 void TargetLoweringObjectFileCOFF::Initialize(MCContext &Ctx,
                                               const TargetMachine &TM) {
   TargetLoweringObjectFile::Initialize(Ctx, TM);
-  TextSection = getOrCreateSection("\t.text", true,
-                                   SectionKind::getText());
-  DataSection = getOrCreateSection("\t.data", true,
-                                   SectionKind::getDataRel());
+  TextSection = getCOFFSection("\t.text", true, SectionKind::getText());
+  DataSection = getCOFFSection("\t.data", true, SectionKind::getDataRel());
   StaticCtorSection =
-    getOrCreateSection(".ctors", false, SectionKind::getDataRel());
+    getCOFFSection(".ctors", false, SectionKind::getDataRel());
   StaticDtorSection =
-    getOrCreateSection(".dtors", false, SectionKind::getDataRel());
+    getCOFFSection(".dtors", false, SectionKind::getDataRel());
   
   
   // Debug info.
   // FIXME: Don't use 'directive' mode here.
   DwarfAbbrevSection =  
-    getOrCreateSection("\t.section\t.debug_abbrev,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_abbrev,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfInfoSection =    
-    getOrCreateSection("\t.section\t.debug_info,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_info,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfLineSection =    
-    getOrCreateSection("\t.section\t.debug_line,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_line,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfFrameSection =   
-    getOrCreateSection("\t.section\t.debug_frame,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_frame,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfPubNamesSection =
-    getOrCreateSection("\t.section\t.debug_pubnames,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_pubnames,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfPubTypesSection =
-    getOrCreateSection("\t.section\t.debug_pubtypes,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_pubtypes,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfStrSection =     
-    getOrCreateSection("\t.section\t.debug_str,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_str,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfLocSection =     
-    getOrCreateSection("\t.section\t.debug_loc,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_loc,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfARangesSection = 
-    getOrCreateSection("\t.section\t.debug_aranges,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_aranges,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfRangesSection =  
-    getOrCreateSection("\t.section\t.debug_ranges,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_ranges,\"dr\"",
+                   true, SectionKind::getMetadata());
   DwarfMacroInfoSection = 
-    getOrCreateSection("\t.section\t.debug_macinfo,\"dr\"",
-                       true, SectionKind::getMetadata());
+    getCOFFSection("\t.section\t.debug_macinfo,\"dr\"",
+                   true, SectionKind::getMetadata());
 }
 
 const MCSection *TargetLoweringObjectFileCOFF::
 getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, 
                          Mangler *Mang, const TargetMachine &TM) const {
-  return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+  return getCOFFSection(GV->getSection().c_str(), false, Kind);
 }
 
 
@@ -895,7 +879,7 @@
   if (GV->isWeakForLinker()) {
     const char *Prefix = getCOFFSectionPrefixForUniqueGlobal(Kind);
     std::string Name = Mang->makeNameProper(GV->getNameStr());
-    return getOrCreateSection((Prefix+Name).c_str(), false, Kind);
+    return getCOFFSection((Prefix+Name).c_str(), false, Kind);
   }
   
   if (Kind.isText())

Modified: llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp?rev=78495&r1=78494&r2=78495&view=diff

==============================================================================
--- llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp (original)
+++ llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp Sat Aug  8 15:22:20 2009
@@ -16,12 +16,9 @@
 void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
   TargetLoweringObjectFileELF::Initialize(Ctx, TM);
 
-  TextSection = getOrCreateSection("\t.text", true, 
-                                   SectionKind::getText());
-  DataSection = getOrCreateSection("\t.dp.data", false, 
-                                   SectionKind::getDataRel());
-  BSSSection = getOrCreateSection("\t.dp.bss", false, 
-                                  SectionKind::getBSS());
+  TextSection = getELFSection("\t.text", true,  SectionKind::getText());
+  DataSection = getELFSection("\t.dp.data", false, SectionKind::getDataRel());
+  BSSSection = getELFSection("\t.dp.bss", false, SectionKind::getBSS());
   
   // TLS globals are lowered in the backend to arrays indexed by the current
   // thread id. After lowering they require no special handling by the linker
@@ -31,9 +28,9 @@
   
   if (TM.getSubtarget<XCoreSubtarget>().isXS1A())
     // FIXME: Why is this writable ("datarel")???
-    ReadOnlySection = getOrCreateSection("\t.dp.rodata", false,
-                                        SectionKind::getDataRel());
+    ReadOnlySection = getELFSection("\t.dp.rodata", false,
+                                    SectionKind::getDataRel());
   else
-    ReadOnlySection = getOrCreateSection("\t.cp.rodata", false,
-                                       SectionKind::getReadOnly());
+    ReadOnlySection = getELFSection("\t.cp.rodata", false,
+                                    SectionKind::getReadOnly());
 }





More information about the llvm-commits mailing list