This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
Some aspect of 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: Sat, 22 Jan 2005 00:55:23 +0000
- Subject: Some aspect of 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:
Amount of memory still referenced at the end of compilation increased from 6379k to 6395k, overall 0.24%
Overall memory needed: 24625k -> 24617k
Peak memory use before GGC: 9345k
Peak memory use after GGC: 8659k
Maximum of released memory in single GGC run: 2864k
Garbage: 41728k -> 41677k
Leak: 6379k -> 6395k
Overhead: 5777k -> 5774k
GGC runs: 329
comparing combine.c compilation at -O1 level:
Overall memory needed: 26733k -> 26729k
Peak memory use before GGC: 9223k
Peak memory use after GGC: 8716k
Maximum of released memory in single GGC run: 2024k
Garbage: 66017k -> 65972k
Leak: 6750k -> 6750k
Overhead: 10461k -> 10458k
GGC runs: 520
comparing combine.c compilation at -O2 level:
Overall memory needed: 29525k -> 29513k
Peak memory use before GGC: 12666k -> 12656k
Peak memory use after GGC: 12540k -> 12530k
Maximum of released memory in single GGC run: 2551k
Garbage: 80113k -> 80081k
Leak: 6574k
Overhead: 14288k -> 14285k
GGC runs: 524
comparing combine.c compilation at -O3 level:
Overall memory needed: 20276k -> 20232k
Peak memory use before GGC: 12790k -> 12782k
Peak memory use after GGC: 12540k -> 12530k
Maximum of released memory in single GGC run: 3352k
Garbage: 108234k -> 108216k
Leak: 7095k
Overhead: 19010k -> 19007k
GGC runs: 589
comparing insn-attrtab.c compilation at -O0 level:
Peak amount of GGC memory allocated before garbage collecting run decreased from 78062k to 74734k, overall -4.45%
Amount of produced GGC garbage decreased from 159298k to 152710k, overall -4.31%
Overall memory needed: 117548k -> 114132k
Peak memory use before GGC: 78062k -> 74734k
Peak memory use after GGC: 45542k -> 45480k
Maximum of released memory in single GGC run: 42606k -> 39341k
Garbage: 159298k -> 152710k
Leak: 10950k
Overhead: 20804k -> 19973k
GGC runs: 274
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 128868k -> 125156k
Peak memory use before GGC: 83555k -> 83493k
Peak memory use after GGC: 69270k -> 69209k
Maximum of released memory in single GGC run: 43037k -> 40528k
Garbage: 441543k -> 435249k
Leak: 11295k
Overhead: 77410k -> 76697k
GGC runs: 406
comparing insn-attrtab.c compilation at -O2 level:
Ovarall memory allocated via mmap and sbrk decreased from 153560k to 147340k, overall -4.22%
Overall memory needed: 153560k -> 147340k
Peak memory use before GGC: 99316k -> 98331k
Peak memory use after GGC: 84432k -> 83448k
Maximum of released memory in single GGC run: 41526k -> 39290k
Garbage: 488010k -> 481661k
Leak: 11217k -> 11225k
Overhead: 85501k -> 84780k
GGC runs: 342
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 153408k -> 148976k
Peak memory use before GGC: 99318k -> 98333k
Peak memory use after GGC: 84434k -> 83449k
Maximum of released memory in single GGC run: 41527k -> 39291k
Garbage: 489044k -> 482696k
Leak: 11255k -> 11263k
Overhead: 85648k -> 84927k
GGC runs: 348
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 111088k
Peak memory use before GGC: 86883k -> 86882k
Peak memory use after GGC: 85933k -> 85932k
Maximum of released memory in single GGC run: 19283k
Garbage: 246358k -> 246347k
Leak: 55492k
Overhead: 43354k -> 43354k
GGC runs: 367 -> 368
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 104585k
Peak memory use before GGC: 85965k
Peak memory use after GGC: 84929k
Maximum of released memory in single GGC run: 18947k
Garbage: 456850k
Leak: 56813k
Overhead: 66475k
GGC runs: 541
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 104649k
Peak memory use before GGC: 85965k
Peak memory use after GGC: 84929k
Maximum of released memory in single GGC run: 18947k
Garbage: 491582k
Leak: 57399k
Overhead: 75939k
GGC runs: 590
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 112393k
Peak memory use before GGC: 92703k
Peak memory use after GGC: 86223k
Maximum of released memory in single GGC run: 19712k
Garbage: 507078k
Leak: 57568k
Overhead: 77505k
GGC runs: 574
Head of changelog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-01-21 18:27:21.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-01-21 23:54:47.000000000 +0000
@@ -1,3 +1,20 @@
+2005-01-20 Ian Lance Taylor <ian@airs.com>
+
+ PR tree-optimization/13000
+ * tree-inline.c: Include "tree-flow.h".
+ (expand_call_inline): If warn_return_type, warn if non-void inline
+ function falls through.
+ * tree-cfg.c (execute_warn_function_return): Don't warn about
+ control reaching end if TREE_NO_WARNING is set. Set
+ TREE_NO_WARNING.
+ * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
+ has been lowered.
+ * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
+ branch if we don't need one.
+ * c-typeck.c: Include "tree-flow.h"
+ (c_finish_bc_stmt): Don't add a goto if the current statement
+ list doesn't fall through to the current point.
+
2005-01-21 Roger Sayle <roger@eyesopen.com>
PR rtl-optimization/576
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.