aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov-io.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2003-04-23 14:05:11 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2003-04-23 14:05:11 +0000
commitcdb2376773696240929622b1504fa8e2d4c29843 (patch)
tree120a1c15af28d004dc01bf0ac13ef734a28142cb /gcc/gcov-io.c
parent2be3b5ce222dcf49dcca9e9bf3f1f7eb77b64566 (diff)
downloadgcc-cdb2376773696240929622b1504fa8e2d4c29843.zip
gcc-cdb2376773696240929622b1504fa8e2d4c29843.tar.gz
gcc-cdb2376773696240929622b1504fa8e2d4c29843.tar.bz2
Makefile.in (LIBGCC_DEPS): Add gcov headers.
* Makefile.in (LIBGCC_DEPS): Add gcov headers. (libgcov.a): Depends on LIBGCC_DEPS. * basic-block.h (profile_info): Moved here from coverage.h. Made a pointer. * coverage.c (struct function_list): Fixed array of counter types. (struct counts_entry): Keyed by counter type, contains summary. (profile_info): Moved to profile.c. (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global vars. (profiler_label): Remove. (ctr_labels): New. (set_purpose, label_for_tag, build_counter_section_fields, build_counter_section_value, build_counter_section_data_fields, build_counter_section_data_values, build_function_info_fields, build_function_info_value, gcov_info_fields, gcov_info_value): Remove. (build_fn_info_type, build_fn_info_value, build_ctr_info_type, build_ctr_info_value, build_gcov_info): New. (htab_counts_entry_hash, htab_counts_entry_eq): Adjust. (reads_counts_file): Adjust. (get_coverage_counts): Takes counter number. Add summary parameter. Adjust. (coverage_counter_ref): Tkaes counter number. Adjust. Lazily create counter array labels. (coverage_end_function): Adjust. (create_coverage): Adjust. (find_counters_section): Remove. * coverage.h (MAX_COUNTER_SECTIONS): Remove. (struct section_info, struct profile_info): Remove. (profile_info): Moved to basic-block.h. (coverage_counter_ref): Takes a counter number. (get_coverage_counts): Takes a counter number. Added summary parameter. (find_counters_section): Remove. * gcov-dump.c (tag_arc_counts): Rename to ... (tag_counters): ... here. Adjust. (tag_table): Move tag_counters to 3rd entry. Remove PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries. (dump_file): Check for counter tag values here. (tag_summary): Adjust. * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust. * gcov-io.h (GCOV_LOCKED): New. (GCOV_TAG_ARC_COUNTS): Rename to ... (GCOV_TAG_COUNTS_BASE): ... here. (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY): Remove. (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New. (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG, GCOV_TAG_IS_COUNTER): New. (struct gcov_ctr_summary): New. (struct gcov_summary): Adjust. (struct gcov_counter_section): Remove. struct gcov_counter_section_data): Remove. (struct gcov_function_info): Rename to ... (struct gcov_fn_info): ... here. Adjust. (struct gcov_ctr_info): New. (struct gcov_info): Adjust. * gcov.c (read_count_file): Adjust. (output_lines): Adjust. * libgcov.c (gcov_exit): Adjust. (__gcov_flush): Adjust. * mklibgcc.in (libgcc2_c_dep): Add gcov headers. * predict.c (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p, compute_frequency_function): Adjust profile_info use. * profile.c (struct counts_entry): Remove. (profile_info): Define here. (get_exec_counts): Adjust get_coverage_counts call. (compute_branch_probablilities): Remove find_counters_section call. (gen_edge_profiler): Adjust coverage_counter_ref call. * tracer.c (tail_duplicate): Adjust profile_info use. From-SVN: r65990
Diffstat (limited to 'gcc/gcov-io.c')
-rw-r--r--gcc/gcov-io.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/gcc/gcov-io.c b/gcc/gcov-io.c
index 94002a9..b595217 100644
--- a/gcc/gcov-io.c
+++ b/gcc/gcov-io.c
@@ -305,15 +305,20 @@ gcov_write_length (unsigned long position)
GCOV_LINKAGE void
gcov_write_summary (unsigned tag, const struct gcov_summary *summary)
{
+ unsigned ix;
+ const struct gcov_ctr_summary *csum;
unsigned long base;
base = gcov_write_tag (tag);
gcov_write_unsigned (summary->checksum);
- gcov_write_unsigned (summary->runs);
- gcov_write_unsigned (summary->arcs);
- gcov_write_counter (summary->arc_sum);
- gcov_write_counter (summary->arc_max_one);
- gcov_write_counter (summary->arc_sum_max);
+ for (csum = summary->ctrs, ix = GCOV_COUNTERS; ix--; csum++)
+ {
+ gcov_write_unsigned (csum->num);
+ gcov_write_unsigned (csum->runs);
+ gcov_write_counter (csum->sum_all);
+ gcov_write_counter (csum->run_max);
+ gcov_write_counter (csum->sum_max);
+ }
gcov_write_length (base);
}
#endif /* IN_LIBGCOV */
@@ -406,15 +411,20 @@ gcov_read_string ()
GCOV_LINKAGE void
gcov_read_summary (struct gcov_summary *summary)
{
+ unsigned ix;
+ struct gcov_ctr_summary *csum;
+
summary->checksum = gcov_read_unsigned ();
- summary->runs = gcov_read_unsigned ();
- summary->arcs = gcov_read_unsigned ();
- summary->arc_sum = gcov_read_counter ();
- summary->arc_max_one = gcov_read_counter ();
- summary->arc_sum_max = gcov_read_counter ();
+ for (csum = summary->ctrs, ix = GCOV_COUNTERS; ix--; csum++)
+ {
+ csum->num = gcov_read_unsigned ();
+ csum->runs = gcov_read_unsigned ();
+ csum->sum_all = gcov_read_counter ();
+ csum->run_max = gcov_read_counter ();
+ csum->sum_max = gcov_read_counter ();
+ }
}
-
#if IN_GCOV > 0
/* Return the modification time of the current gcov file. */