1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
implementation ; Functions:
declare int %_IO_getc()
declare void %__errno_location()
void %yylex() {
entry:
switch uint 0, label %label.126 [
uint 0, label %return
uint 61, label %combine
uint 33, label %combine
uint 94, label %combine
uint 37, label %combine
uint 47, label %combine
uint 42, label %combine
uint 62, label %combine
uint 60, label %combine
uint 58, label %combine
uint 124, label %combine
uint 38, label %combine
uint 45, label %combine
uint 43, label %combine
uint 34, label %string_constant
uint 39, label %char_constant
uint 46, label %loopexit.2
uint 57, label %loopexit.2
uint 56, label %loopexit.2
uint 55, label %loopexit.2
uint 54, label %loopexit.2
uint 53, label %loopexit.2
uint 52, label %loopexit.2
uint 51, label %loopexit.2
uint 50, label %loopexit.2
uint 49, label %loopexit.2
uint 48, label %loopexit.2
uint 95, label %letter
uint 122, label %letter
uint 121, label %letter
uint 120, label %letter
uint 119, label %letter
uint 118, label %letter
uint 117, label %letter
uint 116, label %letter
uint 115, label %letter
uint 114, label %letter
uint 113, label %letter
uint 112, label %letter
uint 111, label %letter
uint 110, label %letter
uint 109, label %letter
uint 108, label %letter
uint 107, label %letter
uint 106, label %letter
uint 105, label %letter
uint 104, label %letter
uint 103, label %letter
uint 102, label %letter
uint 101, label %letter
uint 100, label %letter
uint 99, label %letter
uint 98, label %letter
uint 97, label %letter
uint 90, label %letter
uint 89, label %letter
uint 88, label %letter
uint 87, label %letter
uint 86, label %letter
uint 85, label %letter
uint 84, label %letter
uint 83, label %letter
uint 82, label %letter
uint 81, label %letter
uint 80, label %letter
uint 79, label %letter
uint 78, label %letter
uint 77, label %letter
uint 75, label %letter
uint 74, label %letter
uint 73, label %letter
uint 72, label %letter
uint 71, label %letter
uint 70, label %letter
uint 69, label %letter
uint 68, label %letter
uint 67, label %letter
uint 66, label %letter
uint 65, label %letter
uint 64, label %label.13
uint 76, label %label.12
uint 36, label %label.11
uint 4294967295, label %label.10
]
label.10: ; preds = %entry
ret void
label.11: ; preds = %entry
ret void
label.12: ; preds = %entry
ret void
label.13: ; preds = %entry
ret void
letter: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
ret void
loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
switch int 0, label %shortcirc_next.14 [
int 48, label %then.20
int 46, label %endif.38
]
then.20: ; preds = %loopexit.2
switch int 0, label %else.4 [
int 120, label %then.21
int 88, label %then.21
]
then.21: ; preds = %then.20, %then.20
ret void
else.4: ; preds = %then.20
ret void
shortcirc_next.14: ; preds = %loopexit.2
ret void
endif.38: ; preds = %loopexit.2
br bool false, label %then.40, label %then.39
then.39: ; preds = %endif.38
ret void
then.40: ; preds = %endif.38
invoke void %__errno_location( )
to label %switchexit.2 unwind label %LongJmpBlkPre
loopentry.6: ; preds = %endif.52
switch uint 0, label %switchexit.2 [
uint 73, label %label.82
uint 105, label %label.82
uint 76, label %label.80
uint 108, label %label.80
uint 70, label %label.78
uint 102, label %label.78
]
label.78: ; preds = %loopentry.6, %loopentry.6
ret void
label.80: ; preds = %loopentry.6, %loopentry.6
ret void
label.82: ; preds = %loopentry.6, %loopentry.6
%c.0.15.5 = phi int [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <int> [#uses=0]
ret void
switchexit.2: ; preds = %then.40, %loopentry.6
br bool false, label %endif.51, label %loopexit.6
endif.51: ; preds = %switchexit.2
br bool false, label %endif.52, label %then.52
then.52: ; preds = %endif.51
ret void
endif.52: ; preds = %endif.51
%tmp.79417 = invoke int %_IO_getc( )
to label %loopentry.6 unwind label %LongJmpBlkPre ; <int> [#uses=2]
loopexit.6: ; preds = %switchexit.2
ret void
char_constant: ; preds = %entry
ret void
string_constant: ; preds = %entry
ret void
combine: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
ret void
label.126: ; preds = %entry
ret void
return: ; preds = %entry
ret void
LongJmpBlkPre: ; preds = %then.40, %endif.52
ret void
}
|