summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/AsmPrinter.h4
-rw-r--r--include/llvm/Target/TargetData.h8
-rw-r--r--lib/CodeGen/AsmPrinter.cpp33
-rw-r--r--lib/CodeGen/ELFWriter.cpp2
-rw-r--r--lib/CodeGen/MachOWriter.cpp14
-rw-r--r--lib/CodeGen/MachOWriter.h2
-rw-r--r--lib/CodeGen/MachineFunction.cpp4
-rw-r--r--lib/Target/ARM/ARMAsmPrinter.cpp2
-rw-r--r--lib/Target/ARM/ARMConstantIslandPass.cpp2
-rw-r--r--lib/Target/Alpha/AlphaAsmPrinter.cpp2
-rw-r--r--lib/Target/IA64/IA64AsmPrinter.cpp6
-rw-r--r--lib/Target/MSIL/MSILWriter.cpp20
-rw-r--r--lib/Target/Mips/MipsAsmPrinter.cpp4
-rw-r--r--lib/Target/PowerPC/PPCAsmPrinter.cpp4
-rw-r--r--lib/Target/Sparc/SparcAsmPrinter.cpp4
-rw-r--r--lib/Target/X86/X86AsmPrinter.cpp4
16 files changed, 54 insertions, 61 deletions
diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h
index 0ca7cfcbb8..607aa70b0d 100644
--- a/include/llvm/CodeGen/AsmPrinter.h
+++ b/include/llvm/CodeGen/AsmPrinter.h
@@ -286,8 +286,8 @@ namespace llvm {
void EmitConstantValueOnly(const Constant *CV);
/// EmitGlobalConstant - Print a general LLVM constant to the .s file.
- ///
- void EmitGlobalConstant(const Constant* CV);
+ /// If Packed is false, pad to the ABI size.
+ void EmitGlobalConstant(const Constant* CV, bool Packed = false);
virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV);
diff --git a/include/llvm/Target/TargetData.h b/include/llvm/Target/TargetData.h
index cf6b5e7ef9..3136a38ac0 100644
--- a/include/llvm/Target/TargetData.h
+++ b/include/llvm/Target/TargetData.h
@@ -190,14 +190,6 @@ public:
return 8*getABITypeSize(Ty);
}
- /// getTypeSize - Obsolete method, do not use. Replaced by getTypeStoreSize
- /// and getABITypeSize. For alias analysis of loads and stores you probably
- /// want getTypeStoreSize. Use getABITypeSize for GEP computations and alloca
- /// sizing.
- uint64_t getTypeSize(const Type *Ty) const {
- return getTypeStoreSize(Ty);
- }
-
/// getABITypeAlignment - Return the minimum ABI-required alignment for the
/// specified type.
unsigned char getABITypeAlignment(const Type *Ty) const;
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 47a53457fc..eb9375cd13 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -192,13 +192,13 @@ void AsmPrinter::EmitConstantPool(MachineConstantPool *MCP) {
MachineConstantPoolEntry CPE = CP[i];
const Type *Ty = CPE.getType();
if (TAI->getFourByteConstantSection() &&
- TM.getTargetData()->getTypeSize(Ty) == 4)
+ TM.getTargetData()->getABITypeSize(Ty) == 4)
FourByteCPs.push_back(std::make_pair(CPE, i));
else if (TAI->getEightByteConstantSection() &&
- TM.getTargetData()->getTypeSize(Ty) == 8)
+ TM.getTargetData()->getABITypeSize(Ty) == 8)
EightByteCPs.push_back(std::make_pair(CPE, i));
else if (TAI->getSixteenByteConstantSection() &&
- TM.getTargetData()->getTypeSize(Ty) == 16)
+ TM.getTargetData()->getABITypeSize(Ty) == 16)
SixteenByteCPs.push_back(std::make_pair(CPE, i));
else
OtherCPs.push_back(std::make_pair(CPE, i));
@@ -229,7 +229,7 @@ void AsmPrinter::EmitConstantPool(unsigned Alignment, const char *Section,
if (i != e-1) {
const Type *Ty = CP[i].first.getType();
unsigned EntSize =
- TM.getTargetData()->getTypeSize(Ty);
+ TM.getTargetData()->getABITypeSize(Ty);
unsigned ValEnd = CP[i].first.getOffset() + EntSize;
// Emit inter-object padding for alignment.
EmitZeros(CP[i+1].first.getOffset()-ValEnd);
@@ -750,7 +750,7 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) {
// We can emit the pointer value into this slot if the slot is an
// integer slot greater or equal to the size of the pointer.
if (Ty->isInteger() &&
- TD->getTypeSize(Ty) >= TD->getTypeSize(Op->getType()))
+ TD->getABITypeSize(Ty) >= TD->getABITypeSize(Op->getType()))
return EmitConstantValueOnly(Op);
assert(0 && "FIXME: Don't yet support this kind of constant cast expr");
@@ -805,23 +805,21 @@ void AsmPrinter::EmitString(const ConstantArray *CVA) const {
}
/// EmitGlobalConstant - Print a general LLVM constant to the .s file.
-///
-void AsmPrinter::EmitGlobalConstant(const Constant *CV) {
+/// If Packed is false, pad to the ABI size.
+void AsmPrinter::EmitGlobalConstant(const Constant *CV, bool Packed) {
const TargetData *TD = TM.getTargetData();
+ unsigned Size = Packed ?
+ TD->getTypeStoreSize(CV->getType()) : TD->getABITypeSize(CV->getType());
if (CV->isNullValue() || isa<UndefValue>(CV)) {
- EmitZeros(TD->getTypeSize(CV->getType()));
+ EmitZeros(Size);
return;
} else if (const ConstantArray *CVA = dyn_cast<ConstantArray>(CV)) {
if (CVA->isString()) {
EmitString(CVA);
} else { // Not a string. Print the values in successive locations
- for (unsigned i = 0, e = CVA->getNumOperands(); i != e; ++i) {
- EmitGlobalConstant(CVA->getOperand(i));
- const Type* EltTy = CVA->getType()->getElementType();
- uint64_t padSize = TD->getABITypeSize(EltTy) - TD->getTypeSize(EltTy);
- EmitZeros(padSize);
- }
+ for (unsigned i = 0, e = CVA->getNumOperands(); i != e; ++i)
+ EmitGlobalConstant(CVA->getOperand(i), false);
}
return;
} else if (const ConstantStruct *CVS = dyn_cast<ConstantStruct>(CV)) {
@@ -832,14 +830,14 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV) {
const Constant* field = CVS->getOperand(i);
// Check if padding is needed and insert one or more 0s.
- uint64_t fieldSize = TD->getTypeSize(field->getType());
+ uint64_t fieldSize = TD->getTypeStoreSize(field->getType());
uint64_t padSize = ((i == e-1? cvsLayout->getSizeInBytes()
: cvsLayout->getElementOffset(i+1))
- cvsLayout->getElementOffset(i)) - fieldSize;
sizeSoFar += fieldSize + padSize;
// Now print the actual field value
- EmitGlobalConstant(field);
+ EmitGlobalConstant(field, CVS->getType()->isPacked());
// Insert the field padding unless it's zero bytes...
EmitZeros(padSize);
@@ -916,6 +914,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV) {
<< "\t" << TAI->getCommentString()
<< " long double most significant halfword\n";
}
+ EmitZeros(Size - TD->getTypeStoreSize(Type::X86_FP80Ty));
return;
} else if (CFP->getType() == Type::PPC_FP128Ty) {
// all long double variants are printed as hex
@@ -978,7 +977,7 @@ void AsmPrinter::EmitGlobalConstant(const Constant *CV) {
const VectorType *PTy = CP->getType();
for (unsigned I = 0, E = PTy->getNumElements(); I < E; ++I)
- EmitGlobalConstant(CP->getOperand(I));
+ EmitGlobalConstant(CP->getOperand(I), false);
return;
}
diff --git a/lib/CodeGen/ELFWriter.cpp b/lib/CodeGen/ELFWriter.cpp
index 8ecddb877f..efdf029c4a 100644
--- a/lib/CodeGen/ELFWriter.cpp
+++ b/lib/CodeGen/ELFWriter.cpp
@@ -258,7 +258,7 @@ void ELFWriter::EmitGlobal(GlobalVariable *GV) {
const Type *GVType = (const Type*)GV->getType();
unsigned Align = TM.getTargetData()->getPrefTypeAlignment(GVType);
- unsigned Size = TM.getTargetData()->getTypeSize(GVType);
+ unsigned Size = TM.getTargetData()->getABITypeSize(GVType);
// If this global has a zero initializer, it is part of the .bss or common
// section.
diff --git a/lib/CodeGen/MachOWriter.cpp b/lib/CodeGen/MachOWriter.cpp
index 0c743759da..9389088f20 100644
--- a/lib/CodeGen/MachOWriter.cpp
+++ b/lib/CodeGen/MachOWriter.cpp
@@ -259,7 +259,7 @@ void MachOCodeEmitter::emitConstantPool(MachineConstantPool *MCP) {
// "giant object for PIC" optimization.
for (unsigned i = 0, e = CP.size(); i != e; ++i) {
const Type *Ty = CP[i].getType();
- unsigned Size = TM.getTargetData()->getTypeSize(Ty);
+ unsigned Size = TM.getTargetData()->getABITypeSize(Ty);
MachOWriter::MachOSection *Sec = MOW.getConstSection(CP[i].Val.ConstVal);
OutputBuffer SecDataOut(Sec->SectionData, is64Bit, isLittleEndian);
@@ -333,7 +333,7 @@ MachOWriter::~MachOWriter() {
void MachOWriter::AddSymbolToSection(MachOSection *Sec, GlobalVariable *GV) {
const Type *Ty = GV->getType()->getElementType();
- unsigned Size = TM.getTargetData()->getTypeSize(Ty);
+ unsigned Size = TM.getTargetData()->getABITypeSize(Ty);
unsigned Align = GV->getAlignment();
if (Align == 0)
Align = TM.getTargetData()->getPrefTypeAlignment(Ty);
@@ -380,7 +380,7 @@ void MachOWriter::AddSymbolToSection(MachOSection *Sec, GlobalVariable *GV) {
void MachOWriter::EmitGlobal(GlobalVariable *GV) {
const Type *Ty = GV->getType()->getElementType();
- unsigned Size = TM.getTargetData()->getTypeSize(Ty);
+ unsigned Size = TM.getTargetData()->getABITypeSize(Ty);
bool NoInit = !GV->hasInitializer();
// If this global has a zero initializer, it is part of the .bss or common
@@ -803,7 +803,8 @@ void MachOWriter::InitMem(const Constant *C, void *Addr, intptr_t Offset,
if (isa<UndefValue>(PC)) {
continue;
} else if (const ConstantVector *CP = dyn_cast<ConstantVector>(PC)) {
- unsigned ElementSize = TD->getTypeSize(CP->getType()->getElementType());
+ unsigned ElementSize =
+ TD->getABITypeSize(CP->getType()->getElementType());
for (unsigned i = 0, e = CP->getNumOperands(); i != e; ++i)
WorkList.push_back(CPair(CP->getOperand(i), PA+i*ElementSize));
} else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(PC)) {
@@ -904,9 +905,10 @@ void MachOWriter::InitMem(const Constant *C, void *Addr, intptr_t Offset,
abort();
}
} else if (isa<ConstantAggregateZero>(PC)) {
- memset((void*)PA, 0, (size_t)TD->getTypeSize(PC->getType()));
+ memset((void*)PA, 0, (size_t)TD->getABITypeSize(PC->getType()));
} else if (const ConstantArray *CPA = dyn_cast<ConstantArray>(PC)) {
- unsigned ElementSize = TD->getTypeSize(CPA->getType()->getElementType());
+ unsigned ElementSize =
+ TD->getABITypeSize(CPA->getType()->getElementType());
for (unsigned i = 0, e = CPA->getNumOperands(); i != e; ++i)
WorkList.push_back(CPair(CPA->getOperand(i), PA+i*ElementSize));
} else if (const ConstantStruct *CPS = dyn_cast<ConstantStruct>(PC)) {
diff --git a/lib/CodeGen/MachOWriter.h b/lib/CodeGen/MachOWriter.h
index 6d888320ca..0492c9e93c 100644
--- a/lib/CodeGen/MachOWriter.h
+++ b/lib/CodeGen/MachOWriter.h
@@ -466,7 +466,7 @@ namespace llvm {
const Type *Ty = C->getType();
if (Ty->isPrimitiveType() || Ty->isInteger()) {
- unsigned Size = TM.getTargetData()->getTypeSize(Ty);
+ unsigned Size = TM.getTargetData()->getABITypeSize(Ty);
switch(Size) {
default: break; // Fall through to __TEXT,__const
case 4:
diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp
index ca7468476a..c35674a49b 100644
--- a/lib/CodeGen/MachineFunction.cpp
+++ b/lib/CodeGen/MachineFunction.cpp
@@ -435,7 +435,7 @@ unsigned MachineConstantPool::getConstantPoolIndex(Constant *C,
unsigned Offset = 0;
if (!Constants.empty()) {
Offset = Constants.back().getOffset();
- Offset += TD->getTypeSize(Constants.back().getType());
+ Offset += TD->getABITypeSize(Constants.back().getType());
Offset = (Offset+AlignMask)&~AlignMask;
}
@@ -459,7 +459,7 @@ unsigned MachineConstantPool::getConstantPoolIndex(MachineConstantPoolValue *V,
unsigned Offset = 0;
if (!Constants.empty()) {
Offset = Constants.back().getOffset();
- Offset += TD->getTypeSize(Constants.back().getType());
+ Offset += TD->getABITypeSize(Constants.back().getType());
Offset = (Offset+AlignMask)&~AlignMask;
}
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp
index 9435cc1174..924a2df82f 100644
--- a/lib/Target/ARM/ARMAsmPrinter.cpp
+++ b/lib/Target/ARM/ARMAsmPrinter.cpp
@@ -821,7 +821,7 @@ bool ARMAsmPrinter::doFinalization(Module &M) {
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
const Type *Type = C->getType();
- unsigned Size = TD->getTypeSize(Type);
+ unsigned Size = TD->getABITypeSize(Type);
unsigned Align = TD->getPreferredAlignmentLog(I);
const char *VisibilityDirective = NULL;
diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp
index 1b936312c0..5b4234c8a6 100644
--- a/lib/Target/ARM/ARMConstantIslandPass.cpp
+++ b/lib/Target/ARM/ARMConstantIslandPass.cpp
@@ -298,7 +298,7 @@ void ARMConstantIslands::DoInitialPlacement(MachineFunction &Fn,
const TargetData &TD = *Fn.getTarget().getTargetData();
for (unsigned i = 0, e = CPs.size(); i != e; ++i) {
- unsigned Size = TD.getTypeSize(CPs[i].getType());
+ unsigned Size = TD.getABITypeSize(CPs[i].getType());
// Verify that all constant pool entries are a multiple of 4 bytes. If not,
// we would have to pad them out or something so that instructions stay
// aligned.
diff --git a/lib/Target/Alpha/AlphaAsmPrinter.cpp b/lib/Target/Alpha/AlphaAsmPrinter.cpp
index 412f28244c..6735ff0261 100644
--- a/lib/Target/Alpha/AlphaAsmPrinter.cpp
+++ b/lib/Target/Alpha/AlphaAsmPrinter.cpp
@@ -214,7 +214,7 @@ bool AlphaAsmPrinter::doFinalization(Module &M) {
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
- unsigned Size = TD->getTypeSize(C->getType());
+ unsigned Size = TD->getABITypeSize(C->getType());
unsigned Align = TD->getPreferredAlignmentLog(I);
//1: hidden?
diff --git a/lib/Target/IA64/IA64AsmPrinter.cpp b/lib/Target/IA64/IA64AsmPrinter.cpp
index 08a27d48ca..cbc86ea365 100644
--- a/lib/Target/IA64/IA64AsmPrinter.cpp
+++ b/lib/Target/IA64/IA64AsmPrinter.cpp
@@ -271,7 +271,7 @@ bool IA64AsmPrinter::doFinalization(Module &M) {
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
- unsigned Size = TD->getTypeSize(C->getType());
+ unsigned Size = TD->getABITypeSize(C->getType());
unsigned Align = TD->getPreferredTypeAlignmentShift(C->getType());
if (C->isNullValue() &&
@@ -279,11 +279,11 @@ bool IA64AsmPrinter::doFinalization(Module &M) {
I->hasWeakLinkage() /* FIXME: Verify correct */)) {
SwitchToDataSection(".data", I);
if (I->hasInternalLinkage()) {
- O << "\t.lcomm " << name << "#," << TD->getTypeSize(C->getType())
+ O << "\t.lcomm " << name << "#," << TD->getABITypeSize(C->getType())
<< "," << (1 << Align);
O << "\n";
} else {
- O << "\t.common " << name << "#," << TD->getTypeSize(C->getType())
+ O << "\t.common " << name << "#," << TD->getABITypeSize(C->getType())
<< "," << (1 << Align);
O << "\n";
}
diff --git a/lib/Target/MSIL/MSILWriter.cpp b/lib/Target/MSIL/MSILWriter.cpp
index 5d6740bd1e..b31658845f 100644
--- a/lib/Target/MSIL/MSILWriter.cpp
+++ b/lib/Target/MSIL/MSILWriter.cpp
@@ -368,7 +368,7 @@ std::string MSILWriter::getTypePostfix(const Type* Ty, bool Expand,
case Type::DoubleTyID:
return "r8";
case Type::PointerTyID:
- return "i"+utostr(TD->getTypeSize(Ty));
+ return "i"+utostr(TD->getABITypeSize(Ty));
default:
cerr << "TypeID = " << Ty->getTypeID() << '\n';
assert(0 && "Invalid type in TypeToPostfix()");
@@ -677,14 +677,14 @@ void MSILWriter::printGepInstruction(const Value* V, gep_type_iterator I,
uint64_t FieldIndex = cast<ConstantInt>(IndexValue)->getZExtValue();
// Offset is the sum of all previous structure fields.
for (uint64_t F = 0; F<FieldIndex; ++F)
- Size += TD->getTypeSize(StrucTy->getContainedType((unsigned)F));
+ Size += TD->getABITypeSize(StrucTy->getContainedType((unsigned)F));
printPtrLoad(Size);
printSimpleInstruction("add");
continue;
} else if (const SequentialType* SeqTy = dyn_cast<SequentialType>(*I)) {
- Size = TD->getTypeSize(SeqTy->getElementType());
+ Size = TD->getABITypeSize(SeqTy->getElementType());
} else {
- Size = TD->getTypeSize(*I);
+ Size = TD->getABITypeSize(*I);
}
// Add offset of current element to stack top.
if (!isZeroValue(IndexValue)) {
@@ -1008,7 +1008,7 @@ void MSILWriter::printVAArgInstruction(const VAArgInst* Inst) {
void MSILWriter::printAllocaInstruction(const AllocaInst* Inst) {
- uint64_t Size = TD->getTypeSize(Inst->getAllocatedType());
+ uint64_t Size = TD->getABITypeSize(Inst->getAllocatedType());
// Constant optimization.
if (const ConstantInt* CInt = dyn_cast<ConstantInt>(Inst->getOperand(0))) {
printPtrLoad(CInt->getZExtValue()*Size);
@@ -1426,7 +1426,7 @@ void MSILWriter::printDeclarations(const TypeSymbolTable& ST) {
// Print not duplicated type
if (Printed.insert(Ty).second) {
Out << ".class value explicit ansi sealed '" << Name << "'";
- Out << " { .pack " << 1 << " .size " << TD->getTypeSize(Ty) << " }\n\n";
+ Out << " { .pack " << 1 << " .size " << TD->getABITypeSize(Ty)<< " }\n\n";
}
}
}
@@ -1454,7 +1454,7 @@ void MSILWriter::printStaticConstant(const Constant* C, uint64_t& Offset) {
const Type* Ty = C->getType();
// Print zero initialized constant.
if (isa<ConstantAggregateZero>(C) || C->isNullValue()) {
- TySize = TD->getTypeSize(C->getType());
+ TySize = TD->getABITypeSize(C->getType());
Offset += TySize;
Out << "int8 (0) [" << TySize << "]";
return;
@@ -1462,14 +1462,14 @@ void MSILWriter::printStaticConstant(const Constant* C, uint64_t& Offset) {
// Print constant initializer
switch (Ty->getTypeID()) {
case Type::IntegerTyID: {
- TySize = TD->getTypeSize(Ty);
+ TySize = TD->getABITypeSize(Ty);
const ConstantInt* Int = cast<ConstantInt>(C);
Out << getPrimitiveTypeName(Ty,true) << "(" << Int->getSExtValue() << ")";
break;
}
case Type::FloatTyID:
case Type::DoubleTyID: {
- TySize = TD->getTypeSize(Ty);
+ TySize = TD->getABITypeSize(Ty);
const ConstantFP* FP = cast<ConstantFP>(C);
if (Ty->getTypeID() == Type::FloatTyID)
Out << "int32 (" <<
@@ -1488,7 +1488,7 @@ void MSILWriter::printStaticConstant(const Constant* C, uint64_t& Offset) {
}
break;
case Type::PointerTyID:
- TySize = TD->getTypeSize(C->getType());
+ TySize = TD->getABITypeSize(C->getType());
// Initialize with global variable address
if (const GlobalVariable *G = dyn_cast<GlobalVariable>(C)) {
std::string name = getValueName(G);
diff --git a/lib/Target/Mips/MipsAsmPrinter.cpp b/lib/Target/Mips/MipsAsmPrinter.cpp
index cd5c1a3d65..4ed3f64a72 100644
--- a/lib/Target/Mips/MipsAsmPrinter.cpp
+++ b/lib/Target/Mips/MipsAsmPrinter.cpp
@@ -419,7 +419,7 @@ doFinalization(Module &M)
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
- unsigned Size = TD->getTypeSize(C->getType());
+ unsigned Size = TD->getABITypeSize(C->getType());
unsigned Align = TD->getPrefTypeAlignment(C->getType());
if (C->isNullValue() && (I->hasLinkOnceLinkage() ||
@@ -431,7 +431,7 @@ doFinalization(Module &M)
O << "\t.local " << name << "\n";
O << "\t.comm " << name << ","
- << TD->getTypeSize(C->getType())
+ << TD->getABITypeSize(C->getType())
<< "," << Align << "\n";
} else {
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
index 5341279218..da75887737 100644
--- a/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -657,7 +657,7 @@ bool LinuxAsmPrinter::doFinalization(Module &M) {
O << Directive << name << "\n";
Constant *C = I->getInitializer();
- unsigned Size = TD->getTypeSize(C->getType());
+ unsigned Size = TD->getABITypeSize(C->getType());
unsigned Align = TD->getPreferredAlignmentLog(I);
if (C->isNullValue() && /* FIXME: Verify correct */
@@ -909,7 +909,7 @@ bool DarwinAsmPrinter::doFinalization(Module &M) {
Constant *C = I->getInitializer();
const Type *Type = C->getType();
- unsigned Size = TD->getTypeSize(Type);
+ unsigned Size = TD->getABITypeSize(Type);
unsigned Align = TD->getPreferredAlignmentLog(I);
if (C->isNullValue() && /* FIXME: Verify correct */
diff --git a/lib/Target/Sparc/SparcAsmPrinter.cpp b/lib/Target/Sparc/SparcAsmPrinter.cpp
index 98d59ee8cb..bf47930e2f 100644
--- a/lib/Target/Sparc/SparcAsmPrinter.cpp
+++ b/lib/Target/Sparc/SparcAsmPrinter.cpp
@@ -228,7 +228,7 @@ bool SparcAsmPrinter::doFinalization(Module &M) {
O << "\n\n";
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
- unsigned Size = TD->getTypeSize(C->getType());
+ unsigned Size = TD->getABITypeSize(C->getType());
unsigned Align = TD->getPrefTypeAlignment(C->getType());
if (C->isNullValue() &&
@@ -238,7 +238,7 @@ bool SparcAsmPrinter::doFinalization(Module &M) {
if (I->hasInternalLinkage())
O << "\t.local " << name << "\n";
- O << "\t.comm " << name << "," << TD->getTypeSize(C->getType())
+ O << "\t.comm " << name << "," << TD->getABITypeSize(C->getType())
<< "," << Align;
O << "\n";
} else {
diff --git a/lib/Target/X86/X86AsmPrinter.cpp b/lib/Target/X86/X86AsmPrinter.cpp
index 17bcaac90c..078709bb7a 100644
--- a/lib/Target/X86/X86AsmPrinter.cpp
+++ b/lib/Target/X86/X86AsmPrinter.cpp
@@ -51,7 +51,7 @@ static X86MachineFunctionInfo calculateFunctionInfo(const Function *F,
for (Function::const_arg_iterator AI = F->arg_begin(), AE = F->arg_end();
AI != AE; ++AI)
// Size should be aligned to DWORD boundary
- Size += ((TD->getTypeSize(AI->getType()) + 3)/4)*4;
+ Size += ((TD->getABITypeSize(AI->getType()) + 3)/4)*4;
// We're not supporting tooooo huge arguments :)
Info.setBytesToPopOnReturn((unsigned int)Size);
@@ -156,7 +156,7 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
std::string name = Mang->getValueName(I);
Constant *C = I->getInitializer();
const Type *Type = C->getType();
- unsigned Size = TD->getTypeSize(Type);
+ unsigned Size = TD->getABITypeSize(Type);
unsigned Align = TD->getPreferredAlignmentLog(I);
if (I->hasHiddenVisibility()) {