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]

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: 24613k -> 24625k
    Peak memory use before GGC: 9345k
    Peak memory use after GGC: 8659k
    Maximum of released memory in single GGC run: 2864k
    Garbage: 41727k -> 41728k
    Leak: 6379k -> 6379k
    Overhead: 5777k -> 5777k
    GGC runs: 329

comparing combine.c compilation at -O1 level:
    Overall memory needed: 27013k -> 27017k
    Peak memory use before GGC: 9229k -> 9227k
    Peak memory use after GGC: 8728k
    Maximum of released memory in single GGC run: 2026k -> 2025k
    Garbage: 65778k -> 65778k
    Leak: 6747k -> 6748k
    Overhead: 10435k -> 10435k
    GGC runs: 518

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29541k -> 29545k
    Peak memory use before GGC: 12665k -> 12666k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 2534k -> 2533k
    Garbage: 79800k -> 79803k
    Leak: 6578k -> 6579k
    Overhead: 14294k -> 14295k
    GGC runs: 519

comparing combine.c compilation at -O3 level:
    Overall memory needed: 20156k -> 20152k
    Peak memory use before GGC: 12811k -> 12812k
    Peak memory use after GGC: 12540k
    Maximum of released memory in single GGC run: 3346k -> 3347k
    Garbage: 107764k -> 107748k
    Leak: 7092k -> 7077k
    Overhead: 18990k -> 18990k
    GGC runs: 586

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 117548k
    Peak memory use before GGC: 78061k -> 78062k
    Peak memory use after GGC: 45541k -> 45542k
    Maximum of released memory in single GGC run: 42606k
    Garbage: 159286k -> 159298k
    Leak: 10949k -> 10950k
    Overhead: 20803k -> 20804k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 128292k to 128728k, overall 0.34%
    Overall memory needed: 128292k -> 128728k
    Peak memory use before GGC: 83579k
    Peak memory use after GGC: 69298k
    Maximum of released memory in single GGC run: 40617k -> 40616k
    Garbage: 441378k -> 441377k
    Leak: 11294k -> 11295k
    Overhead: 77391k -> 77391k
    GGC runs: 406

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 153408k -> 153424k
    Peak memory use before GGC: 99340k
    Peak memory use after GGC: 84460k -> 84461k
    Maximum of released memory in single GGC run: 41525k -> 41524k
    Garbage: 487877k -> 487881k
    Leak: 11218k -> 11218k
    Overhead: 85488k -> 85488k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 153408k -> 153396k
    Peak memory use before GGC: 99341k -> 99342k
    Peak memory use after GGC: 84462k
    Maximum of released memory in single GGC run: 41525k
    Garbage: 488914k -> 488909k
    Leak: 11256k -> 11256k
    Overhead: 85635k -> 85635k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111088k
    Peak memory use before GGC: 86883k
    Peak memory use after GGC: 85932k -> 85933k
    Maximum of released memory in single GGC run: 19284k -> 19283k
    Garbage: 246367k -> 246358k
    Leak: 55491k -> 55492k
    Overhead: 43354k -> 43354k
    GGC runs: 367

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 104609k -> 104625k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 456297k -> 456274k
    Leak: 56812k -> 56812k
    Overhead: 66454k -> 66452k
    GGC runs: 541

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104681k -> 104685k
    Peak memory use before GGC: 85965k
    Peak memory use after GGC: 84929k
    Maximum of released memory in single GGC run: 18947k
    Garbage: 490964k -> 490949k
    Leak: 57401k -> 57401k
    Overhead: 75932k -> 75935k
    GGC runs: 587

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 112417k
    Peak memory use before GGC: 92703k
    Peak memory use after GGC: 86223k
    Maximum of released memory in single GGC run: 19713k -> 19712k
    Garbage: 506367k -> 506354k
    Leak: 57572k -> 57572k
    Overhead: 77457k -> 77457k
    GGC runs: 574

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-01-20 14:35:49.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-01-20 19:07:27.000000000 +0000
@@ -1,3 +1,31 @@
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+	PR target/19418
+	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
+	(_mm_castps_pd, _mm_castps_si128): New.
+	(_mm_castsi128_ps, _mm_castsi128_pd): New.
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+	PR target/19530
+	* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
+	__builtin_ia32_vec_init_v2si.
+	(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
+	* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
+	(ix86_init_mmx_sse_builtins): Create it.
+	(ix86_expand_builtin): Expand it.
+	(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
+	* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
+	(vec_extractv2si_0, vec_extractv2si_1): New.
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+	PR target/16533
+	* config/i386/i386.c (ix86_expand_push): New.
+	* config/i386/mmx.md (push<MMXMODE>1): New.
+	* config/i386/sse.md (push<SSEMODE>1): New.
+	* config/i386/i386-protos.h: Update.
+
 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* params.def, params.h, predict.c, tree-ssa-loop-im.c: Update

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]