summaryrefslogtreecommitdiff
path: root/gcc/coverage.h
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@gcc.gnu.org>2003-04-21 19:48:10 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2003-04-21 19:48:10 +0000
commitca29da43014c4d9b8622d345f674c03719764273 (patch)
tree0a33e6cf7e2f1c1de67fd4c82a44dac7bbd92d79 /gcc/coverage.h
parent1774b2132fde85e3c20894333b20e36bdc9fe124 (diff)
downloadgcc-ca29da43014c4d9b8622d345f674c03719764273.tar.gz
Break out coverage routines to new file.
* Makefile.in (COVERAGE_H): New variable (C_OBJS): Add coverage.o (coverage.o): New target. (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust dependencies. (GTFILES): Adjust. (gt-coverage.h): New target. (gt-profile.h): Remove. * profile.h: Remove. Move to ... * coverage.h: ... here. New. #include gcov-io.h. * gcov-io.h: Move function definitions to ... * gcov-io.c: ... here. New. * profile.c: Move coverage routines to coverage.c. (instrument_edges, get_exec_counts, branch_prob, init_branch_prob, end_branch_prob): Adjust. * coverage.c: New. Coverage routines from profile.c (coverage_counter_ref, coverage_init, coverage_finish, coverage_end_function, coverage_begin_output, coverage_counter_ref, get_coverage_counts): Define. * gcov-dump.c, gcov.c: #include gcov-io.c. * libgcov.c: Likewise. Adjust. * loop-init.c: Don't #include profile.h * tracer.c, predict.c, sched-ebb.c: Adjust #includes. * rtl.h: Add coverage prototypes. * toplev.c (compile_file): Init coverage, not branch_prob. Always call coverage_finish. (rest_of_compilation): Call coverage_end_function. From-SVN: r65897
Diffstat (limited to 'gcc/coverage.h')
-rw-r--r--gcc/coverage.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/gcc/coverage.h b/gcc/coverage.h
new file mode 100644
index 00000000000..f6ead44a597
--- /dev/null
+++ b/gcc/coverage.h
@@ -0,0 +1,72 @@
+/* coverage.h - Defines data exported from coverage.c
+ Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA. */
+
+#ifndef GCC_COVERAGE_H
+#define GCC_COVERAGE_H
+
+#include "gcov-io.h"
+
+/* The number of different counter sections. */
+#define MAX_COUNTER_SECTIONS 1
+
+/* Info about number of counters in the section. */
+struct section_info
+{
+ unsigned tag; /* Section tag. */
+ int present; /* Are the data from this section read into gcc? */
+ int n_counters; /* Total number of counters. */
+ int n_counters_now; /* Number of counters in the current function. */
+};
+
+struct profile_info
+ {
+ /* Information about numbers of counters in counter sections, for
+ allocating the storage and storing the sizes. */
+ unsigned n_sections;
+ struct section_info section_info[MAX_COUNTER_SECTIONS];
+
+ /* Checksum of the cfg. Used for 'identification' of code.
+ Used by final. */
+
+ unsigned current_function_cfg_checksum;
+
+ /* Max. value of counter in program corresponding to the profile data
+ for the current function. */
+
+ gcov_type max_counter_in_program;
+
+ /* The number of profiles merged to form the profile data for the current
+ function. */
+ int count_profiles_merged;
+ };
+
+extern struct profile_info profile_info;
+
+extern void coverage_init (const char *);
+extern void coverage_finish (void);
+extern void coverage_end_function (void);
+extern int coverage_begin_output (void);
+extern rtx coverage_counter_ref (unsigned /*tag*/, unsigned/*num*/);
+
+gcov_type *get_coverage_counts (unsigned /*tag*/, unsigned /*expected*/);
+struct section_info *find_counters_section PARAMS ((unsigned));
+
+
+#endif