[llvm-commits] [llvm] r45848 - in /llvm/trunk/lib/Target: PowerPC/PPCAsmPrinter.cpp PowerPC/PPCTargetAsmInfo.cpp X86/X86AsmPrinter.cpp X86/X86TargetAsmInfo.cpp

Dale Johannesen dalej at apple.com
Thu Jan 10 16:54:37 PST 2008


Author: johannes
Date: Thu Jan 10 18:54:37 2008
New Revision: 45848

URL: http://llvm.org/viewvc/llvm-project?rev=45848&view=rev
Log:
Weak things initialized to 0 don't go in bss on Darwin.
Cosmetic changes to spacing to match gcc (some dejagnu
tests actually care).


Modified:
    llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
    llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
    llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
    llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp

Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Thu Jan 10 18:54:37 2008
@@ -767,7 +767,7 @@
   case Function::InternalLinkage: return TAI->getTextSection();
   case Function::WeakLinkage:
   case Function::LinkOnceLinkage:
-    return ".section __TEXT,__textcoal_nt,coalesced,pure_instructions";
+    return "\t.section __TEXT,__textcoal_nt,coalesced,pure_instructions";
   }
 }
 
@@ -869,13 +869,13 @@
   
   // Prime text sections so they are adjacent.  This reduces the likelihood a
   // large data or debug section causes a branch to exceed 16M limit.
-  SwitchToTextSection(".section __TEXT,__textcoal_nt,coalesced,"
+  SwitchToTextSection("\t.section __TEXT,__textcoal_nt,coalesced,"
                       "pure_instructions");
   if (TM.getRelocationModel() == Reloc::PIC_) {
-    SwitchToTextSection(".section __TEXT,__picsymbolstub1,symbol_stubs,"
+    SwitchToTextSection("\t.section __TEXT,__picsymbolstub1,symbol_stubs,"
                           "pure_instructions,32");
   } else if (TM.getRelocationModel() == Reloc::DynamicNoPIC) {
-    SwitchToTextSection(".section __TEXT,__symbol_stub1,symbol_stubs,"
+    SwitchToTextSection("\t.section __TEXT,__symbol_stub1,symbol_stubs,"
                         "pure_instructions,16");
   }
   SwitchToTextSection(TAI->getTextSection());
@@ -917,8 +917,7 @@
 
     if (C->isNullValue() && /* FIXME: Verify correct */
         !I->hasSection() &&
-        (I->hasInternalLinkage() || I->hasWeakLinkage() ||
-         I->hasLinkOnceLinkage() || I->hasExternalLinkage())) {
+        (I->hasInternalLinkage() || I->hasExternalLinkage())) {
       if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
       if (I->hasExternalLinkage()) {
         O << "\t.globl " << name << '\n';
@@ -941,7 +940,7 @@
       case GlobalValue::WeakLinkage:
         O << "\t.globl " << name << '\n'
           << "\t.weak_definition " << name << '\n';
-        SwitchToDataSection(".section __DATA,__datacoal_nt,coalesced", I);
+        SwitchToDataSection("\t.section __DATA,__datacoal_nt,coalesced", I);
         break;
       case GlobalValue::AppendingLinkage:
         // FIXME: appending linkage variables should go into a section of
@@ -1008,7 +1007,7 @@
   if (TM.getRelocationModel() == Reloc::PIC_) {
     for (std::set<std::string>::iterator i = FnStubs.begin(), e = FnStubs.end();
          i != e; ++i) {
-      SwitchToTextSection(".section __TEXT,__picsymbolstub1,symbol_stubs,"
+      SwitchToTextSection("\t.section __TEXT,__picsymbolstub1,symbol_stubs,"
                           "pure_instructions,32");
       EmitAlignment(4);
       O << "L" << *i << "$stub:\n";
@@ -1036,7 +1035,7 @@
   } else {
     for (std::set<std::string>::iterator i = FnStubs.begin(), e = FnStubs.end();
          i != e; ++i) {
-      SwitchToTextSection(".section __TEXT,__symbol_stub1,symbol_stubs,"
+      SwitchToTextSection("\t.section __TEXT,__symbol_stub1,symbol_stubs,"
                           "pure_instructions,16");
       EmitAlignment(4);
       O << "L" << *i << "$stub:\n";

Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp Thu Jan 10 18:54:37 2008
@@ -53,7 +53,7 @@
   UsedDirective = "\t.no_dead_strip\t";
   WeakDefDirective = "\t.weak_definition ";
   WeakRefDirective = "\t.weak_reference ";
-  HiddenDirective = "\t.private_extern\t";
+  HiddenDirective = "\t.private_extern ";
   SupportsExceptionHandling = true;
   NeedsIndirectEncoding = true;
   NeedsSet = true;

Modified: llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Thu Jan 10 18:54:37 2008
@@ -173,7 +173,7 @@
     if (C->isNullValue() && !I->hasSection()) {
       if (I->hasExternalLinkage()) {
         if (const char *Directive = TAI->getZeroFillDirective()) {
-          O << "\t.globl\t" << name << "\n";
+          O << "\t.globl " << name << "\n";
           O << Directive << "__DATA__, __common, " << name << ", "
             << Size << ", " << Align << "\n";
           continue;
@@ -181,8 +181,9 @@
       }
       
       if (!I->isThreadLocal() &&
-          (I->hasInternalLinkage() || I->hasWeakLinkage() ||
-           I->hasLinkOnceLinkage())) {
+          (I->hasInternalLinkage() || 
+           (!Subtarget->isTargetDarwin() && 
+            (I->hasWeakLinkage() || I->hasLinkOnceLinkage())))) {
         if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
         if (!NoZerosInBSS && TAI->getBSSSection())
           SwitchToDataSection(TAI->getBSSSection(), I);
@@ -218,9 +219,9 @@
     case GlobalValue::LinkOnceLinkage:
     case GlobalValue::WeakLinkage:
       if (Subtarget->isTargetDarwin()) {
-        O << "\t.globl\t" << name << "\n"
+        O << "\t.globl " << name << "\n"
           << TAI->getWeakDefDirective() << name << "\n";
-        SwitchToDataSection(".section __DATA,__const_coal,coalesced", I);
+        SwitchToDataSection("\t.section __DATA,__datacoal_nt,coalesced", I);
       } else if (Subtarget->isTargetCygMing()) {
         std::string SectionName(".section\t.data$linkonce." +
                                 name +
@@ -244,7 +245,7 @@
       // their name or something.  For now, just emit them as external.
     case GlobalValue::ExternalLinkage:
       // If external or appending, declare as a global symbol
-      O << "\t.globl\t" << name << "\n";
+      O << "\t.globl " << name << "\n";
       // FALL THROUGH
     case GlobalValue::InternalLinkage: {
       if (I->isConstant()) {
@@ -348,7 +349,7 @@
     unsigned j = 1;
     for (std::set<std::string>::iterator i = FnStubs.begin(), e = FnStubs.end();
          i != e; ++i, ++j) {
-      SwitchToDataSection(".section __IMPORT,__jump_table,symbol_stubs,"
+      SwitchToDataSection("\t.section __IMPORT,__jump_table,symbol_stubs,"
                           "self_modifying_code+pure_instructions,5", 0);
       O << "L" << *i << "$stub:\n";
       O << "\t.indirect_symbol " << *i << "\n";
@@ -369,7 +370,7 @@
     // Output stubs for external and common global variables.
     if (!GVStubs.empty())
       SwitchToDataSection(
-                    ".section __IMPORT,__pointers,non_lazy_symbol_pointers");
+                    "\t.section __IMPORT,__pointers,non_lazy_symbol_pointers");
     for (std::set<std::string>::iterator i = GVStubs.begin(), e = GVStubs.end();
          i != e; ++i) {
       O << "L" << *i << "$non_lazy_ptr:\n";

Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp Thu Jan 10 18:54:37 2008
@@ -78,7 +78,7 @@
     UsedDirective = "\t.no_dead_strip\t";
     WeakDefDirective = "\t.weak_definition ";
     WeakRefDirective = "\t.weak_reference ";
-    HiddenDirective = "\t.private_extern\t";
+    HiddenDirective = "\t.private_extern ";
     
     // In non-PIC modes, emit a special label before jump tables so that the
     // linker can perform more accurate dead code stripping.





More information about the llvm-commits mailing list