1 ; REQUIRES: asserts 2 ; RUN: opt < %s -passes='print<domfrontier>' 2>&1 | FileCheck %s 3 4 define void @a_linear_impl_fig_1() nounwind { 5 0: 6 br label %"1" 7 1: 8 br label %"2" 9 2: 10 br label %"3" 11 3: 12 br i1 1, label %"13", label %"4" 13 4: 14 br i1 1, label %"5", label %"1" 15 5: 16 br i1 1, label %"8", label %"6" 17 6: 18 br i1 1, label %"7", label %"4" 19 7: 20 ret void 21 8: 22 br i1 1, label %"9", label %"1" 23 9: 24 br label %"10" 25 10: 26 br i1 1, label %"12", label %"11" 27 11: 28 br i1 1, label %"9", label %"8" 29 13: 30 br i1 1, label %"2", label %"1" 31 12: 32 switch i32 0, label %"1" [ i32 0, label %"9" 33 i32 1, label %"8"] 34 } 35 36 ; CHECK: DominanceFrontier for function: a_linear_impl_fig_1 37 ; CHECK-DAG: DomFrontier for BB %"0" is: 38 ; CHECK-DAG: DomFrontier for BB %"11" is: %"{{[8|9]}}" %"{{[8|9]}}" 39 ; CHECK-DAG: DomFrontier for BB %"1" is: %"1" 40 ; CHECK-DAG: DomFrontier for BB %"2" is: %"{{[1|2]}}" %"{{[1|2]}}" 41 ; CHECK-DAG: DomFrontier for BB %"3" is: %"{{[1|2]}}" %"{{[1|2]}}" 42 ; CHECK-DAG: DomFrontier for BB %"13" is: %"{{[1|2]}}" %"{{[1|2]}}" 43 ; CHECK-DAG: DomFrontier for BB %"4" is: %"{{[1|4]}}" %"{{[1|4]}}" 44 ; CHECK-DAG: DomFrontier for BB %"5" is: %"{{[1|4]}}" %"{{[1|4]}}" 45 ; CHECK-DAG: DomFrontier for BB %"8" is: %"{{[1|8]}}" %"{{[1|8]}}" 46 ; CHECK-DAG: DomFrontier for BB %"6" is: %"4" 47 ; CHECK-DAG: DomFrontier for BB %"7" is: 48 ; CHECK-DAG: DomFrontier for BB %"9" is: %"{{[1|8|9]}}" %"{{[1|8|9]}}" %"{{[1|8|9]}}" 49 ; CHECK-DAG: DomFrontier for BB %"10" is: %"{{[1|8|9]}}" %"{{[1|8|9]}}" %"{{[1|8|9]}}" 50 ; CHECK-DAG: DomFrontier for BB %"12" is: %"{{[1|8|9]}}" %"{{[1|8|9]}}" %"{{[1|8|9]}}" 51