Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Side by Side Diff: test/Transforms/NaCl/flatten-globals.ll

Issue 15359006: PNaCl: Fix FlattenGlobals to correctly handle implicitly-aligned variables (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/Transforms/NaCl/FlattenGlobals.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; RUN: opt -flatten-globals %s -S | FileCheck %s 1 ; RUN: opt -flatten-globals %s -S | FileCheck %s
2 ; RUN: opt -flatten-globals %s -S | FileCheck %s -check-prefix=CLEANED 2 ; RUN: opt -flatten-globals %s -S | FileCheck %s -check-prefix=CLEANED
3 3
4 target datalayout = "p:32:32:32" 4 target datalayout = "p:32:32:32"
5 5
6 6
7 ; Check simple cases 7 ; Check simple cases
8 8
9 @var_i32 = global i32 258 9 @var_i32 = global i32 258
10 ; CHECK: @var_i32 = global [4 x i8] c"\02\01\00\00" 10 ; CHECK: @var_i32 = global [4 x i8] c"\02\01\00\00"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 @weak_external_var = extern_weak global i32 84 @weak_external_var = extern_weak global i32
85 ; CHECK: @weak_external_var = extern_weak global [4 x i8] 85 ; CHECK: @weak_external_var = extern_weak global [4 x i8]
86 86
87 @tls_var = external thread_local global i32 87 @tls_var = external thread_local global i32
88 ; CHECK: @tls_var = external thread_local global [4 x i8] 88 ; CHECK: @tls_var = external thread_local global [4 x i8]
89 89
90 @aligned_var = global i32 260, align 8 90 @aligned_var = global i32 260, align 8
91 ; CHECK: @aligned_var = global [4 x i8] c"\04\01\00\00", align 8 91 ; CHECK: @aligned_var = global [4 x i8] c"\04\01\00\00", align 8
92 92
93 93
94 ; Check alignment handling
95
96 @implicit_alignment_i32 = global i32 zeroinitializer
97 ; CHECK: @implicit_alignment_i32 = global [4 x i8] zeroinitializer, align 4
98
99 @implicit_alignment_double = global double zeroinitializer
100 ; CHECK: @implicit_alignment_double = global [8 x i8] zeroinitializer, align 8
101
102 ; FlattenGlobals is not allowed to increase the alignment of the
103 ; variable when an explicit section is specified (although PNaCl does
104 ; not support this attribute).
105 @lower_alignment_section = global i32 0, section "mysection", align 1
106 ; CHECK: @lower_alignment_section = global [4 x i8] zeroinitializer, section "my section", align 1
107
108 ; FlattenGlobals could increase the alignment when no section is
109 ; specified, but it does not.
110 @lower_alignment = global i32 0, align 1
111 ; CHECK: @lower_alignment = global [4 x i8] zeroinitializer, align 1
112
113
94 ; Check handling of global references 114 ; Check handling of global references
95 115
96 @var1 = external global i32 116 @var1 = external global i32
97 @var2 = external global i8 117 @var2 = external global i8
98 118
99 %ptrs1 = type { i32*, i8*, i32 } 119 %ptrs1 = type { i32*, i8*, i32 }
100 @ptrs1 = global %ptrs1 { i32* @var1, i8* null, i32 259 } 120 @ptrs1 = global %ptrs1 { i32* @var1, i8* null, i32 259 }
101 ; CHECK: @ptrs1 = global <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds ([4 x i8]* @var1, i32 0, i32 0), [8 x i8] c"\00\00\00\00\03\01\00\00" }> 121 ; CHECK: @ptrs1 = global <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds ([4 x i8]* @var1, i32 0, i32 0), [8 x i8] c"\00\00\00\00\03\01\00\00" }>
102 122
103 %ptrs2 = type { i32, i32*, i8* } 123 %ptrs2 = type { i32, i32*, i8* }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 } 191 }
172 ; CHECK: define i32* @get_address() { 192 ; CHECK: define i32* @get_address() {
173 ; CHECK-NEXT: ret i32* bitcast ([4 x i8]* @var_i32 to i32*) 193 ; CHECK-NEXT: ret i32* bitcast ([4 x i8]* @var_i32 to i32*)
174 194
175 195
176 define void @func_with_block() { 196 define void @func_with_block() {
177 br label %label 197 br label %label
178 label: 198 label:
179 ret void 199 ret void
180 } 200 }
OLDNEW
« no previous file with comments | « lib/Transforms/NaCl/FlattenGlobals.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698