testcase for PR827
authorChris Lattner <sabre@nondot.org>
Wed, 12 Jul 2006 18:27:13 +0000 (18:27 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 12 Jul 2006 18:27:13 +0000 (18:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29119 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll [new file with mode: 0644]

diff --git a/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll b/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
new file mode 100644 (file)
index 0000000..2baa6e5
--- /dev/null
@@ -0,0 +1,843 @@
+; RUN: llvm-as < %s | opt -inline -prune-eh -disable-output
+; PR827
+
+%_ZTV8CRjii = internal global [1 x int (...)*] [ int (...)* %_ZN8CRjii12NlFeeEPN5Jr7sE ]               ; <[1 x int (...)*]*> [#uses=0]
+
+implementation   ; Functions:
+
+internal int %_ZN8CRjii12NlFeeEPN5Jr7sE(...) {
+entry:
+       br bool false, label %cond_true, label %cond_false179
+
+cond_true:             ; preds = %entry
+       br label %bb9
+
+bb:            ; preds = %cond_true14
+       br label %bb9
+
+bb9:           ; preds = %bb, %cond_true
+       br bool false, label %cond_true14, label %cond_false
+
+cond_true14:           ; preds = %bb9
+       br label %bb
+
+cond_false:            ; preds = %bb9
+       br label %bb15
+
+cond_next:             ; No predecessors!
+       br label %bb15
+
+bb15:          ; preds = %cond_next, %cond_false
+       br label %bb24
+
+bb17:          ; preds = %cond_true29
+       br label %bb24
+
+bb24:          ; preds = %bb17, %bb15
+       br bool false, label %cond_true29, label %cond_false30
+
+cond_true29:           ; preds = %bb24
+       br label %bb17
+
+cond_false30:          ; preds = %bb24
+       br label %bb32
+
+cond_next31:           ; No predecessors!
+       br label %bb32
+
+bb32:          ; preds = %cond_next31, %cond_false30
+       br label %bb41
+
+bb34:          ; preds = %cond_true46
+       br label %bb41
+
+bb41:          ; preds = %bb34, %bb32
+       br bool false, label %cond_true46, label %cond_false47
+
+cond_true46:           ; preds = %bb41
+       br label %bb34
+
+cond_false47:          ; preds = %bb41
+       br label %bb49
+
+cond_next48:           ; No predecessors!
+       br label %bb49
+
+bb49:          ; preds = %cond_next48, %cond_false47
+       br label %bb58
+
+bb51:          ; preds = %cond_true63
+       br label %bb58
+
+bb58:          ; preds = %bb51, %bb49
+       br bool false, label %cond_true63, label %cond_false64
+
+cond_true63:           ; preds = %bb58
+       br label %bb51
+
+cond_false64:          ; preds = %bb58
+       br label %bb66
+
+cond_next65:           ; No predecessors!
+       br label %bb66
+
+bb66:          ; preds = %cond_next65, %cond_false64
+       br label %bb76
+
+bb68:          ; preds = %cond_true81
+       br label %bb76
+
+bb76:          ; preds = %bb68, %bb66
+       br bool false, label %cond_true81, label %cond_false82
+
+cond_true81:           ; preds = %bb76
+       br label %bb68
+
+cond_false82:          ; preds = %bb76
+       br label %bb84
+
+cond_next83:           ; No predecessors!
+       br label %bb84
+
+bb84:          ; preds = %cond_next83, %cond_false82
+       br label %bb94
+
+bb86:          ; preds = %cond_true99
+       br label %bb94
+
+bb94:          ; preds = %bb86, %bb84
+       br bool false, label %cond_true99, label %cond_false100
+
+cond_true99:           ; preds = %bb94
+       br label %bb86
+
+cond_false100:         ; preds = %bb94
+       br label %bb102
+
+cond_next101:          ; No predecessors!
+       br label %bb102
+
+bb102:         ; preds = %cond_next101, %cond_false100
+       br label %bb112
+
+bb104:         ; preds = %cond_true117
+       br label %bb112
+
+bb112:         ; preds = %bb104, %bb102
+       br bool false, label %cond_true117, label %cond_false118
+
+cond_true117:          ; preds = %bb112
+       br label %bb104
+
+cond_false118:         ; preds = %bb112
+       br label %bb120
+
+cond_next119:          ; No predecessors!
+       br label %bb120
+
+bb120:         ; preds = %cond_next119, %cond_false118
+       br label %bb130
+
+bb122:         ; preds = %cond_true135
+       br label %bb130
+
+bb130:         ; preds = %bb122, %bb120
+       br bool false, label %cond_true135, label %cond_false136
+
+cond_true135:          ; preds = %bb130
+       br label %bb122
+
+cond_false136:         ; preds = %bb130
+       br label %bb138
+
+cond_next137:          ; No predecessors!
+       br label %bb138
+
+bb138:         ; preds = %cond_next137, %cond_false136
+       br label %bb148
+
+bb140:         ; preds = %cond_true153
+       call fastcc void %_Zjrf1( )
+       br label %bb148
+
+bb148:         ; preds = %bb140, %bb138
+       br bool false, label %cond_true153, label %cond_false154
+
+cond_true153:          ; preds = %bb148
+       br label %bb140
+
+cond_false154:         ; preds = %bb148
+       br label %bb156
+
+cond_next155:          ; No predecessors!
+       br label %bb156
+
+bb156:         ; preds = %cond_next155, %cond_false154
+       br label %bb166
+
+bb158:         ; preds = %cond_true171
+       br label %bb166
+
+bb166:         ; preds = %bb158, %bb156
+       br bool false, label %cond_true171, label %cond_false172
+
+cond_true171:          ; preds = %bb166
+       br label %bb158
+
+cond_false172:         ; preds = %bb166
+       br label %bb174
+
+cond_next173:          ; No predecessors!
+       br label %bb174
+
+bb174:         ; preds = %cond_next173, %cond_false172
+       br label %cleanup
+
+cleanup:               ; preds = %bb174
+       br label %finally
+
+finally:               ; preds = %cleanup
+       br label %cond_next180
+
+cond_false179:         ; preds = %entry
+       br label %cond_next180
+
+cond_next180:          ; preds = %cond_false179, %finally
+       br label %return
+
+return:                ; preds = %cond_next180
+       ret int 0
+}
+
+internal fastcc void %_Zjrf2() {
+entry:
+       br label %bb3
+
+bb:            ; preds = %cond_true
+       br label %bb3
+
+bb3:           ; preds = %bb, %entry
+       %tmp5 = load ubyte** null               ; <ubyte*> [#uses=1]
+       %tmp = setne ubyte* null, %tmp5         ; <bool> [#uses=1]
+       br bool %tmp, label %cond_true, label %cond_false
+
+cond_true:             ; preds = %bb3
+       br label %bb
+
+cond_false:            ; preds = %bb3
+       br label %bb6
+
+cond_next:             ; No predecessors!
+       br label %bb6
+
+bb6:           ; preds = %cond_next, %cond_false
+       br label %return
+
+return:                ; preds = %bb6
+       ret void
+}
+
+internal fastcc void %_Zjrf3() {
+entry:
+       call fastcc void %_Zjrf2( )
+       br label %return
+
+return:                ; preds = %entry
+       ret void
+}
+
+internal fastcc void %_Zjrf4() {
+entry:
+       br label %bb6
+
+bb:            ; preds = %cond_true
+       br label %bb6
+
+bb6:           ; preds = %bb, %entry
+       br bool false, label %cond_true, label %cond_false
+
+cond_true:             ; preds = %bb6
+       br label %bb
+
+cond_false:            ; preds = %bb6
+       br label %bb8
+
+cond_next:             ; No predecessors!
+       br label %bb8
+
+bb8:           ; preds = %cond_next, %cond_false
+       br bool false, label %cond_true9, label %cond_false12
+
+cond_true9:            ; preds = %bb8
+       call fastcc void %_Zjrf3( )
+       br label %cond_next13
+
+cond_false12:          ; preds = %bb8
+       br label %cond_next13
+
+cond_next13:           ; preds = %cond_false12, %cond_true9
+       br label %return
+
+return:                ; preds = %cond_next13
+       ret void
+}
+
+internal fastcc void %_Zjrf5() {
+entry:
+       call fastcc void %_Zjrf4( )
+       br label %return
+
+return:                ; preds = %entry
+       ret void
+}
+
+internal fastcc void %_Zjrf6() {
+entry:
+       call fastcc void %_Zjrf5( )
+       br label %return
+
+return:                ; preds = %entry
+       ret void
+}
+
+internal fastcc void %_Zjrf7() {
+entry:
+       br label %cleanup
+
+cleanup:               ; preds = %entry
+       br label %finally
+
+finally:               ; preds = %cleanup
+       call fastcc void %_Zjrf6( )
+       br label %cleanup9
+
+cleanup9:              ; preds = %finally
+       br label %finally8
+
+finally8:              ; preds = %cleanup9
+       br label %cleanup11
+
+cleanup11:             ; preds = %finally8
+       br label %finally10
+
+finally10:             ; preds = %cleanup11
+       br label %finally23
+
+finally23:             ; preds = %finally10
+       br label %return
+
+return:                ; preds = %finally23
+       ret void
+}
+
+internal fastcc void %_Zjrf11() {
+entry:
+       br label %bb7
+
+bb:            ; preds = %cond_true
+       br label %bb7
+
+bb7:           ; preds = %bb, %entry
+       br bool false, label %cond_true, label %cond_false
+
+cond_true:             ; preds = %bb7
+       br label %bb
+
+cond_false:            ; preds = %bb7
+       br label %bb9
+
+cond_next:             ; No predecessors!
+       br label %bb9
+
+bb9:           ; preds = %cond_next, %cond_false
+       br label %return
+               ; No predecessors!
+       br bool false, label %cond_true12, label %cond_false15
+
+cond_true12:           ; preds = %0
+       call fastcc void %_Zjrf3( )
+       br label %cond_next16
+
+cond_false15:          ; preds = %0
+       br label %cond_next16
+
+cond_next16:           ; preds = %cond_false15, %cond_true12
+       br label %return
+
+return:                ; preds = %cond_next16, %bb9
+       ret void
+}
+
+internal fastcc void %_Zjrf9() {
+entry:
+       call fastcc void %_Zjrf11( )
+       br label %return
+
+return:                ; preds = %entry
+       ret void
+}
+
+internal fastcc void %_Zjrf10() {
+entry:
+       call fastcc void %_Zjrf9( )
+       br label %return
+
+return:                ; preds = %entry
+       ret void
+}
+
+internal fastcc void %_Zjrf8() {
+entry:
+       br bool false, label %cond_true, label %cond_false201
+
+cond_true:             ; preds = %entry
+       br bool false, label %cond_true36, label %cond_false
+
+cond_true36:           ; preds = %cond_true
+       br label %cleanup
+
+cleanup:               ; preds = %cond_true36
+       br label %finally
+
+finally:               ; preds = %cleanup
+       br label %cond_next189
+
+cond_false:            ; preds = %cond_true
+       br bool false, label %cond_true99, label %cond_false137
+
+cond_true99:           ; preds = %cond_false
+       br label %cleanup136
+
+cleanup136:            ; preds = %cond_true99
+       br label %finally135
+
+finally135:            ; preds = %cleanup136
+       br label %cond_next
+
+cond_false137:         ; preds = %cond_false
+       call fastcc void %_Zjrf10( )
+       br label %cleanup188
+
+cleanup188:            ; preds = %cond_false137
+       br label %finally187
+
+finally187:            ; preds = %cleanup188
+       br label %cond_next
+
+cond_next:             ; preds = %finally187, %finally135
+       br label %cond_next189
+
+cond_next189:          ; preds = %cond_next, %finally
+       br label %cond_next202
+
+cond_false201:         ; preds = %entry
+       br label %cond_next202
+
+cond_next202:          ; preds = %cond_false201, %cond_next189
+       br label %return
+
+return:                ; preds = %cond_next202
+       ret void
+}
+
+internal fastcc void %_Zjrf1() {
+entry:
+       br label %bb492
+
+bb:            ; preds = %cond_true499
+       br label %cleanup
+
+cleanup:               ; preds = %bb
+       br label %finally
+
+finally:               ; preds = %cleanup
+       br label %cleanup11
+
+cleanup11:             ; preds = %finally
+       br label %finally10
+
+finally10:             ; preds = %cleanup11
+       br bool false, label %cond_true, label %cond_false286
+
+cond_true:             ; preds = %finally10
+       br label %cleanup26
+
+cleanup26:             ; preds = %cond_true
+       br label %finally25
+
+finally25:             ; preds = %cleanup26
+       br label %bb30
+
+bb27:          ; preds = %cond_true37
+       br label %bb30
+
+bb30:          ; preds = %bb27, %finally25
+       br bool false, label %cond_true37, label %cond_false
+
+cond_true37:           ; preds = %bb30
+       br label %bb27
+
+cond_false:            ; preds = %bb30
+       br label %bb38
+
+cond_next:             ; No predecessors!
+       br label %bb38
+
+bb38:          ; preds = %cond_next, %cond_false
+       br label %bb148
+
+bb40:          ; preds = %cond_true156
+       br label %bb139
+
+bb41:          ; preds = %cond_true142
+       call fastcc void %_Zjrf7( )
+       br label %bb105
+
+bb44:          ; preds = %cond_true112
+       br label %bb74
+
+bb66:          ; preds = %cond_true80
+       br label %bb74
+
+bb74:          ; preds = %bb66, %bb44
+       br bool false, label %cond_true80, label %cond_false81
+
+cond_true80:           ; preds = %bb74
+       br label %bb66
+
+cond_false81:          ; preds = %bb74
+       br label %bb83
+
+cond_next82:           ; No predecessors!
+       br label %bb83
+
+bb83:          ; preds = %cond_next82, %cond_false81
+       br label %cleanup97
+
+cleanup97:             ; preds = %bb83
+       br label %finally96
+
+finally96:             ; preds = %cleanup97
+       br label %cleanup99
+
+cleanup99:             ; preds = %finally96
+       br label %finally98
+
+finally98:             ; preds = %cleanup99
+       br label %bb105
+
+bb105:         ; preds = %finally98, %bb41
+       br bool false, label %cond_true112, label %cond_false113
+
+cond_true112:          ; preds = %bb105
+       br label %bb44
+
+cond_false113:         ; preds = %bb105
+       br label %bb115
+
+cond_next114:          ; No predecessors!
+       br label %bb115
+
+bb115:         ; preds = %cond_next114, %cond_false113
+       br bool false, label %cond_true119, label %cond_false123
+
+cond_true119:          ; preds = %bb115
+       call fastcc void %_Zjrf8( )
+       br label %cond_next124
+
+cond_false123:         ; preds = %bb115
+       br label %cond_next124
+
+cond_next124:          ; preds = %cond_false123, %cond_true119
+       br bool false, label %cond_true131, label %cond_false132
+
+cond_true131:          ; preds = %cond_next124
+       br label %cleanup135
+
+cond_false132:         ; preds = %cond_next124
+       br label %cond_next133
+
+cond_next133:          ; preds = %cond_false132
+       br label %cleanup136
+
+cleanup135:            ; preds = %cond_true131
+       br label %done
+
+cleanup136:            ; preds = %cond_next133
+       br label %finally134
+
+finally134:            ; preds = %cleanup136
+       br label %bb139
+
+bb139:         ; preds = %finally134, %bb40
+       br bool false, label %cond_true142, label %cond_false143
+
+cond_true142:          ; preds = %bb139
+       br label %bb41
+
+cond_false143:         ; preds = %bb139
+       br label %bb145
+
+cond_next144:          ; No predecessors!
+       br label %bb145
+
+bb145:         ; preds = %cond_next144, %cond_false143
+       br label %bb148
+
+bb148:         ; preds = %bb145, %bb38
+       br bool false, label %cond_true156, label %cond_false157
+
+cond_true156:          ; preds = %bb148
+       br label %bb40
+
+cond_false157:         ; preds = %bb148
+       br label %bb159
+
+cond_next158:          ; No predecessors!
+       br label %bb159
+
+bb159:         ; preds = %cond_next158, %cond_false157
+       br label %done
+
+done:          ; preds = %bb159, %cleanup135
+       br label %bb214
+
+bb185:         ; preds = %cond_true218
+       br bool false, label %cond_true193, label %cond_false206
+
+cond_true193:          ; preds = %bb185
+       br label %cond_next211
+
+cond_false206:         ; preds = %bb185
+       br label %cond_next211
+
+cond_next211:          ; preds = %cond_false206, %cond_true193
+       br label %bb214
+
+bb214:         ; preds = %cond_next211, %done
+       br bool false, label %cond_true218, label %cond_false219
+
+cond_true218:          ; preds = %bb214
+       br label %bb185
+
+cond_false219:         ; preds = %bb214
+       br label %bb221
+
+cond_next220:          ; No predecessors!
+       br label %bb221
+
+bb221:         ; preds = %cond_next220, %cond_false219
+       br bool false, label %cond_true236, label %cond_false245
+
+cond_true236:          ; preds = %bb221
+       br label %cond_next249
+
+cond_false245:         ; preds = %bb221
+       br label %cond_next249
+
+cond_next249:          ; preds = %cond_false245, %cond_true236
+       br bool false, label %cond_true272, label %cond_false277
+
+cond_true272:          ; preds = %cond_next249
+       br label %cond_next278
+
+cond_false277:         ; preds = %cond_next249
+       br label %cond_next278
+
+cond_next278:          ; preds = %cond_false277, %cond_true272
+       br label %cleanup285
+
+cleanup285:            ; preds = %cond_next278
+       br label %finally284
+
+finally284:            ; preds = %cleanup285
+       br label %cond_next287
+
+cond_false286:         ; preds = %finally10
+       br label %cond_next287
+
+cond_next287:          ; preds = %cond_false286, %finally284
+       br bool false, label %cond_true317, label %cond_false319
+
+cond_true317:          ; preds = %cond_next287
+       br label %cond_next321
+
+cond_false319:         ; preds = %cond_next287
+       br label %cond_next321
+
+cond_next321:          ; preds = %cond_false319, %cond_true317
+       br label %bb348
+
+bb335:         ; preds = %cond_true355
+       br label %bb348
+
+bb348:         ; preds = %bb335, %cond_next321
+       br bool false, label %cond_true355, label %cond_false356
+
+cond_true355:          ; preds = %bb348
+       br label %bb335
+
+cond_false356:         ; preds = %bb348
+       br label %bb358
+
+cond_next357:          ; No predecessors!
+       br label %bb358
+
+bb358:         ; preds = %cond_next357, %cond_false356
+       br bool false, label %cond_true363, label %cond_false364
+
+cond_true363:          ; preds = %bb358
+       br label %bb388
+
+cond_false364:         ; preds = %bb358
+       br label %cond_next365
+
+cond_next365:          ; preds = %cond_false364
+       br bool false, label %cond_true370, label %cond_false371
+
+cond_true370:          ; preds = %cond_next365
+       br label %bb388
+
+cond_false371:         ; preds = %cond_next365
+       br label %cond_next372
+
+cond_next372:          ; preds = %cond_false371
+       br bool false, label %cond_true385, label %cond_false386
+
+cond_true385:          ; preds = %cond_next372
+       br label %bb388
+
+cond_false386:         ; preds = %cond_next372
+       br label %cond_next387
+
+cond_next387:          ; preds = %cond_false386
+       br label %bb389
+
+bb388:         ; preds = %cond_true385, %cond_true370, %cond_true363
+       br label %bb389
+
+bb389:         ; preds = %bb388, %cond_next387
+       br bool false, label %cond_true392, label %cond_false443
+
+cond_true392:          ; preds = %bb389
+       br label %bb419
+
+bb402:         ; preds = %cond_true425
+       br bool false, label %cond_true406, label %cond_false412
+
+cond_true406:          ; preds = %bb402
+       br label %cond_next416
+
+cond_false412:         ; preds = %bb402
+       br label %cond_next416
+
+cond_next416:          ; preds = %cond_false412, %cond_true406
+       br label %bb419
+
+bb419:         ; preds = %cond_next416, %cond_true392
+       br bool false, label %cond_true425, label %cond_false426
+
+cond_true425:          ; preds = %bb419
+       br label %bb402
+
+cond_false426:         ; preds = %bb419
+       br label %bb428
+
+cond_next427:          ; No predecessors!
+       br label %bb428
+
+bb428:         ; preds = %cond_next427, %cond_false426
+       br label %cond_next478
+
+cond_false443:         ; preds = %bb389
+       br label %bb460
+
+bb450:         ; preds = %cond_true466
+       br label %bb460
+
+bb460:         ; preds = %bb450, %cond_false443
+       br bool false, label %cond_true466, label %cond_false467
+
+cond_true466:          ; preds = %bb460
+       br label %bb450
+
+cond_false467:         ; preds = %bb460
+       br label %bb469
+
+cond_next468:          ; No predecessors!
+       br label %bb469
+
+bb469:         ; preds = %cond_next468, %cond_false467
+       br label %cond_next478
+
+cond_next478:          ; preds = %bb469, %bb428
+       br label %cleanup485
+
+cleanup485:            ; preds = %cond_next478
+       br label %finally484
+
+finally484:            ; preds = %cleanup485
+       br label %cleanup487
+
+cleanup487:            ; preds = %finally484
+       br label %finally486
+
+finally486:            ; preds = %cleanup487
+       br label %cleanup489
+
+cleanup489:            ; preds = %finally486
+       br label %finally488
+
+finally488:            ; preds = %cleanup489
+       br label %bb492
+
+bb492:         ; preds = %finally488, %entry
+       br bool false, label %cond_true499, label %cond_false500
+
+cond_true499:          ; preds = %bb492
+       br label %bb
+
+cond_false500:         ; preds = %bb492
+       br label %bb502
+
+cond_next501:          ; No predecessors!
+       br label %bb502
+
+bb502:         ; preds = %cond_next501, %cond_false500
+       br label %return
+
+return:                ; preds = %bb502
+       ret void
+}
+
+internal fastcc void %_ZSt26__unguarded_insertion_sortIN9__gnu_cxx17__normal_iteratorIPSsSt6vectorISsSaISsEEEEEvT_S7_() {
+entry:
+       br label %bb12
+
+bb:            ; preds = %cond_true
+       br label %cleanup
+
+cleanup:               ; preds = %bb
+       br label %finally
+
+finally:               ; preds = %cleanup
+       br label %bb12
+
+bb12:          ; preds = %finally, %entry
+       br bool false, label %cond_true, label %cond_false
+
+cond_true:             ; preds = %bb12
+       br label %bb
+
+cond_false:            ; preds = %bb12
+       br label %bb14
+
+cond_next:             ; No predecessors!
+       br label %bb14
+
+bb14:          ; preds = %cond_next, %cond_false
+       br label %return
+
+return:                ; preds = %bb14
+       ret void
+}