mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 17:58:22 +00:00
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:
parent
be7cd7580d
commit
1335022e19
@ -624,7 +624,7 @@ unsigned TargetData::getPreferredAlignment(const GlobalVariable *GV) const {
|
|||||||
Alignment = std::max(GVAlignment, getABITypeAlignment(ElemType));
|
Alignment = std::max(GVAlignment, getABITypeAlignment(ElemType));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GV->hasInitializer()) {
|
if (GV->hasInitializer() && GVAlignment == 0) {
|
||||||
if (Alignment < 16) {
|
if (Alignment < 16) {
|
||||||
// If the global is not external, see if it is large. If so, give it a
|
// If the global is not external, see if it is large. If so, give it a
|
||||||
// larger alignment.
|
// larger alignment.
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
; CHECK: .bss
|
; CHECK: .bss
|
||||||
; CHECK: .globl GlobalA
|
; CHECK: .globl GlobalA
|
||||||
; CHECK: .align 16
|
; CHECK: .align 8
|
||||||
; CHECK: GlobalA:
|
; CHECK: GlobalA:
|
||||||
; CHECK: .zero 384
|
; CHECK: .zero 384
|
||||||
|
|
||||||
@ -15,12 +15,12 @@
|
|||||||
; PR6921
|
; PR6921
|
||||||
@GlobalB = common global { [384 x i8] } zeroinitializer, align 8
|
@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
|
@GlobalC = common global { [384 x i8] } zeroinitializer, align 2
|
||||||
|
|
||||||
; CHECK: .comm GlobalC,384,16
|
; CHECK: .comm GlobalC,384,2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ return:
|
|||||||
declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
|
declare void @llvm.memcpy.i64(i8* nocapture, i8* nocapture, i64, i32) nounwind
|
||||||
|
|
||||||
; CORE2: .section
|
; CORE2: .section
|
||||||
; CORE2: .align 4
|
; CORE2: .align 3
|
||||||
; CORE2-NEXT: _.str1:
|
; CORE2-NEXT: _.str1:
|
||||||
; CORE2-NEXT: .asciz "DHRYSTONE PROGRAM, SOME STRING"
|
; CORE2-NEXT: .asciz "DHRYSTONE PROGRAM, SOME STRING"
|
||||||
; CORE2: .align 4
|
; CORE2: .align 3
|
||||||
; CORE2-NEXT: _.str3:
|
; CORE2-NEXT: _.str3:
|
||||||
|
Loading…
Reference in New Issue
Block a user