3 # This file is part of GCC.
5 # GCC is free software; you can redistribute it and/or modify it under
6 # the terms of the GNU General Public License as published by the Free
7 # Software Foundation; either version 3, or (at your option) any later
10 # GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 # You should have received a copy of the GNU General Public License
16 # along with GCC; see the file COPYING3. If not see
17 # <http://www.gnu.org/licenses/>. */
25 script_location
= os
.path
.realpath(__file__
)
27 parser
= argparse
.ArgumentParser()
28 parser
.add_argument('location', metavar
= 'dump_file',
29 help = 'Location with SPEC benchmarks')
30 parser
.add_argument('-s', '--sorting', dest
= 'sorting',
31 choices
= ['branches', 'branch-hitrate', 'hitrate', 'coverage', 'name'],
33 parser
.add_argument('-d', '--def-file', help = 'path to predict.def')
34 parser
.add_argument('-v', '--verbose', action
= 'store_true', help = 'Print verbose informations')
36 args
= parser
.parse_args()
38 benchmarks
= os
.listdir(args
.location
)
40 for b
in sorted(benchmarks
):
42 for root
, dirs
, files
in os
.walk(os
.path
.join(args
.location
, b
)):
44 if x
.endswith('.profile'):
45 dumps
.append(os
.path
.join(root
, x
))
50 temp
= tempfile
.NamedTemporaryFile(delete
= False)
52 temp
.write(open(d
, 'rb').read())
59 p
= [os
.path
.join(os
.path
.dirname(script_location
), 'analyze_brprob.py'),
60 temp
.name
, '--sorting', args
.sorting
]
61 if args
.def_file
!= None:
62 p
+= ['-d', args
.def_file
]
64 p
= subprocess
.check_call(p
)