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