Changes in directory llvm/lib/CodeGen:
AsmPrinter.cpp updated: 1.45 -> 1.46 --- Log message: Implement the AsmPrinter::getPreferredAlignmentLog method. --- Diffs of the changes: (+16 -0) AsmPrinter.cpp | 16 ++++++++++++++++ 1 files changed, 16 insertions(+) Index: llvm/lib/CodeGen/AsmPrinter.cpp diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.45 llvm/lib/CodeGen/AsmPrinter.cpp:1.46 --- llvm/lib/CodeGen/AsmPrinter.cpp:1.45 Wed Feb 1 16:41:11 2006 +++ llvm/lib/CodeGen/AsmPrinter.cpp Sat Feb 4 19:29:18 2006 @@ -171,6 +171,22 @@ } } +/// getPreferredAlignmentLog - Return the preferred alignment of the +/// specified global, returned in log form. This includes an explicitly +/// requested alignment (if the global has one). +unsigned AsmPrinter::getPreferredAlignmentLog(const GlobalVariable *GV) const { + unsigned Alignment = TM.getTargetData().getTypeAlignmentShift(GV->getType()); + if (GV->getAlignment() > (1U << Alignment)) + Alignment = Log2_32(GV->getAlignment()); + + if (GV->hasInitializer() && Alignment < 4) { + // If the global is not external, see if it is large. If so, give it a + // larger alignment. + if (TM.getTargetData().getTypeSize(GV->getType()->getElementType()) > 128) + Alignment = 4; // 16-byte alignment. + } + return Alignment; +} // EmitAlignment - Emit an alignment directive to the specified power of two. void AsmPrinter::EmitAlignment(unsigned NumBits, const GlobalValue *GV) const { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits