This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC memory consumption increased by recent patch!


Hi,
Comparing memory consumption on compilation of combine.i and generate-3.4.ii I got:


comparing combine.c compilation at -O0 level:
    Overall memory needed: 25000k
    Peak memory use before GGC: 9434k
    Peak memory use after GGC: 8746k
    Maximum of released memory in single GGC run: 2798k
    Garbage: 42297k
    Leak: 6479k
    Overhead: 5872k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 8884k to 8961k, overall 0.87%
    Overall memory needed: 27360k -> 27400k
    Peak memory use before GGC: 8884k -> 8961k
    Peak memory use after GGC: 8543k
    Maximum of released memory in single GGC run: 2230k -> 2228k
    Garbage: 63369k -> 63055k
    Leak: 6839k
    Overhead: 7719k -> 7600k
    GGC runs: 522 -> 519

comparing combine.c compilation at -O2 level:
    Overall memory needed: 19892k
    Peak memory use before GGC: 12790k
    Peak memory use after GGC: 12534k
    Maximum of released memory in single GGC run: 2624k
    Garbage: 87971k -> 87676k
    Leak: 6654k
    Overhead: 11049k -> 10938k
    GGC runs: 537 -> 536

comparing combine.c compilation at -O3 level:
    Overall memory needed: 22508k -> 22424k
    Peak memory use before GGC: 14396k
    Peak memory use after GGC: 12941k
    Maximum of released memory in single GGC run: 3073k
    Garbage: 122530k -> 122068k
    Leak: 7133k -> 7117k
    Overhead: 15261k -> 15065k
    GGC runs: 611 -> 610

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 85872k
    Peak memory use before GGC: 74238k
    Peak memory use after GGC: 45259k
    Maximum of released memory in single GGC run: 38092k
    Garbage: 154411k
    Leak: 11423k
    Overhead: 19887k
    GGC runs: 267

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 103528k -> 103284k
    Peak memory use before GGC: 81336k
    Peak memory use after GGC: 66510k
    Maximum of released memory in single GGC run: 35980k -> 35976k
    Garbage: 308184k -> 307315k
    Leak: 11466k
    Overhead: 37959k -> 37567k
    GGC runs: 385

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 140460k -> 140456k
    Peak memory use before GGC: 107782k
    Peak memory use after GGC: 82775k
    Maximum of released memory in single GGC run: 35344k
    Garbage: 404698k -> 403821k
    Leak: 11434k
    Overhead: 50826k -> 50431k
    GGC runs: 336

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 140496k
    Peak memory use before GGC: 107783k
    Peak memory use after GGC: 82778k
    Maximum of released memory in single GGC run: 35344k
    Garbage: 405477k -> 404598k
    Leak: 11457k
    Overhead: 50949k -> 50552k
    GGC runs: 343

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 112060k
    Peak memory use before GGC: 87417k
    Peak memory use after GGC: 86002k
    Maximum of released memory in single GGC run: 20638k
    Garbage: 247927k
    Leak: 53802k
    Overhead: 43074k
    GGC runs: 372

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 94624k
    Peak memory use before GGC: 86531k
    Peak memory use after GGC: 85006k
    Maximum of released memory in single GGC run: 20329k
    Garbage: 601216k -> 598898k
    Leak: 57910k -> 57906k
    Overhead: 76690k -> 75697k
    GGC runs: 622 -> 620

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 95380k -> 95416k
    Peak memory use before GGC: 86532k
    Peak memory use after GGC: 85006k
    Maximum of released memory in single GGC run: 20329k
    Garbage: 706515k -> 704181k
    Leak: 58791k
    Overhead: 95451k -> 94499k
    GGC runs: 748 -> 746

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 95804k -> 95808k
    Peak memory use before GGC: 87454k
    Peak memory use after GGC: 86288k
    Maximum of released memory in single GGC run: 20589k
    Garbage: 682929k -> 680685k
    Leak: 58921k
    Overhead: 94244k -> 93317k
    GGC runs: 710 -> 709

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-05-14 08:14:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-05-14 13:52:30.000000000 +0000
@@ -1,5 +1,18 @@
 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
 
+	* tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
+	root_var_init, type_var_init): Use VEC instead of VARRAY.
+	* tree-ssa-live.h (tree_partition_associator_d): Change the
+	type of trees to VEC(tree,heap)*.
+	(tpa_tree): Use VEC instead of VARRAY.
+
+2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
+
+	* fold-const.c (div_if_zero_remainder): New function.
+	(try_move_mult_to_index): Use it.
+
+2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
+
 	* tree-eh.c (leh_tf_state): Change the type of dest_array to
 	VEC(tree,heap)*.
 	(maybe_record_in_goto_queue, lower_try_finally_onedest,

I am friendly script caring about memory consumption in GCC.  Please contact
jh@suse.cz if something is going wrong.

The results can be reproduced by building compiler with
--enable-gather-detailed-mem-stats targetting x86-64 and compiling preprocessed
combine.c or testcase from PR8632 with:

-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q

The memory consumption summary appears in the dump after detailed listing of
the places they are allocated in.  Peak memory consumption is actually computed
by looking for maximal value in {GC XXXX -> YYYY} report.

Yours testing script.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]