diff options
author | Martin Liska <mliska@suse.cz> | 2019-06-10 09:39:20 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-06-10 07:39:20 +0000 |
commit | 6cea7e397693c3fb2e77b6f9d7770fecc15fd204 (patch) | |
tree | 536fd7086c697630f09f4d39a5f13a81d4cc2f20 /gcc | |
parent | 92d417175b9f7b41d5ebe3ceb723f808917ed964 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/value-prof.c | 93 |
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 (); |