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: 24669k
    Peak memory use before GGC: 9358k
    Peak memory use after GGC: 8673k
    Maximum of released memory in single GGC run: 2863k
    Garbage: 41664k
    Leak: 6395k
    Overhead: 5772k
    GGC runs: 327

comparing combine.c compilation at -O1 level:
    Overall memory needed: 25525k -> 25521k
    Peak memory use before GGC: 9235k -> 9225k
    Peak memory use after GGC: 8740k
    Maximum of released memory in single GGC run: 2026k
    Garbage: 60531k -> 60443k
    Leak: 6755k -> 6755k
    Overhead: 9935k -> 9933k
    GGC runs: 500 -> 501

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29161k -> 28905k
    Peak memory use before GGC: 12670k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 2597k
    Garbage: 78472k -> 78378k
    Leak: 6593k -> 6593k
    Overhead: 13977k -> 13973k
    GGC runs: 510

comparing combine.c compilation at -O3 level:
    Overall memory needed: 31541k -> 31545k
    Peak memory use before GGC: 12773k
    Peak memory use after GGC: 12544k
    Maximum of released memory in single GGC run: 3434k
    Garbage: 105792k -> 105659k
    Leak: 7120k -> 7104k
    Overhead: 18741k -> 18737k
    GGC runs: 577

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 114136k
    Peak memory use before GGC: 74747k
    Peak memory use after GGC: 45493k
    Maximum of released memory in single GGC run: 39340k
    Garbage: 152668k
    Leak: 10984k
    Overhead: 19970k
    GGC runs: 274

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 123612k to 124000k, overall 0.31%
    Overall memory needed: 123612k -> 124000k
    Peak memory use before GGC: 78747k
    Peak memory use after GGC: 70087k
    Maximum of released memory in single GGC run: 40781k -> 40780k
    Garbage: 370047k -> 369645k
    Leak: 11361k
    Overhead: 69439k -> 69421k
    GGC runs: 398

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 147756k -> 147644k
    Peak memory use before GGC: 97758k
    Peak memory use after GGC: 83478k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 483932k -> 483554k
    Leak: 11242k
    Overhead: 84527k -> 84511k
    GGC runs: 342

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 147792k -> 147696k
    Peak memory use before GGC: 97759k
    Peak memory use after GGC: 83480k
    Maximum of released memory in single GGC run: 39384k
    Garbage: 484743k -> 484361k
    Leak: 11279k
    Overhead: 84657k -> 84640k
    GGC runs: 348

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 111056k
    Peak memory use before GGC: 87156k
    Peak memory use after GGC: 85895k
    Maximum of released memory in single GGC run: 19511k
    Garbage: 246036k
    Leak: 55506k
    Overhead: 43254k
    GGC runs: 366

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 103917k -> 103909k
    Peak memory use before GGC: 86014k
    Peak memory use after GGC: 85113k
    Maximum of released memory in single GGC run: 18951k
    Garbage: 435921k -> 435750k
    Leak: 56840k
    Overhead: 65020k -> 65009k
    GGC runs: 513

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 104149k
    Peak memory use before GGC: 86014k
    Peak memory use after GGC: 85114k
    Maximum of released memory in single GGC run: 18951k
    Garbage: 479123k -> 478931k
    Leak: 57408k
    Overhead: 74626k -> 74613k
    GGC runs: 573 -> 572

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 105209k -> 105205k
    Peak memory use before GGC: 87150k
    Peak memory use after GGC: 86193k
    Maximum of released memory in single GGC run: 19400k
    Garbage: 483908k -> 483658k
    Leak: 57579k -> 57571k
    Overhead: 75245k -> 75221k
    GGC runs: 560 -> 559

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2005-02-21 12:41:16.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2005-02-21 21:53:24.000000000 +0000
@@ -1,3 +1,36 @@
+2005-02-21  Stan Cox  <scox@redhat.com>
+
+	* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
+
+2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* tree-cfg.c (fold_cond_expr_cond): New.
+	(make_edges): Call fold_cond_expr_cond.
+	(find_taken_edge): Accept nothing but INTEGER_CST.
+	(find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
+	and 1.
+	(find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
+
+	* flow.c (delete_dead_jumptables): Speed up by scanning insns
+	that do not belong to any basic block.
+
+2005-02-21  Jeff Law  <law@redhat.com>
+
+	* cfganal.c (find_unreachable_blocks): Manually CSE load of
+	e->dest.
+
+2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
+	(SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
+	Adjust their definitions.
+	(remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
+	(rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
+
+	* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
+	genautomata.c, langhooks.c, langhooks.h, system.h,
+	config/arm/lib1funcs.asm: Update copyright.
+
 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
 
 	* dbxout.c (dbxout_function_end): Emit Lscope label always.

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]