Support other llc-like tools in update_llc_test_checks.py
authorDaniel Sanders <daniel_l_sanders@apple.com>
Mon, 1 Jun 2020 18:50:53 +0000 (11:50 -0700)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Thu, 11 Jun 2020 00:30:07 +0000 (17:30 -0700)
Summary:
If you have downstream tools that are llc-like (e.g, llc with different
defaults), it's convenient to still be able to use
`update_llc_test_checks` with them. Refactor slightly to allow such tools
to be supported by adding them to LLC_LIKE_TOOLS

Reviewers: bogner

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80960

llvm/utils/update_llc_test_checks.py

index 23df4e1..d873c60 100755 (executable)
@@ -20,11 +20,13 @@ import re
 from UpdateTestChecks import asm, common
 
 ADVERT = ' NOTE: Assertions have been autogenerated by '
-
+# llc is the only llc-like in the LLVM tree but downstream forks can add
+# additional ones here if they have them.
+LLC_LIKE_TOOLS = ('llc',) 
 
 def main():
   parser = argparse.ArgumentParser(description=__doc__)
-  parser.add_argument('--llc-binary', default='llc',
+  parser.add_argument('--llc-binary', default=None,
                       help='The "llc" binary to use to generate the test case')
   parser.add_argument(
       '--function', help='The function in the test file to update')
@@ -91,7 +93,7 @@ def main():
       if len(commands) > 1:
         filecheck_cmd = commands[1]
       common.verify_filecheck_prefixes(filecheck_cmd)
-      if llc_tool != 'llc':
+      if llc_tool not in LLC_LIKE_TOOLS:
         common.warn('Skipping non-llc RUN line: ' + l)
         continue
 
@@ -129,7 +131,8 @@ def main():
       common.debug('Extracted LLC cmd:', llc_tool, llc_args)
       common.debug('Extracted FileCheck prefixes:', str(prefixes))
 
-      raw_tool_output = common.invoke_tool(args.llc_binary, llc_args, test)
+      raw_tool_output = common.invoke_tool(args.llc_binary or llc_tool,
+                                           llc_args, test)
       triple = triple_in_cmd or triple_in_ir
       if not triple:
         triple = asm.get_triple_from_march(march_in_cmd)