GCC memory consumption increased by recent patch!

gcctest@suse.de gcctest@suse.de
Wed Nov 3 22:06: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: 25233k
    Peak memory use before GGC: 9329k
    Peak memory use after GGC: 8641k
    Maximum of released memory in single GGC run: 2926k
    Garbage: 42515k
    Leak: 6088k
    Overhead: 5657k
    GGC runs: 354

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 26477k to 26517k, overall 0.15%
    Overall memory needed: 26477k -> 26517k
    Peak memory use before GGC: 9205k
    Peak memory use after GGC: 8733k
    Maximum of released memory in single GGC run: 2066k
    Garbage: 69774k -> 69782k
    Leak: 6484k -> 6480k
    Overhead: 11359k -> 11359k
    GGC runs: 554 -> 555

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29825k
    Peak memory use before GGC: 12705k
    Peak memory use after GGC: 12579k
    Maximum of released memory in single GGC run: 2576k
    Garbage: 84780k -> 84780k
    Leak: 6303k
    Overhead: 15985k -> 15985k
    GGC runs: 562

comparing combine.c compilation at -O3 level:
    Overall memory needed: 21392k
    Peak memory use before GGC: 13093k
    Peak memory use after GGC: 12579k
    Maximum of released memory in single GGC run: 3413k
    Garbage: 113749k -> 113749k
    Leak: 6845k
    Overhead: 21057k -> 21057k
    GGC runs: 629

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 118512k
    Peak memory use before GGC: 79408k
    Peak memory use after GGC: 46137k
    Maximum of released memory in single GGC run: 43357k
    Garbage: 161088k
    Leak: 10609k
    Overhead: 20460k
    GGC runs: 295

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 125048k
    Peak memory use before GGC: 86894k
    Peak memory use after GGC: 70491k
    Maximum of released memory in single GGC run: 41161k
    Garbage: 430920k
    Leak: 10956k
    Overhead: 80011k
    GGC runs: 441

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 151484k
    Peak memory use before GGC: 102310k
    Peak memory use after GGC: 85907k
    Maximum of released memory in single GGC run: 42321k
    Garbage: 477316k
    Leak: 10883k
    Overhead: 88016k
    GGC runs: 362

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 151488k
    Peak memory use before GGC: 102312k
    Peak memory use after GGC: 85909k
    Maximum of released memory in single GGC run: 42322k
    Garbage: 478589k
    Leak: 10927k
    Overhead: 88206k
    GGC runs: 371

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 112784k
    Peak memory use before GGC: 89431k
    Peak memory use after GGC: 88443k
    Maximum of released memory in single GGC run: 19812k
    Garbage: 250165k
    Leak: 57105k
    Overhead: 45841k
    GGC runs: 363

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 95348k
    Peak memory use before GGC: 88431k
    Peak memory use after GGC: 87373k
    Maximum of released memory in single GGC run: 19437k
    Garbage: 595654k -> 595564k
    Leak: 59145k -> 59145k
    Overhead: 133280k -> 133258k
    GGC runs: 628

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 95720k -> 95680k
    Peak memory use before GGC: 88431k
    Peak memory use after GGC: 87373k
    Maximum of released memory in single GGC run: 19437k
    Garbage: 651583k -> 651671k
    Leak: 59735k -> 59735k
    Overhead: 158232k -> 158238k
    GGC runs: 675

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 103024k to 103196k, overall 0.17%
    Overall memory needed: 103024k -> 103196k
    Peak memory use before GGC: 95610k
    Peak memory use after GGC: 88661k
    Maximum of released memory in single GGC run: 20248k
    Garbage: 699700k -> 699713k
    Leak: 60123k -> 60125k
    Overhead: 172017k -> 172044k
    GGC runs: 664

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-11-03 16:23:42.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-11-03 20:55:08.000000000 +0000
@@ -1,3 +1,32 @@
+2004-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR tree-opt/18231
+	* tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static
+	also.
+
+2004-11-03  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR tree-optimization/18270
+	* tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming
+	abnormal edges, commit all pending stmts on incoming edges.
+
+2004-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not
+	cause extra costs.  Generate canonical RTL.
+
+2004-11-02  Daniel Berlin  <dberlin@dberlin.org>
+
+	* lambda-code.c (lambda_compute_auxillary_space): Update comments.
+	(lambda_compute_target_space). Ditto.
+	* lambda.h (lambda_trans_matrix): Ditto.
+	(lambda_linear_expression): Ditto.
+	(lambda_body_vector): Ditto.
+	(lambda_loopnest): Ditto.
+	* tree-loop-linear.c (gather_interchange_stats): Combine tests,
+	update comments, and remove pointless addition of 0.
+	(linear_transform_loops): Update comments.
+
 2004-11-03  Sebastian Pop  <pop@cri.ensmp.fr>
 
 	* tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of

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