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: Sun, 28 Nov 2004 02:00:19 +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: 25337k
Peak memory use before GGC: 9329k
Peak memory use after GGC: 8641k
Maximum of released memory in single GGC run: 2926k
Garbage: 42669k
Leak: 6088k
Overhead: 5744k
GGC runs: 354
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 67607k to 67866k, overall 0.38%
Overall memory needed: 25877k -> 25865k
Peak memory use before GGC: 9204k
Peak memory use after GGC: 8722k
Maximum of released memory in single GGC run: 2062k
Garbage: 67607k -> 67866k
Leak: 6485k -> 6485k
Overhead: 10612k -> 10640k
GGC runs: 544
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 81913k to 82177k, overall 0.32%
Overall memory needed: 29993k -> 29981k
Peak memory use before GGC: 12705k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 2576k -> 2575k
Garbage: 81913k -> 82177k
Leak: 6306k -> 6305k
Overhead: 14825k -> 14853k
GGC runs: 547
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 110589k to 110988k, overall 0.36%
Overall memory needed: 20148k -> 20140k
Peak memory use before GGC: 13004k
Peak memory use after GGC: 12579k
Maximum of released memory in single GGC run: 3411k -> 3412k
Garbage: 110589k -> 110988k
Leak: 6832k -> 6833k
Overhead: 19814k -> 19851k
GGC runs: 613 -> 612
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 118468k
Peak memory use before GGC: 79386k
Peak memory use after GGC: 46137k
Maximum of released memory in single GGC run: 43335k
Garbage: 162170k
Leak: 10610k
Overhead: 21250k
GGC runs: 295
comparing insn-attrtab.c compilation at -O1 level:
Overall memory allocated via mmap and sbrk increased from 127020k to 131556k, overall 3.57%
Overall memory needed: 127020k -> 131556k
Peak memory use before GGC: 85228k
Peak memory use after GGC: 70039k
Maximum of released memory in single GGC run: 41127k
Garbage: 444564k
Leak: 10956k
Overhead: 79425k
GGC runs: 426
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 154176k
Peak memory use before GGC: 101239k
Peak memory use after GGC: 85452k
Maximum of released memory in single GGC run: 42306k
Garbage: 491530k
Leak: 10876k
Overhead: 87683k
GGC runs: 358
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 154232k
Peak memory use before GGC: 101241k
Peak memory use after GGC: 85454k
Maximum of released memory in single GGC run: 42306k
Garbage: 492818k
Leak: 10923k
Overhead: 87871k
GGC runs: 366
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 112876k
Peak memory use before GGC: 89414k
Peak memory use after GGC: 88516k
Maximum of released memory in single GGC run: 19743k
Garbage: 249133k
Leak: 57170k
Overhead: 45266k
GGC runs: 363
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 552135k to 554114k, overall 0.36%
Overall memory needed: 95400k
Peak memory use before GGC: 88439k
Peak memory use after GGC: 87429k
Maximum of released memory in single GGC run: 19392k
Garbage: 552135k -> 554114k
Leak: 59207k
Overhead: 116110k -> 116261k
GGC runs: 613
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 599351k to 600855k, overall 0.25%
Overall memory needed: 95400k
Peak memory use before GGC: 88439k
Peak memory use after GGC: 87429k
Maximum of released memory in single GGC run: 19392k
Garbage: 599351k -> 600855k
Leak: 59790k -> 59790k
Overhead: 137527k -> 137667k
GGC runs: 650 -> 655
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 639320k to 640485k, overall 0.18%
Overall memory needed: 103092k
Peak memory use before GGC: 95525k
Peak memory use after GGC: 88741k
Maximum of released memory in single GGC run: 20197k
Garbage: 639320k -> 640485k
Leak: 60117k -> 60125k
Overhead: 148658k -> 148776k
GGC runs: 647 -> 649
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2004-11-27 15:54:30.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2004-11-28 00:56:30.000000000 +0000
@@ -1,3 +1,53 @@
+2004-11-28 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/16800
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
+ EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED.
+ Distinguish between SImode and DImode CONST_INT.
+
+2004-11-28 Andreas Fischer <a_fisch@gmx.de>
+ Alan Modra <amodra@bigpond.net.au>
+
+ PR target/16343
+ * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
+ functions, strings and thread-local vars.
+
+2004-11-28 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
+ * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
+ * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
+ to allow non-darwin ABIs to optimize away code.
+ (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
+
+2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree.c (operand_equal_for_phi_arg_p): New.
+ * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
+ * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
+ Replace operand_equal_p with operand_for_phi_arg_p
+ appropriately.
+
+ * bb-reorder.c (find_traces_1_round): Speed up by using
+ EDGE_COUNT instead of FOR_EACH_EDGE.
+
+ * fold-const.c, config/i386/linux64.h: Fix comment typos.
+
+2004-11-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR pch/14940
+ * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
+
+2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/i386/linux.h: Fix a comment typo.
+ * doc/extend.texi: Fix a typo.
+
+2004-11-27 Jeff Law <law@redhat.com>
+
+ * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
+ are merged.
+
2004-11-27 Jakub Jelinek <jakub@redhat.com>
* config/i386/linux64.h (REG_NAME): Define.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2004-11-27 15:54:37.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2004-11-28 00:56:32.000000000 +0000
@@ -1,3 +1,7 @@
+2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * pt.c: Fix a comment typo.
+
2004-11-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
Friend class name lookup 4/n
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.