diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-09 15:07:00 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-05-09 15:07:00 +0000 |
commit | 880fd2c00350b5baf5c160b2dddcaf3117d8481b (patch) | |
tree | 7c77715f5a3ebfa3cd816b259737311df8df7024 /gcc/profile.h | |
parent | 8c8ab57ecb3a9a1fbd4b8fb96c1cefab3357cc5a (diff) | |
download | gcc-880fd2c00350b5baf5c160b2dddcaf3117d8481b.tar.gz |
* final.c (end_final): Use C trees to output data structures for profiling.
* Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
(profile.o): New dependency profile.h
(final.o): New dependency profile.h
* profile.h: New file. New global structure profile_info.
* final.h (count_edges_instrumented_now): Declare.
(current_function_cfg_checksum): Declare.
(function_list): New structure.
(functions_head, functions_tail): New static variables.
(end_final): Emits more data, removed some -ax stuff.
(final): Stores function names and chcksums.
* gcov-io.h (__write_gcov_string): New function.
(__read_gcov_string): New function.
* gcov.c (read_profile): New function.
(create_program_flow_graph): Uses read_profile instead of reading
da_file.
(read_files): Removed da_file checking, it's done by read_profile now.
* libgcc2.c (bb_function_info): New structure.
(bb): New field in structure, removed some -ax stuff.
(__bb_exit_func): Changed structure of da_file.
* profile.c (count_edges_instrumented_now): New global variable.
(current_function_cfg_checksum): New global variable.
(max_counter_in_program): New global variable.
(get_exec_counts): New function.
(compute_checksum): New function.
(instrument_edges): Sets count_edges_instrumented_now.
(compute_branch_probabilities): Uses get_exec_counts instead of
reading da_file.
(branch_prob): Calls compute_checksum and writes extra data to bbg_file.
(init_branch_prob): Removed da_file checking, done in get_exec_counts
now.
(end_branch_prob): Removed da_file checking, done in get_exec_counts
now.
* gcov.texi: Updated information about gcov file format.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53330 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/profile.h')
-rw-r--r-- | gcc/profile.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc/profile.h b/gcc/profile.h new file mode 100644 index 00000000000..a6bc7ee984f --- /dev/null +++ b/gcc/profile.h @@ -0,0 +1,52 @@ +/* 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 + +struct + { + /* Used by final, for allocating the proper amount of storage for the + instrumented arc execution counts. */ + + int count_instrumented_edges; + + /* Used by final, for writing correct # of instrumented edges + in this function. */ + + int count_edges_instrumented_now; + + /* Checksum of the cfg. Used for 'identification' of code. + Used by final. */ + + long 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; + + } profile_info; + +#endif |