mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 02:33:06 +01:00
[UpdateCCTestChecks] Implement --global-value-regex
`--check-globals` activates checks for all global values, and `--global-value-regex` filters them. For example, I'd like to use it in OpenMP offload codegen tests to check only global variables like `.offload_maptypes*`. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D104742
This commit is contained in:
parent
83266a3de4
commit
2be8d8a8b3
@ -36,9 +36,12 @@ def parse_commandline_args(parser):
|
||||
help='List of regular expressions to replace matching value names')
|
||||
parser.add_argument('--prefix-filecheck-ir-name', default='',
|
||||
help='Add a prefix to FileCheck IR value names to avoid conflicts with scripted names')
|
||||
parser.add_argument('--global-value-regex', nargs='+', default=[],
|
||||
help='List of regular expressions that a global value declaration must match to generate a check (has no effect if checking globals is not enabled)')
|
||||
args = parser.parse_args()
|
||||
global _verbose
|
||||
global _verbose, _global_value_regex
|
||||
_verbose = args.verbose
|
||||
_global_value_regex = args.global_value_regex
|
||||
return args
|
||||
|
||||
|
||||
@ -796,13 +799,27 @@ def add_global_checks(glob_val_dict, comment_marker, prefix_list, output_lines,
|
||||
if not glob_val_dict[checkprefix][nameless_value.check_prefix]:
|
||||
continue
|
||||
|
||||
output_lines.append(comment_marker + SEPARATOR)
|
||||
|
||||
check_lines = []
|
||||
global_vars_seen_before = [key for key in global_vars_seen.keys()]
|
||||
for line in glob_val_dict[checkprefix][nameless_value.check_prefix]:
|
||||
if _global_value_regex:
|
||||
matched = False
|
||||
for regex in _global_value_regex:
|
||||
if re.match('^@' + regex + ' = ', line):
|
||||
matched = True
|
||||
break
|
||||
if not matched:
|
||||
continue
|
||||
tmp = generalize_check_lines([line], is_analyze, set(), global_vars_seen)
|
||||
check_line = '%s %s: %s' % (comment_marker, checkprefix, tmp[0])
|
||||
check_lines.append(check_line)
|
||||
if not check_lines:
|
||||
continue
|
||||
|
||||
output_lines.append(comment_marker + SEPARATOR)
|
||||
for check_line in check_lines:
|
||||
output_lines.append(check_line)
|
||||
|
||||
printed_prefixes.add((checkprefix, nameless_value.check_prefix))
|
||||
|
||||
# Remembe new global variables we have not seen before
|
||||
|
Loading…
Reference in New Issue
Block a user