2012-07-22 Steven Bosscher <steven@gcc.gnu.org>
+ * coverage.c: Refer to "notes file" instead of "graph file"
+ in all comments. Explain history of bbg prefix.
+ * gcov-io.h: Likewise.
+ * gcov.c: Likewise.
+ (find_source): Likewise in fnotice.
+ (read_graph_file): Likewise.
+ (read_count_file): Likewise.
+ * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
+ and "data file" explicitly in the explanation of the files.
+
+2012-07-22 Steven Bosscher <steven@gcc.gnu.org>
+
PR tree-optimization/53881
* tree-cfg.c (group_case_labels_stmt): Look up the basic block
for each label and compare them instead of labels.
static GTY(()) tree gcov_fn_info_type;
static GTY(()) tree gcov_fn_info_ptr_type;
-/* Name of the output file for coverage output file. If this is NULL
- we're not writing to the notes file. */
+/* Name of the notes (gcno) output file. The "bbg" prefix is for
+ historical reasons, when the notes file contained only the
+ basic block graph notes.
+ If this is NULL we're not writing to the notes file. */
static char *bbg_file_name;
-/* File stamp for graph file. */
+/* File stamp for notes file. */
static unsigned bbg_file_stamp;
-/* Name of the count data file. */
+/* Name of the count data (gcda) file. */
static char *da_file_name;
/* Hash table of count data. */
return chksum;
}
\f
-/* Begin output to the graph file for the current function.
+/* Begin output to the notes file for the current function.
Writes the function header. Returns nonzero if data should be output. */
int
}
/* Perform file-level initialization. Read in data file, generate name
- of graph file. */
+ of notes file. */
void
coverage_init (const char *filename)
}
}
-/* Performs file-level cleanup. Close graph file, generate coverage
+/* Performs file-level cleanup. Close notes file, generate coverage
variables and constructor. */
void
@command{gcov} uses two files for profiling. The names of these files
are derived from the original @emph{object} file by substituting the
-file suffix with either @file{.gcno}, or @file{.gcda}. All of these files
-are placed in the same directory as the object file, and contain data
-stored in a platform-independent format.
-
-The @file{.gcno} file is generated when the source file is compiled with
-the GCC @option{-ftest-coverage} option. It contains information to
+file suffix with either @file{.gcno}, or @file{.gcda}. The files
+contain coverage and profile data stored in a platform-independent format.
+The @file{.gcno} files are placed in the same directory as the object
+file. By default, the @file{.gcda} files are also stored in the same
+directory as the object file, but the GCC @option{-profile-dir} option
+may be used to store the @file{.gcda} files in a separate directory.
+
+The @file{.gcno} notes file is generated when the source file is compiled
+with the GCC @option{-ftest-coverage} option. It contains information to
reconstruct the basic block graphs and assign source line numbers to
blocks.
-The @file{.gcda} file is generated when a program containing object files
-built with the GCC @option{-fprofile-arcs} option is executed. A
-separate @file{.gcda} file is created for each object file compiled with
-this option. It contains arc transition counts, and some summary
-information.
+The @file{.gcda} count data file is generated when a program containing
+object files built with the GCC @option{-fprofile-arcs} option is executed.
+A separate @file{.gcda} file is created for each object file compiled with
+this option. It contains arc transition counts, value profile counts, and
+some summary information.
The full details of the file format is specified in @file{gcov-io.h},
and functions provided in that header file should be used to access the
tags, values [41..9f] for the notes file and [a1..ff] for the data
file.
- The basic block graph file contains the following records
+ The notes file contains the following records
note: unit function-graph*
unit: header int32:checksum string:source
function-graph: announce_function basic_blocks {arcs | lines}*
static time_t bbg_file_time;
-/* Name and file pointer of the input file for the basic block graph. */
+/* Name of the notes (gcno) output file. The "bbg" prefix is for
+ historical reasons, when the notes file contained only the
+ basic block graph notes. */
static char *bbg_file_name;
/* Stamp of the bbg file */
static unsigned bbg_stamp;
-/* Name and file pointer of the input file for the arc count data. */
+/* Name and file pointer of the input file for the count data (gcda). */
static char *da_file_name;
{
static int info_emitted;
- fnotice (stderr, "%s:source file is newer than graph file '%s'\n",
+ fnotice (stderr, "%s:source file is newer than notes file '%s'\n",
file_name, bbg_file_name);
if (!info_emitted)
{
return idx;
}
-/* Read the graph file. Return list of functions read -- in reverse order. */
+/* Read the notes file. Return list of functions read -- in reverse order. */
static function_t *
read_graph_file (void)
if (!gcov_open (bbg_file_name, 1))
{
- fnotice (stderr, "%s:cannot open graph file\n", bbg_file_name);
+ fnotice (stderr, "%s:cannot open notes file\n", bbg_file_name);
return fns;
}
bbg_file_time = gcov_time ();
if (!gcov_magic (gcov_read_unsigned (), GCOV_NOTE_MAGIC))
{
- fnotice (stderr, "%s:not a gcov graph file\n", bbg_file_name);
+ fnotice (stderr, "%s:not a gcov notes file\n", bbg_file_name);
gcov_close ();
return fns;
}
tag = gcov_read_unsigned ();
if (tag != bbg_stamp)
{
- fnotice (stderr, "%s:stamp mismatch with graph file\n", da_file_name);
+ fnotice (stderr, "%s:stamp mismatch with notes file\n", da_file_name);
goto cleanup;
}
+2012-07-22 Steven Bosscher <steven@gcc.gnu.org>
+
+ * libgcov.c (__gcov_ior_profiler): Benign comment fix.
+
2012-07-19 Tristan Gingold <gingold@adacore.com>
Richard Henderson <rth@redhat.com>
#endif
#ifdef L_gcov_ior_profiler
-/* Increase corresponding COUNTER by VALUE. FIXME: Perhaps we want
- to saturate up. */
+/* Bitwise-OR VALUE into COUNTER. */
void
__gcov_ior_profiler (gcov_type *counters, gcov_type value)