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: Tue, 11 Jan 2005 12:00:45 +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: 24797k
Peak memory use before GGC: 9353k
Peak memory use after GGC: 8667k
Maximum of released memory in single GGC run: 2864k
Garbage: 41717k -> 41717k
Leak: 6386k
Overhead: 5778k -> 5778k
GGC runs: 328
comparing combine.c compilation at -O1 level:
Overall memory needed: 25745k -> 25741k
Peak memory use before GGC: 9242k
Peak memory use after GGC: 8741k
Maximum of released memory in single GGC run: 2026k
Garbage: 66618k -> 66619k
Leak: 6782k
Overhead: 10526k -> 10526k
GGC runs: 516
comparing combine.c compilation at -O2 level:
Overall memory needed: 29233k -> 29237k
Peak memory use before GGC: 12674k
Peak memory use after GGC: 12548k
Maximum of released memory in single GGC run: 2533k
Garbage: 80568k -> 80569k
Leak: 6607k
Overhead: 14340k -> 14340k
GGC runs: 518
comparing combine.c compilation at -O3 level:
Overall memory needed: 31609k
Peak memory use before GGC: 12925k
Peak memory use after GGC: 12548k
Maximum of released memory in single GGC run: 3346k
Garbage: 109059k -> 109059k
Leak: 7126k
Overhead: 19205k -> 19205k
GGC runs: 583
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 117556k
Peak memory use before GGC: 78070k
Peak memory use after GGC: 45550k
Maximum of released memory in single GGC run: 42606k
Garbage: 159286k
Leak: 10957k
Overhead: 20804k
GGC runs: 274
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 128772k
Peak memory use before GGC: 83587k
Peak memory use after GGC: 69306k
Maximum of released memory in single GGC run: 40616k
Garbage: 441383k
Leak: 11302k
Overhead: 77391k
GGC runs: 406
comparing insn-attrtab.c compilation at -O2 level:
Overall memory allocated via mmap and sbrk increased from 153432k to 153700k, overall 0.17%
Overall memory needed: 153432k -> 153700k
Peak memory use before GGC: 99346k
Peak memory use after GGC: 84467k
Maximum of released memory in single GGC run: 41524k
Garbage: 487926k
Leak: 11226k
Overhead: 85492k
GGC runs: 342
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 153412k -> 153552k
Peak memory use before GGC: 99348k
Peak memory use after GGC: 84468k
Maximum of released memory in single GGC run: 41525k
Garbage: 489108k
Leak: 11268k
Overhead: 85650k
GGC runs: 349
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 111100k
Peak memory use before GGC: 86891k
Peak memory use after GGC: 85940k
Maximum of released memory in single GGC run: 19283k
Garbage: 246357k -> 246356k
Leak: 55500k -> 55500k
Overhead: 43355k
GGC runs: 368
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 104037k
Peak memory use before GGC: 85973k
Peak memory use after GGC: 84937k
Maximum of released memory in single GGC run: 18947k
Garbage: 466130k
Leak: 57247k
Overhead: 67141k
GGC runs: 550
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 104093k -> 104097k
Peak memory use before GGC: 85973k
Peak memory use after GGC: 84937k
Maximum of released memory in single GGC run: 18947k
Garbage: 500440k -> 500444k
Leak: 57825k
Overhead: 76603k -> 76604k
GGC runs: 592
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 111857k -> 111849k
Peak memory use before GGC: 92711k
Peak memory use after GGC: 86231k
Maximum of released memory in single GGC run: 19713k
Garbage: 520391k -> 520391k
Leak: 58143k
Overhead: 78451k -> 78451k
GGC runs: 578
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-01-11 05:14:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-01-11 10:59:16.000000000 +0000
@@ -1,3 +1,57 @@
+2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (override_options): Return error if
+ -mbackchain, -mpacked-stack and -mhard-float are used together.
+ (s390_va_start): Remove the backchain && packed-stack special case.
+ (s390_gimplify_va_arg): Likewise.
+ * doc/invoke.texi: Remove the ABI incompatibility note.
+
+2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (struct s390_frame_layout): Remove
+ save_backchain_p.
+ (s390_frame_info, s390_emit_prologue): Replace occurrences of
+ save_backchain_p with TARGET_BACKCHAIN.
+
+2005-01-11 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/18916
+ * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
+ * expr.h (struct locate_and_pad_arg_data): Add "boundary".
+ * function.c (locate_and_pad_parm): Set new field.
+ (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
+ Tweak where_pad test to include "none". Always set mem align for
+ stack_parm.
+ (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
+ not sufficient for type.
+ (assign_parm_setup_block): If stack_parm is zero on entry, always
+ make a new stack local. Block move old stack parm if necessary
+ to new aligned stack local.
+ (assign_parm_setup_stack): Use a block move to handle
+ potentially misaligned entry_parm.
+ (assign_parms_unsplit_complex): Specify required alignment when
+ creating stack local.
+ * calls.c (compute_argument_addresses): Override alignment of stack
+ arg calculated from its type with the alignment given by
+ FUNCTION_ARG_BOUNDARY.
+ (store_one_arg): Likewise.
+
+2005-01-11 Jan Beulich <jbeulich@novell.com>
+
+ * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
+ Change respective itanium_class attribute to ialu.
+ (shladdp4_internal): New.
+ * config/ia64/predicates.md (shladd_log2_operand): New.
+
+2005-01-11 Richard Henderson <rth@redhat.com>
+
+ * expr.c (store_constructor): Use rtvec_alloc instead of
+ alloca+gen_rtvec_v, and an incorrect number passed to alloca.
+
+2005-01-11 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
+
2005-01-11 Alan Modra <amodra@bigpond.net.au>
* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
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.