llvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll
Devang Patel 28ae151c48 Update dominator info for the middle blocks created while spliting
exit edge to preserve LCSSA.

Fix dominance frontier update during loop unswitch. This fixes PR 1589.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40695 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-01 22:23:50 +00:00

31 lines
931 B
LLVM

; RUN: llvm-as < %s | opt -licm -loop-unswitch -disable-output
; PR 1589
%struct.QBasicAtomic = type { i32 }
define void @_ZNK5QDate9addMonthsEi(%struct.QBasicAtomic* sret %agg.result, %struct.QBasicAtomic* %this, i32 %nmonths) {
entry:
br label %cond_true90
bb16: ; preds = %cond_true90
br i1 false, label %bb93, label %cond_true90
bb45: ; preds = %cond_true90
br i1 false, label %bb53, label %bb58
bb53: ; preds = %bb45
br i1 false, label %bb93, label %cond_true90
bb58: ; preds = %bb45
store i32 0, i32* null, align 4
br i1 false, label %cond_true90, label %bb93
cond_true90: ; preds = %bb58, %bb53, %bb16, %entry
%nmonths_addr.016.1 = phi i32 [ %nmonths, %entry ], [ 0, %bb16 ], [ 0, %bb53 ], [ %nmonths_addr.016.1, %bb58 ] ; <i32> [#uses=2]
%tmp14 = icmp slt i32 %nmonths_addr.016.1, -11 ; <i1> [#uses=1]
br i1 %tmp14, label %bb16, label %bb45
bb93: ; preds = %bb58, %bb53, %bb16
ret void
}