A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Thu Dec 11 06:41:00 GMT 2008
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: 8207k -> 8210k
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: 8451k -> 8454k
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: 8239k -> 8238k
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: 8467k -> 8466k
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: 8471k -> 8470k
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: 31991k -> 31994k
Peak memory use before GGC: 18026k
Peak memory use after GGC: 17809k
Maximum of released memory in single GGC run: 1839k
Garbage: 39472k
Leak: 5816k
Overhead: 5219k
GGC runs: 338
Pre-IPA-Garbage: 12410k
Pre-IPA-Leak: 19357k
Pre-IPA-Overhead: 2559k
Post-IPA-Garbage: 12410k
Post-IPA-Leak: 19357k
Post-IPA-Overhead: 2559k
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 34015k -> 34018k
Peak memory use before GGC: 20026k
Peak memory use after GGC: 19665k
Maximum of released memory in single GGC run: 1849k
Garbage: 39775k
Leak: 9106k
Overhead: 6037k
GGC runs: 320
Pre-IPA-Garbage: 12509k
Pre-IPA-Leak: 21631k
Pre-IPA-Overhead: 3049k
Post-IPA-Garbage: 12509k
Post-IPA-Leak: 21631k
Post-IPA-Overhead: 3049k
comparing combine.c compilation at -O1 level:
Overall memory needed: 30611k -> 30614k
Peak memory use before GGC: 15689k
Peak memory use after GGC: 15514k
Maximum of released memory in single GGC run: 1340k
Garbage: 46847k
Leak: 5780k
Overhead: 6009k
GGC runs: 403
Pre-IPA-Garbage: 13151k
Pre-IPA-Leak: 16852k
Pre-IPA-Overhead: 2472k
Post-IPA-Garbage: 13151k
Post-IPA-Leak: 16852k
Post-IPA-Overhead: 2472k
comparing combine.c compilation at -O2 level:
Amount of produced GGC garbage increased from 60537k to 60841k, overall 0.50%
Overall memory needed: 31303k -> 31258k
Peak memory use before GGC: 15831k -> 15835k
Peak memory use after GGC: 15668k -> 15672k
Maximum of released memory in single GGC run: 1352k -> 1353k
Garbage: 60537k -> 60841k
Leak: 5809k -> 5811k
Overhead: 8012k -> 8041k
GGC runs: 468
Pre-IPA-Garbage: 13314k
Pre-IPA-Leak: 16934k
Pre-IPA-Overhead: 2492k
Post-IPA-Garbage: 13314k
Post-IPA-Leak: 16934k
Post-IPA-Overhead: 2492k
comparing combine.c compilation at -O3 level:
Amount of produced GGC garbage increased from 72993k to 73710k, overall 0.98%
Amount of memory still referenced at the end of compilation increased from 7137k to 7179k, overall 0.59%
Overall memory needed: 32039k -> 31862k
Peak memory use before GGC: 15999k -> 16004k
Peak memory use after GGC: 15761k -> 15766k
Maximum of released memory in single GGC run: 1630k -> 1657k
Garbage: 72993k -> 73710k
Leak: 7137k -> 7179k
Overhead: 9450k -> 9529k
GGC runs: 497
Pre-IPA-Garbage: 13314k
Pre-IPA-Leak: 16934k
Pre-IPA-Overhead: 2492k
Post-IPA-Garbage: 13314k
Post-IPA-Leak: 16934k
Post-IPA-Overhead: 2492k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 155451k -> 156214k
Peak memory use before GGC: 65504k
Peak memory use after GGC: 53919k
Maximum of released memory in single GGC run: 27354k
Garbage: 131299k
Leak: 8497k
Overhead: 15723k
GGC runs: 264
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: 156727k -> 156726k
Peak memory use before GGC: 66777k
Peak memory use after GGC: 55193k
Maximum of released memory in single GGC run: 27354k
Garbage: 131779k
Leak: 10143k
Overhead: 16179k
GGC runs: 257
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: 133511k -> 133510k
Peak memory use before GGC: 50313k
Peak memory use after GGC: 43428k
Maximum of released memory in single GGC run: 23088k
Garbage: 181543k
Leak: 7873k
Overhead: 24504k
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: 148851k -> 148846k
Peak memory use before GGC: 50278k
Peak memory use after GGC: 45087k
Maximum of released memory in single GGC run: 18101k
Garbage: 204774k -> 204778k
Leak: 15536k
Overhead: 29918k -> 29919k
GGC runs: 325
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: 162747k -> 164802k
Peak memory use before GGC: 61900k
Peak memory use after GGC: 58800k
Maximum of released memory in single GGC run: 24087k
Garbage: 242638k -> 242653k
Leak: 7899k
Overhead: 33381k -> 33382k
GGC runs: 335 -> 336
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: 149104k -> 149092k
Peak memory use before GGC: 81861k
Peak memory use after GGC: 81050k
Maximum of released memory in single GGC run: 14466k
Garbage: 203500k
Leak: 51679k
Overhead: 26794k
GGC runs: 415
Pre-IPA-Garbage: 110428k
Pre-IPA-Leak: 87218k
Pre-IPA-Overhead: 14731k
Post-IPA-Garbage: 110428k
Post-IPA-Leak: 87218k
Post-IPA-Overhead: 14731k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 167172k -> 167176k
Peak memory use before GGC: 95524k
Peak memory use after GGC: 94577k
Maximum of released memory in single GGC run: 14899k
Garbage: 209181k
Leak: 78420k
Overhead: 33467k
GGC runs: 389
Pre-IPA-Garbage: 111050k
Pre-IPA-Leak: 103733k
Pre-IPA-Overhead: 18235k
Post-IPA-Garbage: 111050k
Post-IPA-Leak: 103733k
Post-IPA-Overhead: 18235k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 110155k -> 110159k
Peak memory use before GGC: 83518k
Peak memory use after GGC: 82675k
Maximum of released memory in single GGC run: 14867k
Garbage: 279583k
Leak: 48421k
Overhead: 31413k
GGC runs: 502
Pre-IPA-Garbage: 158188k
Pre-IPA-Leak: 87362k
Pre-IPA-Overhead: 19750k
Post-IPA-Garbage: 158188k
Post-IPA-Leak: 87362k
Post-IPA-Overhead: 19750k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 335177k to 335586k, overall 0.12%
Overall memory needed: 111411k -> 111447k
Peak memory use before GGC: 85275k -> 85273k
Peak memory use after GGC: 84429k
Maximum of released memory in single GGC run: 14870k
Garbage: 335177k -> 335586k
Leak: 48449k -> 48465k
Overhead: 38077k -> 38102k
GGC runs: 574 -> 575
Pre-IPA-Garbage: 162110k
Pre-IPA-Leak: 87734k
Pre-IPA-Overhead: 20224k
Post-IPA-Garbage: 162110k
Post-IPA-Leak: 87734k
Post-IPA-Overhead: 20224k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 112027k -> 112067k
Peak memory use before GGC: 85896k -> 85897k
Peak memory use after GGC: 85042k
Maximum of released memory in single GGC run: 14870k
Garbage: 367533k -> 367840k
Leak: 48452k
Overhead: 41446k -> 41447k
GGC runs: 605 -> 604
Pre-IPA-Garbage: 162190k
Pre-IPA-Leak: 88391k
Pre-IPA-Overhead: 20276k
Post-IPA-Garbage: 162190k
Post-IPA-Leak: 88391k
Post-IPA-Overhead: 20276k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 361961k -> 361964k
Peak memory use before GGC: 78540k
Peak memory use after GGC: 49474k
Maximum of released memory in single GGC run: 38208k
Garbage: 144672k
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: 362749k -> 362752k
Peak memory use before GGC: 79237k
Peak memory use after GGC: 50171k
Maximum of released memory in single GGC run: 38192k
Garbage: 144774k
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: 227395k -> 227662k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 34735k
Garbage: 222523k
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: 358419k -> 358482k
Peak memory use before GGC: 73624k
Peak memory use after GGC: 66143k
Maximum of released memory in single GGC run: 36061k -> 36073k
Garbage: 251037k -> 251050k
Leak: 7553k
Overhead: 36772k -> 36773k
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:
Overall memory needed: 1026643k -> 1026642k
Peak memory use before GGC: 141898k
Peak memory use after GGC: 129175k
Maximum of released memory in single GGC run: 62763k
Garbage: 366863k
Leak: 9099k
Overhead: 45135k
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-12-10 10:28:37.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-12-11 03:08:42.000000000 +0000
@@ -1,3 +1,34 @@
+2008-12-10 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/36792
+ * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
+ tcc_binary.
+
+2008-12-10 Daniel Berlin <dberlin@dberlin.org>
+
+ PR tree-optimization/36792
+ * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal
+ set.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/37033
+ * dwarf2out.c (saved_do_cfi_asm): New.
+ (dwarf2out_do_frame): Take it into account.
+ (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR middle-end/38271
+ * tree-sra.c (sra_build_bf_assignment): Avoid warnings for
+ variables initialized from SRAed bit fields.
+
+2008-12-10 Martin Guy <martinwguy@yahoo.it>
+
+ PR target/37668
+ * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the
+ result will be in an FPU register.
+
2008-12-10 Eric Botcazou <ebotcazou@adacore.com>
PR target/37170
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2008-12-10 10:28:36.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2008-12-11 03:08:42.000000000 +0000
@@ -1,3 +1,10 @@
+2008-12-10 Jason Merrill <jason@redhat.com>
+
+ PR c++/35319
+ * mangle.c (write_builtin_type): Add mangling for decimal floating
+ point and fixed point types.
+ (write_type): Pass FIXED_POINT_TYPE along.
+
2008-12-09 Mark Mitchell <mark@codesourcery.com>
PR c++/37971
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