From: Jan Hubicka <hubicka@ucw.cz>
To: "Martin Liška" <mliska@suse.cz>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH 4/N] Add new analyze_brprob_spec.py script
Date: Wed, 08 Jun 2016 15:12:00 -0000 [thread overview]
Message-ID: <20160608151231.GC2550@atrey.karlin.mff.cuni.cz> (raw)
In-Reply-To: <e4c2270c-4105-98da-5a79-4b41e79c8502@suse.cz>
> Hi.
>
> The second follow up patch adds new script which is a simple wrapper around
> analyze_brprob.py and can be used to dump statistics for results that are in
> different folder (like SPEC benchmarks).
>
> Sample:
> ./contrib/analyze_brprob_spec.py --sorting=hitrate /home/marxin/Programming/cpu2006/benchspec/CPU2006/
>
> Sample output:
> 401.bzip2
> HEURISTICS BRANCHES (REL) HITRATE COVERAGE COVERAGE (REL)
> no prediction 107 14.0% 19.45% / 84.37% 2768134733 2.77G 10.8%
> opcode values nonequal (on trees) 76 10.0% 32.24% / 85.06% 4034681344 4.03G 15.8%
> call 95 12.5% 45.50% / 93.31% 152224913 152.22M 0.6%
> DS theory 275 36.1% 45.56% / 84.30% 7308863904 7.31G 28.6%
> continue 14 1.8% 48.44% / 73.14% 1479774996 1.48G 5.8%
> guessed loop iterations 12 1.6% 68.30% / 71.61% 269705737 269.71M 1.1%
> combined 762 100.0% 69.52% / 89.32% 25553311262 25.55G 100.0%
> goto 40 5.2% 72.41% / 98.80% 882062676 882.06M 3.5%
> opcode values positive (on trees) 40 5.2% 76.74% / 88.09% 1394104926 1.39G 5.5%
> pointer (on trees) 61 8.0% 83.79% / 100.00% 931107 931.11K 0.0%
> early return (on trees) 31 4.1% 84.39% / 84.41% 2548058402 2.55G 10.0%
> first match 380 49.9% 89.79% / 92.57% 15476312625 15.48G 60.6%
> loop exit 316 41.5% 90.09% / 92.88% 15065219828 15.07G 59.0%
> guess loop iv compare 2 0.3% 99.61% / 99.61% 26987995 26.99M 0.1%
> loop iv compare 1 0.1% 99.61% / 99.61% 105411 105.41K 0.0%
> loop iterations 38 5.0% 99.64% / 99.64% 140236649 140.24M 0.5%
> null return 2 0.3% 100.00% / 100.00% 18 18.00 0.0%
> noreturn call 13 1.7% 100.00% / 100.00% 1045000 1.04M 0.0%
> const return 2 0.3% 100.00% / 100.00% 816 816.00 0.0%
> negative return 62 8.1% 100.00% / 100.00% 618097152 618.10M 2.4%
>
> 410.bwaves
> HEURISTICS BRANCHES (REL) HITRATE COVERAGE COVERAGE (REL)
> call 1 0.6% 0.00% / 100.00% 20 20.00 0.0%
> no prediction 6 3.7% 0.28% / 99.72% 2704184 2.70M 0.1%
> opcode values nonequal (on trees) 4 2.4% 60.00% / 70.00% 200 200.00 0.0%
> loop iterations 7 4.3% 80.00% / 80.00% 112892000 112.89M 2.4%
> first match 83 50.6% 81.67% / 81.67% 4393885465 4.39G 92.1%
> loop exit 76 46.3% 81.71% / 81.71% 4280993465 4.28G 89.8%
> combined 164 100.0% 83.05% / 83.11% 4768545507 4.77G 100.0%
> DS theory 75 45.7% 100.00% / 100.00% 371955858 371.96M 7.8%
> early return (on trees) 3 1.8% 100.00% / 100.00% 688 688.00 0.0%
> opcode values positive (on trees) 71 43.3% 100.00% / 100.00% 371955658 371.96M 7.8%
>
> ...
>
> Thanks,
> Martin
>
> >From ca9806bf77bd90df43913f5f1552ed16379dcf38 Mon Sep 17 00:00:00 2001
> From: marxin <mliska@suse.cz>
> Date: Fri, 3 Jun 2016 12:46:43 +0200
> Subject: [PATCH 4/4] Add new analyze_brprob_spec.py script
>
> contrib/ChangeLog:
>
> 2016-06-08 Martin Liska <mliska@suse.cz>
>
> * analyze_brprob_spec.py: New file.
OK,
thanks
Honza
> ---
> contrib/analyze_brprob_spec.py | 58 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100755 contrib/analyze_brprob_spec.py
>
> diff --git a/contrib/analyze_brprob_spec.py b/contrib/analyze_brprob_spec.py
> new file mode 100755
> index 0000000..a28eaac
> --- /dev/null
> +++ b/contrib/analyze_brprob_spec.py
> @@ -0,0 +1,58 @@
> +#!/usr/bin/env python3
> +
> +# This file is part of GCC.
> +#
> +# GCC is free software; you can redistribute it and/or modify it under
> +# the terms of the GNU General Public License as published by the Free
> +# Software Foundation; either version 3, or (at your option) any later
> +# version.
> +#
> +# GCC is distributed in the hope that it will be useful, but WITHOUT ANY
> +# WARRANTY; without even the implied warranty of MERCHANTABILITY or
> +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
> +# for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with GCC; see the file COPYING3. If not see
> +# <http://www.gnu.org/licenses/>. */
> +
> +import sys
> +import os
> +import subprocess
> +import tempfile
> +import argparse
> +
> +script_location = os.path.realpath(__file__)
> +
> +parser = argparse.ArgumentParser()
> +parser.add_argument('location', metavar = 'dump_file', help = 'Location with SPEC benchmarks')
> +parser.add_argument('-s', '--sorting', dest = 'sorting', choices = ['branches', 'hitrate', 'coverage'], default = 'branches')
> +
> +args = parser.parse_args()
> +
> +benchmarks = os.listdir(args.location)
> +
> +for b in sorted(benchmarks):
> + dumps = []
> + for root, dirs, files in os.walk(os.path.join(args.location, b)):
> + for x in files:
> + if x.endswith('.profile'):
> + dumps.append(os.path.join(root, x))
> +
> + if len(dumps) == 0:
> + continue
> +
> + temp = tempfile.NamedTemporaryFile(delete = False)
> + for d in dumps:
> + temp.write(open(d, 'rb').read())
> +
> + temp.close()
> +
> + print()
> + print(b)
> + sys.stdout.flush()
> + p = [os.path.join(os.path.dirname(script_location), 'analyze_brprob.py'), temp.name, '--sorting', args.sorting]
> + p = subprocess.check_call(p)
> + sys.stdout.flush()
> +
> + os.remove(temp.name)
> --
> 2.8.3
>
prev parent reply other threads:[~2016-06-08 15:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-02 11:57 [PATCH 0/2] Deduplicate edge predictors marxin
2016-06-02 11:57 ` [PATCH 1/2] Introduce filtering for edge_predictions marxin
2016-06-02 11:57 ` [PATCH 2/2] Add edge predictions pruning marxin
2016-06-08 12:25 ` Martin Liška
2016-06-08 12:41 ` Jan Hubicka
2016-06-09 11:24 ` Martin Liška
2016-06-12 11:55 ` [BUILDROBOT] MPS430 build problem due to new enum (was: [PATCH 2/2] Add edge predictions pruning) Jan-Benedict Glaw
2016-06-13 7:25 ` [BUILDROBOT] MPS430 build problem due to new enum Martin Liška
2016-06-13 8:47 ` [BUILDROBOT] MPS430 build problem due to new enum (was: [PATCH 2/2] Add edge predictions pruning) Jan Hubicka
2016-06-13 10:01 ` [BUILDROBOT] MPS430 build problem due to new enum Martin Liška
2016-06-08 12:26 ` [PATCH 3/N] Add sorting support to analyze_brprob script Martin Liška
2016-06-08 15:02 ` Jan Hubicka
2016-06-08 12:29 ` [PATCH 4/N] Add new analyze_brprob_spec.py script Martin Liška
2016-06-08 15:12 ` Jan Hubicka [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160608151231.GC2550@atrey.karlin.mff.cuni.cz \
--to=hubicka@ucw.cz \
--cc=gcc-patches@gcc.gnu.org \
--cc=mliska@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).