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 197 198
|
; RUN: opt < %s -loop-simplify -loop-extract -disable-output
declare i32 @_IO_getc()
declare void @__errno_location()
define void @yylex() personality i32 (...)* @__gcc_personality_v0 {
entry:
switch i32 0, label %label.126 [
i32 0, label %return
i32 61, label %combine
i32 33, label %combine
i32 94, label %combine
i32 37, label %combine
i32 47, label %combine
i32 42, label %combine
i32 62, label %combine
i32 60, label %combine
i32 58, label %combine
i32 124, label %combine
i32 38, label %combine
i32 45, label %combine
i32 43, label %combine
i32 34, label %string_constant
i32 39, label %char_constant
i32 46, label %loopexit.2
i32 57, label %loopexit.2
i32 56, label %loopexit.2
i32 55, label %loopexit.2
i32 54, label %loopexit.2
i32 53, label %loopexit.2
i32 52, label %loopexit.2
i32 51, label %loopexit.2
i32 50, label %loopexit.2
i32 49, label %loopexit.2
i32 48, label %loopexit.2
i32 95, label %letter
i32 122, label %letter
i32 121, label %letter
i32 120, label %letter
i32 119, label %letter
i32 118, label %letter
i32 117, label %letter
i32 116, label %letter
i32 115, label %letter
i32 114, label %letter
i32 113, label %letter
i32 112, label %letter
i32 111, label %letter
i32 110, label %letter
i32 109, label %letter
i32 108, label %letter
i32 107, label %letter
i32 106, label %letter
i32 105, label %letter
i32 104, label %letter
i32 103, label %letter
i32 102, label %letter
i32 101, label %letter
i32 100, label %letter
i32 99, label %letter
i32 98, label %letter
i32 97, label %letter
i32 90, label %letter
i32 89, label %letter
i32 88, label %letter
i32 87, label %letter
i32 86, label %letter
i32 85, label %letter
i32 84, label %letter
i32 83, label %letter
i32 82, label %letter
i32 81, label %letter
i32 80, label %letter
i32 79, label %letter
i32 78, label %letter
i32 77, label %letter
i32 75, label %letter
i32 74, label %letter
i32 73, label %letter
i32 72, label %letter
i32 71, label %letter
i32 70, label %letter
i32 69, label %letter
i32 68, label %letter
i32 67, label %letter
i32 66, label %letter
i32 65, label %letter
i32 64, label %label.13
i32 76, label %label.12
i32 36, label %label.11
i32 -1, 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 i32 0, label %shortcirc_next.14 [
i32 48, label %then.20
i32 46, label %endif.38
]
then.20: ; preds = %loopexit.2
switch i32 0, label %else.4 [
i32 120, label %then.21
i32 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 i1 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 i32 0, label %switchexit.2 [
i32 73, label %label.82
i32 105, label %label.82
i32 76, label %label.80
i32 108, label %label.80
i32 70, label %label.78
i32 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 i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; <i32> [#uses=0]
ret void
switchexit.2: ; preds = %loopentry.6, %then.40
br i1 false, label %endif.51, label %loopexit.6
endif.51: ; preds = %switchexit.2
br i1 false, label %endif.52, label %then.52
then.52: ; preds = %endif.51
ret void
endif.52: ; preds = %endif.51
%tmp.79417 = invoke i32 @_IO_getc( )
to label %loopentry.6 unwind label %LongJmpBlkPre ; <i32> [#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 = %endif.52, %then.40
%exn = landingpad { i8*, i32 }
catch i8* null
ret void
}
declare i32 @__gcc_personality_v0(...)
|