• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; REQUIRES: asserts
2; RUN: opt  < %s -passes='print<domfrontier>'  2>&1 | FileCheck %s
3
4define void @a_linear_impl_fig_1() nounwind {
50:
6  br label %"1"
71:
8  br label %"2"
92:
10  br label %"3"
113:
12  br i1 1, label %"13", label %"4"
134:
14  br i1 1, label %"5", label %"1"
155:
16  br i1 1, label %"8", label %"6"
176:
18  br i1 1, label %"7", label %"4"
197:
20  ret void
218:
22  br i1 1, label %"9", label %"1"
239:
24  br label %"10"
2510:
26  br i1 1, label %"12", label %"11"
2711:
28  br i1 1, label %"9", label %"8"
2913:
30  br i1 1, label %"2", label %"1"
3112:
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