• 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 %12, 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 %13, label %11
2711:
28  br i1 1, label %9, label %8
2912:
30  br i1 1, label %2, label %1
3113:
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 %12 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 %13 is:   %{{[1|8|9]}} %{{[1|8|9]}} %{{[1|8|9]}}
51