mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 19:05:41 +08:00
2008-05-15 Richard Guenther <rguenther@suse.de> * tree-pass.h (current_pass): Declare. (get_pass_for_id): Likewise. * passes.c (passes_by_id, passes_by_id_size): New globals. (set_pass_for_id): New function. (get_pass_for_id): Likewise. (register_one_dump_file): Use set_pass_for_id to populate passes_by_id. (execute_function_todo): Flush per function statistics. * toplev.c (compile_file): Init statistics. (general_init): Do early statistics initialization. (finalize): Finish statistics. * statistics.h (statistics_early_init): Declare. (statistics_init): Likewise. (statistics_fini): Likewise. (statistics_fini_pass): Likewise. (statistics_counter_event): Likewise. (statistics_histogram_event): Likewise. * statistics.c: New file. * Makefile.in (OBJS-common): Add statistics.o. (statistics.o): Add dependencies. * doc/invoke.texi (-fdump-statistics): Document. * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event. (insert): Likewise. (execute_pre): Use statistics_counter_event. * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field. (substitute_and_fold): Increment it. Use statistics_counter_event. * gcc.dg/tree-ssa/loadpre7.c: Adjust scan for not performed transformation. * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise. From-SVN: r135358
52 lines
1.9 KiB
C
52 lines
1.9 KiB
C
/* Memory and optimization statistics helpers.
|
|
Copyright (C) 2004, 2007, 2008
|
|
Free Software Foundation, Inc.
|
|
Contributed by Cygnus Solutions.
|
|
|
|
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 3, 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 COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef GCC_STATISTICS
|
|
#define GCC_STATISTICS
|
|
|
|
#ifdef GATHER_STATISTICS
|
|
#define MEM_STAT_DECL , const char * ARG_UNUSED (_loc_name), int ARG_UNUSED (_loc_line), const char * ARG_UNUSED (_loc_function)
|
|
#define ALONE_MEM_STAT_DECL const char * ARG_UNUSED (_loc_name), int ARG_UNUSED (_loc_line), const char * ARG_UNUSED (_loc_function)
|
|
#define PASS_MEM_STAT , _loc_name, _loc_line, _loc_function
|
|
#define ALONE_PASS_MEM_STAT _loc_name, _loc_line, _loc_function
|
|
#define MEM_STAT_INFO , __FILE__, __LINE__, __FUNCTION__
|
|
#define ALONE_MEM_STAT_INFO __FILE__, __LINE__, __FUNCTION__
|
|
#else
|
|
#define MEM_STAT_DECL
|
|
#define ALONE_MEM_STAT_DECL void
|
|
#define PASS_MEM_STAT
|
|
#define ALONE_PASS_MEM_STAT
|
|
#define MEM_STAT_INFO
|
|
#define ALONE_MEM_STAT_INFO
|
|
#endif
|
|
|
|
struct function;
|
|
|
|
/* In statistics.c */
|
|
extern void statistics_early_init (void);
|
|
extern void statistics_init (void);
|
|
extern void statistics_fini (void);
|
|
extern void statistics_fini_pass (void);
|
|
extern void statistics_counter_event (struct function *, const char *, int);
|
|
extern void statistics_histogram_event (struct function *, const char *, int);
|
|
|
|
#endif
|