Reduce overhead of stmt annotations
Jan Hubicka
jh@suse.cz
Wed Sep 1 21:03:00 GMT 2004
Hi,
30% of GGC overhead on combine.c compilation (3MB) comes to stmt
annotations.
Bootstrapping/regtesting i686-pc-gnu-linux, OK if it passes?
Honza
2004-09-01 Jan Hubicka <jh@suse.cz>
* ggc-page.c: include tree-flow.h.
(extra_order_size_table): Add stmt_ann_d.
(STAT_LABEL): Rename from ....
(LABEL): ... this one.
* Makefile.in (ggc-page.o): Add dependency.
Index: ggc-page.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ggc-page.c,v
retrieving revision 1.51.2.22.2.3
diff -c -3 -p -r1.51.2.22.2.3 ggc-page.c
*** ggc-page.c 30 Mar 2004 23:19:13 -0000 1.51.2.22.2.3
--- ggc-page.c 1 Sep 2004 20:56:42 -0000
*************** Software Foundation, 59 Temple Place - S
*** 31,36 ****
--- 31,37 ----
#include "ggc.h"
#include "timevar.h"
#include "params.h"
+ #include "tree-flow.h"
#ifdef ENABLE_VALGRIND_CHECKING
# ifdef HAVE_VALGRIND_MEMCHECK_H
# include <valgrind/memcheck.h>
*************** Software Foundation, 59 Temple Place - S
*** 184,189 ****
--- 185,191 ----
thing you need to do to add a new special allocation size. */
static const size_t extra_order_size_table[] = {
+ sizeof (struct stmt_ann_d),
sizeof (struct tree_decl),
sizeof (struct tree_list),
TREE_EXP_SIZE (2),
*************** ggc_collect (void)
*** 2013,2019 ****
: ((x) < 1024*1024*10 \
? (x) / 1024 \
: (x) / (1024*1024))))
! #define LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M'))
void
ggc_print_statistics (void)
--- 2023,2029 ----
: ((x) < 1024*1024*10 \
? (x) / 1024 \
: (x) / (1024*1024))))
! #define STAT_LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M'))
void
ggc_print_statistics (void)
*************** ggc_print_statistics (void)
*** 2068,2082 ****
}
fprintf (stderr, "%-5lu %10lu%c %10lu%c %10lu%c\n",
(unsigned long) OBJECT_SIZE (i),
! SCALE (allocated), LABEL (allocated),
! SCALE (in_use), LABEL (in_use),
! SCALE (overhead), LABEL (overhead));
total_overhead += overhead;
}
fprintf (stderr, "%-5s %10lu%c %10lu%c %10lu%c\n", "Total",
! SCALE (G.bytes_mapped), LABEL (G.bytes_mapped),
! SCALE (G.allocated), LABEL(G.allocated),
! SCALE (total_overhead), LABEL (total_overhead));
#ifdef GATHER_STATISTICS
{
--- 2078,2092 ----
}
fprintf (stderr, "%-5lu %10lu%c %10lu%c %10lu%c\n",
(unsigned long) OBJECT_SIZE (i),
! SCALE (allocated), STAT_LABEL (allocated),
! SCALE (in_use), STAT_LABEL (in_use),
! SCALE (overhead), STAT_LABEL (overhead));
total_overhead += overhead;
}
fprintf (stderr, "%-5s %10lu%c %10lu%c %10lu%c\n", "Total",
! SCALE (G.bytes_mapped), STAT_LABEL (G.bytes_mapped),
! SCALE (G.allocated), STAT_LABEL(G.allocated),
! SCALE (total_overhead), STAT_LABEL (total_overhead));
#ifdef GATHER_STATISTICS
{
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Makefile.in,v
retrieving revision 1.903.2.179.2.13
diff -c -3 -p -r1.903.2.179.2.13 Makefile.in
*** Makefile.in 28 Aug 2004 17:26:33 -0000 1.903.2.179.2.13
--- Makefile.in 1 Sep 2004 20:56:42 -0000
*************** ggc-common.o: ggc-common.c $(CONFIG_H) $
*** 1549,1555 ****
$(HASHTAB_H) toplev.h $(PARAMS_H) hosthooks.h
ggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
! flags.h toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H)
ggc-zone.o: ggc-zone.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
flags.h toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H)
--- 1549,1555 ----
$(HASHTAB_H) toplev.h $(PARAMS_H) hosthooks.h
ggc-page.o: ggc-page.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
! flags.h toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H) $(TREE_FLOW_H)
ggc-zone.o: ggc-zone.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
flags.h toplev.h $(GGC_H) $(TIMEVAR_H) $(TM_P_H) $(PARAMS_H)
More information about the Gcc-patches
mailing list