1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1,

for tidiness.

llvm-svn: 93992
This commit is contained in:
Chris Lattner 2010-01-20 07:19:19 +00:00
parent 3104fa4a71
commit d69a9cc334
3 changed files with 17 additions and 18 deletions

View 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();
}
}

View 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

View 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.