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: 24113k
    Peak memory use before GGC: 9295k
    Peak memory use after GGC: 8606k
    Maximum of released memory in single GGC run: 2870k
    Garbage: 42610k
    Leak: 6105k
    Overhead: 5587k
    GGC runs: 364

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 68500k to 68672k, overall 0.25%
    Overall memory needed: 25561k
    Peak memory use before GGC: 9375k
    Peak memory use after GGC: 8797k
    Maximum of released memory in single GGC run: 2030k
    Garbage: 68500k -> 68672k
    Leak: 6671k -> 6671k
    Overhead: 11039k -> 11044k
    GGC runs: 578

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 83588k to 83753k, overall 0.20%
    Overall memory needed: 28893k -> 28869k
    Peak memory use before GGC: 12771k
    Peak memory use after GGC: 12612k
    Maximum of released memory in single GGC run: 2521k
    Garbage: 83588k -> 83753k
    Leak: 6425k -> 6425k
    Overhead: 15582k -> 15589k
    GGC runs: 572

comparing combine.c compilation at -O3 level:
  Amount of produced GGC garbage increased from 111204k to 111476k, overall 0.24%
  Amount of memory still referenced at the end of compilation increased from 6927k to 6943k, overall 0.23%
    Overall memory needed: 20560k -> 20564k
    Peak memory use before GGC: 13015k
    Peak memory use after GGC: 12692k
    Maximum of released memory in single GGC run: 3360k
    Garbage: 111204k -> 111476k
    Leak: 6927k -> 6943k
    Overhead: 20610k -> 20622k
    GGC runs: 639 -> 640

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 116476k
    Peak memory use before GGC: 77100k
    Peak memory use after GGC: 45185k
    Maximum of released memory in single GGC run: 42129k
    Garbage: 159513k
    Leak: 10643k
    Overhead: 19805k
    GGC runs: 310

comparing insn-attrtab.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 451791k to 452497k, overall 0.16%
    Overall memory needed: 132896k -> 132920k
    Peak memory use before GGC: 93160k
    Peak memory use after GGC: 71527k
    Maximum of released memory in single GGC run: 41234k
    Garbage: 451791k -> 452497k
    Leak: 11076k
    Overhead: 73565k -> 73595k
    GGC runs: 462

comparing insn-attrtab.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 207036k to 207344k, overall 0.15%
  Amount of produced GGC garbage increased from 504325k to 505009k, overall 0.14%
    Overall memory needed: 207036k -> 207344k
    Peak memory use before GGC: 108720k -> 108724k
    Peak memory use after GGC: 87087k -> 87091k
    Maximum of released memory in single GGC run: 35979k
    Garbage: 504325k -> 505009k
    Leak: 11209k -> 11217k
    Overhead: 83674k -> 83704k
    GGC runs: 384 -> 385

comparing insn-attrtab.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 207012k to 207344k, overall 0.16%
  Amount of produced GGC garbage increased from 505418k to 506097k, overall 0.13%
    Overall memory needed: 207012k -> 207344k
    Peak memory use before GGC: 108725k -> 108729k
    Peak memory use after GGC: 87092k -> 87096k
    Maximum of released memory in single GGC run: 35979k
    Garbage: 505418k -> 506097k
    Leak: 11255k -> 11263k
    Overhead: 84067k -> 84096k
    GGC runs: 393 -> 394

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 115380k
    Peak memory use before GGC: 92257k
    Peak memory use after GGC: 90051k
    Maximum of released memory in single GGC run: 20148k
    Garbage: 269110k
    Leak: 60280k
    Overhead: 47207k
    GGC runs: 383

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 108500k -> 108492k
    Peak memory use before GGC: 95715k
    Peak memory use after GGC: 88917k
    Maximum of released memory in single GGC run: 19546k
    Garbage: 588458k -> 588862k
    Leak: 62422k
    Overhead: 131163k -> 131189k
    GGC runs: 604

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 109592k -> 109556k
    Peak memory use before GGC: 95715k
    Peak memory use after GGC: 88918k
    Maximum of released memory in single GGC run: 19545k
    Garbage: 642223k -> 642640k
    Leak: 62985k
    Overhead: 154633k -> 154660k
    GGC runs: 640 -> 642

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 107472k -> 107468k
    Peak memory use before GGC: 91702k
    Peak memory use after GGC: 90400k
    Maximum of released memory in single GGC run: 20260k
    Garbage: 673771k -> 674194k
    Leak: 63375k
    Overhead: 163465k -> 163491k
    GGC runs: 629

Head of changelog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2004-09-22 11:12:02.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2004-09-22 12:42:25.000000000 +0000
@@ -1,3 +1,32 @@
+2004-09-22  Diego Novillo  <dnovillo@redhat.com>
+
+	* fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
+	operands in an integer comparison.
+	* tree-cfg.c (find_taken_edge): Call fold() to determine
+	whether the predicate is known.
+
+2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
+	* configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
+	Create build and doc directories along with the language directories.
+	Don't create doc directory separately.
+	* configure: Regenerate.
+	* Makefile.in: Create all object and executables files built
+	with the build compiler in a build/ directory.
+	(genobjnames): Add missing build objects.
+	(STAGESTUFF): Don't stage the gen* programs.
+	(ggc-none.o): Define dependencies for the target compiler.
+	(build-print-rtl.o): Rename to build/print-rtl.o.
+	(build-errors.o): Rename to build/errors.o.
+	(build-varray.o): Rename to build/varray.o.
+	(maintainerclean): Delete the contents of the build directory.
+	($(genobjs): %.o): Explicitly use -o.
+	(build/insn-conditions.o): Delete specfic rule to use generic rule.
+	(build/gengtype-lex.o): Likewise.
+	(build/gengtype-yacc.o): Likewise.
+	(build/gcov-iov.o): Likewise.
+
 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* vec.h (VEC_space): Return true if there _is_ space.

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]