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

Side by Side Diff: test/Transforms/NaCl/globalcleanup.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 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
OLDNEW
1 ; RUN: opt < %s -nacl-global-cleanup -S | FileCheck %s 1 ; RUN: opt < %s -nacl-global-cleanup -S | FileCheck %s
2 ; RUN: opt < %s -nacl-global-cleanup -S | FileCheck -check-prefix=GV %s 2 ; RUN: opt < %s -nacl-global-cleanup -S | FileCheck -check-prefix=GV %s
3 3
4 @a = global i8 42 4 @a = global i8 42
5 5
6 @llvm.compiler.used = appending global [1 x i8*] [i8* @a], section "llvm.metadat a" 6 @llvm.compiler.used = appending global [1 x i8*] [i8* @a], section "llvm.metadat a"
7 ; GV-NOT: llvm.compiler.used 7 ; GV-NOT: llvm.compiler.used
8 8
9 @llvm.used = appending global [1 x i8*] [i8* @a], section "llvm.metadata" 9 @llvm.used = appending global [1 x i8*] [i8* @a], section "llvm.metadata"
10 ; The used list remains unchanged. 10 ; The used list remains unchanged.
11 ; CHECK: llvm.used 11 ; CHECK: llvm.used
12 12
13 @extern_weak_const = extern_weak constant i32 13 @extern_weak_const = extern_weak constant i32
14 @extern_weak_gv = extern_weak global i32 14 @extern_weak_gv = extern_weak global i32
15 15
16 ; GV-NOT: @extern_weak_const 16 ; GV-NOT: @extern_weak_const
17 ; GV-NOT: @extern_weak_gv 17 ; GV-NOT: @extern_weak_gv
18 18
19 ; CHECK: @weak_gv = internal global 19 ; CHECK: @weak_gv = internal global
20 @weak_gv = weak global i32 0 20 @weak_gv = weak global i32 0
21 21
22 ; CHECK: define void @_start 22 ; CHECK: define void @_start
23 define void @_start() { 23 define void @_start() {
24 ret void 24 ret void
25 } 25 }
26 26
27 define i32* @ewgv() { 27 define i32* @ewgv() {
28 ; CHECK: %bc = getelementptr i8* null, i32 0 28 ; CHECK: %bc = getelementptr i8, i8* null, i32 0
29 %bc = getelementptr i8* bitcast (i32* @extern_weak_gv to i8*), i32 0 29 %bc = getelementptr i8, i8* bitcast (i32* @extern_weak_gv to i8*), i32 0
30 ; CHECK: ret i32* null 30 ; CHECK: ret i32* null
31 ret i32* @extern_weak_gv 31 ret i32* @extern_weak_gv
32 } 32 }
33 33
34 define i32* @ewc() { 34 define i32* @ewc() {
35 ; CHECK: %bc = getelementptr i8* null, i32 0 35 ; CHECK: %bc = getelementptr i8, i8* null, i32 0
36 %bc = getelementptr i8* bitcast (i32* @extern_weak_const to i8*), i32 0 36 %bc = getelementptr i8, i8* bitcast (i32* @extern_weak_const to i8*), i32 0
37 ; CHECK: ret i32* null 37 ; CHECK: ret i32* null
38 ret i32* @extern_weak_gv 38 ret i32* @extern_weak_gv
39 } 39 }
40 40
41 ; Make sure @weak_gv is actually used. 41 ; Make sure @weak_gv is actually used.
42 define i32* @wgv() { 42 define i32* @wgv() {
43 ; CHECK: ret i32* @weak_gv 43 ; CHECK: ret i32* @weak_gv
44 ret i32* @weak_gv 44 ret i32* @weak_gv
45 } 45 }
46 46
47 ; GV-NOT: @extern_weak_func 47 ; GV-NOT: @extern_weak_func
48 declare extern_weak i32 @extern_weak_func() 48 declare extern_weak i32 @extern_weak_func()
49 ; CHECK: @ewf 49 ; CHECK: @ewf
50 define i32 @ewf() { 50 define i32 @ewf() {
51 ; CHECK: %ret = call i32 null() 51 ; CHECK: %ret = call i32 null()
52 %ret = call i32 @extern_weak_func() 52 %ret = call i32 @extern_weak_func()
53 ret i32 %ret 53 ret i32 %ret
54 } 54 }
55 55
56 ; CHECK: define internal void @weak_func 56 ; CHECK: define internal void @weak_func
57 define weak void @weak_func() { 57 define weak void @weak_func() {
58 ret void 58 ret void
59 } 59 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698