[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