summaryrefslogtreecommitdiff
path: root/gcc/gcov-dump.c
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-23 14:05:11 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-23 14:05:11 +0000
commitab6a34f2f7b7c7505a1feeeabdf1d87329eb8878 (patch)
tree120a1c15af28d004dc01bf0ac13ef734a28142cb /gcc/gcov-dump.c
parent7a3f89b5bee6e8b4191cd7653cc259deaa8a3100 (diff)
downloadgcc-ab6a34f2f7b7c7505a1feeeabdf1d87329eb8878.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65990 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcov-dump.c')
-rw-r--r--gcc/gcov-dump.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/gcc/gcov-dump.c b/gcc/gcov-dump.c
index fd9d1228467..5c0dd3a3676 100644
--- a/gcc/gcov-dump.c
+++ b/gcc/gcov-dump.c
@@ -35,7 +35,7 @@ static void tag_function PARAMS ((const char *, unsigned, unsigned));
static void tag_blocks PARAMS ((const char *, unsigned, unsigned));
static void tag_arcs PARAMS ((const char *, unsigned, unsigned));
static void tag_lines PARAMS ((const char *, unsigned, unsigned));
-static void tag_arc_counts PARAMS ((const char *, unsigned, unsigned));
+static void tag_counters PARAMS ((const char *, unsigned, unsigned));
static void tag_summary PARAMS ((const char *, unsigned, unsigned));
extern int main PARAMS ((int, char **));
@@ -59,15 +59,13 @@ static const tag_format_t tag_table[] =
{
{0, "NOP", NULL},
{0, "UNKNOWN", NULL},
+ {0, "COUNTERS", tag_counters},
{GCOV_TAG_FUNCTION, "FUNCTION", tag_function},
{GCOV_TAG_BLOCKS, "BLOCKS", tag_blocks},
{GCOV_TAG_ARCS, "ARCS", tag_arcs},
{GCOV_TAG_LINES, "LINES", tag_lines},
- {GCOV_TAG_ARC_COUNTS, "ARC_COUNTS", tag_arc_counts},
{GCOV_TAG_OBJECT_SUMMARY, "OBJECT_SUMMARY", tag_summary},
{GCOV_TAG_PROGRAM_SUMMARY, "PROGRAM_SUMMARY", tag_summary},
- {GCOV_TAG_PLACEHOLDER_SUMMARY, "PROGRAM_PLACEHOLDER", tag_summary},
- {GCOV_TAG_INCORRECT_SUMMARY, "PROGRAM_INCORRECT", tag_summary},
{0, NULL, NULL}
};
@@ -208,7 +206,7 @@ dump_file (filename)
for (format = tag_table; format->name; format++)
if (format->tag == tag)
goto found;
- format = &tag_table[1];
+ format = &tag_table[GCOV_TAG_IS_COUNTER (tag) ? 2 : 1];
found:;
if (tag)
{
@@ -364,14 +362,16 @@ tag_lines (filename, tag, length)
}
static void
-tag_arc_counts (filename, tag, length)
+tag_counters (filename, tag, length)
const char *filename ATTRIBUTE_UNUSED;
unsigned tag ATTRIBUTE_UNUSED;
unsigned length ATTRIBUTE_UNUSED;
{
+ static const char *const counter_names[] = GCOV_COUNTER_NAMES;
unsigned n_counts = length / 8;
- printf (" %u counts", n_counts);
+ printf (" %s %u counts",
+ counter_names[GCOV_COUNTER_FOR_TAG (tag)], n_counts);
if (flag_dump_contents)
{
unsigned ix;
@@ -395,20 +395,21 @@ tag_summary (filename, tag, length)
unsigned length ATTRIBUTE_UNUSED;
{
struct gcov_summary summary;
-
- gcov_read_summary (&summary);
+ unsigned ix;
+ gcov_read_summary (&summary);
printf (" checksum=0x%08x", summary.checksum);
- printf ("\n%s:\t\truns=%u, arcs=%u", filename,
- summary.runs, summary.arcs);
- printf ("\n%s:\t\tarc_sum=", filename);
- printf (HOST_WIDEST_INT_PRINT_DEC,
- (HOST_WIDEST_INT)summary.arc_sum);
- printf (", arc_max_one=");
- printf (HOST_WIDEST_INT_PRINT_DEC,
- (HOST_WIDEST_INT)summary.arc_max_one);
- printf (", sum_max=");
- printf (HOST_WIDEST_INT_PRINT_DEC,
- (HOST_WIDEST_INT)summary.arc_sum_max);
+ for (ix = 0; ix != GCOV_COUNTERS; ix++)
+ {
+ printf ("\n%sL\t\tcounts=%u, runs=%u", filename,
+ summary.ctrs[ix].num, summary.ctrs[ix].runs);
+
+ printf (", sum_all=" HOST_WIDEST_INT_PRINT_DEC,
+ (HOST_WIDEST_INT)summary.ctrs[ix].sum_all);
+ printf (", run_max=" HOST_WIDEST_INT_PRINT_DEC,
+ (HOST_WIDEST_INT)summary.ctrs[ix].run_max);
+ printf (", sum_max=" HOST_WIDEST_INT_PRINT_DEC,
+ (HOST_WIDEST_INT)summary.ctrs[ix].sum_max);
+ }
}