A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Tue Oct 4 23:02:00 GMT 2005
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing combine.c compilation at -O0 level:
Overall memory needed: 24905k -> 24881k
Peak memory use before GGC: 9628k -> 9594k
Peak memory use after GGC: 8975k -> 8941k
Maximum of released memory in single GGC run: 2768k -> 2737k
Garbage: 40300k -> 40083k
Leak: 6705k -> 6702k
Overhead: 5787k -> 5787k
GGC runs: 316
comparing combine.c compilation at -O1 level:
Overall memory needed: 27024k -> 26816k
Peak memory use before GGC: 17568k -> 17363k
Peak memory use after GGC: 17382k -> 17177k
Maximum of released memory in single GGC run: 2384k -> 2373k
Garbage: 60765k -> 60548k
Leak: 6890k
Overhead: 7588k -> 7589k
GGC runs: 385 -> 386
comparing combine.c compilation at -O2 level:
Overall memory needed: 27024k -> 26816k
Peak memory use before GGC: 17571k -> 17365k
Peak memory use after GGC: 17382k -> 17177k
Maximum of released memory in single GGC run: 2464k -> 2454k
Garbage: 78190k -> 77964k
Leak: 6978k
Overhead: 10086k -> 10084k
GGC runs: 456 -> 458
comparing combine.c compilation at -O3 level:
Overall memory needed: 27024k -> 26816k
Peak memory use before GGC: 18553k -> 18366k
Peak memory use after GGC: 18182k -> 17995k
Maximum of released memory in single GGC run: 3518k -> 3507k
Garbage: 111249k -> 111013k
Leak: 7073k
Overhead: 13913k -> 13912k
GGC runs: 518 -> 519
comparing insn-attrtab.c compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 9843k to 10095k, overall 2.56%
Overall memory needed: 82020k -> 80920k
Peak memory use before GGC: 70571k -> 69468k
Peak memory use after GGC: 45585k -> 45006k
Maximum of released memory in single GGC run: 36772k -> 36248k
Garbage: 147814k -> 146344k
Leak: 9843k -> 10095k
Overhead: 19790k -> 19790k
GGC runs: 251
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 113016k -> 111880k
Peak memory use before GGC: 95226k -> 94160k
Peak memory use after GGC: 84765k -> 83707k
Maximum of released memory in single GGC run: 32903k -> 32587k
Garbage: 291231k -> 290035k
Leak: 10076k
Overhead: 36690k -> 36692k
GGC runs: 244 -> 245
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 128264k -> 127112k
Peak memory use before GGC: 114499k -> 113404k
Peak memory use after GGC: 84716k -> 83667k
Maximum of released memory in single GGC run: 32496k -> 32200k
Garbage: 377332k -> 376138k
Leak: 10182k
Overhead: 48583k -> 48586k
GGC runs: 273 -> 274
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 128312k -> 127172k
Peak memory use before GGC: 114527k -> 113434k
Peak memory use after GGC: 84746k -> 83696k
Maximum of released memory in single GGC run: 32820k -> 32523k
Garbage: 377891k -> 376702k
Leak: 10186k
Overhead: 48733k -> 48736k
GGC runs: 275 -> 276
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 118988k -> 118148k
Peak memory use before GGC: 95750k -> 94920k
Peak memory use after GGC: 94799k -> 93973k
Maximum of released memory in single GGC run: 20733k -> 20293k
Garbage: 226868k -> 225925k
Leak: 49198k -> 49147k
Overhead: 36816k -> 36819k
GGC runs: 368 -> 369
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 106152k -> 105432k
Peak memory use before GGC: 95909k -> 95209k
Peak memory use after GGC: 93434k -> 92607k
Maximum of released memory in single GGC run: 20638k -> 20357k
Garbage: 571271k -> 570293k
Leak: 54996k -> 54942k
Overhead: 67787k -> 67786k
GGC runs: 516
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 106836k -> 106220k
Peak memory use before GGC: 95909k -> 95209k
Peak memory use after GGC: 93434k -> 92607k
Maximum of released memory in single GGC run: 20637k -> 20356k
Garbage: 653495k -> 652557k
Leak: 55767k -> 55729k
Overhead: 79097k -> 79099k
GGC runs: 582
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 109652k -> 108948k
Peak memory use before GGC: 97394k -> 96500k
Peak memory use after GGC: 94505k -> 94549k
Maximum of released memory in single GGC run: 21140k -> 20676k
Garbage: 709848k -> 708807k
Leak: 56966k -> 56912k
Overhead: 84155k -> 84154k
GGC runs: 584 -> 585
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2005-10-04 15:40:26.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2005-10-04 21:52:41.000000000 +0000
@@ -1,3 +1,40 @@
+2005-10-04 Devang Patel <dpatel@apple.com>
+
+ * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
+ real types.
+
+2005-10-04 Steve Ellcey <sje@cup.hp.com>
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction):
+ Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
+
+2005-10-04 Adrian Straetling <straetling@de.ibm.com>
+
+ * config/s390/s390.md ("TDSI","DP"): New mode macros.
+ ("TE","tg"): New mode attributes.
+ ("sync_compare_and_swap<mode>"): Replace with a define_expand.
+ ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
+ ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
+ dword_mode and one for GPRmode.
+
+2005-10-04 Ian Lance Taylor <ian@airs.com>
+
+ PR preprocessor/13726
+ * c-ppoutput.c (cb_include): Add comments parameter, and print out
+ any comments passed in.
+
+2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree.c (annotate_with_file_line): Fix typo.
+
+2005-10-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ PR ada/19382
+ * builtins.c (fold_builtin_memcmp): When constructing the pointer
+ type used to access data in the inlined length == 1 case, use
+ build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
+ (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
+
2005-10-04 Uros Bizjak <uros@kss-loka.si>
* config/i386/i386.h (TARGET_FISTTP): Enable also for
The results can be reproduced by building a 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.
Your testing script.
More information about the Gcc-regression
mailing list