47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
#===- perf-helper.py - Clang Python Bindings -----------------*- python -*--===#
|
|
#
|
|
# The LLVM Compiler Infrastructure
|
|
#
|
|
# This file is distributed under the University of Illinois Open Source
|
|
# License. See LICENSE.TXT for details.
|
|
#
|
|
#===------------------------------------------------------------------------===#
|
|
|
|
import sys
|
|
import os
|
|
import subprocess
|
|
|
|
def findProfrawFiles(path):
|
|
profraw_files = []
|
|
for root, dirs, files in os.walk(path):
|
|
for filename in files:
|
|
if filename.endswith(".profraw"):
|
|
profraw_files.append(os.path.join(root, filename))
|
|
return profraw_files
|
|
|
|
def clean(args):
|
|
if len(args) != 1:
|
|
print 'Usage: %s clean <path>\n\tRemoves all *.profraw files from <path>.' % __file__
|
|
return 1
|
|
for profraw in findProfrawFiles(args[0]):
|
|
os.remove(profraw)
|
|
return 0
|
|
|
|
def merge(args):
|
|
if len(args) != 3:
|
|
print 'Usage: %s clean <llvm-profdata> <output> <path>\n\tMerges all profraw files from path into output.' % __file__
|
|
return 1
|
|
cmd = [args[0], 'merge', '-o', args[1]]
|
|
cmd.extend(findProfrawFiles(args[2]))
|
|
subprocess.check_call(cmd)
|
|
return 0
|
|
|
|
commands = {'clean' : clean, 'merge' : merge}
|
|
|
|
def main():
|
|
f = commands[sys.argv[1]]
|
|
sys.exit(f(sys.argv[2:]))
|
|
|
|
if __name__ == '__main__':
|
|
main()
|