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: 24581k
    Peak memory use before GGC: 9310k
    Peak memory use after GGC: 8624k
    Maximum of released memory in single GGC run: 2912k
    Garbage: 42433k
    Leak: 6088k
    Overhead: 5717k
    GGC runs: 353

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25637k -> 25489k
    Peak memory use before GGC: 9198k
    Peak memory use after GGC: 8720k
    Maximum of released memory in single GGC run: 2060k
    Garbage: 68024k -> 68023k
    Leak: 6484k
    Overhead: 10667k -> 10667k
    GGC runs: 545

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29305k -> 29073k
    Peak memory use before GGC: 12705k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 2574k
    Garbage: 82249k
    Leak: 6301k
    Overhead: 14829k
    GGC runs: 547

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 20724k to 31501k, overall 52.00%
    Overall memory needed: 20724k -> 31501k
    Peak memory use before GGC: 12987k
    Peak memory use after GGC: 12578k
    Maximum of released memory in single GGC run: 3408k
    Garbage: 111192k
    Leak: 6848k
    Overhead: 19907k
    GGC runs: 614

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: 161980k
    Leak: 10609k
    Overhead: 21242k
    GGC runs: 296

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 129432k
    Peak memory use before GGC: 83952k
    Peak memory use after GGC: 70040k
    Maximum of released memory in single GGC run: 41104k
    Garbage: 445754k
    Leak: 10955k
    Overhead: 79294k
    GGC runs: 430

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 153912k
    Peak memory use before GGC: 99964k
    Peak memory use after GGC: 85453k
    Maximum of released memory in single GGC run: 42091k
    Garbage: 492646k
    Leak: 10875k
    Overhead: 87569k
    GGC runs: 364

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 153920k
    Peak memory use before GGC: 99966k
    Peak memory use after GGC: 85455k
    Maximum of released memory in single GGC run: 42091k
    Garbage: 493925k
    Leak: 10920k
    Overhead: 87750k
    GGC runs: 372

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 113400k
    Peak memory use before GGC: 89919k
    Peak memory use after GGC: 89025k
    Maximum of released memory in single GGC run: 19896k
    Garbage: 248727k
    Leak: 57791k
    Overhead: 45380k
    GGC runs: 362

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 95920k
    Peak memory use before GGC: 88916k
    Peak memory use after GGC: 87943k
    Maximum of released memory in single GGC run: 19402k
    Garbage: 552642k
    Leak: 59827k
    Overhead: 115285k
    GGC runs: 612

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 95920k
    Peak memory use before GGC: 88916k
    Peak memory use after GGC: 87943k
    Maximum of released memory in single GGC run: 19401k
    Garbage: 601971k
    Leak: 60409k
    Overhead: 137370k
    GGC runs: 651

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 98436k
    Peak memory use before GGC: 90313k
    Peak memory use after GGC: 88776k
    Maximum of released memory in single GGC run: 20091k
    Garbage: 641871k
    Leak: 60739k
    Overhead: 148762k
    GGC runs: 646

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-12-15 17:45:26.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-12-15 23:11:31.000000000 +0000
@@ -1,3 +1,40 @@
+2004-12-15  Daniel Berlin  <dberlin@dberlin.org>
+	
+	* cfgloop.c (flow_loops_dump): Don't print out levels.
+	(flow_loops_find): Don't set loop->levels.
+	(flow_loops_level_compute): Make void.
+	* cfgloop.h (struct loops): Remove levels member.
+	Add comment about loops in parray possibly being NULL.
+
+2004-12-15  Alexandre Oliva  <aoliva@redhat.com>
+
+	* reload.c (SMALL_REGISTER_CLASS_P): New.
+	(push_secondary_reload, find_reusable_reload, find_reloads): Use
+	it instead of testing only the class size.
+
+2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR c++/17972
+	* tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS
+	on the STMT_EXPR wrapping up the inlined body.
+
+2004-12-15  Vladimir Makarov  <vmakarov@redhat.com>
+            Steven Bosscher  <stevenb@suse.de>
+	PR middle end/17340
+
+	* global.c: Update comments in a few places.
+	(check_earlyclobber): Return true if there are early clobber
+	classes.
+        (calculate_local_reg_bb_info): Do not try to mark earlyclobber
+	regs if there are none.
+	(bb_info, allocate_bb_info, free_bb_info, modify_reg_pav,
+	make_accurate_live_analysis): Rename pavin, pavout to live_pavin,
+	live_pavout.
+	(modify_bb_reg_pav): Remove.
+	(calculate_reg_pav): Use code from modify_bb_reg_pav.
+	(temp_bitmap): New variable.
+	(calculate_reg_pav): Allocate/deallocate temp_bitmap.
+	
 2004-12-15  Richard Henderson  <rth@redhat.com>
 
 	PR target/19010

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]