GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Sun Nov 28 02:00: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:
    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.



More information about the Gcc-regression mailing list