summaryrefslogtreecommitdiff
path: root/gcc/coverage.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2018-09-28 17:40:04 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2018-09-28 17:40:04 +0000
commited2d9d3720adef3a260b8a55e17e744352a901fc (patch)
tree53b1bfbea366b01dd4b7d2ab8e3c405d9b2c7509 /gcc/coverage.c
parent5718d9d95fd9457c9f6cf49526ef52f974d9419c (diff)
dumpfile.c: use prefixes other than 'note: ' for MSG_{OPTIMIZED_LOCATIONS|MISSED_OPTIMIZATION}
As noted at Cauldron, dumpfile.c currently emits "note: " for all kinds of dump message, so that (after filtering) there's no distinction between MSG_OPTIMIZED_LOCATIONS vs MSG_NOTE vs MSG_MISSED_OPTIMIZATION in the textual output. This patch changes dumpfile.c so that the "note: " varies to show which MSG_* was used, with the string prefix matching that used for filtering in -fopt-info, hence e.g. directive_unroll_3.f90:24:0: optimized: loop unrolled 7 times and: pr19210-1.c:24:3: missed: missed loop optimization: niters analysis ends up with assumptions. The patch adds "dg-optimized" and "dg-missed" directives for use in the testsuite for matching these (with -fopt-info on stderr; they don't help for dumpfile output). The patch also converts the various problem-reporting dump messages in coverage.c:get_coverage_counts to use MSG_MISSED_OPTIMIZATION rather than MSG_OPTIMIZED_LOCATIONS, as the docs call out "optimized" as "information when an optimization is successfully applied", whereas "missed" is for "information about missed optimizations", and problems with profile data seem to me to fall much more into the latter category than the former. Doing so requires converting a few tests from using "-fopt-info" (which is implicitly "-fopt-info-optimized-optall") to getting the "missed" optimizations. Changing them to "-fopt-info-missed" added lots of noise from the vectorizer, so I changed these tests to use "-fopt-info-missed-ipa". gcc/ChangeLog: * coverage.c (get_coverage_counts): Convert problem-reporting dump messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION. * dumpfile.c (kind_as_string): New function. (dump_loc): Rather than a hardcoded prefix of "note: ", use kind_as_string to vary the prefix based on dump_kind. (selftest::test_capture_of_dump_calls): Update for above. gcc/testsuite/ChangeLog: * c-c++-common/unroll-1.c: Update expected output from "note" to "optimized". * c-c++-common/unroll-2.c: Likewise. * c-c++-common/unroll-3.c: Likewise. * g++.dg/tree-ssa/dom-invalid.C: Update expected output from dg-message to dg-missed. Convert param from -fopt-info to -fopt-info-missed-ipa. * g++.dg/tree-ssa/pr81408.C: Update expected output from dg-message to dg-missed. * g++.dg/vect/slp-pr56812.cc: Update expected output from dg-message to dg-optimized. * gcc.dg/pr26570.c: Update expected output from dg-message to dg-missed. Convert param from -fopt-info to -fopt-info-missed-ipa. * gcc.dg/pr32773.c: Likewise. * gcc.dg/tree-ssa/pr19210-1.c: Update expected output from dg-message to dg-missed. * gcc.dg/unroll-2.c: Update expected output from dg-message to dg-optimized. * gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise. Convert param from -fopt-info to -fopt-info-vec. * gfortran.dg/directive_unroll_1.f90: Update expected output from "note" to "optimized". * gfortran.dg/directive_unroll_2.f90: Likewise. * gfortran.dg/directive_unroll_3.f90: Likewise. * gnat.dg/unroll4.adb: Likewise. * lib/gcc-dg.exp (dg-optimized): New procedure. (dg-missed): New procedure. From-SVN: r264697
Diffstat (limited to 'gcc/coverage.c')
-rw-r--r--gcc/coverage.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 6b45ce9085b..701460cf929 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -313,7 +313,7 @@ get_coverage_counts (unsigned counter, unsigned cfg_checksum,
{
dump_user_location_t loc
= dump_user_location_t::from_location_t (input_location);
- dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, loc,
"file %s not found, %s\n", da_file_name,
(flag_guess_branch_prob
? "execution counts estimated"
@@ -359,7 +359,7 @@ get_coverage_counts (unsigned counter, unsigned cfg_checksum,
{
dump_user_location_t loc
= dump_user_location_t::from_location_t (input_location);
- dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, loc,
"use -Wno-error=coverage-mismatch to tolerate "
"the mismatch but performance may drop if the "
"function is hot\n");
@@ -367,14 +367,14 @@ get_coverage_counts (unsigned counter, unsigned cfg_checksum,
if (!seen_error ()
&& !warned++)
{
- dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, loc,
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, loc,
"coverage mismatch ignored\n");
- dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ dump_printf (MSG_MISSED_OPTIMIZATION,
flag_guess_branch_prob
? G_("execution counts estimated\n")
: G_("execution counts assumed to be zero\n"));
if (!flag_guess_branch_prob)
- dump_printf (MSG_OPTIMIZED_LOCATIONS,
+ dump_printf (MSG_MISSED_OPTIMIZATION,
"this can result in poorly optimized code\n");
}
}