]> granicus.if.org Git - clang/commitdiff
[Perf-training] Cleanup based on feedback from Sean Silvas
authorChris Bieneman <beanz@apple.com>
Tue, 22 Mar 2016 16:27:35 +0000 (16:27 +0000)
committerChris Bieneman <beanz@apple.com>
Tue, 22 Mar 2016 16:27:35 +0000 (16:27 +0000)
Sean provided feedback based on r257934 on cfe-commits. This change addresses that feedback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264063 91177308-0d34-0410-b5e6-96231b3b80d8

utils/perf-training/perf-helper.py

index 3fd1c0bb7c98f91e185d8eaf1179057dae5b7b1b..5d1c03332d6e548d05dabcb7397eb2b37a36fd3d 100644 (file)
@@ -99,9 +99,11 @@ def dtrace(args):
   if sys.platform == "darwin":
     dtrace_args.append('-xmangled')
 
-  f = open("%d.dtrace" % os.getpid(), "w")
   start_time = time.time()
-  subprocess.check_call(dtrace_args, stdout=f, stderr=subprocess.PIPE)
+
+  with open("%d.dtrace" % os.getpid(), "w") as f:
+    subprocess.check_call(dtrace_args, stdout=f, stderr=subprocess.PIPE)
+
   elapsed = time.time() - start_time
   print("... data collection took %.4fs" % elapsed)
 
@@ -111,7 +113,7 @@ def get_cc1_command_for_args(cmd, env):
   # Find the cc1 command used by the compiler. To do this we execute the
   # compiler with '-###' to figure out what it wants to do.
   cmd = cmd + ['-###']
-  cc_output = check_output(cmd, stderr=subprocess.STDOUT, env=env).strip()
+  cc_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=env).strip()
   cc_commands = []
   for ln in cc_output.split('\n'):
       # Filter out known garbage.
@@ -246,13 +248,6 @@ def parse_dtrace_symbol_file(path, all_symbols, all_symbols_set,
         for s in possible_symbols:
           yield (current_timestamp, s)
 
-def check_output(*popen_args, **popen_kwargs):
-    p = subprocess.Popen(stdout=subprocess.PIPE, *popen_args, **popen_kwargs)
-    stdout,stderr = p.communicate()
-    if p.wait() != 0:
-        raise RuntimeError("process failed")
-    return stdout
-
 def uniq(list):
   seen = set()
   for item in list:
@@ -346,7 +341,7 @@ def genOrderFile(args):
   # If the user gave us a binary, get all the symbols in the binary by
   # snarfing 'nm' output.
   if opts.binary_path is not None:
-     output = check_output(['nm', '-P', opts.binary_path])
+     output = subprocess.check_output(['nm', '-P', opts.binary_path])
      lines = output.split("\n")
      all_symbols = [ln.split(' ',1)[0]
                     for ln in lines