further simplify EmitAlignment by eliminating the

ForcedAlignBits argument, tweaking the single client of it.

llvm-svn: 102484
This commit is contained in:
Chris Lattner 2010-04-28 01:08:40 +00:00
parent 72bdee4c10
commit a3facc5cb5
3 changed files with 6 additions and 13 deletions

View File

@ -204,17 +204,13 @@ namespace llvm {
/// two boundary. For example, if you pass in 3 here, you will get an 8
/// byte alignment. If a global value is specified, and if that global has
/// an explicit alignment requested, it will unconditionally override the
/// alignment request. However, if ForcedAlignBits is specified, this value
/// has final say: the ultimate alignment will be the max of ForcedAlignBits
/// and the alignment computed with NumBits and the global.
/// alignment request.
///
/// The algorithm is:
/// Align = NumBits;
/// if (GV && GV->hasalignment) Align = GV->getalignment();
/// Align = std::max(Align, ForcedAlignBits);
/// if (GV && GV->hasalignment) Align = GV->getAlignment();
///
void EmitAlignment(unsigned NumBits, const GlobalValue *GV = 0,
unsigned ForcedAlignBits = 0) const;
void EmitAlignment(unsigned NumBits, const GlobalValue *GV = 0) const;
/// EmitBasicBlockStart - This method prints the label for the specified
/// MachineBasicBlock, an alignment (if present) and a comment describing

View File

@ -1154,14 +1154,11 @@ void AsmPrinter::EmitLabelOffsetDifference(const MCSymbol *Hi, uint64_t Offset,
//
// The algorithm is:
// Align = NumBits;
// if (GV && GV->hasalignment) Align = GV->getalignment();
// Align = std::max(Align, ForcedAlignBits);
// if (GV && GV->hasalignment) Align = GV->getAlignment();
//
void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV,
unsigned ForcedAlignBits) const {
void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV) const {
if (GV && GV->getAlignment())
NumBits = Log2_32(GV->getAlignment());
NumBits = std::max(NumBits, ForcedAlignBits);
if (NumBits == 0) return; // No need to emit alignment.

View File

@ -148,7 +148,7 @@ void XCoreAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) {
llvm_unreachable("Unknown linkage type!");
}
EmitAlignment(Align, GV, 2);
EmitAlignment(Align > 2 ? Align : 2, GV);
unsigned Size = TD->getTypeAllocSize(C->getType());
if (GV->isThreadLocal()) {