+2002-08-14 Nathan Sidwell <nathan@codesourcery.com>
+
+ * doc/invoke.texi (-a): Remove documentation.
+ (-fprofile-arcs): Remove reference to -a, -ax options.
+ * doc/gcov.texi (Gcov Data Files): Data might be merged.
+
2002-08-14 Gabriel Dos Reis <gdr@nerim.net>
Fix PR/7566
(end_branch_prob): Remove da file.
* Makefile.in (stage1_build): Pass empty COVERAGE_FLAGS.
- * configure.in (coverage_flags) default to nothing.
+ * configure.in (coverage_flags): Default to nothing.
* configure: Rebuilt.
2002-08-09 Neil Booth <neil@daikokuya.co.uk>
separate @file{.da} file is created for each source file compiled with
this option, and the name of the @file{.da} file is stored as an
absolute pathname in the resulting object file. This path name is
-derived from the source file name by substituting a @file{.da} suffix.
+derived from the object file name by substituting a @file{.da} suffix.
-The @file{.da} consists of several blocks (one for each run) with the
-following structure:
+The @file{.da} consists of one or more blocks with the following
+structure:
@smallexample
"magic" number @minus{}123 (4-byte number)
number of functions (4-byte number)
checksum of function #1
@dots{}
@end smallexample
-The current structure of the extension block is as follows:
+Multiple program runs might merge data into a single block, or might
+append a new block. The current structure of the extension block is as
+follows:
@smallexample
number of instrumented arcs in whole program (4-byte number)
sum all of instrumented arcs in whole program (8-byte number)
the source files you want data about, and you must also use it when
linking.
-@cindex @code{tcov}
-@item -a
-@opindex a
-Generate extra code to write profile information for basic blocks, which will
-record the number of times each basic block is executed, the basic block start
-address, and the function name containing the basic block. If @option{-g} is
-used, the line number and filename of the start of the basic block will also be
-recorded. If not overridden by the machine description, the default action is
-to append to the text file @file{bb.out}.
-
-This data could be analyzed by a program like @code{tcov}. Note,
-however, that the format of the data is not what @code{tcov} expects.
-Eventually GNU @code{gprof} should be extended to process this data.
-
@item -Q
@opindex Q
Makes the compiler print out each function name as it is compiled, and
Control Optimization}).
The other use of @option{-fprofile-arcs} is for use with @code{gcov},
-when it is used with the @option{-ftest-coverage} option. GCC
-supports two methods of determining code coverage: the options that
-support @code{gcov}, and options @option{-a} and @option{-ax}, which
-write information to text files. The options that support @code{gcov}
-do not need to instrument every arc in the program, so a program compiled
-with them runs faster than a program compiled with @option{-a}, which
-adds instrumentation code to every basic block in the program. The
-tradeoff: since @code{gcov} does not have execution counts for all
-branches, it must start with the execution counts for the instrumented
-branches, and then iterate over the program flow graph until the entire
-graph has been solved. Hence, @code{gcov} runs a little more slowly than
-a program which uses information from @option{-a} and @option{-ax}.
+when it is used with the @option{-ftest-coverage} option.
With @option{-fprofile-arcs}, for each function of your program GCC
creates a program flow graph, then finds a spanning tree for the graph.
instrumentation code can be added to the block; otherwise, a new basic
block must be created to hold the instrumentation code.
-This option makes it possible to estimate branch probabilities and to
-calculate basic block execution counts. In general, basic block
-execution counts as provided by @option{-a} do not give enough
-information to estimate all branch probabilities.
-
@need 2000
@item -ftest-coverage
@opindex ftest-coverage