GCC memory consumption increased by recent patch!
gcctest@suse.de
gcctest@suse.de
Tue Sep 7 00:29:00 GMT 2004
Hi,
Comparing memory consumption on compilation of combine.i and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Peak memory use before GGC: 12120k -> 12120k
Peak memory use after GGC: 11641k -> 11641k
Maximum of released memory in single GGC run: 2368k -> 2368k
Garbage: 42976k -> 42976k
Leak: 10910k -> 10910k
Overhead: 5810k -> 5810k
GGC runs: 447 -> 447
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 86850k to 86977k, overall 0.15%
Peak memory use before GGC: 11131k -> 11131k
Peak memory use after GGC: 10454k -> 10454k
Maximum of released memory in single GGC run: 1767k -> 1767k
Garbage: 86850k -> 86977k
Leak: 10005k -> 10005k
Overhead: 14989k -> 14998k
GGC runs: 668 -> 668
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 102943k to 103085k, overall 0.14%
Peak memory use before GGC: 13613k -> 13597k
Peak memory use after GGC: 13160k -> 13160k
Maximum of released memory in single GGC run: 2104k -> 2104k
Garbage: 102943k -> 103085k
Leak: 10025k -> 10025k
Overhead: 19886k -> 19894k
GGC runs: 673 -> 674
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 135722k to 135931k, overall 0.15%
Peak memory use before GGC: 17554k -> 17554k
Peak memory use after GGC: 15529k -> 15529k
Maximum of released memory in single GGC run: 3047k -> 3047k
Garbage: 135722k -> 135931k
Leak: 12211k -> 12211k
Overhead: 26200k -> 26217k
GGC runs: 727 -> 727
comparing Gerald's testcase PR8361 compilation at -O0 level:
Peak memory use before GGC: 93183k -> 93183k
Peak memory use after GGC: 91694k -> 91694k
Maximum of released memory in single GGC run: 20289k -> 20289k
Garbage: 255121k -> 255121k
Leak: 72853k -> 72853k
Overhead: 34608k -> 34608k
GGC runs: 538 -> 538
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 675503k to 677082k, overall 0.23%
Peak memory use before GGC: 97174k -> 97174k
Peak memory use after GGC: 90561k -> 90561k
Maximum of released memory in single GGC run: 19488k -> 19488k
Garbage: 675503k -> 677082k
Leak: 90181k -> 90181k
Overhead: 147559k -> 147670k
GGC runs: 820 -> 821
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 742180k to 743773k, overall 0.21%
Peak memory use before GGC: 97175k -> 97175k
Peak memory use after GGC: 90562k -> 90562k
Maximum of released memory in single GGC run: 19489k -> 19489k
Garbage: 742180k -> 743773k
Leak: 89222k -> 89222k
Overhead: 170322k -> 170435k
GGC runs: 867 -> 867
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 793533k to 795455k, overall 0.24%
Peak memory use before GGC: 92864k -> 92864k
Peak memory use after GGC: 91396k -> 91396k
Maximum of released memory in single GGC run: 20194k -> 20194k
Garbage: 793533k -> 795455k
Leak: 90657k -> 90657k
Overhead: 185147k -> 185287k
GGC runs: 865 -> 866
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-09-06 18:08:12.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-09-06 23:57:21.000000000 +0000
@@ -1,3 +1,34 @@
+2004-09-06 James E Wilson <wilson@specifixinc.com>
+
+ * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
+ movdf_hardfloat_32bit): Split fG into two alternatives.
+ (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
+
+ * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
+
+2004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * final.c (output_in_slot): Delete.
+ (final_scan_insn): Revert 2004-09-03 change.
+ (output_asm_insn): Likewise.
+ * config/sparc/sparc.c (output_return): Likewise.
+ (output_sibcall): Likewise.
+
+2004-09-06 Jan Hubicka <jh@suse.cz>
+
+ * loop.c (loop_dump_aux): Do not print RTL when not available.
+ * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
+ frontend specific type nodes.
+ (produce_memory_decl_rtl): Break out from ...
+ (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly.
+ (get_computation_at): Avoid random tree sharing.
+ (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
+
+2004-09-06 Zack Weinberg <zack@codesourcery.com>
+
+ * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
+ unnecessary commands.
+
2004-09-06 Mohan Embar <gnustuff@thisiscool.com>
* Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
@@ -422,20 +453,20 @@
2004-09-03 Richard Henderson <rth@redhat.com>
- PR middle-end/9997
- * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
- (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
- (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
- stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
- frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
- resize_stack_vars_conflict, add_stack_var_conflict,
- stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
- union_stack_vars, partition_stack_vars, dump_stack_var_partition,
- expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
+ PR middle-end/9997
+ * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
+ (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
+ (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
+ stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
+ frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
+ resize_stack_vars_conflict, add_stack_var_conflict,
+ stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
+ union_stack_vars, partition_stack_vars, dump_stack_var_partition,
+ expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
expand_one_static_var, expand_one_hard_reg_var,
expand_one_register_var, expand_one_error_var, defer_stack_allocation,
expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
- (expand_used_vars): Rewrite.
+ (expand_used_vars): Rewrite.
* Makefile.in (cfgexpand.o): Update dependencies.
2004-09-04 Jan Hubicka <jh@suse.cz>
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2004-09-06 18:08:15.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2004-09-06 23:57:27.000000000 +0000
@@ -1,3 +1,7 @@
+2004-09-06 Daniel Jacobowitz <dan@debian.org>
+
+ * semantics.c (expand_body): Assert that we are not nested.
+
2004-09-06 Zack Weinberg <zack@codesourcery.com>
* decl.c (build_enumerator): Use add_double and int_fits_type_p
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.
More information about the Gcc-regression
mailing list