diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-20 07:19:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-20 07:19:19 +0000 |
commit | 043c4e5c1d012c8131c7f2fa27a4def32740c42f (patch) | |
tree | 59fb348b1da31f0616310735afbcc83ef0d5da20 | |
parent | 2dd245c469f4d842f2b7af80582fb4769a914b23 (diff) |
emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1,
for tidiness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93992 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 27 | ||||
-rw-r--r-- | test/CodeGen/PIC16/globals.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/X86/remat-scalar-zero.ll | 2 |
3 files changed, 17 insertions, 18 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index f584787ade..bb0cb18190 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -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(); } } diff --git a/test/CodeGen/PIC16/globals.ll b/test/CodeGen/PIC16/globals.ll index b8c9116777..432c291078 100644 --- a/test/CodeGen/PIC16/globals.ll +++ b/test/CodeGen/PIC16/globals.ll @@ -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 diff --git a/test/CodeGen/X86/remat-scalar-zero.ll b/test/CodeGen/X86/remat-scalar-zero.ll index 790ae83c2b..2da96aba55 100644 --- a/test/CodeGen/X86/remat-scalar-zero.ll +++ b/test/CodeGen/X86/remat-scalar-zero.ll @@ -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. |