From b88f683e57acb06593959c26c9d78861fcd15cf1 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 28 Feb 2022 10:37:15 +0100 Subject: [PATCH] docs: Document more .gcda file name generation. PR gcov-profile/104677 gcc/ChangeLog: * doc/invoke.texi: Document more .gcda file name generation. --- gcc/doc/invoke.texi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ec291c0..89c1946 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -13459,6 +13459,7 @@ counts to a file called @file{@var{sourcename}.gcda} for each source file. The information in this data file is very dependent on the structure of the generated code, so you must use the same source code and the same optimization options for both compilations. +See details about the file naming in @option{-fprofile-arcs}. With @option{-fbranch-probabilities}, GCC puts a @samp{REG_BR_PROB} note on each @samp{JUMP_INSN} and @samp{CALL_INSN}. @@ -15237,6 +15238,12 @@ explicitly specified and it is not the final executable, otherwise it is the basename of the source file. In both cases any suffix is removed (e.g.@: @file{foo.gcda} for input file @file{dir/foo.c}, or @file{dir/foo.gcda} for output file specified as @option{-o dir/foo.o}). + +Note that if a command line directly links source files, the corresponding +@var{.gcda} files will be prefixed with the unsuffixed name of the output file. +E.g. @code{gcc a.c b.c -o binary} would generate @file{binary-a.gcda} and +@file{binary-b.gcda} files. + @xref{Cross-profiling}. @cindex @command{gcov} @@ -15330,7 +15337,8 @@ profile data file appears in the same directory as the object file. In order to prevent the file name clashing, if the object file name is not an absolute path, we mangle the absolute path of the @file{@var{sourcename}.gcda} file and use it as the file name of a -@file{.gcda} file. See similar option @option{-fprofile-note}. +@file{.gcda} file. See details about the file naming in @option{-fprofile-arcs}. +See similar option @option{-fprofile-note}. When an executable is run in a massive parallel environment, it is recommended to save profile to different folders. That can be done with variables -- 2.7.4