llvm-project

Форк
0
/
only_func_flag_regex.ll 
129 строк · 3.6 Кб
1
; RUN: opt %loadNPMPolly -polly-only-func=f.*,g.* '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s
2
;
3
; Check that the flag `-polly-only-func` works with regexes.
4
;
5
; CHECK:      Function: f1
6
; CHECK-NEXT:    Region: %for.cond---%for.end
7
;
8
; CHECK:      Function: f2
9
; CHECK-NEXT:    Region: %for.cond---%for.end
10
;
11
; CHECK:      Function: g1
12
; CHECK-NEXT:    Region: %for.cond---%for.end
13
;
14
; CHECK-NOT:      Function: h
15
;
16
; void f1(int* sum) {
17
;   for (int i = 0; i <= 100; i++)
18
;     sum += i * 3;
19
; }
20
; void f2(int* sum) {
21
;   for (int i = 0; i <= 100; i++)
22
;     sum += i * 3;
23
; }
24
; void g1(int* sum) {
25
;   for (int i = 0; i <= 100; i++)
26
;     sum += i * 3;
27
; }
28
; void h(int* sum) {
29
;   for (int i = 0; i <= 100; i++)
30
;     sum += i * 3;
31
; }
32
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
33

34
define void @f1(ptr %sum) {
35
entry:
36
  br label %entry.split1
37

38
entry.split1:                                     ; preds = %entry
39
  br label %entry.split
40

41
entry.split:                                      ; preds = %entry.split1
42
  br label %for.cond
43

44
for.cond:                                         ; preds = %for.cond, %entry.split
45
  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
46
  %sum.reload = load i32, ptr %sum
47
  %mul = mul nsw i32 %i1.0, 3
48
  %add = add nsw i32 %sum.reload, %mul
49
  %inc = add nsw i32 %i1.0, 1
50
  store i32 %add, ptr %sum
51
  %cmp = icmp slt i32 %i1.0, 100
52
  br i1 %cmp, label %for.cond, label %for.end
53

54
for.end:                                          ; preds = %for.cond
55
  ret void
56
}
57

58

59
define void @f2(ptr %sum) {
60
entry:
61
  br label %entry.split1
62

63
entry.split1:                                     ; preds = %entry
64
  br label %entry.split
65

66
entry.split:                                      ; preds = %entry.split1
67
  br label %for.cond
68

69
for.cond:                                         ; preds = %for.cond, %entry.split
70
  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
71
  %sum.reload = load i32, ptr %sum
72
  %mul = mul nsw i32 %i1.0, 3
73
  %add = add nsw i32 %sum.reload, %mul
74
  %inc = add nsw i32 %i1.0, 1
75
  store i32 %add, ptr %sum
76
  %cmp = icmp slt i32 %i1.0, 100
77
  br i1 %cmp, label %for.cond, label %for.end
78

79
for.end:                                          ; preds = %for.cond
80
  ret void
81
}
82

83
define void @g1(ptr %sum) {
84
entry:
85
  br label %entry.split1
86

87
entry.split1:                                     ; preds = %entry
88
  br label %entry.split
89

90
entry.split:                                      ; preds = %entry.split1
91
  br label %for.cond
92

93
for.cond:                                         ; preds = %for.cond, %entry.split
94
  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
95
  %sum.reload = load i32, ptr %sum
96
  %mul = mul nsw i32 %i1.0, 3
97
  %add = add nsw i32 %sum.reload, %mul
98
  %inc = add nsw i32 %i1.0, 1
99
  store i32 %add, ptr %sum
100
  %cmp = icmp slt i32 %i1.0, 100
101
  br i1 %cmp, label %for.cond, label %for.end
102

103
for.end:                                          ; preds = %for.cond
104
  ret void
105
}
106

107
define void @h(ptr %sum) {
108
entry:
109
  br label %entry.split1
110

111
entry.split1:                                     ; preds = %entry
112
  br label %entry.split
113

114
entry.split:                                      ; preds = %entry.split1
115
  br label %for.cond
116

117
for.cond:                                         ; preds = %for.cond, %entry.split
118
  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
119
  %sum.reload = load i32, ptr %sum
120
  %mul = mul nsw i32 %i1.0, 3
121
  %add = add nsw i32 %sum.reload, %mul
122
  %inc = add nsw i32 %i1.0, 1
123
  store i32 %add, ptr %sum
124
  %cmp = icmp slt i32 %i1.0, 100
125
  br i1 %cmp, label %for.cond, label %for.end
126

127
for.end:                                          ; preds = %for.cond
128
  ret void
129
}
130

131

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.