aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2011-06-29 22:24:25 +0000
committerCameron Zwarich <zwarich@apple.com>2011-06-29 22:24:25 +0000
commitfaff12731968c2d3f1ff56a43749d27e1696aafa (patch)
tree3f8acbcb39deb74a8e73625364f6d8bbfdd8fdf6 /test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll
parentae218dee5e3a079becd6b9b8d47e67cf814b9b70 (diff)
downloadexternal_llvm-faff12731968c2d3f1ff56a43749d27e1696aafa.zip
external_llvm-faff12731968c2d3f1ff56a43749d27e1696aafa.tar.gz
external_llvm-faff12731968c2d3f1ff56a43749d27e1696aafa.tar.bz2
In the ARM global merging pass, allow extraneous alignment specifiers. This pass
already makes the assumption, which is correct on ARM, that a type's alignment is less than its alloc size. This improves codegen with Clang (which inserts a lot of extraneous alignment specifiers) and fixes <rdar://problem/9695089>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134106 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll')
-rw-r--r--test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll b/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll
new file mode 100644
index 0000000..1b5b8a9
--- /dev/null
+++ b/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll
@@ -0,0 +1,12 @@
+; RUN: llc < %s -mtriple=thumbv7-apple-darwin10 | FileCheck %s
+; CHECK: .zerofill __DATA,__bss,__MergedGlobals,16,2
+
+%struct.config = type { i16, i16, i16, i16 }
+
+@prev = external global [0 x i16]
+@max_lazy_match = internal unnamed_addr global i32 0, align 4
+@read_buf = external global i32 (i8*, i32)*
+@window = external global [0 x i8]
+@lookahead = internal unnamed_addr global i32 0, align 4
+@eofile.b = internal unnamed_addr global i1 false
+@ins_h = internal unnamed_addr global i32 0, align 4