#===- 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()