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:
  Amount of memory still referenced at the end of compilation increased from 6391k to 6410k, overall 0.30%
    Overall memory needed: 24653k -> 24657k
    Peak memory use before GGC: 9354k -> 9358k
    Peak memory use after GGC: 8668k -> 8672k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41669k -> 41650k
    Leak: 6391k -> 6410k
    Overhead: 5772k -> 5773k
    GGC runs: 328 -> 327

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25541k -> 25509k
    Peak memory use before GGC: 9231k -> 9235k
    Peak memory use after GGC: 8736k -> 8739k
    Maximum of released memory in single GGC run: 2029k -> 2028k
    Garbage: 60295k -> 60284k
    Leak: 6751k -> 6755k
    Overhead: 9904k -> 9904k
    GGC runs: 501 -> 500

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 28805k to 29153k, overall 1.21%
    Overall memory needed: 28805k -> 29153k
    Peak memory use before GGC: 12666k -> 12670k
    Peak memory use after GGC: 12540k -> 12544k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78450k -> 78459k
    Leak: 6588k -> 6591k
    Overhead: 14032k -> 14032k
    GGC runs: 513 -> 511

comparing combine.c compilation at -O3 level:
    Overall memory needed: 31585k -> 31573k
    Peak memory use before GGC: 12769k -> 12772k
    Peak memory use after GGC: 12540k -> 12544k
    Maximum of released memory in single GGC run: 3407k
    Garbage: 105847k -> 105855k
    Leak: 7096k -> 7099k
    Overhead: 18831k -> 18832k
    GGC runs: 581

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 114132k -> 114136k
    Peak memory use before GGC: 74743k -> 74746k
    Peak memory use after GGC: 45489k -> 45492k
    Maximum of released memory in single GGC run: 39341k -> 39340k
    Garbage: 152665k -> 152670k
    Leak: 10979k -> 10983k
    Overhead: 19970k -> 19970k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 124248k -> 124228k
    Peak memory use before GGC: 78751k -> 78755k
    Peak memory use after GGC: 70098k -> 70102k
    Maximum of released memory in single GGC run: 40780k -> 40779k
    Garbage: 366123k -> 366124k
    Leak: 11356k -> 11360k
    Overhead: 69302k -> 69303k
    GGC runs: 396

comparing insn-attrtab.c compilation at -O2 level:
  Amount of memory still referenced at the end of compilation increased from 11237k to 11249k, overall 0.10%
    Overall memory needed: 147420k -> 147352k
    Peak memory use before GGC: 98352k -> 98359k
    Peak memory use after GGC: 83469k -> 83476k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 480550k -> 480527k
    Leak: 11237k -> 11249k
    Overhead: 84546k -> 84546k
    GGC runs: 340

comparing insn-attrtab.c compilation at -O3 level:
  Amount of memory still referenced at the end of compilation increased from 11275k to 11286k, overall 0.10%
    Overall memory needed: 147412k -> 147372k
    Peak memory use before GGC: 98354k -> 98361k
    Peak memory use after GGC: 83470k -> 83478k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 481356k -> 481342k
    Leak: 11275k -> 11286k
    Overhead: 84675k -> 84676k
    GGC runs: 346

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111048k -> 111052k
    Peak memory use before GGC: 87151k -> 87155k
    Peak memory use after GGC: 85890k -> 85894k
    Maximum of released memory in single GGC run: 19511k
    Garbage: 246094k -> 246084k
    Leak: 55517k -> 55521k
    Overhead: 43324k -> 43324k
    GGC runs: 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 103897k -> 103893k
    Peak memory use before GGC: 86009k -> 86013k
    Peak memory use after GGC: 85108k -> 85112k
    Maximum of released memory in single GGC run: 18951k
    Garbage: 433609k -> 433536k
    Leak: 56851k -> 56855k
    Overhead: 64544k -> 64544k
    GGC runs: 511

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104113k -> 104121k
    Peak memory use before GGC: 86009k -> 86013k
    Peak memory use after GGC: 85109k -> 85113k
    Maximum of released memory in single GGC run: 18950k -> 18951k
    Garbage: 476184k -> 476214k
    Leak: 57419k -> 57423k
    Overhead: 74274k -> 74277k
    GGC runs: 573

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 105205k
    Peak memory use before GGC: 87145k -> 87149k
    Peak memory use after GGC: 86188k -> 86192k
    Maximum of released memory in single GGC run: 19399k -> 19400k
    Garbage: 480820k -> 480837k
    Leak: 57558k -> 57560k
    Overhead: 74874k -> 74876k
    GGC runs: 557

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-11 22:14:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-12 03:32:49.000000000 +0000
@@ -1,3 +1,33 @@
+2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
+
+	PR regression/19898.
+	* config/cris/cris.c (cris_notice_update_cc): When testing if insn
+	changes cc_status, use apply modified_in_p to part of cc_status
+	and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
+	body.
+
+2005-02-11  Richard Henderson  <rth@redhat.com>
+
+	* tree-complex.c (expand_complex_libcall): New.
+	(expand_complex_multiplication): Use it for c99 compliance.
+	(expand_complex_division): Likewise.
+	* fold-const.c (fold_complex_add, fold_complex_mult): New.
+	(fold): Call them.
+	* builtins.c (built_in_names): Remove const.
+	* tree.c (build_common_builtin_nodes): Build complex arithmetic
+	builtins.
+	* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
+	(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
+	(built_in_names): Remove const.
+	* c-common.c (c_common_type_for_mode): Handle complex modes.
+	* flags.h, toplev.c (flag_complex_method): Rename from
+	flag_complex_divide_method.
+	* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
+	__mulsc3, __muldc3, __mulxc3, __multc3): New.
+	* libgcc2.h: Declare them.
+ 	* libgcc-std.ver: Export them.
+	* mklibgcc.in (lib2funcs): Build them.
+
 2005-02-11  Steven Bosscher  <stevenb@suse.de>
 
 	PR tree-optimization/19876

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]