1 ; RUN: opt < %s -domtree -break-crit-edges -domtree -disable-output 2 ; PR1110 3 4 %struct.OggVorbis_File = type { i8*, i32, i64, i64, %struct.ogg_sync_state, i32, i64*, i64*, i32*, i64*, %struct.vorbis_info*, %struct.vorbis_comment*, i64, i32, i32, i32, double, double, %struct.ogg_stream_state, %struct.vorbis_dsp_state, %struct.vorbis_block, %struct.ov_callbacks } 5 %struct.alloc_chain = type { i8*, %struct.alloc_chain* } 6 %struct.ogg_stream_state = type { i8*, i32, i32, i32, i32*, i64*, i32, i32, i32, i32, [282 x i8], i32, i32, i32, i32, i32, i64, i64 } 7 %struct.ogg_sync_state = type { i8*, i32, i32, i32, i32, i32, i32 } 8 %struct.oggpack_buffer = type { i32, i32, i8*, i8*, i32 } 9 %struct.ov_callbacks = type { i32 (i8*, i32, i32, i8*)*, i32 (i8*, i64, i32)*, i32 (i8*)*, i32 (i8*)* } 10 %struct.vorbis_block = type { float**, %struct.oggpack_buffer, i32, i32, i32, i32, i32, i32, i64, i64, %struct.vorbis_dsp_state*, i8*, i32, i32, i32, %struct.alloc_chain*, i32, i32, i32, i32, i8* } 11 %struct.vorbis_comment = type { i8**, i32*, i32, i8* } 12 %struct.vorbis_dsp_state = type { i32, %struct.vorbis_info*, float**, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* } 13 %struct.vorbis_info = type { i32, i32, i32, i32, i32, i32, i32, i8* } 14 15 16 define void @ov_read() { 17 entry: 18 br i1 false, label %bb, label %return 19 20 bb: ; preds = %cond_next22, %entry 21 br i1 false, label %cond_true8, label %cond_next15 22 23 cond_true8: ; preds = %bb 24 br i1 false, label %cond_next15, label %bb29 25 26 cond_next15: ; preds = %cond_true8, %bb 27 br i1 false, label %return, label %cond_next22 28 29 cond_next22: ; preds = %cond_next15 30 br i1 false, label %bb, label %return 31 32 bb29: ; preds = %cond_true8 33 br i1 false, label %cond_true32, label %return 34 35 cond_true32: ; preds = %bb29 36 br i1 false, label %cond_false37.i, label %cond_true.i11 37 38 cond_true.i11: ; preds = %cond_true32 39 br i1 false, label %cond_true8.i, label %ov_info.exit 40 41 cond_true8.i: ; preds = %cond_true.i11 42 br i1 false, label %cond_true44, label %cond_next48 43 44 cond_false37.i: ; preds = %cond_true32 45 br label %ov_info.exit 46 47 ov_info.exit: ; preds = %cond_false37.i, %cond_true.i11 48 br i1 false, label %cond_true44, label %cond_next48 49 50 cond_true44: ; preds = %ov_info.exit, %cond_true8.i 51 br label %cond_next48 52 53 cond_next48: ; preds = %cond_true44, %ov_info.exit, %cond_true8.i 54 br i1 false, label %cond_next53, label %return 55 56 cond_next53: ; preds = %cond_next48 57 br i1 false, label %cond_true56, label %cond_false97 58 59 cond_true56: ; preds = %cond_next53 60 br i1 false, label %bb85, label %cond_next304 61 62 bb63: ; preds = %bb85 63 br i1 false, label %cond_next78, label %cond_false73 64 65 cond_false73: ; preds = %bb63 66 br i1 false, label %cond_true76, label %cond_next78 67 68 cond_true76: ; preds = %cond_false73 69 br label %cond_next78 70 71 cond_next78: ; preds = %cond_true76, %cond_false73, %bb63 72 br label %bb85 73 74 bb85: ; preds = %bb89, %cond_next78, %cond_true56 75 br i1 false, label %bb63, label %bb89 76 77 bb89: ; preds = %bb85 78 br i1 false, label %bb85, label %cond_next304 79 80 cond_false97: ; preds = %cond_next53 81 br i1 false, label %cond_true108, label %bb248 82 83 cond_true108: ; preds = %cond_false97 84 br i1 false, label %bb196, label %bb149 85 86 bb112: ; preds = %bb149, %bb146 87 br i1 false, label %bb119, label %bb146 88 89 bb119: ; preds = %cond_next134, %bb112 90 br i1 false, label %cond_next134, label %cond_false129 91 92 cond_false129: ; preds = %bb119 93 br i1 false, label %cond_true132, label %cond_next134 94 95 cond_true132: ; preds = %cond_false129 96 br label %cond_next134 97 98 cond_next134: ; preds = %cond_true132, %cond_false129, %bb119 99 br i1 false, label %bb119, label %bb146 100 101 bb146: ; preds = %cond_next134, %bb112 102 br i1 false, label %bb112, label %cond_next304 103 104 bb149: ; preds = %cond_true108 105 br i1 false, label %bb112, label %cond_next304 106 107 bb155: ; preds = %bb196, %bb193 108 br i1 false, label %bb165, label %bb193 109 110 bb165: ; preds = %cond_next180, %bb155 111 br i1 false, label %cond_next180, label %cond_false175 112 113 cond_false175: ; preds = %bb165 114 br i1 false, label %cond_true178, label %cond_next180 115 116 cond_true178: ; preds = %cond_false175 117 br label %cond_next180 118 119 cond_next180: ; preds = %cond_true178, %cond_false175, %bb165 120 br i1 false, label %bb165, label %bb193 121 122 bb193: ; preds = %cond_next180, %bb155 123 br i1 false, label %bb155, label %cond_next304 124 125 bb196: ; preds = %cond_true108 126 br i1 false, label %bb155, label %cond_next304 127 128 bb207: ; preds = %bb241 129 br i1 false, label %cond_next225, label %cond_false220 130 131 cond_false220: ; preds = %bb207 132 br i1 false, label %cond_true223, label %cond_next225 133 134 cond_true223: ; preds = %cond_false220 135 br label %cond_next225 136 137 cond_next225: ; preds = %cond_true223, %cond_false220, %bb207 138 br label %bb241 139 140 bb241: ; preds = %bb248, %bb245, %cond_next225 141 br i1 false, label %bb207, label %bb245 142 143 bb245: ; preds = %bb241 144 br i1 false, label %bb241, label %cond_next304 145 146 bb248: ; preds = %cond_false97 147 br i1 false, label %bb241, label %cond_next304 148 149 bb256: ; preds = %bb290 150 br i1 false, label %cond_next274, label %cond_false269 151 152 cond_false269: ; preds = %bb256 153 br i1 false, label %cond_true272, label %cond_next274 154 155 cond_true272: ; preds = %cond_false269 156 br label %cond_next274 157 158 cond_next274: ; preds = %cond_true272, %cond_false269, %bb256 159 br label %bb290 160 161 bb290: ; preds = %bb294, %cond_next274 162 br i1 false, label %bb256, label %bb294 163 164 bb294: ; preds = %bb290 165 br i1 false, label %bb290, label %cond_next304 166 167 cond_next304: ; preds = %bb294, %bb248, %bb245, %bb196, %bb193, %bb149, %bb146, %bb89, %cond_true56 168 br i1 false, label %cond_next11.i, label %cond_true.i 169 170 cond_true.i: ; preds = %cond_next304 171 br i1 false, label %vorbis_synthesis_read.exit, label %cond_next11.i 172 173 cond_next11.i: ; preds = %cond_true.i, %cond_next304 174 br label %vorbis_synthesis_read.exit 175 176 vorbis_synthesis_read.exit: ; preds = %cond_next11.i, %cond_true.i 177 br i1 false, label %cond_next321, label %cond_true316 178 179 cond_true316: ; preds = %vorbis_synthesis_read.exit 180 ret void 181 182 cond_next321: ; preds = %vorbis_synthesis_read.exit 183 ret void 184 185 return: ; preds = %cond_next48, %bb29, %cond_next22, %cond_next15, %entry 186 ret void 187 } 188