mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-18 16:03:17 +00:00
Fix 3113: If we have a dead cyclic PHI, replace the whole thing
with an undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59972 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
41ea7e7eb3
commit
47f5751c80
@ -206,7 +206,10 @@ void CodeGenPrepare::EliminateMostlyEmptyBlock(BasicBlock *BB) {
|
||||
if (DestBB->getSinglePredecessor()) {
|
||||
// If DestBB has single-entry PHI nodes, fold them.
|
||||
while (PHINode *PN = dyn_cast<PHINode>(DestBB->begin())) {
|
||||
PN->replaceAllUsesWith(PN->getIncomingValue(0));
|
||||
Value *NewVal = PN->getIncomingValue(0);
|
||||
// Replace self referencing PHI with undef, it must be dead.
|
||||
if (NewVal == PN) NewVal = UndefValue::get(PN->getType());
|
||||
PN->replaceAllUsesWith(NewVal);
|
||||
PN->eraseFromParent();
|
||||
}
|
||||
|
||||
@ -569,6 +572,9 @@ static bool FindMaximalLegalAddressingMode(Value *Addr, const Type *AccessTy,
|
||||
if (Instruction *I = dyn_cast_or_null<Instruction>(AddrInst))
|
||||
AddrModeInsts.push_back(I);
|
||||
|
||||
if (AddrInst && !AddrInst->hasOneUse())
|
||||
;
|
||||
else
|
||||
switch (Opcode) {
|
||||
case Instruction::PtrToInt:
|
||||
// PtrToInt is always a noop, as we know that the int type is pointer sized.
|
||||
|
511
test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll
Normal file
511
test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll
Normal file
@ -0,0 +1,511 @@
|
||||
; RUN: llvm-as < %s | opt -codegenprepare | llvm-dis
|
||||
; PR3113
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
define fastcc i32 @ascii2flt(i8* %str) nounwind {
|
||||
entry:
|
||||
br label %bb2.i
|
||||
|
||||
bb2.i: ; preds = %bb4.i.bb2.i_crit_edge, %entry
|
||||
br i1 false, label %bb4.i, label %base2flt.exit
|
||||
|
||||
bb4.i: ; preds = %bb2.i
|
||||
br i1 false, label %bb11.i, label %bb4.i.bb2.i_crit_edge
|
||||
|
||||
bb4.i.bb2.i_crit_edge: ; preds = %bb4.i
|
||||
br label %bb2.i
|
||||
|
||||
bb11.i: ; preds = %bb4.i
|
||||
br label %bb11.i.base2flt.exit204_crit_edge
|
||||
|
||||
bb11.i.base2flt.exit204_crit_edge: ; preds = %bb11.i
|
||||
br label %base2flt.exit204
|
||||
|
||||
bb11.i.bb7.i197_crit_edge: ; No predecessors!
|
||||
br label %bb7.i197
|
||||
|
||||
base2flt.exit: ; preds = %bb2.i
|
||||
br label %base2flt.exit.base2flt.exit204_crit_edge
|
||||
|
||||
base2flt.exit.base2flt.exit204_crit_edge: ; preds = %base2flt.exit
|
||||
br label %base2flt.exit204
|
||||
|
||||
base2flt.exit.bb7.i197_crit_edge: ; No predecessors!
|
||||
br label %bb7.i197
|
||||
|
||||
bb10.i196: ; preds = %bb7.i197
|
||||
br label %bb10.i196.base2flt.exit204_crit_edge
|
||||
|
||||
bb10.i196.base2flt.exit204_crit_edge: ; preds = %bb7.i197, %bb10.i196
|
||||
br label %base2flt.exit204
|
||||
|
||||
bb10.i196.bb7.i197_crit_edge: ; No predecessors!
|
||||
br label %bb7.i197
|
||||
|
||||
bb7.i197: ; preds = %bb10.i196.bb7.i197_crit_edge, %base2flt.exit.bb7.i197_crit_edge, %bb11.i.bb7.i197_crit_edge
|
||||
%.reg2mem.0 = phi i32 [ 0, %base2flt.exit.bb7.i197_crit_edge ], [ %.reg2mem.0, %bb10.i196.bb7.i197_crit_edge ], [ 0, %bb11.i.bb7.i197_crit_edge ] ; <i32> [#uses=1]
|
||||
br i1 undef, label %bb10.i196.base2flt.exit204_crit_edge, label %bb10.i196
|
||||
|
||||
base2flt.exit204: ; preds = %bb10.i196.base2flt.exit204_crit_edge, %base2flt.exit.base2flt.exit204_crit_edge, %bb11.i.base2flt.exit204_crit_edge
|
||||
br i1 false, label %base2flt.exit204.bb8_crit_edge, label %bb
|
||||
|
||||
base2flt.exit204.bb8_crit_edge: ; preds = %base2flt.exit204
|
||||
br label %bb8
|
||||
|
||||
bb: ; preds = %base2flt.exit204
|
||||
br i1 false, label %bb.bb18_crit_edge, label %bb1.i
|
||||
|
||||
bb.bb18_crit_edge: ; preds = %bb9, %bb
|
||||
br label %bb18
|
||||
|
||||
bb1.i: ; preds = %bb
|
||||
br i1 false, label %bb1.i.bb7_crit_edge, label %bb1.i158
|
||||
|
||||
bb1.i.bb7_crit_edge.loopexit: ; preds = %bb2.i164
|
||||
br label %bb1.i.bb7_crit_edge
|
||||
|
||||
bb1.i.bb7_crit_edge: ; preds = %bb1.i.bb7_crit_edge.loopexit, %bb1.i
|
||||
br label %bb7.preheader
|
||||
|
||||
bb1.i158: ; preds = %bb1.i
|
||||
br i1 false, label %bb1.i158.bb10.i179_crit_edge, label %bb1.i158.bb2.i164_crit_edge
|
||||
|
||||
bb1.i158.bb2.i164_crit_edge: ; preds = %bb1.i158
|
||||
br label %bb2.i164
|
||||
|
||||
bb1.i158.bb10.i179_crit_edge: ; preds = %bb1.i158
|
||||
br label %bb10.i179
|
||||
|
||||
bb2.i164: ; preds = %bb4.i166.bb2.i164_crit_edge, %bb1.i158.bb2.i164_crit_edge
|
||||
br i1 false, label %bb4.i166, label %bb1.i.bb7_crit_edge.loopexit
|
||||
|
||||
bb4.i166: ; preds = %bb2.i164
|
||||
br i1 false, label %bb4.i166.bb11.i172_crit_edge, label %bb4.i166.bb2.i164_crit_edge
|
||||
|
||||
bb4.i166.bb2.i164_crit_edge: ; preds = %bb4.i166
|
||||
br label %bb2.i164
|
||||
|
||||
bb4.i166.bb11.i172_crit_edge: ; preds = %bb4.i166
|
||||
br label %bb11.i172
|
||||
|
||||
bb11.i172: ; preds = %bb10.i179.bb11.i172_crit_edge, %bb4.i166.bb11.i172_crit_edge
|
||||
br label %bb7.preheader
|
||||
|
||||
bb10.i179: ; preds = %bb9.i182, %bb1.i158.bb10.i179_crit_edge
|
||||
br i1 false, label %bb7.i180, label %bb10.i179.bb11.i172_crit_edge
|
||||
|
||||
bb10.i179.bb11.i172_crit_edge: ; preds = %bb10.i179
|
||||
br label %bb11.i172
|
||||
|
||||
bb7.i180: ; preds = %bb10.i179
|
||||
br i1 false, label %bb7.i180.bb7_crit_edge, label %bb9.i182
|
||||
|
||||
bb7.i180.bb7_crit_edge: ; preds = %bb7.i180
|
||||
br label %bb7.preheader
|
||||
|
||||
bb7.preheader: ; preds = %bb7.i180.bb7_crit_edge, %bb11.i172, %bb1.i.bb7_crit_edge
|
||||
br label %bb7
|
||||
|
||||
bb9.i182: ; preds = %bb7.i180
|
||||
br label %bb10.i179
|
||||
|
||||
bb7: ; preds = %addflt.exit114, %bb7.preheader
|
||||
switch i8 0, label %bb4 [
|
||||
i8 0, label %bb7.bb8_crit_edge
|
||||
i8 46, label %bb7.bb8_crit_edge
|
||||
]
|
||||
|
||||
bb7.bb8_crit_edge: ; preds = %bb7, %bb7
|
||||
br label %bb8
|
||||
|
||||
bb4: ; preds = %bb7
|
||||
br i1 false, label %bb18.loopexit1, label %bb1.i5
|
||||
|
||||
bb1.i5: ; preds = %bb4
|
||||
br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb3.i147
|
||||
|
||||
bb1.i5.mulflt.exit157_crit_edge: ; preds = %bb5.i148, %bb1.i5
|
||||
br label %mulflt.exit157
|
||||
|
||||
bb3.i147: ; preds = %bb1.i5
|
||||
br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb5.i148
|
||||
|
||||
bb3.i147.mulflt.exit157_crit_edge: ; preds = %bb8.i150, %bb3.i147
|
||||
br label %mulflt.exit157
|
||||
|
||||
bb5.i148: ; preds = %bb3.i147
|
||||
br i1 false, label %bb1.i5.mulflt.exit157_crit_edge, label %bb7.i149
|
||||
|
||||
bb7.i149: ; preds = %bb5.i148
|
||||
br i1 false, label %bb8.i150, label %bb7.i149.bb12.i154_crit_edge
|
||||
|
||||
bb7.i149.bb12.i154_crit_edge: ; preds = %bb7.i149
|
||||
br label %bb12.i154
|
||||
|
||||
bb8.i150: ; preds = %bb7.i149
|
||||
br i1 false, label %bb3.i147.mulflt.exit157_crit_edge, label %bb10.i151
|
||||
|
||||
bb10.i151: ; preds = %bb8.i150
|
||||
br label %bb12.i154
|
||||
|
||||
bb12.i154: ; preds = %bb10.i151, %bb7.i149.bb12.i154_crit_edge
|
||||
br label %mulflt.exit157
|
||||
|
||||
mulflt.exit157: ; preds = %bb12.i154, %bb3.i147.mulflt.exit157_crit_edge, %bb1.i5.mulflt.exit157_crit_edge
|
||||
br i1 false, label %mulflt.exit157.base2flt.exit144_crit_edge, label %bb1.i115
|
||||
|
||||
mulflt.exit157.base2flt.exit144_crit_edge.loopexit: ; preds = %bb2.i121
|
||||
br label %mulflt.exit157.base2flt.exit144_crit_edge
|
||||
|
||||
mulflt.exit157.base2flt.exit144_crit_edge: ; preds = %mulflt.exit157.base2flt.exit144_crit_edge.loopexit, %mulflt.exit157
|
||||
br label %base2flt.exit144
|
||||
|
||||
bb1.i115: ; preds = %mulflt.exit157
|
||||
br i1 false, label %bb1.i115.bb10.i136_crit_edge, label %bb1.i115.bb2.i121_crit_edge
|
||||
|
||||
bb1.i115.bb2.i121_crit_edge: ; preds = %bb1.i115
|
||||
br label %bb2.i121
|
||||
|
||||
bb1.i115.bb10.i136_crit_edge: ; preds = %bb1.i115
|
||||
br label %bb10.i136
|
||||
|
||||
bb2.i121: ; preds = %bb4.i123.bb2.i121_crit_edge, %bb1.i115.bb2.i121_crit_edge
|
||||
br i1 false, label %bb4.i123, label %mulflt.exit157.base2flt.exit144_crit_edge.loopexit
|
||||
|
||||
bb4.i123: ; preds = %bb2.i121
|
||||
br i1 false, label %bb4.i123.bb11.i129_crit_edge, label %bb4.i123.bb2.i121_crit_edge
|
||||
|
||||
bb4.i123.bb2.i121_crit_edge: ; preds = %bb4.i123
|
||||
br label %bb2.i121
|
||||
|
||||
bb4.i123.bb11.i129_crit_edge: ; preds = %bb4.i123
|
||||
br label %bb11.i129
|
||||
|
||||
bb11.i129: ; preds = %bb10.i136.bb11.i129_crit_edge, %bb4.i123.bb11.i129_crit_edge
|
||||
br label %base2flt.exit144
|
||||
|
||||
bb10.i136: ; preds = %bb9.i139, %bb1.i115.bb10.i136_crit_edge
|
||||
br i1 false, label %bb7.i137, label %bb10.i136.bb11.i129_crit_edge
|
||||
|
||||
bb10.i136.bb11.i129_crit_edge: ; preds = %bb10.i136
|
||||
br label %bb11.i129
|
||||
|
||||
bb7.i137: ; preds = %bb10.i136
|
||||
br i1 false, label %bb7.i137.base2flt.exit144_crit_edge, label %bb9.i139
|
||||
|
||||
bb7.i137.base2flt.exit144_crit_edge: ; preds = %bb7.i137
|
||||
br label %base2flt.exit144
|
||||
|
||||
bb9.i139: ; preds = %bb7.i137
|
||||
br label %bb10.i136
|
||||
|
||||
base2flt.exit144: ; preds = %bb7.i137.base2flt.exit144_crit_edge, %bb11.i129, %mulflt.exit157.base2flt.exit144_crit_edge
|
||||
br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb3.i105
|
||||
|
||||
base2flt.exit144.addflt.exit114_crit_edge: ; preds = %bb3.i105, %base2flt.exit144
|
||||
br label %addflt.exit114
|
||||
|
||||
bb3.i105: ; preds = %base2flt.exit144
|
||||
br i1 false, label %base2flt.exit144.addflt.exit114_crit_edge, label %bb5.i106
|
||||
|
||||
bb5.i106: ; preds = %bb3.i105
|
||||
br i1 false, label %bb5.i106.bb9.i111_crit_edge, label %bb6.i107
|
||||
|
||||
bb5.i106.bb9.i111_crit_edge: ; preds = %bb5.i106
|
||||
br label %bb9.i111
|
||||
|
||||
bb6.i107: ; preds = %bb5.i106
|
||||
br i1 false, label %bb6.i107.addflt.exit114_crit_edge, label %bb8.i108
|
||||
|
||||
bb6.i107.addflt.exit114_crit_edge: ; preds = %bb6.i107
|
||||
br label %addflt.exit114
|
||||
|
||||
bb8.i108: ; preds = %bb6.i107
|
||||
br label %bb9.i111
|
||||
|
||||
bb9.i111: ; preds = %bb8.i108, %bb5.i106.bb9.i111_crit_edge
|
||||
br label %addflt.exit114
|
||||
|
||||
addflt.exit114: ; preds = %bb9.i111, %bb6.i107.addflt.exit114_crit_edge, %base2flt.exit144.addflt.exit114_crit_edge
|
||||
br label %bb7
|
||||
|
||||
bb18.loopexit1: ; preds = %bb4
|
||||
ret i32 -1
|
||||
|
||||
bb18: ; preds = %bb8.bb18_crit_edge, %bb.bb18_crit_edge
|
||||
ret i32 0
|
||||
|
||||
bb8: ; preds = %bb7.bb8_crit_edge, %base2flt.exit204.bb8_crit_edge
|
||||
br i1 false, label %bb9, label %bb8.bb18_crit_edge
|
||||
|
||||
bb8.bb18_crit_edge: ; preds = %bb8
|
||||
br label %bb18
|
||||
|
||||
bb9: ; preds = %bb8
|
||||
br i1 false, label %bb.bb18_crit_edge, label %bb1.i13
|
||||
|
||||
bb1.i13: ; preds = %bb9
|
||||
br i1 false, label %bb1.i13.base2flt.exit102_crit_edge, label %bb1.i73
|
||||
|
||||
bb1.i13.base2flt.exit102_crit_edge.loopexit: ; preds = %bb2.i79
|
||||
br label %bb1.i13.base2flt.exit102_crit_edge
|
||||
|
||||
bb1.i13.base2flt.exit102_crit_edge: ; preds = %bb1.i13.base2flt.exit102_crit_edge.loopexit, %bb1.i13
|
||||
br label %base2flt.exit102
|
||||
|
||||
bb1.i73: ; preds = %bb1.i13
|
||||
br i1 false, label %bb1.i73.bb10.i94_crit_edge, label %bb1.i73.bb2.i79_crit_edge
|
||||
|
||||
bb1.i73.bb2.i79_crit_edge: ; preds = %bb1.i73
|
||||
br label %bb2.i79
|
||||
|
||||
bb1.i73.bb10.i94_crit_edge: ; preds = %bb1.i73
|
||||
br label %bb10.i94
|
||||
|
||||
bb2.i79: ; preds = %bb4.i81.bb2.i79_crit_edge, %bb1.i73.bb2.i79_crit_edge
|
||||
br i1 false, label %bb4.i81, label %bb1.i13.base2flt.exit102_crit_edge.loopexit
|
||||
|
||||
bb4.i81: ; preds = %bb2.i79
|
||||
br i1 false, label %bb4.i81.bb11.i87_crit_edge, label %bb4.i81.bb2.i79_crit_edge
|
||||
|
||||
bb4.i81.bb2.i79_crit_edge: ; preds = %bb4.i81
|
||||
br label %bb2.i79
|
||||
|
||||
bb4.i81.bb11.i87_crit_edge: ; preds = %bb4.i81
|
||||
br label %bb11.i87
|
||||
|
||||
bb11.i87: ; preds = %bb10.i94.bb11.i87_crit_edge, %bb4.i81.bb11.i87_crit_edge
|
||||
br label %base2flt.exit102
|
||||
|
||||
bb10.i94: ; preds = %bb9.i97, %bb1.i73.bb10.i94_crit_edge
|
||||
br i1 false, label %bb7.i95, label %bb10.i94.bb11.i87_crit_edge
|
||||
|
||||
bb10.i94.bb11.i87_crit_edge: ; preds = %bb10.i94
|
||||
br label %bb11.i87
|
||||
|
||||
bb7.i95: ; preds = %bb10.i94
|
||||
br i1 false, label %bb7.i95.base2flt.exit102_crit_edge, label %bb9.i97
|
||||
|
||||
bb7.i95.base2flt.exit102_crit_edge: ; preds = %bb7.i95
|
||||
br label %base2flt.exit102
|
||||
|
||||
bb9.i97: ; preds = %bb7.i95
|
||||
br label %bb10.i94
|
||||
|
||||
base2flt.exit102: ; preds = %bb7.i95.base2flt.exit102_crit_edge, %bb11.i87, %bb1.i13.base2flt.exit102_crit_edge
|
||||
br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb3.i62
|
||||
|
||||
base2flt.exit102.mulflt.exit72_crit_edge: ; preds = %bb5.i63, %base2flt.exit102
|
||||
br label %mulflt.exit72
|
||||
|
||||
bb3.i62: ; preds = %base2flt.exit102
|
||||
br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb5.i63
|
||||
|
||||
bb3.i62.mulflt.exit72_crit_edge: ; preds = %bb8.i65, %bb3.i62
|
||||
br label %mulflt.exit72
|
||||
|
||||
bb5.i63: ; preds = %bb3.i62
|
||||
br i1 false, label %base2flt.exit102.mulflt.exit72_crit_edge, label %bb7.i64
|
||||
|
||||
bb7.i64: ; preds = %bb5.i63
|
||||
br i1 false, label %bb8.i65, label %bb7.i64.bb12.i69_crit_edge
|
||||
|
||||
bb7.i64.bb12.i69_crit_edge: ; preds = %bb7.i64
|
||||
br label %bb12.i69
|
||||
|
||||
bb8.i65: ; preds = %bb7.i64
|
||||
br i1 false, label %bb3.i62.mulflt.exit72_crit_edge, label %bb10.i66
|
||||
|
||||
bb10.i66: ; preds = %bb8.i65
|
||||
br label %bb12.i69
|
||||
|
||||
bb12.i69: ; preds = %bb10.i66, %bb7.i64.bb12.i69_crit_edge
|
||||
br label %mulflt.exit72
|
||||
|
||||
mulflt.exit72: ; preds = %bb12.i69, %bb3.i62.mulflt.exit72_crit_edge, %base2flt.exit102.mulflt.exit72_crit_edge
|
||||
br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb3.i50
|
||||
|
||||
mulflt.exit72.bb10.i58_crit_edge: ; preds = %bb3.i50, %mulflt.exit72
|
||||
br label %bb10.i58
|
||||
|
||||
bb3.i50: ; preds = %mulflt.exit72
|
||||
br i1 false, label %mulflt.exit72.bb10.i58_crit_edge, label %bb5.i51
|
||||
|
||||
bb5.i51: ; preds = %bb3.i50
|
||||
br i1 false, label %bb5.i51.bb9.i56_crit_edge, label %bb6.i52
|
||||
|
||||
bb5.i51.bb9.i56_crit_edge: ; preds = %bb5.i51
|
||||
br label %bb9.i56
|
||||
|
||||
bb6.i52: ; preds = %bb5.i51
|
||||
br i1 false, label %bb6.i52.bb10.i58_crit_edge, label %bb8.i53
|
||||
|
||||
bb6.i52.bb10.i58_crit_edge: ; preds = %bb6.i52
|
||||
br label %bb10.i58
|
||||
|
||||
bb8.i53: ; preds = %bb6.i52
|
||||
br label %bb9.i56
|
||||
|
||||
bb9.i56: ; preds = %bb8.i53, %bb5.i51.bb9.i56_crit_edge
|
||||
br label %bb15.preheader
|
||||
|
||||
bb10.i58: ; preds = %bb6.i52.bb10.i58_crit_edge, %mulflt.exit72.bb10.i58_crit_edge
|
||||
br label %bb15.preheader
|
||||
|
||||
bb15.preheader: ; preds = %bb10.i58, %bb9.i56
|
||||
br label %bb15
|
||||
|
||||
bb15: ; preds = %addflt.exit, %bb15.preheader
|
||||
br i1 false, label %bb15.bb18.loopexit_crit_edge, label %bb12
|
||||
|
||||
bb15.bb18.loopexit_crit_edge: ; preds = %bb15
|
||||
br label %bb18.loopexit
|
||||
|
||||
bb12: ; preds = %bb15
|
||||
br i1 false, label %bb12.bb18.loopexit_crit_edge, label %bb1.i21
|
||||
|
||||
bb12.bb18.loopexit_crit_edge: ; preds = %bb12
|
||||
br label %bb18.loopexit
|
||||
|
||||
bb1.i21: ; preds = %bb12
|
||||
br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb3.i37
|
||||
|
||||
bb1.i21.mulflt.exit47_crit_edge: ; preds = %bb5.i38, %bb1.i21
|
||||
br label %mulflt.exit47
|
||||
|
||||
bb3.i37: ; preds = %bb1.i21
|
||||
br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb5.i38
|
||||
|
||||
bb3.i37.mulflt.exit47_crit_edge: ; preds = %bb8.i40, %bb3.i37
|
||||
br label %mulflt.exit47
|
||||
|
||||
bb5.i38: ; preds = %bb3.i37
|
||||
br i1 false, label %bb1.i21.mulflt.exit47_crit_edge, label %bb7.i39
|
||||
|
||||
bb7.i39: ; preds = %bb5.i38
|
||||
br i1 false, label %bb8.i40, label %bb7.i39.bb12.i44_crit_edge
|
||||
|
||||
bb7.i39.bb12.i44_crit_edge: ; preds = %bb7.i39
|
||||
br label %bb12.i44
|
||||
|
||||
bb8.i40: ; preds = %bb7.i39
|
||||
br i1 false, label %bb3.i37.mulflt.exit47_crit_edge, label %bb10.i41
|
||||
|
||||
bb10.i41: ; preds = %bb8.i40
|
||||
br label %bb12.i44
|
||||
|
||||
bb12.i44: ; preds = %bb10.i41, %bb7.i39.bb12.i44_crit_edge
|
||||
br label %mulflt.exit47
|
||||
|
||||
mulflt.exit47: ; preds = %bb12.i44, %bb3.i37.mulflt.exit47_crit_edge, %bb1.i21.mulflt.exit47_crit_edge
|
||||
br i1 false, label %mulflt.exit47.base2flt.exit34_crit_edge, label %bb1.i15
|
||||
|
||||
mulflt.exit47.base2flt.exit34_crit_edge.loopexit: ; preds = %bb2.i20
|
||||
br label %mulflt.exit47.base2flt.exit34_crit_edge
|
||||
|
||||
mulflt.exit47.base2flt.exit34_crit_edge: ; preds = %mulflt.exit47.base2flt.exit34_crit_edge.loopexit, %mulflt.exit47
|
||||
br label %base2flt.exit34
|
||||
|
||||
bb1.i15: ; preds = %mulflt.exit47
|
||||
br i1 false, label %bb1.i15.bb10.i31_crit_edge, label %bb1.i15.bb2.i20_crit_edge
|
||||
|
||||
bb1.i15.bb2.i20_crit_edge: ; preds = %bb1.i15
|
||||
br label %bb2.i20
|
||||
|
||||
bb1.i15.bb10.i31_crit_edge: ; preds = %bb1.i15
|
||||
br label %bb10.i31
|
||||
|
||||
bb2.i20: ; preds = %bb4.i22.bb2.i20_crit_edge, %bb1.i15.bb2.i20_crit_edge
|
||||
br i1 false, label %bb4.i22, label %mulflt.exit47.base2flt.exit34_crit_edge.loopexit
|
||||
|
||||
bb4.i22: ; preds = %bb2.i20
|
||||
br i1 false, label %bb4.i22.bb11.i28_crit_edge, label %bb4.i22.bb2.i20_crit_edge
|
||||
|
||||
bb4.i22.bb2.i20_crit_edge: ; preds = %bb4.i22
|
||||
br label %bb2.i20
|
||||
|
||||
bb4.i22.bb11.i28_crit_edge: ; preds = %bb4.i22
|
||||
br label %bb11.i28
|
||||
|
||||
bb11.i28: ; preds = %bb10.i31.bb11.i28_crit_edge, %bb4.i22.bb11.i28_crit_edge
|
||||
br label %base2flt.exit34
|
||||
|
||||
bb10.i31: ; preds = %bb9.i33, %bb1.i15.bb10.i31_crit_edge
|
||||
br i1 false, label %bb7.i32, label %bb10.i31.bb11.i28_crit_edge
|
||||
|
||||
bb10.i31.bb11.i28_crit_edge: ; preds = %bb10.i31
|
||||
br label %bb11.i28
|
||||
|
||||
bb7.i32: ; preds = %bb10.i31
|
||||
br i1 false, label %bb7.i32.base2flt.exit34_crit_edge, label %bb9.i33
|
||||
|
||||
bb7.i32.base2flt.exit34_crit_edge: ; preds = %bb7.i32
|
||||
br label %base2flt.exit34
|
||||
|
||||
bb9.i33: ; preds = %bb7.i32
|
||||
br label %bb10.i31
|
||||
|
||||
base2flt.exit34: ; preds = %bb7.i32.base2flt.exit34_crit_edge, %bb11.i28, %mulflt.exit47.base2flt.exit34_crit_edge
|
||||
br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb3.i9
|
||||
|
||||
base2flt.exit34.mulflt.exit_crit_edge: ; preds = %bb5.i10, %base2flt.exit34
|
||||
br label %mulflt.exit
|
||||
|
||||
bb3.i9: ; preds = %base2flt.exit34
|
||||
br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb5.i10
|
||||
|
||||
bb3.i9.mulflt.exit_crit_edge: ; preds = %bb8.i11, %bb3.i9
|
||||
br label %mulflt.exit
|
||||
|
||||
bb5.i10: ; preds = %bb3.i9
|
||||
br i1 false, label %base2flt.exit34.mulflt.exit_crit_edge, label %bb7.i
|
||||
|
||||
bb7.i: ; preds = %bb5.i10
|
||||
br i1 false, label %bb8.i11, label %bb7.i.bb12.i_crit_edge
|
||||
|
||||
bb7.i.bb12.i_crit_edge: ; preds = %bb7.i
|
||||
br label %bb12.i
|
||||
|
||||
bb8.i11: ; preds = %bb7.i
|
||||
br i1 false, label %bb3.i9.mulflt.exit_crit_edge, label %bb10.i12
|
||||
|
||||
bb10.i12: ; preds = %bb8.i11
|
||||
br label %bb12.i
|
||||
|
||||
bb12.i: ; preds = %bb10.i12, %bb7.i.bb12.i_crit_edge
|
||||
br label %mulflt.exit
|
||||
|
||||
mulflt.exit: ; preds = %bb12.i, %bb3.i9.mulflt.exit_crit_edge, %base2flt.exit34.mulflt.exit_crit_edge
|
||||
br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb3.i
|
||||
|
||||
mulflt.exit.addflt.exit_crit_edge: ; preds = %bb3.i, %mulflt.exit
|
||||
br label %addflt.exit
|
||||
|
||||
bb3.i: ; preds = %mulflt.exit
|
||||
br i1 false, label %mulflt.exit.addflt.exit_crit_edge, label %bb5.i
|
||||
|
||||
bb5.i: ; preds = %bb3.i
|
||||
br i1 false, label %bb5.i.bb9.i_crit_edge, label %bb6.i
|
||||
|
||||
bb5.i.bb9.i_crit_edge: ; preds = %bb5.i
|
||||
br label %bb9.i
|
||||
|
||||
bb6.i: ; preds = %bb5.i
|
||||
br i1 false, label %bb6.i.addflt.exit_crit_edge, label %bb8.i
|
||||
|
||||
bb6.i.addflt.exit_crit_edge: ; preds = %bb6.i
|
||||
br label %addflt.exit
|
||||
|
||||
bb8.i: ; preds = %bb6.i
|
||||
br label %bb9.i
|
||||
|
||||
bb9.i: ; preds = %bb8.i, %bb5.i.bb9.i_crit_edge
|
||||
br label %addflt.exit
|
||||
|
||||
addflt.exit: ; preds = %bb9.i, %bb6.i.addflt.exit_crit_edge, %mulflt.exit.addflt.exit_crit_edge
|
||||
br label %bb15
|
||||
|
||||
bb18.loopexit: ; preds = %bb12.bb18.loopexit_crit_edge, %bb15.bb18.loopexit_crit_edge
|
||||
ret i32 0
|
||||
}
|
3
test/Transforms/CodeGenPrepare/dg.exp
Normal file
3
test/Transforms/CodeGenPrepare/dg.exp
Normal file
@ -0,0 +1,3 @@
|
||||
load_lib llvm.exp
|
||||
|
||||
RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.ll]]
|
Loading…
x
Reference in New Issue
Block a user