This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
GCC memory consumption increased by recent patch!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Wed, 22 Sep 2004 13:49:24 +0000
- Subject: 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.