This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
Some aspect of GCC memory consumption increased by recent patch
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Fri, 22 Oct 2004 14:54:25 +0000
- Subject: Some aspect of 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: 25261k
Peak memory use before GGC: 9336k
Peak memory use after GGC: 8647k
Maximum of released memory in single GGC run: 2930k
Garbage: 42982k
Leak: 6089k
Overhead: 5652k
GGC runs: 364
comparing combine.c compilation at -O1 level:
Overall memory needed: 26725k -> 26741k
Peak memory use before GGC: 9479k -> 9434k
Peak memory use after GGC: 8871k
Maximum of released memory in single GGC run: 2063k -> 2062k
Garbage: 73208k -> 72151k
Leak: 6677k -> 6676k
Overhead: 11471k -> 11460k
GGC runs: 577
comparing combine.c compilation at -O2 level:
Overall memory needed: 29945k
Peak memory use before GGC: 12772k
Peak memory use after GGC: 12612k
Maximum of released memory in single GGC run: 2579k -> 2580k
Garbage: 88371k -> 87341k
Leak: 6431k -> 6430k
Overhead: 16013k -> 16005k
GGC runs: 578 -> 576
comparing combine.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 21448k to 21528k, overall 0.37%
Overall memory needed: 21448k -> 21528k
Peak memory use before GGC: 13447k -> 13347k
Peak memory use after GGC: 12723k -> 12721k
Maximum of released memory in single GGC run: 3440k -> 3439k
Garbage: 118825k -> 117287k
Leak: 7032k -> 7031k
Overhead: 21197k -> 21176k
GGC runs: 642 -> 644
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 118640k
Peak memory use before GGC: 79535k
Peak memory use after GGC: 46180k
Maximum of released memory in single GGC run: 43441k
Garbage: 163172k
Leak: 10643k
Overhead: 20458k
GGC runs: 307
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 130564k
Peak memory use before GGC: 90811k
Peak memory use after GGC: 70897k
Maximum of released memory in single GGC run: 42004k
Garbage: 462714k
Leak: 11074k
Overhead: 74729k
GGC runs: 463
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 209824k
Peak memory use before GGC: 105776k
Peak memory use after GGC: 86461k
Maximum of released memory in single GGC run: 35798k
Garbage: 512303k -> 512268k
Leak: 10965k -> 10964k
Overhead: 82804k -> 82803k
GGC runs: 385
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 209832k
Peak memory use before GGC: 105780k
Peak memory use after GGC: 86466k
Maximum of released memory in single GGC run: 35798k
Garbage: 513700k -> 513561k
Leak: 11011k -> 11010k
Overhead: 82992k -> 82990k
GGC runs: 394
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112008k
Peak memory use before GGC: 88771k
Peak memory use after GGC: 87648k
Maximum of released memory in single GGC run: 19623k
Garbage: 254154k
Leak: 58644k
Overhead: 45995k
GGC runs: 367
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage decreased from 707196k to 595115k, overall -18.83%
Overall memory needed: 100896k -> 100932k
Peak memory use before GGC: 87755k
Peak memory use after GGC: 86603k
Maximum of released memory in single GGC run: 19232k
Garbage: 707196k -> 595115k
Leak: 60768k -> 60773k
Overhead: 130206k -> 130160k
GGC runs: 632 -> 603
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage decreased from 763697k to 648470k, overall -17.77%
Overall memory needed: 101904k -> 101984k
Peak memory use before GGC: 87755k
Peak memory use after GGC: 86603k
Maximum of released memory in single GGC run: 19231k
Garbage: 763697k -> 648470k
Leak: 61344k -> 61351k
Overhead: 153829k -> 153793k
GGC runs: 665 -> 636
comparing Gerald's testcase PR8361 compilation at -O3 level:
Ovarall memory allocated via mmap and sbrk decreased from 118520k to 109636k, overall -8.10%
Peak amount of GGC memory allocated before garbage collecting run decreased from 100244k to 94953k, overall -5.57%
Amount of produced GGC garbage decreased from 854500k to 694649k, overall -23.01%
Overall memory needed: 118520k -> 109636k
Peak memory use before GGC: 100244k -> 94953k
Peak memory use after GGC: 89119k
Maximum of released memory in single GGC run: 19979k
Garbage: 854500k -> 694649k
Leak: 61697k -> 61702k
Overhead: 165587k -> 165577k
GGC runs: 644 -> 630
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-10-22 03:29:55.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-10-22 13:47:27.000000000 +0000
@@ -1,3 +1,17 @@
+2004-10-22 Peter Barada <peter@the-baradas.com>
+
+ * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
+ * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
+ renaming of non-live registers in interrupt functions.
+ * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
+
+2004-10-22 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
+ Use integer for loop counter.
+ (num_ending_zeros): New function.
+ (number_of_iterations_cond): Use num_ending_zeros.
+
2004-10-21 Aldy Hernandez <aldyh@redhat.com>
* config.gcc: Add support for --enable-e500_double.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2004-10-22 03:31:57.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2004-10-22 13:47:28.000000000 +0000
@@ -1,3 +1,17 @@
+2004-10-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/18095
+ * parser.c (eof_token): Make const, correctly initialize rid and
+ location fields.
+ (struct cp_lexer): Replace buffer_end pointer with buffer_length
+ count. Adjust.
+ (cp_lexer_new_main): Directly grow lexer's buffer here. Don't
+ zero it out.
+ (cp_lexer_new_from_tokens): Adjust.
+ (cp_lexer_grow_buffer): Remove.
+ (cp_lexer_peek_nth_token, cp_lexer_consume_token,
+ cp_lexer_purge_token): Add const casts.
+
2004-10-21 Mark Mitchell <mark@codesourcery.com>
PR c++/18073
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.