2002-05-09 17:07:00 +02:00
|
|
|
/* profile.h - Defines data exported from profile.c to other passes.
|
|
|
|
Copyright (C) 1998, 1999, 2000, 2001 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_PROFILE_H
|
|
|
|
#define GCC_PROFILE_H
|
|
|
|
|
gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-io.h (struct counter_section, struct counter_section_data): New.
(struct function_info): n_arc_counts field removed, n_counter_sections,
counter_sections fields added.
(struct gcov_info): arc_counts, n_arc_counts fields removed,
n_counter_sections, counter_sections fields added.
* libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
profile sections.
* profile.h (MAX_COUNTER_SECTIONS): New.
(struct section_info): New.
(struct profile_info): count_instrumented_edges,
count_edges_instrumented_now fields removed, n_sections, section_info
fields added.
(find_counters_section): Declare.
* profile.c (struct function_list): count_edges field removed,
n_counter_sections, counter_sections fields added.
(set_purpose, label_for_tag, build_counter_section_fields,
build_counter_section_value, build_counter_section_data_fields,
build_counter_section_data_value, build_function_info_fields,
build_function_info_value, build_gcov_info_fields,
build_gcov_info_value): New static functions.
(find_counters_section): New function.
(instrument_edges, get_exec_counts, compute_branch_probabilities,
branch_prob, create_profiler): Modified to support multiple profile
sections.
From-SVN: r63474
2003-02-26 17:55:10 +01:00
|
|
|
/* 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. */
|
|
|
|
};
|
|
|
|
|
2002-05-12 19:03:35 +02:00
|
|
|
struct profile_info
|
2002-05-09 17:07:00 +02:00
|
|
|
{
|
gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-io.h (struct counter_section, struct counter_section_data): New.
(struct function_info): n_arc_counts field removed, n_counter_sections,
counter_sections fields added.
(struct gcov_info): arc_counts, n_arc_counts fields removed,
n_counter_sections, counter_sections fields added.
* libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
profile sections.
* profile.h (MAX_COUNTER_SECTIONS): New.
(struct section_info): New.
(struct profile_info): count_instrumented_edges,
count_edges_instrumented_now fields removed, n_sections, section_info
fields added.
(find_counters_section): Declare.
* profile.c (struct function_list): count_edges field removed,
n_counter_sections, counter_sections fields added.
(set_purpose, label_for_tag, build_counter_section_fields,
build_counter_section_value, build_counter_section_data_fields,
build_counter_section_data_value, build_function_info_fields,
build_function_info_value, build_gcov_info_fields,
build_gcov_info_value): New static functions.
(find_counters_section): New function.
(instrument_edges, get_exec_counts, compute_branch_probabilities,
branch_prob, create_profiler): Modified to support multiple profile
sections.
From-SVN: r63474
2003-02-26 17:55:10 +01:00
|
|
|
/* 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];
|
|
|
|
|
2002-05-09 17:07:00 +02:00
|
|
|
/* Checksum of the cfg. Used for 'identification' of code.
|
|
|
|
Used by final. */
|
|
|
|
|
2002-12-16 19:23:00 +01:00
|
|
|
unsigned current_function_cfg_checksum;
|
2002-05-09 17:07:00 +02:00
|
|
|
|
|
|
|
/* 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;
|
2002-05-12 19:03:35 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
extern struct profile_info profile_info;
|
2002-05-09 17:07:00 +02:00
|
|
|
|
gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-dump.c (print_prefix): Fix signedness warning.
* gcov-io.h (struct counter_section, struct counter_section_data): New.
(struct function_info): n_arc_counts field removed, n_counter_sections,
counter_sections fields added.
(struct gcov_info): arc_counts, n_arc_counts fields removed,
n_counter_sections, counter_sections fields added.
* libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
profile sections.
* profile.h (MAX_COUNTER_SECTIONS): New.
(struct section_info): New.
(struct profile_info): count_instrumented_edges,
count_edges_instrumented_now fields removed, n_sections, section_info
fields added.
(find_counters_section): Declare.
* profile.c (struct function_list): count_edges field removed,
n_counter_sections, counter_sections fields added.
(set_purpose, label_for_tag, build_counter_section_fields,
build_counter_section_value, build_counter_section_data_fields,
build_counter_section_data_value, build_function_info_fields,
build_function_info_value, build_gcov_info_fields,
build_gcov_info_value): New static functions.
(find_counters_section): New function.
(instrument_edges, get_exec_counts, compute_branch_probabilities,
branch_prob, create_profiler): Modified to support multiple profile
sections.
From-SVN: r63474
2003-02-26 17:55:10 +01:00
|
|
|
struct section_info *find_counters_section PARAMS ((unsigned));
|
|
|
|
|
2002-05-09 17:07:00 +02:00
|
|
|
#endif
|