Skip to content

Commit cfeb796

Browse files
committed
Address review comments
1 parent cc8d94a commit cfeb796

File tree

8 files changed

+145
-49
lines changed

8 files changed

+145
-49
lines changed

llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/filter-all-after.ll.expected renamed to llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/filter-out-after.ll.expected

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-all-after "^b2:" --version 5
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-out-after "^b2:" --version 5
22
; RUN: opt < %s -S | FileCheck %s
33

44
define i32 @func({i32, i32} %x, i32 %y, i1 %cond) {

llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/filter-all-after.ll.expected2 renamed to llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/filter-out-after.ll.expected2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-all-after "= mul i32" --filter-all-after "^b2:" --version 5
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-out-after "= mul i32" --filter-out-after "^b2:" --version 5
22
; RUN: opt < %s -S | FileCheck %s
33

44
define i32 @func({i32, i32} %x, i32 %y, i1 %cond) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
; RUN: opt < %s -S | FileCheck %s
2+
3+
define i32 @func1({i32, i32} %x, i32 %y, i1 %cond) {
4+
entry:
5+
br i1 %cond, label %b1, label %b2
6+
7+
b1:
8+
%x.idx0 = extractvalue {i32, i32} %x, 0
9+
%add1 = add i32 %y, 1
10+
%add2 = add i32 %x.idx0, %add1
11+
%mul = mul i32 %add2, 3
12+
br label %b2
13+
14+
b2:
15+
%res = phi i32 [ -1, %entry ], [ %mul, %b1 ]
16+
ret i32 %res
17+
}
18+
19+
define i32 @func2({i32, i32} %x, i32 %y, i1 %cond) {
20+
entry:
21+
br i1 %cond, label %b2, label %b0
22+
23+
b2:
24+
%x.idx0 = extractvalue {i32, i32} %x, 0
25+
%add1 = add i32 %y, 1
26+
%add2 = add i32 %x.idx0, %add1
27+
%mul = mul i32 %add2, 3
28+
br label %b0
29+
30+
b0:
31+
%res = phi i32 [ -1, %entry ], [ %mul, %b2 ]
32+
ret i32 %res
33+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-out-after "^b2:" --version 5
2+
; RUN: opt < %s -S | FileCheck %s
3+
4+
define i32 @func1({i32, i32} %x, i32 %y, i1 %cond) {
5+
; CHECK-LABEL: define i32 @func1(
6+
; CHECK-SAME: { i32, i32 } [[X:%.*]], i32 [[Y:%.*]], i1 [[COND:%.*]]) {
7+
; CHECK-NEXT: [[ENTRY:.*:]]
8+
; CHECK-NEXT: br i1 [[COND]], label %[[B1:.*]], label %[[B2:.*]]
9+
; CHECK: [[B1]]:
10+
; CHECK-NEXT: [[X_IDX0:%.*]] = extractvalue { i32, i32 } [[X]], 0
11+
; CHECK-NEXT: [[ADD1:%.*]] = add i32 [[Y]], 1
12+
; CHECK-NEXT: [[ADD2:%.*]] = add i32 [[X_IDX0]], [[ADD1]]
13+
; CHECK-NEXT: [[MUL:%.*]] = mul i32 [[ADD2]], 3
14+
; CHECK-NEXT: br label %[[B2]]
15+
; CHECK: [[B2]]:
16+
;
17+
entry:
18+
br i1 %cond, label %b1, label %b2
19+
20+
b1:
21+
%x.idx0 = extractvalue {i32, i32} %x, 0
22+
%add1 = add i32 %y, 1
23+
%add2 = add i32 %x.idx0, %add1
24+
%mul = mul i32 %add2, 3
25+
br label %b2
26+
27+
b2:
28+
%res = phi i32 [ -1, %entry ], [ %mul, %b1 ]
29+
ret i32 %res
30+
}
31+
32+
define i32 @func2({i32, i32} %x, i32 %y, i1 %cond) {
33+
; CHECK-LABEL: define i32 @func2(
34+
; CHECK-SAME: { i32, i32 } [[X:%.*]], i32 [[Y:%.*]], i1 [[COND:%.*]]) {
35+
; CHECK-NEXT: [[ENTRY:.*:]]
36+
; CHECK-NEXT: br i1 [[COND]], label %[[B2:.*]], [[B0:label %.*]]
37+
; CHECK: [[B2]]:
38+
;
39+
entry:
40+
br i1 %cond, label %b2, label %b0
41+
42+
b2:
43+
%x.idx0 = extractvalue {i32, i32} %x, 0
44+
%add1 = add i32 %y, 1
45+
%add2 = add i32 %x.idx0, %add1
46+
%mul = mul i32 %add2, 3
47+
br label %b0
48+
49+
b0:
50+
%res = phi i32 [ -1, %entry ], [ %mul, %b2 ]
51+
ret i32 %res
52+
}

llvm/test/tools/UpdateTestChecks/update_test_checks/filter_all_after.test

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## Check that --filter-out-after works properly.
2+
# RUN: cp -f %S/Inputs/filter-out-after.ll %t.ll && %update_test_checks --version=5 --filter-out-after="^b2:" %t.ll
3+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected
4+
5+
## Check that running the script again does not change the result:
6+
# RUN: %update_test_checks --version=5 --filter-out-after="^b2:" %t.ll
7+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected
8+
9+
## Check that running the script again, without arguments, does not change the result:
10+
# RUN: %update_test_checks --version=5 %t.ll
11+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected
12+
13+
## Check that multiple --filter-out-after options work properly.
14+
# RUN: cp -f %S/Inputs/filter-out-after.ll %t.ll && %update_test_checks --version=5 --filter-out-after="= mul i32" --filter-out-after="^b2:" %t.ll
15+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected2
16+
17+
## Check that running the script again does not change the result:
18+
# RUN: %update_test_checks --version=5 --filter-out-after="= mul i32" --filter-out-after="^b2:" %t.ll
19+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected2
20+
21+
## Check that running the script again, without arguments, does not change the result:
22+
# RUN: %update_test_checks --version=5 %t.ll
23+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after.ll.expected2
24+
25+
## Check that --filter-out-after works per function only.
26+
# RUN: cp -f %S/Inputs/filter-out-after2.ll %t.ll && %update_test_checks --version=5 --filter-out-after="^b2:" %t.ll
27+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after2.ll.expected
28+
29+
## Check that running the script again does not change the result:
30+
# RUN: %update_test_checks --version=5 --filter-out-after="^b2:" %t.ll
31+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after2.ll.expected
32+
33+
## Check that running the script again, without arguments, does not change the result:
34+
# RUN: %update_test_checks --version=5 %t.ll
35+
# RUN: diff -u %t.ll %S/Inputs/filter-out-after2.ll.expected

llvm/utils/UpdateTestChecks/common.py

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,17 @@ class Filter(Regex):
7474
7575
"""
7676

77-
def __init__(self, regex, is_filter_out, is_filter_all_after):
77+
def __init__(self, regex, is_filter_out, is_filter_out_after):
7878
super(Filter, self).__init__(regex)
79-
if is_filter_out and is_filter_all_after:
80-
raise ValueError("cannot use both --filter-out and --filter-all-after")
79+
if is_filter_out and is_filter_out_after:
80+
raise ValueError("cannot use both --filter-out and --filter-out-after")
8181
self.is_filter_out = is_filter_out
82-
self.is_filter_all_after = is_filter_all_after
82+
self.is_filter_out_after = is_filter_out_after
8383

8484
def __deepcopy__(self, memo):
8585
result = copy.deepcopy(super(Filter, self), memo)
8686
result.is_filter_out = copy.deepcopy(self.is_filter_out, memo)
87-
result.is_filter_all_after = copy.deepcopy(self.is_filter_all_after, memo)
87+
result.is_filter_out_after = copy.deepcopy(self.is_filter_out_after, memo)
8888
return result
8989

9090

@@ -131,10 +131,10 @@ def __call__(self, parser, namespace, values, option_string=None):
131131

132132
is_filter_out = option_string == "--filter-out"
133133

134-
is_filter_all_after = option_string == "--filter-all-after"
134+
is_filter_out_after = option_string == "--filter-out-after"
135135

136136
value_list[-1] = Filter(
137-
value_list[-1].regex, is_filter_out, is_filter_all_after
137+
value_list[-1].regex, is_filter_out, is_filter_out_after
138138
)
139139

140140
setattr(namespace, self.dest, value_list)
@@ -160,11 +160,11 @@ def __call__(self, parser, namespace, values, option_string=None):
160160
help="Exclude lines matching REGEX",
161161
)
162162
filter_group.add_argument(
163-
"--filter-all-after",
163+
"--filter-out-after",
164164
action=FilterAction,
165165
dest="filters",
166166
metavar="REGEX",
167-
help="Exclude all lines after line matching REGEX",
167+
help="Exclude all lines within a given function after line matching REGEX",
168168
)
169169

170170
parser.add_argument(
@@ -686,7 +686,7 @@ def get_globals_name_prefix(raw_tool_output):
686686
def apply_filters(line, filters):
687687
has_filter = False
688688
for f in filters:
689-
if f.is_filter_all_after:
689+
if f.is_filter_out_after:
690690
continue
691691
if not f.is_filter_out:
692692
has_filter = True
@@ -697,19 +697,19 @@ def apply_filters(line, filters):
697697
return False if has_filter else True
698698

699699

700-
def has_filter_all(filters):
700+
def has_filter_out_after(filters):
701701
for f in filters:
702-
if f.is_filter_all_after:
702+
if f.is_filter_out_after:
703703
return True
704704
return False
705705

706706

707-
def filter_all_after(body, filters):
707+
def filter_out_after(body, filters):
708708
lines = []
709709
for line in body.splitlines():
710710
lines.append(line)
711711
for f in filters:
712-
if f.is_filter_all_after:
712+
if f.is_filter_out_after:
713713
if f.search(line):
714714
return lines
715715
return lines
@@ -718,10 +718,10 @@ def filter_all_after(body, filters):
718718
def do_filter(body, filters):
719719
if not filters:
720720
return body
721-
has_filter_after = has_filter_all(filters)
721+
filter_out_after_flag = has_filter_out_after(filters)
722722
lines = []
723-
if has_filter_after:
724-
lines = filter_all_after(body, filters)
723+
if filter_out_after_flag:
724+
lines = filter_out_after(body, filters)
725725
else:
726726
lines = body.splitlines()
727727
return "\n".join(filter(lambda line: apply_filters(line, filters), lines))
@@ -827,7 +827,7 @@ def __init__(self, run_list, flags, scrubber_args, path, ginfo):
827827
lambda f: Filter(
828828
re.compile(f.pattern().strip('"'), f.flags()),
829829
f.is_filter_out,
830-
f.is_filter_all_after,
830+
f.is_filter_out_after,
831831
),
832832
flags.filters,
833833
)
@@ -870,11 +870,10 @@ def global_var_dict(self):
870870
return self._global_var_dict
871871

872872
def is_filtered(self):
873-
total_filters = 0
874873
for f in self._filters:
875-
if not f.is_filter_all_after:
876-
total_filters += 1
877-
return bool(total_filters)
874+
if not f.is_filter_out_after:
875+
return True
876+
return False
878877

879878
def process_run_line(self, function_re, scrubber, raw_tool_output, prefixes):
880879
build_global_values_dictionary(
@@ -2571,8 +2570,8 @@ def get_autogennote_suffix(parser, args):
25712570
for elem in value:
25722571
if elem.is_filter_out:
25732572
opt_name = "filter-out"
2574-
elif elem.is_filter_all_after:
2575-
opt_name = "filter-all-after"
2573+
elif elem.is_filter_out_after:
2574+
opt_name = "filter-out-after"
25762575
else:
25772576
opt_name = "filter"
25782577
opt_value = elem.pattern()

0 commit comments

Comments
 (0)