diff options
author | Chris Lattner <sabre@nondot.org> | 2010-01-19 21:51:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-01-19 21:51:22 +0000 |
commit | 6449abfbc86310edbbe0b5ffb3fad5c14301307f (patch) | |
tree | 2d4301db8a4de738ffe9372aaef9bad7cac372b8 | |
parent | 18b8323de70e3461b5d035e3f9e4f6dfaf5e674b (diff) |
eliminate AsmPrinter::EmitZeros: just use MCStreamer directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93918 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/AsmPrinter.h | 4 | ||||
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 6 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 15 | ||||
-rw-r--r-- | lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp | 12 |
4 files changed, 15 insertions, 22 deletions
diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index 4d03d42b49..07f2ae5c96 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -377,10 +377,6 @@ namespace llvm { /// EmitGlobalConstant - Print a general LLVM constant to the .s file. void EmitGlobalConstant(const Constant* CV, unsigned AddrSpace = 0); - /// EmitZeros - Emit a block of zeros. - /// - void EmitZeros(uint64_t NumZeros, unsigned AddrSpace = 0) const; - /// EmitString - Emit a zero-byte-terminated string constant. /// virtual void EmitString(const ConstantArray *CVA) const; diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 5b51916e76..be66a62407 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -174,6 +174,12 @@ namespace llvm { virtual void EmitFill(uint64_t NumBytes, uint8_t FillValue, unsigned AddrSpace); + /// EmitZeros - Emit NumBytes worth of zeros. This is a convenience + /// function that just wraps EmitFill. + void EmitZeros(uint64_t NumBytes, unsigned AddrSpace) { + EmitFill(NumBytes, 0, AddrSpace); + } + /// EmitValueToAlignment - Emit some number of copies of @param Value until /// the byte alignment @param ByteAlignment is reached. diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 03672411f4..2e576b323a 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1058,12 +1058,6 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) { } } -/// EmitZeros - Emit a block of zeros. -/// -void AsmPrinter::EmitZeros(uint64_t NumZeros, unsigned AddrSpace) const { - OutStreamer.EmitFill(NumZeros, 0, AddrSpace); -} - /// printAsCString - Print the specified array as a C compatible string, only if /// the predicate isString is true. /// @@ -1134,7 +1128,7 @@ static void EmitGlobalConstantStruct(const ConstantStruct *CS, // Insert padding - this may include padding to increase the size of the // current field up to the ABI size (if the struct is not packed) as well // as padding to ensure that the next field starts at the right offset. - AP.EmitZeros(padSize, AddrSpace); + AP.OutStreamer.EmitZeros(padSize, AddrSpace); } assert(SizeSoFar == cvsLayout->getSizeInBytes() && "Layout of constant struct may be incorrect!"); @@ -1283,9 +1277,8 @@ void AsmPrinter::EmitGlobalConstantFP(const ConstantFP *CFP, } O << '\n'; } - LLVMContext &Context = CFP->getContext(); - EmitZeros(TD.getTypeAllocSize(Type::getX86_FP80Ty(Context)) - - TD.getTypeStoreSize(Type::getX86_FP80Ty(Context)), AddrSpace); + OutStreamer.EmitZeros(TD.getTypeAllocSize(CFP->getType()) - + TD.getTypeStoreSize(CFP->getType()), AddrSpace); return; } @@ -1412,7 +1405,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV, unsigned AddrSpace) { unsigned Size = TD->getTypeAllocSize(type); if (CV->isNullValue() || isa<UndefValue>(CV)) - return EmitZeros(Size, AddrSpace); + return OutStreamer.EmitZeros(Size, AddrSpace); if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV)) return EmitGlobalConstantArray(CVA, AddrSpace, *this); diff --git a/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp b/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp index 301a0e9c43..115d041a70 100644 --- a/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp +++ b/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp @@ -174,15 +174,13 @@ void XCoreAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) { EmitGlobalConstant(C); if (GV->isThreadLocal()) { - for (unsigned i = 1; i < MaxThreads; ++i) { + for (unsigned i = 1; i < MaxThreads; ++i) EmitGlobalConstant(C); - } - } - if (Size < 4) { - // The ABI requires that unsigned scalar types smaller than 32 bits - // are are padded to 32 bits. - EmitZeros(4 - Size); } + // The ABI requires that unsigned scalar types smaller than 32 bits + // are are padded to 32 bits. + if (Size < 4) + OutStreamer.EmitZeros(4 - Size, 0); // Mark the end of the global O << "\t.cc_bottom " << *GVSym << ".data\n"; |