1
0
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:
Joel E. Denny 2021-07-20 11:17:50 -04:00
parent 83266a3de4
commit 2be8d8a8b3

View File

@ -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