This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
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: Mon, 07 Feb 2005 01:17:05 +0000
- Subject: 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: 24649k
Peak memory use before GGC: 9351k
Peak memory use after GGC: 8665k
Maximum of released memory in single GGC run: 2864k
Garbage: 41665k
Leak: 6387k
Overhead: 5772k
GGC runs: 328
comparing combine.c compilation at -O1 level:
Overall memory needed: 25505k -> 25485k
Peak memory use before GGC: 9229k -> 9224k
Peak memory use after GGC: 8733k
Maximum of released memory in single GGC run: 2029k -> 2027k
Garbage: 61222k -> 61170k
Leak: 6749k
Overhead: 9981k -> 9978k
GGC runs: 503
comparing combine.c compilation at -O2 level:
Overall memory needed: 29549k
Peak memory use before GGC: 12663k
Peak memory use after GGC: 12537k
Maximum of released memory in single GGC run: 2597k
Garbage: 79460k -> 79387k
Leak: 6585k
Overhead: 14133k -> 14118k
GGC runs: 516
comparing combine.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 20156k to 20228k, overall 0.36%
Overall memory needed: 20156k -> 20228k
Peak memory use before GGC: 12796k -> 12795k
Peak memory use after GGC: 12537k
Maximum of released memory in single GGC run: 3409k -> 3406k
Garbage: 107428k -> 107335k
Leak: 7107k -> 7110k
Overhead: 18953k -> 18947k
GGC runs: 582
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 114136k
Peak memory use before GGC: 74739k
Peak memory use after GGC: 45485k
Maximum of released memory in single GGC run: 39340k
Garbage: 152660k
Leak: 10976k
Overhead: 19969k
GGC runs: 273
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 124276k
Peak memory use before GGC: 78748k
Peak memory use after GGC: 70095k
Maximum of released memory in single GGC run: 40779k
Garbage: 366127k -> 366122k
Leak: 11353k
Overhead: 69302k -> 69302k
GGC runs: 396
comparing insn-attrtab.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 147408k to 149040k, overall 1.11%
Overall memory needed: 147408k -> 149040k
Peak memory use before GGC: 98349k
Peak memory use after GGC: 83466k
Maximum of released memory in single GGC run: 39384k
Garbage: 480610k -> 480607k
Leak: 11234k
Overhead: 84552k -> 84551k
GGC runs: 341
comparing insn-attrtab.c compilation at -O3 level:
Overall memory allocated via mmap and sbrk increased from 137904k to 147392k, overall 6.88%
Overall memory needed: 137904k -> 147392k
Peak memory use before GGC: 98351k
Peak memory use after GGC: 83467k
Maximum of released memory in single GGC run: 39385k
Garbage: 481658k -> 481652k
Leak: 11273k
Overhead: 84702k -> 84702k
GGC runs: 347
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 111096k
Peak memory use before GGC: 86885k
Peak memory use after GGC: 85935k
Maximum of released memory in single GGC run: 19282k
Garbage: 245826k
Leak: 55495k
Overhead: 43290k
GGC runs: 367
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 103705k -> 103701k
Peak memory use before GGC: 85967k
Peak memory use after GGC: 84933k
Maximum of released memory in single GGC run: 18946k
Garbage: 445585k -> 444943k
Leak: 56775k -> 56775k
Overhead: 65539k -> 65509k
GGC runs: 526
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 104741k -> 104725k
Peak memory use before GGC: 85967k
Peak memory use after GGC: 84933k
Maximum of released memory in single GGC run: 18945k
Garbage: 488690k -> 488034k
Leak: 57372k -> 57364k
Overhead: 75296k -> 75261k
GGC runs: 584
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 112437k -> 112441k
Peak memory use before GGC: 92707k
Peak memory use after GGC: 86227k
Maximum of released memory in single GGC run: 19713k
Garbage: 504549k -> 503688k
Leak: 57531k -> 57531k
Overhead: 76986k -> 76947k
GGC runs: 569 -> 570
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-02-06 15:23:53.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-02-07 00:16:53.000000000 +0000
@@ -1,3 +1,52 @@
+2005-02-06 Roger Sayle <roger@eyesopen.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+ Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
+
+ * simplify-rtx.c (simplify_relational_operation_1): Simplify
+ (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
+ into just (zero_extract:SI FOO (const_int 1) BAR).
+
+2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/cpp.texi: Include gcc-common.texi. Don't define gcctabopt
+ macro locally. Don't give last revision date. Use GCC version
+ number from gcc-common.texi.
+ * doc/cppinternals.texi: Include gcc-common.texi. Don't give last
+ revision date. Use GCC version number from gcc-common.texi.
+ Describe being a library as current state rather than as 3.x
+ history.
+ * doc/gcc.texi: Remove last update date.
+ * doc/gccint.texi: Likewise. Update copyright dates.
+ * doc/install.texi: Update copyright dates.
+
+2005-02-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR other/7549
+ * doc/invoke.texi: Mention for each option included in -Wall that
+ it is included in -Wall.
+ * doc/gcc.texi: Update copyright and last modification date.
+
+2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
+ unnecessary cast to original induction variable increments.
+
+2005-02-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/18219
+ * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
+ in distributed form.
+
+2005-02-06 Richard Sandiford <rsandifo@redhat.com>
+
+ * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
+ Set bitpos and offset later in the function. Do nothing if the
+ target is a register and if the bitfield lies completely outside
+ that register.
+ (extract_bit_field): Make the same SUBREG, bitpos and offset changes
+ here. Return an uninitialised register if the source value is stored
+ in a register and the bitfield lies completely outside that register.
+
2005-02-06 Steven Bosscher <stevenb@suse.de>
* df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
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.