aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-06-10 09:39:20 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-06-10 07:39:20 +0000
commit6cea7e397693c3fb2e77b6f9d7770fecc15fd204 (patch)
tree536fd7086c697630f09f4d39a5f13a81d4cc2f20
parent92d417175b9f7b41d5ebe3ceb723f808917ed964 (diff)
downloadgcc-6cea7e397693c3fb2e77b6f9d7770fecc15fd204.zip
gcc-6cea7e397693c3fb2e77b6f9d7770fecc15fd204.tar.gz
gcc-6cea7e397693c3fb2e77b6f9d7770fecc15fd204.tar.bz2
Dump histograms only if present.
2019-06-10 Martin Liska <mliska@suse.cz> * value-prof.c (dump_histogram_value): Print histogram values only if present. From-SVN: r272107
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/value-prof.c93
2 files changed, 45 insertions, 53 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f1a365..c463b68 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2019-06-10 Martin Liska <mliska@suse.cz>
+ * value-prof.c (dump_histogram_value): Print histogram values
+ only if present.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
* gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
(GCOV_SINGLE_VALUE_COUNTERS): Likewise.
* ipa-profile.c (ipa_profile_generate_summary):
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index b95bf85..28fbec0 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -228,87 +228,74 @@ dump_histogram_value (FILE *dump_file, histogram_value hist)
switch (hist->type)
{
case HIST_TYPE_INTERVAL:
- fprintf (dump_file, "Interval counter range %d -- %d",
- hist->hdata.intvl.int_start,
- (hist->hdata.intvl.int_start
- + hist->hdata.intvl.steps - 1));
if (hist->hvalue.counters)
{
- unsigned int i;
- fprintf (dump_file, " [");
- for (i = 0; i < hist->hdata.intvl.steps; i++)
- fprintf (dump_file, " %d:%" PRId64,
- hist->hdata.intvl.int_start + i,
- (int64_t) hist->hvalue.counters[i]);
- fprintf (dump_file, " ] outside range:%" PRId64,
- (int64_t) hist->hvalue.counters[i]);
+ fprintf (dump_file, "Interval counter range %d -- %d",
+ hist->hdata.intvl.int_start,
+ (hist->hdata.intvl.int_start
+ + hist->hdata.intvl.steps - 1));
+
+ unsigned int i;
+ fprintf (dump_file, " [");
+ for (i = 0; i < hist->hdata.intvl.steps; i++)
+ fprintf (dump_file, " %d:%" PRId64,
+ hist->hdata.intvl.int_start + i,
+ (int64_t) hist->hvalue.counters[i]);
+ fprintf (dump_file, " ] outside range:%" PRId64 ".\n",
+ (int64_t) hist->hvalue.counters[i]);
}
- fprintf (dump_file, ".\n");
break;
case HIST_TYPE_POW2:
- fprintf (dump_file, "Pow2 counter ");
if (hist->hvalue.counters)
- {
- fprintf (dump_file, "pow2:%" PRId64
- " nonpow2:%" PRId64,
- (int64_t) hist->hvalue.counters[1],
- (int64_t) hist->hvalue.counters[0]);
- }
- fprintf (dump_file, ".\n");
+ fprintf (dump_file, "Pow2 counter pow2:%" PRId64
+ " nonpow2:%" PRId64 ".\n",
+ (int64_t) hist->hvalue.counters[1],
+ (int64_t) hist->hvalue.counters[0]);
break;
case HIST_TYPE_SINGLE_VALUE:
case HIST_TYPE_INDIR_CALL:
- fprintf (dump_file,
- (hist->type == HIST_TYPE_SINGLE_VALUE
- ? "Single value counter " : "Indirect call counter"));
if (hist->hvalue.counters)
{
- fprintf (dump_file, "all: %" PRId64 ", values: ",
- (int64_t) hist->hvalue.counters[0]);
- for (unsigned i = 0; i < GCOV_DISK_SINGLE_VALUES; i++)
+ fprintf (dump_file,
+ (hist->type == HIST_TYPE_SINGLE_VALUE
+ ? "Single value counter " : "Indirect call counter"));
+ if (hist->hvalue.counters)
{
- fprintf (dump_file, "[%" PRId64 ":%" PRId64 "]",
- (int64_t) hist->hvalue.counters[2 * i + 1],
- (int64_t) hist->hvalue.counters[2 * i + 2]);
- if (i != GCOV_DISK_SINGLE_VALUES - 1)
- fprintf (dump_file, ", ");
+ fprintf (dump_file, "all: %" PRId64 ", values: ",
+ (int64_t) hist->hvalue.counters[0]);
+ for (unsigned i = 0; i < GCOV_DISK_SINGLE_VALUES; i++)
+ {
+ fprintf (dump_file, "[%" PRId64 ":%" PRId64 "]",
+ (int64_t) hist->hvalue.counters[2 * i + 1],
+ (int64_t) hist->hvalue.counters[2 * i + 2]);
+ if (i != GCOV_DISK_SINGLE_VALUES - 1)
+ fprintf (dump_file, ", ");
+ }
+ fprintf (dump_file, ".\n");
}
}
- fprintf (dump_file, ".\n");
break;
case HIST_TYPE_AVERAGE:
- fprintf (dump_file, "Average value ");
if (hist->hvalue.counters)
- {
- fprintf (dump_file, "sum:%" PRId64
- " times:%" PRId64,
- (int64_t) hist->hvalue.counters[0],
- (int64_t) hist->hvalue.counters[1]);
- }
- fprintf (dump_file, ".\n");
+ fprintf (dump_file, "Average value sum:%" PRId64
+ " times:%" PRId64 ".\n",
+ (int64_t) hist->hvalue.counters[0],
+ (int64_t) hist->hvalue.counters[1]);
break;
case HIST_TYPE_IOR:
- fprintf (dump_file, "IOR value ");
if (hist->hvalue.counters)
- {
- fprintf (dump_file, "ior:%" PRId64,
- (int64_t) hist->hvalue.counters[0]);
- }
- fprintf (dump_file, ".\n");
+ fprintf (dump_file, "IOR value ior:%" PRId64 ".\n",
+ (int64_t) hist->hvalue.counters[0]);
break;
case HIST_TYPE_TIME_PROFILE:
- fprintf (dump_file, "Time profile ");
if (hist->hvalue.counters)
- {
- fprintf (dump_file, "time:%" PRId64,
- (int64_t) hist->hvalue.counters[0]);
- }
- fprintf (dump_file, ".\n");
+ fprintf (dump_file, "Time profile time:%" PRId64 ".\n",
+ (int64_t) hist->hvalue.counters[0]);
break;
case HIST_TYPE_MAX:
gcc_unreachable ();