This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Sat, 15 Nov 2008 10:06:50 +0000
- Subject: A recent patch increased GCC's memory consumption!
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 empty function compilation at -O0 level:
Overall memory needed: 8208k -> 8207k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1217k
Maximum of released memory in single GGC run: 134k
Garbage: 218k
Leak: 1221k
Overhead: 136k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8452k -> 8451k
Peak memory use before GGC: 1319k
Peak memory use after GGC: 1245k
Maximum of released memory in single GGC run: 133k
Garbage: 220k
Leak: 1254k
Overhead: 141k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O1 level:
Overall memory needed: 8240k -> 8239k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1217k
Maximum of released memory in single GGC run: 134k
Garbage: 221k
Leak: 1221k
Overhead: 137k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O2 level:
Overall memory needed: 8452k -> 8451k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1218k
Maximum of released memory in single GGC run: 135k
Garbage: 226k
Leak: 1221k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing empty function compilation at -O3 level:
Overall memory needed: 8456k -> 8455k
Peak memory use before GGC: 1291k
Peak memory use after GGC: 1218k
Maximum of released memory in single GGC run: 135k
Garbage: 226k
Leak: 1221k
Overhead: 138k
GGC runs: 4
Pre-IPA-Garbage: 207k
Pre-IPA-Leak: 1224k
Pre-IPA-Overhead: 135k
Post-IPA-Garbage: 207k
Post-IPA-Leak: 1224k
Post-IPA-Overhead: 135k
comparing combine.c compilation at -O0 level:
Overall memory needed: 31988k -> 31987k
Peak memory use before GGC: 18018k
Peak memory use after GGC: 17801k
Maximum of released memory in single GGC run: 1839k
Garbage: 39406k
Leak: 5800k
Overhead: 5220k
GGC runs: 337
Pre-IPA-Garbage: 12408k
Pre-IPA-Leak: 19349k
Pre-IPA-Overhead: 2559k
Post-IPA-Garbage: 12408k
Post-IPA-Leak: 19349k
Post-IPA-Overhead: 2559k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 34008k -> 34007k
Peak memory use before GGC: 19938k
Peak memory use after GGC: 19657k
Maximum of released memory in single GGC run: 1849k
Garbage: 39703k
Leak: 9082k
Overhead: 6038k
GGC runs: 321
Pre-IPA-Garbage: 12507k
Pre-IPA-Leak: 21623k
Pre-IPA-Overhead: 3049k
Post-IPA-Garbage: 12507k
Post-IPA-Leak: 21623k
Post-IPA-Overhead: 3049k
comparing combine.c compilation at -O1 level:
Overall memory needed: 30748k -> 30783k
Peak memory use before GGC: 15682k
Peak memory use after GGC: 15507k
Maximum of released memory in single GGC run: 1340k -> 1341k
Garbage: 46801k -> 46800k
Leak: 5780k -> 5780k
Overhead: 6014k -> 6013k
GGC runs: 402
Pre-IPA-Garbage: 13147k
Pre-IPA-Leak: 16845k
Pre-IPA-Overhead: 2472k
Post-IPA-Garbage: 13147k
Post-IPA-Leak: 16845k
Post-IPA-Overhead: 2472k
comparing combine.c compilation at -O2 level:
Overall memory needed: 31448k -> 31199k
Peak memory use before GGC: 15823k
Peak memory use after GGC: 15661k
Maximum of released memory in single GGC run: 1355k
Garbage: 60528k -> 60506k
Leak: 5809k -> 5809k
Overhead: 8023k -> 8019k
GGC runs: 469
Pre-IPA-Garbage: 13310k
Pre-IPA-Leak: 16927k
Pre-IPA-Overhead: 2491k
Post-IPA-Garbage: 13310k
Post-IPA-Leak: 16927k
Post-IPA-Overhead: 2491k
comparing combine.c compilation at -O3 level:
Overall memory needed: 31972k -> 31983k
Peak memory use before GGC: 15911k
Peak memory use after GGC: 15752k
Maximum of released memory in single GGC run: 1629k
Garbage: 72955k -> 72920k
Leak: 7136k -> 7136k
Overhead: 9459k -> 9453k
GGC runs: 496 -> 495
Pre-IPA-Garbage: 13310k
Pre-IPA-Leak: 16927k
Pre-IPA-Overhead: 2491k
Post-IPA-Garbage: 13310k
Post-IPA-Leak: 16927k
Post-IPA-Overhead: 2491k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 155236k -> 155235k
Peak memory use before GGC: 65230k
Peak memory use after GGC: 53275k
Maximum of released memory in single GGC run: 27424k
Garbage: 130437k
Leak: 8497k
Overhead: 15723k
GGC runs: 263
Pre-IPA-Garbage: 38215k
Pre-IPA-Leak: 55487k
Pre-IPA-Overhead: 8223k
Post-IPA-Garbage: 38215k
Post-IPA-Leak: 55487k
Post-IPA-Overhead: 8223k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 156508k -> 156511k
Peak memory use before GGC: 66504k
Peak memory use after GGC: 54546k
Maximum of released memory in single GGC run: 27425k
Garbage: 130915k
Leak: 10147k
Overhead: 16179k
GGC runs: 255
Pre-IPA-Garbage: 38272k
Pre-IPA-Leak: 57029k
Pre-IPA-Overhead: 8558k
Post-IPA-Garbage: 38272k
Post-IPA-Leak: 57029k
Post-IPA-Overhead: 8558k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 133328k -> 133327k
Peak memory use before GGC: 50200k
Peak memory use after GGC: 43294k
Maximum of released memory in single GGC run: 22951k
Garbage: 180978k -> 180978k
Leak: 7873k
Overhead: 24528k -> 24528k
GGC runs: 301
Pre-IPA-Garbage: 43193k
Pre-IPA-Leak: 43086k
Pre-IPA-Overhead: 7642k
Post-IPA-Garbage: 43193k
Post-IPA-Leak: 43086k
Post-IPA-Overhead: 7642k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 148820k -> 148823k
Peak memory use before GGC: 50204k
Peak memory use after GGC: 45013k
Maximum of released memory in single GGC run: 17966k
Garbage: 204660k -> 204660k
Leak: 15536k
Overhead: 30014k -> 30014k
GGC runs: 326
Pre-IPA-Garbage: 43265k
Pre-IPA-Leak: 43092k
Pre-IPA-Overhead: 7651k
Post-IPA-Garbage: 43265k
Post-IPA-Leak: 43092k
Post-IPA-Overhead: 7651k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 162704k -> 162723k
Peak memory use before GGC: 61826k
Peak memory use after GGC: 58725k
Maximum of released memory in single GGC run: 23617k
Garbage: 242519k -> 242519k
Leak: 7899k
Overhead: 33464k -> 33463k
GGC runs: 339
Pre-IPA-Garbage: 43265k
Pre-IPA-Leak: 43092k
Pre-IPA-Overhead: 7651k
Post-IPA-Garbage: 43265k
Post-IPA-Leak: 43092k
Post-IPA-Overhead: 7651k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 151211k -> 151196k
Peak memory use before GGC: 82970k
Peak memory use after GGC: 82148k
Maximum of released memory in single GGC run: 14702k
Garbage: 205126k -> 205124k
Leak: 52167k
Overhead: 26925k -> 26925k
GGC runs: 415
Pre-IPA-Garbage: 111129k -> 111127k
Pre-IPA-Leak: 88391k
Pre-IPA-Overhead: 14820k -> 14820k
Post-IPA-Garbage: 111129k -> 111127k
Post-IPA-Leak: 88391k
Post-IPA-Overhead: 14820k -> 14820k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169155k -> 169156k
Peak memory use before GGC: 96597k
Peak memory use after GGC: 95640k
Maximum of released memory in single GGC run: 15130k
Garbage: 210732k -> 210731k
Leak: 78735k
Overhead: 33589k -> 33589k
GGC runs: 387
Pre-IPA-Garbage: 111750k -> 111748k
Pre-IPA-Leak: 104906k
Pre-IPA-Overhead: 18323k -> 18323k
Post-IPA-Garbage: 111750k -> 111748k
Post-IPA-Leak: 104906k
Post-IPA-Overhead: 18323k -> 18323k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 111227k -> 111239k
Peak memory use before GGC: 84251k
Peak memory use after GGC: 83412k
Maximum of released memory in single GGC run: 14982k
Garbage: 282187k -> 282165k
Leak: 49470k -> 49470k
Overhead: 31647k -> 31642k
GGC runs: 502
Pre-IPA-Garbage: 159773k -> 159771k
Pre-IPA-Leak: 88115k -> 88115k
Pre-IPA-Overhead: 19886k -> 19886k
Post-IPA-Garbage: 159773k -> 159771k
Post-IPA-Leak: 88115k -> 88115k
Post-IPA-Overhead: 19886k -> 19886k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 112687k -> 112699k
Peak memory use before GGC: 86015k
Peak memory use after GGC: 85161k
Maximum of released memory in single GGC run: 14965k
Garbage: 337189k -> 337187k
Leak: 49526k
Overhead: 38216k -> 38216k
GGC runs: 570
Pre-IPA-Garbage: 163763k -> 163761k
Pre-IPA-Leak: 88481k -> 88480k
Pre-IPA-Overhead: 20364k -> 20364k
Post-IPA-Garbage: 163763k -> 163761k
Post-IPA-Leak: 88481k -> 88480k
Post-IPA-Overhead: 20364k -> 20364k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 113779k -> 113795k
Peak memory use before GGC: 86636k
Peak memory use after GGC: 85775k
Maximum of released memory in single GGC run: 14965k
Garbage: 368674k -> 368673k
Leak: 49528k
Overhead: 41457k -> 41457k
GGC runs: 601
Pre-IPA-Garbage: 163842k -> 163841k
Pre-IPA-Leak: 89139k -> 89138k
Pre-IPA-Overhead: 20416k -> 20416k
Post-IPA-Garbage: 163842k -> 163841k
Post-IPA-Leak: 89139k -> 89138k
Post-IPA-Overhead: 20416k -> 20416k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 361914k
Peak memory use before GGC: 78518k
Peak memory use after GGC: 49453k
Maximum of released memory in single GGC run: 38186k
Garbage: 144651k
Leak: 7110k
Overhead: 24889k
GGC runs: 87
Pre-IPA-Garbage: 12561k
Pre-IPA-Leak: 20190k
Pre-IPA-Overhead: 2241k
Post-IPA-Garbage: 12561k
Post-IPA-Leak: 20190k
Post-IPA-Overhead: 2241k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 362702k
Peak memory use before GGC: 79215k
Peak memory use after GGC: 50149k
Maximum of released memory in single GGC run: 38170k
Garbage: 144752k
Leak: 9152k
Overhead: 25473k
GGC runs: 93
Pre-IPA-Garbage: 12569k
Pre-IPA-Leak: 20439k
Pre-IPA-Overhead: 2295k
Post-IPA-Garbage: 12569k
Post-IPA-Leak: 20439k
Post-IPA-Overhead: 2295k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 241840k -> 242107k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 34735k
Garbage: 222492k
Leak: 7551k
Overhead: 30652k
GGC runs: 97
Pre-IPA-Garbage: 48348k
Pre-IPA-Leak: 63005k
Pre-IPA-Overhead: 8797k
Post-IPA-Garbage: 48348k
Post-IPA-Leak: 63005k
Post-IPA-Overhead: 8797k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 369132k -> 369063k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 36061k
Garbage: 251005k
Leak: 7553k
Overhead: 36772k
GGC runs: 106
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 75901k
Pre-IPA-Overhead: 14919k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 75901k
Post-IPA-Overhead: 14919k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Amount of produced GGC garbage increased from 364901k to 365514k, overall 0.17%
Overall memory needed: 1026544k -> 1027335k
Peak memory use before GGC: 141898k
Peak memory use after GGC: 129175k
Maximum of released memory in single GGC run: 62763k
Garbage: 364901k -> 365514k
Leak: 9099k
Overhead: 44821k -> 44902k
GGC runs: 103
Pre-IPA-Garbage: 107058k
Pre-IPA-Leak: 75901k
Pre-IPA-Overhead: 14919k
Post-IPA-Garbage: 107058k
Post-IPA-Leak: 75901k
Post-IPA-Overhead: 14919k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-11-14 12:22:51.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-11-15 05:48:39.000000000 +0000
@@ -1,3 +1,39 @@
+2008-11-14 Adam Nemet <anemet@caviumnetworks.com>
+
+ * ira-int.h (struct ira_loop_tree_node): Improve comments for
+ subloop_next/next and subloops/childen fields.
+
+2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
+ (STANDARD_INCLUDE_DIR): Redefine to "/include".
+ (LOCAL_INCLUDE_DIR): Undefine.
+ * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
+
+2008-11-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/37397
+ * ira-int.h (struct ira_allocno): New member bad_spill_p.
+ (ALLOCNO_BAD_SPILL_P): New macro.
+
+ * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
+
+ * ira-build.c (ira_create_allocno): Initialize
+ ALLOCNO_BAD_SPILL_P.
+ (create_cap_allocno, propagate_allocno_info,
+ remove_unnecessary_allocnos): Set up or update
+ ALLOCNO_BAD_SPILL_P.
+ (update_bad_spill_attribute): New function.
+ (ira_build): Call it.
+
+ * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
+
+2008-11-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/38104
+ * gimplify.c (gimple_regimplify_operands): Add referenced vars
+ before calling mark_symbols_for_renaming, not after it.
+
2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2008-11-14 12:22:50.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2008-11-15 05:48:39.000000000 +0000
@@ -1,3 +1,12 @@
+2008-11-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/38030
+ * semantics.c (finish_call_expr): Don't repeat arg-dep lookup
+ for a non-dependent call.
+
+ PR c++/37740
+ * call.c (build_aggr_conv): Increment i.
+
2008-11-13 Jason Merrill <jason@redhat.com>
PR c++/37932
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.