[llvm-commits] [llvm] r93853 - in /llvm/trunk/lib/Target: ARM/AsmPrinter/ARMAsmPrinter.cpp X86/AsmPrinter/X86AsmPrinter.cpp

Chris Lattner sabre at nondot.org
Mon Jan 18 20:53:18 PST 2010


Author: lattner
Date: Mon Jan 18 22:53:18 2010
New Revision: 93853

URL: http://llvm.org/viewvc/llvm-project?rev=93853&view=rev
Log:
some cleanups

Modified:
    llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
    llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp

Modified: llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp?rev=93853&r1=93852&r2=93853&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp Mon Jan 18 22:53:18 2010
@@ -1173,11 +1173,9 @@
   const Type *Type = C->getType();
   unsigned Size = TD->getTypeAllocSize(Type);
   unsigned Align = TD->getPreferredAlignmentLog(GVar);
-  bool isDarwin = Subtarget->isTargetDarwin();
-
   printVisibility(GVarSym, GVar->getVisibility());
 
-  if (Subtarget->isTargetELF())
+  if (MAI->hasDotTypeDotSizeDirective())
     O << "\t.type " << *GVarSym << ",%object\n";
 
   SectionKind GVKind = TargetLoweringObjectFile::getKindForGlobal(GVar, TM);
@@ -1243,7 +1241,7 @@
   case GlobalValue::WeakAnyLinkage:
   case GlobalValue::WeakODRLinkage:
   case GlobalValue::LinkerPrivateLinkage:
-    if (isDarwin) {
+    if (Subtarget->isTargetDarwin()) {
       O << "\t.globl " << *GVarSym
         << "\n\t.weak_definition " << *GVarSym << "\n";
     } else {

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

==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp Mon Jan 18 22:53:18 2010
@@ -647,29 +647,32 @@
 }
 
 void X86AsmPrinter::PrintGlobalVariable(const GlobalVariable* GVar) {
-
   MCSymbol *GVarSym = GetGlobalValueSymbol(GVar);
-  Constant *C = GVar->getInitializer();
-  const Type *Type = C->getType();
-  
-  const TargetData *TD = TM.getTargetData();
-  unsigned Size = TD->getTypeAllocSize(Type);
-  unsigned Align = TD->getPreferredAlignmentLog(GVar);
-
   printVisibility(GVarSym, GVar->getVisibility());
 
-  if (MAI->hasDotTypeDotSizeDirective())
-    O << "\t.type\t" << *GVarSym << ", at object\n";
+  if (MAI->hasDotTypeDotSizeDirective()) {
+    O << "\t.type\t" << *GVarSym;
+    if (MAI->getCommentString()[0] != '@')
+      O << ", at object\n";
+    else
+      O << ",%object\n";
+  }
   
   SectionKind GVKind = TargetLoweringObjectFile::getKindForGlobal(GVar, TM);
 
+  const Type *Type = GVar->getType()->getElementType();
+  
+  const TargetData *TD = TM.getTargetData();
+  unsigned Size = TD->getTypeAllocSize(Type);
+  unsigned AlignLog = TD->getPreferredAlignmentLog(GVar);
+  
   // Handle normal common symbols.
   if (GVKind.isCommon()) {
     if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
     
     O << ".comm " << *GVarSym << ',' << Size;
     if (MAI->getCOMMDirectiveTakesAlignment())
-      O << ',' << (MAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
+      O << ',' << (MAI->getAlignmentIsInBytes() ? (1 << AlignLog) : AlignLog);
     
     if (VerboseAsm) {
       O << "\t\t" << MAI->getCommentString() << " '";
@@ -687,14 +690,14 @@
       if (GVar->hasLocalLinkage()) {
         O << LComm << *GVarSym << ',' << Size;
         if (MAI->getLCOMMDirectiveTakesAlignment())
-          O << ',' << Align;
+          O << ',' << AlignLog;
       }
     } else {
       if (!Subtarget->isTargetCygMing())
         O << "\t.local\t" << *GVarSym << '\n';
       O << MAI->getCOMMDirective() << *GVarSym << ',' << Size;
       if (MAI->getCOMMDirectiveTakesAlignment())
-        O << ',' << (MAI->getAlignmentIsInBytes() ? (1 << Align) : Align);
+        O << ',' << (MAI->getAlignmentIsInBytes() ? (1 << AlignLog) : AlignLog);
     }
     if (VerboseAsm) {
       O.PadToColumn(MAI->getCommentColumn());
@@ -714,7 +717,7 @@
     // .globl _foo
     OutStreamer.EmitSymbolAttribute(GVarSym, MCStreamer::Global);
     // .zerofill __DATA, __common, _foo, 400, 5
-    OutStreamer.EmitZerofill(TheSection, GVarSym, Size, 1 << Align);
+    OutStreamer.EmitZerofill(TheSection, GVarSym, Size, 1 << AlignLog);
     return;
   }
 
@@ -751,7 +754,7 @@
     llvm_unreachable("Unknown linkage type!");
   }
 
-  EmitAlignment(Align, GVar);
+  EmitAlignment(AlignLog, GVar);
   O << *GVarSym << ":";
   if (VerboseAsm){
     O.PadToColumn(MAI->getCommentColumn());
@@ -760,7 +763,7 @@
   }
   O << '\n';
 
-  EmitGlobalConstant(C);
+  EmitGlobalConstant(GVar->getInitializer());
 
   if (MAI->hasDotTypeDotSizeDirective())
     O << "\t.size\t" << *GVarSym << ", " << Size << '\n';





More information about the llvm-commits mailing list