[llvm] 87f8a08 - [Utils] Add a switch controlling prefix warnings in UpdateTestChecks

Mircea Trofin via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 1 18:14:56 PST 2021


Author: Mircea Trofin
Date: 2021-02-01T18:04:18-08:00
New Revision: 87f8a08ce36e5bc72f11129d2cf36b5848f86f63

URL: https://github.com/llvm/llvm-project/commit/87f8a08ce36e5bc72f11129d2cf36b5848f86f63
DIFF: https://github.com/llvm/llvm-project/commit/87f8a08ce36e5bc72f11129d2cf36b5848f86f63.diff

LOG: [Utils] Add a switch controlling prefix warnings in UpdateTestChecks

The switch controls both unused prefix warnings, and warnings about
functions which differ under different runs for a prefix, and, thus, end
up not having asserts for that prefix.

(If the latter case spans to all functions, then the former case kicks
in)

The switch is on by default, and can be disabled.

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

Added: 
    

Modified: 
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-different-bodies.test
    llvm/utils/UpdateTestChecks/common.py

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-
diff erent-bodies.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-
diff erent-bodies.test
index 409114db02b3..4109ce9c24be 100644
--- a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-
diff erent-bodies.test
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-
diff erent-bodies.test
@@ -3,7 +3,9 @@
 # RUN: cp -f %S/Inputs/common-label-
diff erent-bodies-1.ll %t-1.ll
 # RUN: cp -f %S/Inputs/common-label-
diff erent-bodies-2.ll %t-2.ll
 # RUN: cp -f %S/Inputs/common-label-
diff erent-bodies-3.ll %t-3.ll
-# RUN: %update_llc_test_checks %t-1.ll
+# RUN: cp -f %S/Inputs/common-label-
diff erent-bodies-3.ll %t-4.ll
+# RUN: %update_llc_test_checks %t-1.ll 2>&1 | FileCheck %s --check-prefix=WARNINGS
+# RUN: %update_llc_test_checks --disable-verbose-prefix-warnings %t-4.ll 2>&1 | FileCheck %s --check-prefix=NOWARNINGS --allow-empty
 # RUN: %update_llc_test_checks %t-2.ll
 # RUN: %update_llc_test_checks %t-3.ll
 # RUN: FileCheck --input-file=%t-1.ll %s
@@ -11,4 +13,7 @@
 # RUN: FileCheck --input-file=%t-3.ll %s
 
 # CHECK: B-LABEL: fold_v2i64
-# CHECK-NOT: A-LABEL: fold_v2i64
\ No newline at end of file
+# CHECK-NOT: A-LABEL: fold_v2i64
+# WARNINGS: WARNING: Function fold_v2i64 had conflicting output from 
diff erent RUN lines for prefix A
+# WARNINGS: WARNING: Prefix A had conflicting output from 
diff erent RUN lines for all functions
+# NOWARNINGS-NOT: WARNING
\ No newline at end of file

diff  --git a/llvm/utils/UpdateTestChecks/common.py b/llvm/utils/UpdateTestChecks/common.py
index 4befaec651ae..a77dc6319f0e 100644
--- a/llvm/utils/UpdateTestChecks/common.py
+++ b/llvm/utils/UpdateTestChecks/common.py
@@ -30,9 +30,14 @@ def parse_commandline_args(parser):
                        help='Activate CHECK line generation from this point forward')
   parser.add_argument('--disable', action='store_false', dest='enabled',
                       help='Deactivate CHECK line generation from this point forward')
+  parser.add_argument('--disable-verbose-prefix-warnings', action='store_false', 
+                      default=True,
+                      dest='verbose_prefix_warnings',
+                      help='Disable warnings about unused prefixes.')
   args = parser.parse_args()
-  global _verbose
+  global _verbose, _verbose_prefix_warnings
   _verbose = args.verbose
+  _verbose_prefix_warnings = args.verbose_prefix_warnings
   return args
 
 
@@ -272,8 +277,9 @@ def __init__(self, run_list, flags, scrubber_args):
         self._func_order.update({prefix: []})
 
   def finish_and_get_func_dict(self):
-    for prefix in self._get_failed_prefixes():
-      warn('Prefix %s had conflicting output from 
diff erent RUN lines for all functions' % (prefix,))
+    if _verbose_prefix_warnings:
+      for prefix in self._get_failed_prefixes():
+        warn('Prefix %s had conflicting output from 
diff erent RUN lines for all functions' % (prefix,))
     return self._func_dict
 
   def func_order(self):
@@ -329,6 +335,9 @@ def process_run_line(self, function_re, scrubber, raw_tool_output, prefixes):
               # so the body can't be common accross RUN lines. We use None to
               # indicate that.
               self._func_dict[prefix][func] = None
+              if _verbose_prefix_warnings:
+                warn('Function %s had conflicting output from 
diff erent RUN lines for prefix %s' % (
+                    func, prefix))
               continue
 
         self._func_dict[prefix][func] = function_body(


        


More information about the llvm-commits mailing list