Fix a regression caused by r102515 where explicit alignment on globals is

ignored. There was a test to catch this, but it was just blindly updated in
a large change. This fixes another part of <rdar://problem/9275290>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129466 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Cameron Zwarich 2011-04-13 20:36:04 +00:00
parent be7cd7580d
commit 1335022e19
3 changed files with 6 additions and 6 deletions

View File

@ -624,7 +624,7 @@ unsigned TargetData::getPreferredAlignment(const GlobalVariable *GV) const {
Alignment = std::max(GVAlignment, getABITypeAlignment(ElemType));
}
if (GV->hasInitializer()) {
if (GV->hasInitializer() && GVAlignment == 0) {
if (Alignment < 16) {
// If the global is not external, see if it is large. If so, give it a
// larger alignment.

View File

@ -6,7 +6,7 @@
; CHECK: .bss
; CHECK: .globl GlobalA
; CHECK: .align 16
; CHECK: .align 8
; CHECK: GlobalA:
; CHECK: .zero 384
@ -15,12 +15,12 @@
; PR6921
@GlobalB = common global { [384 x i8] } zeroinitializer, align 8
; CHECK: .comm GlobalB,384,16
; CHECK: .comm GlobalB,384,8
@GlobalC = common global { [384 x i8] } zeroinitializer, align 2
; CHECK: .comm GlobalC,384,16
; CHECK: .comm GlobalC,384,2

View File

@ -29,8 +29,8 @@ return:
declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
; CORE2: .section
; CORE2: .align 4
; CORE2: .align 3
; CORE2-NEXT: _.str1:
; CORE2-NEXT: .asciz "DHRYSTONE PROGRAM, SOME STRING"
; CORE2: .align 4
; CORE2: .align 3
; CORE2-NEXT: _.str3: