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

Side by Side Diff: test/CodeGen/JS/allocamanager.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: llc < %s | FileCheck %s 1 ; RUN: llc < %s | FileCheck %s
2 2
3 ; Basic AllocaManager feature test. Eliminate user variable cupcake in favor of 3 ; Basic AllocaManager feature test. Eliminate user variable cupcake in favor of
4 ; user variable muffin, and combine all the vararg buffers. And align the stack 4 ; user variable muffin, and combine all the vararg buffers. And align the stack
5 ; pointer. 5 ; pointer.
6 6
7 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128" 7 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64 :64:64-p:32:32:32-v128:32:128-n32-S128"
8 target triple = "asmjs-unknown-emscripten" 8 target triple = "asmjs-unknown-emscripten"
9 9
10 %struct._IO_FILE = type opaque 10 %struct._IO_FILE = type opaque
(...skipping 18 matching lines...) Expand all
29 %vararg_buffer0 = alloca <{ i8* }>, align 8 29 %vararg_buffer0 = alloca <{ i8* }>, align 8
30 %vararg_lifetime_bitcast10 = bitcast <{ i8* }>* %vararg_buffer0 to i8* 30 %vararg_lifetime_bitcast10 = bitcast <{ i8* }>* %vararg_buffer0 to i8*
31 %vararg_buffer5 = alloca <{ i32, i8* }>, align 8 31 %vararg_buffer5 = alloca <{ i32, i8* }>, align 8
32 %vararg_lifetime_bitcast6 = bitcast <{ i32, i8* }>* %vararg_buffer5 to i8* 32 %vararg_lifetime_bitcast6 = bitcast <{ i32, i8* }>* %vararg_buffer5 to i8*
33 %vararg_buffer2 = alloca <{ i8* }>, align 8 33 %vararg_buffer2 = alloca <{ i8* }>, align 8
34 %vararg_lifetime_bitcast3 = bitcast <{ i8* }>* %vararg_buffer2 to i8* 34 %vararg_lifetime_bitcast3 = bitcast <{ i8* }>* %vararg_buffer2 to i8*
35 %vararg_buffer1 = alloca <{ i8*, i32 }>, align 8 35 %vararg_buffer1 = alloca <{ i8*, i32 }>, align 8
36 %vararg_lifetime_bitcast = bitcast <{ i8*, i32 }>* %vararg_buffer1 to i8* 36 %vararg_lifetime_bitcast = bitcast <{ i8*, i32 }>* %vararg_buffer1 to i8*
37 %muffin = alloca [117 x i8], align 1 37 %muffin = alloca [117 x i8], align 1
38 %cupcake = alloca [119 x i8], align 1 38 %cupcake = alloca [119 x i8], align 1
39 %tmp = getelementptr [117 x i8]* %muffin, i32 0, i32 0 39 %tmp = getelementptr [117 x i8], [117 x i8]* %muffin, i32 0, i32 0
40 call void @llvm.lifetime.start(i64 117, i8* %tmp) #0 40 call void @llvm.lifetime.start(i64 117, i8* %tmp) #0
41 %tmp1 = load i8** %argv, align 4 41 %tmp1 = load i8*, i8** %argv, align 4
42 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast) 42 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast)
43 %vararg_ptr = getelementptr <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 0 43 %vararg_ptr = getelementptr <{ i8*, i32 }>, <{ i8*, i32 }>* %vararg_buffer1, i 32 0, i32 0
44 store i8* %tmp1, i8** %vararg_ptr, align 4 44 store i8* %tmp1, i8** %vararg_ptr, align 4
45 %vararg_ptr1 = getelementptr <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 1 45 %vararg_ptr1 = getelementptr <{ i8*, i32 }>, <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 1
46 store i32 %argc, i32* %vararg_ptr1, align 4 46 store i32 %argc, i32* %vararg_ptr1, align 4
47 %call = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i 8*, i32 }>*)*)(i8* %tmp, i8* getelementptr inbounds ([26 x i8]* @.str, i32 0, i3 2 0), <{ i8*, i32 }>* %vararg_buffer1) #0 47 %call = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i 8*, i32 }>*)*)(i8* %tmp, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str , i32 0, i32 0), <{ i8*, i32 }>* %vararg_buffer1) #0
48 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast) 48 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast)
49 %tmp2 = load %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE **), align 4 49 %tmp2 = load %struct._IO_FILE*, %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE**), align 4
50 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast3) 50 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast3)
51 %vararg_ptr4 = getelementptr <{ i8* }>* %vararg_buffer2, i32 0, i32 0 51 %vararg_ptr4 = getelementptr <{ i8* }>, <{ i8* }>* %vararg_buffer2, i32 0, i32 0
52 store i8* %tmp, i8** %vararg_ptr4, align 4 52 store i8* %tmp, i8** %vararg_ptr4, align 4
53 %call2 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp2, i8* getelementpt r inbounds ([33 x i8]* @.str1, i32 0, i32 0), <{ i8* }>* %vararg_buffer2) #0 53 %call2 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp2, i8* getelementpt r inbounds ([33 x i8], [33 x i8]* @.str1, i32 0, i32 0), <{ i8* }>* %vararg_buff er2) #0
54 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast3) 54 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast3)
55 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0 55 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0
56 %tmp3 = getelementptr [119 x i8]* %cupcake, i32 0, i32 0 56 %tmp3 = getelementptr [119 x i8], [119 x i8]* %cupcake, i32 0, i32 0
57 call void @llvm.lifetime.start(i64 119, i8* %tmp3) #0 57 call void @llvm.lifetime.start(i64 119, i8* %tmp3) #0
58 %tmp4 = load i8** %argv, align 4 58 %tmp4 = load i8*, i8** %argv, align 4
59 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast6) 59 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast6)
60 %vararg_ptr7 = getelementptr <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 0 60 %vararg_ptr7 = getelementptr <{ i32, i8* }>, <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 0
61 store i32 %argc, i32* %vararg_ptr7, align 4 61 store i32 %argc, i32* %vararg_ptr7, align 4
62 %vararg_ptr8 = getelementptr <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 1 62 %vararg_ptr8 = getelementptr <{ i32, i8* }>, <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 1
63 store i8* %tmp4, i8** %vararg_ptr8, align 4 63 store i8* %tmp4, i8** %vararg_ptr8, align 4
64 %call5 = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i32, i8* }>*)*)(i8* %tmp3, i8* getelementptr inbounds ([38 x i8]* @.str2, i32 0, i32 0), <{ i32, i8* }>* %vararg_buffer5) #0 64 %call5 = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i32, i8* }>*)*)(i8* %tmp3, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.s tr2, i32 0, i32 0), <{ i32, i8* }>* %vararg_buffer5) #0
65 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast6) 65 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast6)
66 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast10) 66 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast10)
67 %vararg_ptr11 = getelementptr <{ i8* }>* %vararg_buffer0, i32 0, i32 0 67 %vararg_ptr11 = getelementptr <{ i8* }>, <{ i8* }>* %vararg_buffer0, i32 0, i3 2 0
68 store i8* %tmp3, i8** %vararg_ptr11, align 4 68 store i8* %tmp3, i8** %vararg_ptr11, align 4
69 %call7 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp2, i8* getelementpt r inbounds ([43 x i8]* @.str3, i32 0, i32 0), <{ i8* }>* %vararg_buffer0) #0 69 %call7 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp2, i8* getelementpt r inbounds ([43 x i8], [43 x i8]* @.str3, i32 0, i32 0), <{ i8* }>* %vararg_buff er0) #0
70 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast10) 70 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast10)
71 call void @llvm.lifetime.end(i64 119, i8* %tmp3) #0 71 call void @llvm.lifetime.end(i64 119, i8* %tmp3) #0
72 ret void 72 ret void
73 } 73 }
74 74
75 ; CHECK: function _bar($argc,$argv) { 75 ; CHECK: function _bar($argc,$argv) {
76 ; CHECK-NOT: cupcake 76 ; CHECK-NOT: cupcake
77 ; CHECK: STACKTOP = STACKTOP + 128|0; 77 ; CHECK: STACKTOP = STACKTOP + 128|0;
78 ; CHECK-NEXT: vararg_buffer0 = 78 ; CHECK-NEXT: vararg_buffer0 =
79 ; CHECK-NEXT: $muffin = 79 ; CHECK-NEXT: $muffin =
80 ; CHECK-NOT: cupcake 80 ; CHECK-NOT: cupcake
81 ; CHECK: } 81 ; CHECK: }
82 82
83 ; Function Attrs: nounwind 83 ; Function Attrs: nounwind
84 define void @bar(i32 %argc, i8** %argv) #0 { 84 define void @bar(i32 %argc, i8** %argv) #0 {
85 entry: 85 entry:
86 %vararg_buffer0 = alloca <{ i8* }>, align 8 86 %vararg_buffer0 = alloca <{ i8* }>, align 8
87 %vararg_lifetime_bitcast10 = bitcast <{ i8* }>* %vararg_buffer0 to i8* 87 %vararg_lifetime_bitcast10 = bitcast <{ i8* }>* %vararg_buffer0 to i8*
88 %vararg_buffer5 = alloca <{ i32, i8* }>, align 8 88 %vararg_buffer5 = alloca <{ i32, i8* }>, align 8
89 %vararg_lifetime_bitcast6 = bitcast <{ i32, i8* }>* %vararg_buffer5 to i8* 89 %vararg_lifetime_bitcast6 = bitcast <{ i32, i8* }>* %vararg_buffer5 to i8*
90 %vararg_buffer2 = alloca <{ i8* }>, align 8 90 %vararg_buffer2 = alloca <{ i8* }>, align 8
91 %vararg_lifetime_bitcast3 = bitcast <{ i8* }>* %vararg_buffer2 to i8* 91 %vararg_lifetime_bitcast3 = bitcast <{ i8* }>* %vararg_buffer2 to i8*
92 %vararg_buffer1 = alloca <{ i8*, i32 }>, align 8 92 %vararg_buffer1 = alloca <{ i8*, i32 }>, align 8
93 %vararg_lifetime_bitcast = bitcast <{ i8*, i32 }>* %vararg_buffer1 to i8* 93 %vararg_lifetime_bitcast = bitcast <{ i8*, i32 }>* %vararg_buffer1 to i8*
94 %muffin = alloca [117 x i8], align 1 94 %muffin = alloca [117 x i8], align 1
95 %cupcake = alloca [119 x i8], align 1 95 %cupcake = alloca [119 x i8], align 1
96 %tmp = getelementptr [117 x i8]* %muffin, i32 0, i32 0 96 %tmp = getelementptr [117 x i8], [117 x i8]* %muffin, i32 0, i32 0
97 call void @llvm.lifetime.start(i64 117, i8* %tmp) #0 97 call void @llvm.lifetime.start(i64 117, i8* %tmp) #0
98 %cmp = icmp eq i32 %argc, 39 98 %cmp = icmp eq i32 %argc, 39
99 br i1 %cmp, label %if.end.thread, label %if.end 99 br i1 %cmp, label %if.end.thread, label %if.end
100 100
101 if.end.thread: ; preds = %entry 101 if.end.thread: ; preds = %entry
102 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0 102 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0
103 %tmp1 = getelementptr [119 x i8]* %cupcake, i32 0, i32 0 103 %tmp1 = getelementptr [119 x i8], [119 x i8]* %cupcake, i32 0, i32 0
104 call void @llvm.lifetime.start(i64 119, i8* %tmp1) #0 104 call void @llvm.lifetime.start(i64 119, i8* %tmp1) #0
105 %.pre = load %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE **), align 4 105 %.pre = load %struct._IO_FILE*, %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE**), align 4
106 br label %if.then4 106 br label %if.then4
107 107
108 if.end: ; preds = %entry 108 if.end: ; preds = %entry
109 %tmp2 = load i8** %argv, align 4 109 %tmp2 = load i8*, i8** %argv, align 4
110 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast) 110 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast)
111 %vararg_ptr = getelementptr <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 0 111 %vararg_ptr = getelementptr <{ i8*, i32 }>, <{ i8*, i32 }>* %vararg_buffer1, i 32 0, i32 0
112 store i8* %tmp2, i8** %vararg_ptr, align 4 112 store i8* %tmp2, i8** %vararg_ptr, align 4
113 %vararg_ptr1 = getelementptr <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 1 113 %vararg_ptr1 = getelementptr <{ i8*, i32 }>, <{ i8*, i32 }>* %vararg_buffer1, i32 0, i32 1
114 store i32 %argc, i32* %vararg_ptr1, align 4 114 store i32 %argc, i32* %vararg_ptr1, align 4
115 %call = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i 8*, i32 }>*)*)(i8* %tmp, i8* getelementptr inbounds ([26 x i8]* @.str, i32 0, i3 2 0), <{ i8*, i32 }>* %vararg_buffer1) #0 115 %call = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i 8*, i32 }>*)*)(i8* %tmp, i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str , i32 0, i32 0), <{ i8*, i32 }>* %vararg_buffer1) #0
116 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast) 116 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast)
117 %tmp3 = load %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE **), align 4 117 %tmp3 = load %struct._IO_FILE*, %struct._IO_FILE** bitcast ([4 x i8]* @stderr to %struct._IO_FILE**), align 4
118 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast3) 118 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast3)
119 %vararg_ptr4 = getelementptr <{ i8* }>* %vararg_buffer2, i32 0, i32 0 119 %vararg_ptr4 = getelementptr <{ i8* }>, <{ i8* }>* %vararg_buffer2, i32 0, i32 0
120 store i8* %tmp, i8** %vararg_ptr4, align 4 120 store i8* %tmp, i8** %vararg_ptr4, align 4
121 %call2 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp3, i8* getelementpt r inbounds ([33 x i8]* @.str1, i32 0, i32 0), <{ i8* }>* %vararg_buffer2) #0 121 %call2 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp3, i8* getelementpt r inbounds ([33 x i8], [33 x i8]* @.str1, i32 0, i32 0), <{ i8* }>* %vararg_buff er2) #0
122 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast3) 122 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast3)
123 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0 123 call void @llvm.lifetime.end(i64 117, i8* %tmp) #0
124 %tmp4 = getelementptr [119 x i8]* %cupcake, i32 0, i32 0 124 %tmp4 = getelementptr [119 x i8], [119 x i8]* %cupcake, i32 0, i32 0
125 call void @llvm.lifetime.start(i64 119, i8* %tmp4) #0 125 call void @llvm.lifetime.start(i64 119, i8* %tmp4) #0
126 %cmp3 = icmp eq i32 %argc, 45 126 %cmp3 = icmp eq i32 %argc, 45
127 br i1 %cmp3, label %if.end10, label %if.then4 127 br i1 %cmp3, label %if.end10, label %if.then4
128 128
129 if.then4: ; preds = %if.end, %if.end.thr ead 129 if.then4: ; preds = %if.end, %if.end.thr ead
130 %tmp5 = phi %struct._IO_FILE* [ %.pre, %if.end.thread ], [ %tmp3, %if.end ] 130 %tmp5 = phi %struct._IO_FILE* [ %.pre, %if.end.thread ], [ %tmp3, %if.end ]
131 %tmp6 = phi i8* [ %tmp1, %if.end.thread ], [ %tmp4, %if.end ] 131 %tmp6 = phi i8* [ %tmp1, %if.end.thread ], [ %tmp4, %if.end ]
132 %tmp7 = load i8** %argv, align 4 132 %tmp7 = load i8*, i8** %argv, align 4
133 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast6) 133 call void @llvm.lifetime.start(i64 8, i8* %vararg_lifetime_bitcast6)
134 %vararg_ptr7 = getelementptr <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 0 134 %vararg_ptr7 = getelementptr <{ i32, i8* }>, <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 0
135 store i32 %argc, i32* %vararg_ptr7, align 4 135 store i32 %argc, i32* %vararg_ptr7, align 4
136 %vararg_ptr8 = getelementptr <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 1 136 %vararg_ptr8 = getelementptr <{ i32, i8* }>, <{ i32, i8* }>* %vararg_buffer5, i32 0, i32 1
137 store i8* %tmp7, i8** %vararg_ptr8, align 4 137 store i8* %tmp7, i8** %vararg_ptr8, align 4
138 %call7 = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i32, i8* }>*)*)(i8* %tmp6, i8* getelementptr inbounds ([38 x i8]* @.str2, i32 0, i32 0), <{ i32, i8* }>* %vararg_buffer5) #0 138 %call7 = call i32 bitcast (i32 (i8*, i8*, i8*)* @sprintf to i32 (i8*, i8*, <{ i32, i8* }>*)*)(i8* %tmp6, i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.s tr2, i32 0, i32 0), <{ i32, i8* }>* %vararg_buffer5) #0
139 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast6) 139 call void @llvm.lifetime.end(i64 8, i8* %vararg_lifetime_bitcast6)
140 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast10) 140 call void @llvm.lifetime.start(i64 4, i8* %vararg_lifetime_bitcast10)
141 %vararg_ptr11 = getelementptr <{ i8* }>* %vararg_buffer0, i32 0, i32 0 141 %vararg_ptr11 = getelementptr <{ i8* }>, <{ i8* }>* %vararg_buffer0, i32 0, i3 2 0
142 store i8* %tmp6, i8** %vararg_ptr11, align 4 142 store i8* %tmp6, i8** %vararg_ptr11, align 4
143 %call9 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp5, i8* getelementpt r inbounds ([43 x i8]* @.str3, i32 0, i32 0), <{ i8* }>* %vararg_buffer0) #0 143 %call9 = call i32 bitcast (i32 (%struct._IO_FILE*, i8*, i8*)* @fprintf to i32 (%struct._IO_FILE*, i8*, <{ i8* }>*)*)(%struct._IO_FILE* %tmp5, i8* getelementpt r inbounds ([43 x i8], [43 x i8]* @.str3, i32 0, i32 0), <{ i8* }>* %vararg_buff er0) #0
144 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast10) 144 call void @llvm.lifetime.end(i64 4, i8* %vararg_lifetime_bitcast10)
145 br label %if.end10 145 br label %if.end10
146 146
147 if.end10: ; preds = %if.then4, %if.end 147 if.end10: ; preds = %if.then4, %if.end
148 %tmp8 = phi i8* [ %tmp4, %if.end ], [ %tmp6, %if.then4 ] 148 %tmp8 = phi i8* [ %tmp4, %if.end ], [ %tmp6, %if.then4 ]
149 call void @llvm.lifetime.end(i64 119, i8* %tmp8) #0 149 call void @llvm.lifetime.end(i64 119, i8* %tmp8) #0
150 ret void 150 ret void
151 } 151 }
152 152
153 ; Function Attrs: nounwind 153 ; Function Attrs: nounwind
154 declare i32 @sprintf(i8*, i8*, i8*) #0 154 declare i32 @sprintf(i8*, i8*, i8*) #0
155 155
156 ; Function Attrs: nounwind 156 ; Function Attrs: nounwind
157 declare i32 @fprintf(%struct._IO_FILE*, i8*, i8*) #0 157 declare i32 @fprintf(%struct._IO_FILE*, i8*, i8*) #0
158 158
159 ; Function Attrs: nounwind 159 ; Function Attrs: nounwind
160 declare void @llvm.lifetime.start(i64, i8* nocapture) #0 160 declare void @llvm.lifetime.start(i64, i8* nocapture) #0
161 161
162 ; Function Attrs: nounwind 162 ; Function Attrs: nounwind
163 declare void @llvm.lifetime.end(i64, i8* nocapture) #0 163 declare void @llvm.lifetime.end(i64, i8* nocapture) #0
164 164
165 attributes #0 = { nounwind } 165 attributes #0 = { nounwind }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698