emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1,
authorChris Lattner <sabre@nondot.org>
Wed, 20 Jan 2010 07:19:19 +0000 (07:19 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 20 Jan 2010 07:19:19 +0000 (07:19 +0000)
for tidiness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93992 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
test/CodeGen/PIC16/globals.ll
test/CodeGen/X86/remat-scalar-zero.ll

index f584787aded387b2b179952208655fcd60abed78..bb0cb1819094a0660c0f265566eb82e11fb5d61e 100644 (file)
@@ -700,9 +700,7 @@ void AsmPrinter::EOL() const {
 void AsmPrinter::EOL(const Twine &Comment) const {
   if (VerboseAsm && !Comment.isTriviallyEmpty()) {
     O.PadToColumn(MAI->getCommentColumn());
-    O << MAI->getCommentString()
-      << ' '
-      << Comment;
+    O << MAI->getCommentString() << ' ' << Comment;
   }
   O << '\n';
 }
@@ -1212,7 +1210,7 @@ static void EmitGlobalConstantLargeInt(const ConstantInt *CI,
 
 /// EmitGlobalConstant - Print a general LLVM constant to the .s file.
 void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) {
-  if (CV->isNullValue() || isa<UndefValue>(CV)) {
+  if (isa<ConstantAggregateZero>(CV) || isa<UndefValue>(CV)) {
     uint64_t Size = TM.getTargetData()->getTypeAllocSize(CV->getType());
     return OutStreamer.EmitZeros(Size, AddrSpace);
   }
@@ -1250,6 +1248,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) {
   if (const ConstantVector *V = dyn_cast<ConstantVector>(CV))
     return EmitGlobalConstantVector(V, AddrSpace, *this);
 
+  // ConstantExpr case.
   printDataDirective(CV->getType(), AddrSpace);
   EmitConstantValueOnly(CV);
   O << '\n';
@@ -1307,19 +1306,17 @@ void AsmPrinter::processDebugLoc(const MachineInstr *MI,
   if (CurDLT.getScope().isNull())
     return;
 
-  if (BeforePrintingInsn) {
-    if (CurDLT.getNode() != PrevDLT) {
-      unsigned L = DW->RecordSourceLine(CurDLT.getLineNumber(), 
-                                        CurDLT.getColumnNumber(),
-                                        CurDLT.getScope().getNode());
-      printLabel(L);
-      O << '\n';
-      DW->BeginScope(MI, L);
-      PrevDLT = CurDLT.getNode();
-    }
-  } else {
+  if (!BeforePrintingInsn) {
     // After printing instruction
     DW->EndScope(MI);
+  } else if (CurDLT.getNode() != PrevDLT) {
+    unsigned L = DW->RecordSourceLine(CurDLT.getLineNumber(), 
+                                      CurDLT.getColumnNumber(),
+                                      CurDLT.getScope().getNode());
+    printLabel(L);
+    O << '\n';
+    DW->BeginScope(MI, L);
+    PrevDLT = CurDLT.getNode();
   }
 }
 
index b8c9116777b498d6c507cbd43caf4ba14a620615..432c291078d31734a5253fa19bef9a08c75dc1dd 100644 (file)
@@ -2,7 +2,8 @@
 
 @G1 = global i32 4712, section "Address=412"
 ; CHECK: @G1.412..user_section.#       IDATA   412
-; CHECK: @G1 dl 4712
+; CHECK: @G1
+; CHECK:     dl 4712
 
 @G2 = global i32 0, section "Address=412"
 ; CHECK: @G2.412..user_section.#       UDATA   412
@@ -10,6 +11,7 @@
 
 @G3 = addrspace(1) constant i32 4712, section "Address=412"
 ; CHECK: @G3.412..user_section.#       ROMDATA 412
-; CHECK: @G3 rom_dl 4712
+; CHECK: @G3
+; CHECK:     rom_dl 4712
 
 
index 790ae83c2b2bc91b71cabd715a66e00d36b38e2c..2da96aba5531d8b5946d51b0464120843ef9841f 100644 (file)
@@ -1,7 +1,7 @@
 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu > %t
 ; RUN: not grep xor %t
 ; RUN: not grep movap %t
-; RUN: grep {\\.zero} %t
+; RUN: grep {\\.quad.*0} %t
 
 ; Remat should be able to fold the zero constant into the div instructions
 ; as a constant-pool load.