diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2003-04-23 14:05:11 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2003-04-23 14:05:11 +0000 |
commit | cdb2376773696240929622b1504fa8e2d4c29843 (patch) | |
tree | 120a1c15af28d004dc01bf0ac13ef734a28142cb /gcc/gcov-io.c | |
parent | 2be3b5ce222dcf49dcca9e9bf3f1f7eb77b64566 (diff) | |
download | gcc-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.c | 32 |
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. */ |