• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: opt %loadPolly -pass-remarks-analysis="polly-scops" -polly-scops -analyze < %s 2>&1 > /dev/null | FileCheck %s
2;
3; Error statements (%bb33) do not require their uses to be verified.
4; In this case it uses %tmp32 from %bb31 which is not available because
5; %bb31 is an error statement as well.
6
7target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
8
9declare noalias i8* @widget()
10
11declare void @quux()
12
13define void @func(i32 %tmp3, i32 %tmp7, i32 %tmp17, i32 %tmp26, i32 %tmp19) {
14bb:
15  br label %bb2
16
17bb2:                                              ; preds = %bb
18  %tmp4 = icmp eq i32 %tmp3, 0
19  br i1 %tmp4, label %bb5, label %bb16
20
21bb5:                                              ; preds = %bb2
22  %tmp8 = icmp eq i32 %tmp7, 0
23  br i1 %tmp8, label %bb16, label %bb36
24
25bb16:                                             ; preds = %bb5, %bb2
26  %tmp18 = icmp eq i32 %tmp17, 0
27  %tmp20 = icmp eq i32 %tmp19, 0
28  %tmp21 = or i1 %tmp18, %tmp20
29  br i1 %tmp21, label %bb31, label %bb25
30
31bb25:                                             ; preds = %bb25, %bb16
32  %tmp27 = icmp eq i32 %tmp26, 0
33  br i1 %tmp27, label %bb31, label %bb25
34
35bb31:                                             ; preds = %bb25, %bb16
36  %tmp32 = call noalias i8* @widget()
37  br label %bb33
38
39bb33:                                             ; preds = %bb31
40  call void @quux()
41  %tmp34 = icmp eq i8* %tmp32, null
42  br label %bb36
43
44bb36:                                             ; preds = %bb33, %bb5
45  ret void
46}
47
48
49; CHECK:      SCoP begins here.
50; CHECK-NEXT: Low complexity assumption:       {  : false }
51; CHECK-NEXT: SCoP ends here but was dismissed.
52