[llvm-commits] [llvm] r102300 - in /llvm/trunk: lib/CodeGen/AsmPrinter/AsmPrinter.cpp test/CodeGen/X86/alignment.ll test/CodeGen/X86/unaligned-load.ll
Chris Lattner
sabre at nondot.org
Sat Apr 24 22:30:43 PDT 2010
Author: lattner
Date: Sun Apr 25 00:30:43 2010
New Revision: 102300
URL: http://llvm.org/viewvc/llvm-project?rev=102300&view=rev
Log:
Fix PR6921: globals were not getting correctly rounded up to their
preferred alignment unless they were common or some other special
case.
Added:
llvm/trunk/test/CodeGen/X86/alignment.ll
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/trunk/test/CodeGen/X86/unaligned-load.ll
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=102300&r1=102299&r2=102300&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Sun Apr 25 00:30:43 2010
@@ -285,7 +285,7 @@
OutStreamer.SwitchSection(TheSection);
EmitLinkage(GV->getLinkage(), GVSym);
- EmitAlignment(AlignLog, GV);
+ EmitAlignment(AlignLog, GV, AlignLog);
if (isVerbose()) {
WriteAsOperand(OutStreamer.GetCommentOS(), GV,
@@ -987,7 +987,7 @@
unsigned Align = Log2_32(TD->getPointerPrefAlignment());
if (GV->getName() == "llvm.global_ctors") {
OutStreamer.SwitchSection(getObjFileLowering().getStaticCtorSection());
- EmitAlignment(Align, 0);
+ EmitAlignment(Align);
EmitXXStructorList(GV->getInitializer());
if (TM.getRelocationModel() == Reloc::Static &&
@@ -1001,7 +1001,7 @@
if (GV->getName() == "llvm.global_dtors") {
OutStreamer.SwitchSection(getObjFileLowering().getStaticDtorSection());
- EmitAlignment(Align, 0);
+ EmitAlignment(Align);
EmitXXStructorList(GV->getInitializer());
if (TM.getRelocationModel() == Reloc::Static &&
Added: llvm/trunk/test/CodeGen/X86/alignment.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/alignment.ll?rev=102300&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/alignment.ll (added)
+++ llvm/trunk/test/CodeGen/X86/alignment.ll Sun Apr 25 00:30:43 2010
@@ -0,0 +1,16 @@
+; RUN: llc %s -o - -mtriple=x86_64-linux-gnu | FileCheck %s
+
+; This can get rounded up to the preferred alignment (16).
+; PR6921
+ at GlobalA = global { [384 x i8] } zeroinitializer, align 8
+
+; CHECK: .bss
+; CHECK: .globl GlobalA
+; CHECK: .align 16
+; CHECK: GlobalA:
+; CHECK: .zero 384
+
+; Common variables should also get rounded up to the preferred alignment (16).
+ at GlobalB = common global { [384 x i8] } zeroinitializer, align 8
+
+; CHECK: .comm GlobalB,384,16
\ No newline at end of file
Modified: llvm/trunk/test/CodeGen/X86/unaligned-load.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/unaligned-load.ll?rev=102300&r1=102299&r2=102300&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/unaligned-load.ll (original)
+++ llvm/trunk/test/CodeGen/X86/unaligned-load.ll Sun Apr 25 00:30:43 2010
@@ -28,8 +28,9 @@
declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
-; CORE2: .align 3
+; CORE2: .section
+; CORE2: .align 4
; CORE2-NEXT: _.str1:
; CORE2-NEXT: .asciz "DHRYSTONE PROGRAM, SOME STRING"
-; CORE2: .align 3
+; CORE2: .align 4
; CORE2-NEXT: _.str3:
More information about the llvm-commits
mailing list