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]

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.


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