Match llvm-gcc's string literals alignment by forcing alignment on string literals to 1. This can significantly impact the size of the string data, and as far as I know, the alignment doesn't help performance. rdar://9078969 .
llvm-svn: 132223
This commit is contained in:
parent
d23bfb8a7a
commit
6ffb623a52
|
@ -1899,6 +1899,7 @@ static llvm::Constant *GenerateStringLiteral(llvm::StringRef str,
|
|||
new llvm::GlobalVariable(CGM.getModule(), C->getType(), constant,
|
||||
llvm::GlobalValue::PrivateLinkage,
|
||||
C, GlobalName);
|
||||
GV->setAlignment(1);
|
||||
GV->setUnnamedAddr(true);
|
||||
return GV;
|
||||
}
|
||||
|
|
|
@ -8,9 +8,9 @@ int main() {
|
|||
// CHECK: internal constant [10 x i8] c"\E1\84\A0\C8\A0\F4\82\80\B0\00", align 1
|
||||
char b[10] = "\u1120\u0220\U00102030";
|
||||
|
||||
// CHECK: private unnamed_addr constant [12 x i8] c"A\00\00\00B\00\00\00\00\00\00\00"
|
||||
// CHECK: private unnamed_addr constant [12 x i8] c"A\00\00\00B\00\00\00\00\00\00\00", align 1
|
||||
void *foo = L"AB";
|
||||
|
||||
// CHECK: private unnamed_addr constant [12 x i8] c"4\12\00\00\0B\F0\10\00\00\00\00\00"
|
||||
// CHECK: private unnamed_addr constant [12 x i8] c"4\12\00\00\0B\F0\10\00\00\00\00\00", align 1
|
||||
void *bar = L"\u1234\U0010F00B";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue