This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]