From 8e37c995c69b40b3cc3ec015e6bbfe0567a020a0 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 3 Jul 2019 10:29:08 +0200 Subject: [PATCH] Add -fprofile-note option. 2019-07-03 Martin Liska * common.opt: Add fprofile-note. * coverage.c (coverage_init): Append the option to bbg_file_name. * doc/invoke.texi: Document -fprofile-note. From-SVN: r272990 --- gcc/ChangeLog | 7 +++++++ gcc/common.opt | 4 ++++ gcc/coverage.c | 11 ++++++++--- gcc/doc/invoke.texi | 9 +++++++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 743b85d85bd..ca9ca7bfd06 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-07-03 Martin Liska + + * common.opt: Add fprofile-note. + * coverage.c (coverage_init): Append the option + to bbg_file_name. + * doc/invoke.texi: Document -fprofile-note. + 2019-07-03 Jakub Jelinek PR tree-optimization/91033 diff --git a/gcc/common.opt b/gcc/common.opt index a1544d06824..c1b90562b9b 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2096,6 +2096,10 @@ Common Joined RejectNegative Var(profile_data_prefix) Set the top-level directory for storing the profile data. The default is 'pwd'. +fprofile-note= +Common Joined RejectNegative Var(profile_note_location) +Select the name for storing the profile note file. + fprofile-correction Common Report Var(flag_profile_correction) Enable correction of flow inconsistent profile data input. diff --git a/gcc/coverage.c b/gcc/coverage.c index 1ffefd5f482..960ff7ee86a 100644 --- a/gcc/coverage.c +++ b/gcc/coverage.c @@ -1255,9 +1255,14 @@ coverage_init (const char *filename) /* Name of bbg file. */ if (flag_test_coverage && !flag_compare_debug) { - bbg_file_name = XNEWVEC (char, len + strlen (GCOV_NOTE_SUFFIX) + 1); - memcpy (bbg_file_name, filename, len); - strcpy (bbg_file_name + len, GCOV_NOTE_SUFFIX); + if (profile_note_location) + bbg_file_name = xstrdup (profile_note_location); + else + { + bbg_file_name = XNEWVEC (char, len + strlen (GCOV_NOTE_SUFFIX) + 1); + memcpy (bbg_file_name, filename, len); + strcpy (bbg_file_name + len, GCOV_NOTE_SUFFIX); + } if (!gcov_open (bbg_file_name, -1)) { diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ae1a7d25277..73d16b59d91 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -493,8 +493,8 @@ Objective-C and Objective-C++ Dialects}. @gccoptlist{-p -pg -fprofile-arcs --coverage -ftest-coverage @gol -fprofile-abs-path @gol -fprofile-dir=@var{path} -fprofile-generate -fprofile-generate=@var{path} @gol --fprofile-update=@var{method} -fprofile-filter-files=@var{regex} @gol --fprofile-exclude-files=@var{regex} @gol +-fprofile-note=@var{path} -fprofile-update=@var{method} @gol +-fprofile-filter-files=@var{regex} -fprofile-exclude-files=@var{regex} @gol -fsanitize=@var{style} -fsanitize-recover -fsanitize-recover=@var{style} @gol -fasan-shadow-offset=@var{number} -fsanitize-sections=@var{s1},@var{s2},... @gol -fsanitize-undefined-trap-on-error -fbounds-check @gol @@ -12404,6 +12404,11 @@ the profile feedback data files. See @option{-fprofile-dir}. To optimize the program based on the collected profile information, use @option{-fprofile-use}. @xref{Optimize Options}, for more information. +@item -fprofile-note=@var{path} +@opindex fprofile-note + +If @var{path} is specified, GCC saves gcno filename into @var{path} location. + @item -fprofile-update=@var{method} @opindex fprofile-update