[clang] b380699 - [Utils] Add an option to specify number of cores to use in creduce-clang-crash.py

Zequan Wu via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 22 12:48:34 PST 2021


Author: Zequan Wu
Date: 2021-02-22T12:43:09-08:00
New Revision: b380699416d8310f20c59928bf379129ec98e064

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

LOG: [Utils] Add an option to specify number of cores to use in creduce-clang-crash.py

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

Added: 
    

Modified: 
    clang/utils/creduce-clang-crash.py

Removed: 
    


################################################################################
diff  --git a/clang/utils/creduce-clang-crash.py b/clang/utils/creduce-clang-crash.py
index 51f4d9d333bc..08056e52b826 100755
--- a/clang/utils/creduce-clang-crash.py
+++ b/clang/utils/creduce-clang-crash.py
@@ -19,6 +19,7 @@
 import tempfile
 import shutil
 from distutils.spawn import find_executable
+import multiprocessing
 
 verbose = False
 creduce_cmd = None
@@ -64,7 +65,7 @@ def write_to_script(text, filename):
   os.chmod(filename, os.stat(filename).st_mode | stat.S_IEXEC)
 
 class Reduce(object):
-  def __init__(self, crash_script, file_to_reduce):
+  def __init__(self, crash_script, file_to_reduce, core_number):
     crash_script_name, crash_script_ext = os.path.splitext(crash_script)
     file_reduce_name, file_reduce_ext = os.path.splitext(file_to_reduce)
 
@@ -78,6 +79,7 @@ def __init__(self, crash_script, file_to_reduce):
     self.expected_output = []
     self.needs_stack_trace = False
     self.creduce_flags = ["--tidy"]
+    self.creduce_flags = ["--n", str(core_number)]
 
     self.read_clang_args(crash_script, file_to_reduce)
     self.read_expected_output()
@@ -394,6 +396,9 @@ def main():
   parser.add_argument('--creduce', dest='creduce', type=str,
                       help="The path to the `creduce` executable. "
                       "Required if `creduce` is not in PATH environment.")
+  parser.add_argument('--n', dest='core_number', type=int, 
+                      default=max(4, multiprocessing.cpu_count() / 2),
+                      help="Number of cores to use.")
   parser.add_argument('-v', '--verbose', action='store_true')
   args = parser.parse_args()
 
@@ -401,11 +406,12 @@ def main():
   llvm_bin = os.path.abspath(args.llvm_bin) if args.llvm_bin else None
   creduce_cmd = check_cmd('creduce', None, args.creduce)
   clang_cmd = check_cmd('clang', llvm_bin, args.clang)
+  core_number = args.core_number
 
   crash_script = check_file(args.crash_script[0])
   file_to_reduce = check_file(args.file_to_reduce[0])
 
-  r = Reduce(crash_script, file_to_reduce)
+  r = Reduce(crash_script, file_to_reduce, core_number)
 
   r.simplify_clang_args()
   r.write_interestingness_test()


        


More information about the cfe-commits mailing list