[PATCH] D97107: Replace func name with regex in update_cc_test_checks
Giorgis Georgakoudis via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 19 20:23:15 PST 2021
ggeorgakoudis created this revision.
Herald added a subscriber: arichardson.
ggeorgakoudis requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D97107
Files:
llvm/utils/UpdateTestChecks/common.py
llvm/utils/update_cc_test_checks.py
Index: llvm/utils/update_cc_test_checks.py
===================================================================
--- llvm/utils/update_cc_test_checks.py
+++ llvm/utils/update_cc_test_checks.py
@@ -147,6 +147,8 @@
help='Keep function signature information around for the check line')
parser.add_argument('--check-attributes', action='store_true',
help='Check "Function Attributes" for functions')
+ parser.add_argument('--replace-function-regex', nargs='+',
+ help='List of regular expressions to replace matching function names')
parser.add_argument('tests', nargs='+')
args = common.parse_commandline_args(parser)
infer_dependent_args(args)
@@ -291,11 +293,23 @@
# Now generate all the checks.
def check_generator(my_output_lines, prefixes, func):
if '-emit-llvm' in clang_args:
+ func_repl = None
+ # Replace function name if matching a regex
+ for regex in initial_args.replace_function_regex:
+ match = re.match(regex, func)
+ if match:
+ func_repl = regex
+ for g in match.groups():
+ func_repl = re.sub('\(.*\)', g, func_repl)
+ func_repl = '{{' + func_repl + '}}'
+ # Break after the first matching regex.
+ break
+
common.add_ir_checks(my_output_lines, '//',
prefixes,
func_dict, func, False,
ti.args.function_signature,
- global_vars_seen_dict)
+ global_vars_seen_dict, func_repl)
else:
asm.add_asm_checks(my_output_lines, '//',
prefixes,
Index: llvm/utils/UpdateTestChecks/common.py
===================================================================
--- llvm/utils/UpdateTestChecks/common.py
+++ llvm/utils/UpdateTestChecks/common.py
@@ -577,7 +577,13 @@
break
def add_ir_checks(output_lines, comment_marker, prefix_list, func_dict,
- func_name, preserve_names, function_sig, global_vars_seen_dict):
+ func_name, preserve_names, function_sig, global_vars_seen_dict, func_name_repl=None):
+ # Replace function name.
+ if func_name_repl:
+ for prefix in func_dict:
+ if func_name in func_dict[prefix]:
+ func_dict[prefix][func_name_repl] = func_dict[prefix][func_name]
+ func_name = func_name_repl
# Label format is based on IR string.
function_def_regex = 'define {{[^@]+}}' if function_sig else ''
check_label_format = '{} %s-LABEL: {}@%s%s'.format(comment_marker, function_def_regex)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97107.325146.patch
Type: text/x-patch
Size: 2716 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210220/0fd295e8/attachment.bin>
More information about the llvm-commits
mailing list