A recent patch increased GCC's memory consumption!
gcctest@suse.de
gcctest@suse.de
Tue Mar 4 14:19: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: 8151k
Peak memory use before GGC: 1097k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 129k
Garbage: 238k
Leak: 952k
Overhead: 80k
GGC runs: 2
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8167k
Peak memory use before GGC: 1125k
Peak memory use after GGC: 1031k
Maximum of released memory in single GGC run: 128k
Garbage: 240k
Leak: 985k
Overhead: 84k
GGC runs: 4
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Overall memory needed: 8203k
Peak memory use before GGC: 1097k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 131k
Garbage: 240k
Leak: 953k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 955k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 955k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1098k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 954k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 956k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 956k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Overall memory needed: 8223k
Peak memory use before GGC: 1098k
Peak memory use after GGC: 995k
Maximum of released memory in single GGC run: 134k
Garbage: 243k
Leak: 954k
Overhead: 81k
GGC runs: 2
Pre-IPA-Garbage: 227k
Pre-IPA-Leak: 956k
Pre-IPA-Overhead: 79k
Post-IPA-Garbage: 227k
Post-IPA-Leak: 956k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22691k
Peak memory use before GGC: 7810k
Peak memory use after GGC: 7187k
Maximum of released memory in single GGC run: 1550k
Garbage: 37932k
Leak: 5515k
Overhead: 4649k
GGC runs: 372
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24699k
Peak memory use before GGC: 9648k
Peak memory use after GGC: 8955k
Maximum of released memory in single GGC run: 1838k
Garbage: 38271k
Leak: 8380k
Overhead: 5276k
GGC runs: 343
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 32931k
Peak memory use before GGC: 16345k
Peak memory use after GGC: 16161k
Maximum of released memory in single GGC run: 1382k
Garbage: 52133k
Leak: 5660k
Overhead: 5831k
GGC runs: 444
Pre-IPA-Garbage: 13920k
Pre-IPA-Leak: 17182k
Pre-IPA-Overhead: 2129k
Post-IPA-Garbage: 13920k
Post-IPA-Leak: 17182k
Post-IPA-Overhead: 2129k
comparing combine.c compilation at -O2 level:
Overall memory needed: 35723k -> 35719k
Peak memory use before GGC: 16445k
Peak memory use after GGC: 16280k
Maximum of released memory in single GGC run: 1317k
Garbage: 72004k
Leak: 5986k
Overhead: 8142k
GGC runs: 511
Pre-IPA-Garbage: 14077k
Pre-IPA-Leak: 17247k
Pre-IPA-Overhead: 2144k
Post-IPA-Garbage: 14077k
Post-IPA-Leak: 17247k
Post-IPA-Overhead: 2144k
comparing combine.c compilation at -O3 level:
Overall memory needed: 38711k
Peak memory use before GGC: 16615k
Peak memory use after GGC: 16293k
Maximum of released memory in single GGC run: 2069k
Garbage: 89499k
Leak: 6039k
Overhead: 10067k
GGC runs: 545
Pre-IPA-Garbage: 14078k
Pre-IPA-Leak: 17258k
Pre-IPA-Overhead: 2145k
Post-IPA-Garbage: 14078k
Post-IPA-Leak: 17258k
Post-IPA-Overhead: 2145k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137427k -> 137431k
Peak memory use before GGC: 57000k
Peak memory use after GGC: 31457k
Maximum of released memory in single GGC run: 33256k
Garbage: 128611k
Leak: 8383k
Overhead: 14368k
GGC runs: 293
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 138687k
Peak memory use before GGC: 58142k
Peak memory use after GGC: 32599k
Maximum of released memory in single GGC run: 33256k
Garbage: 128862k
Leak: 10058k
Overhead: 14724k
GGC runs: 288
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 142963k
Peak memory use before GGC: 56212k
Peak memory use after GGC: 49987k
Maximum of released memory in single GGC run: 23977k
Garbage: 206485k
Leak: 9276k
Overhead: 24747k
GGC runs: 315
Pre-IPA-Garbage: 50356k
Pre-IPA-Leak: 49677k
Pre-IPA-Overhead: 7543k
Post-IPA-Garbage: 50356k
Post-IPA-Leak: 49677k
Post-IPA-Overhead: 7543k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184571k -> 184567k
Peak memory use before GGC: 56854k
Peak memory use after GGC: 51574k
Maximum of released memory in single GGC run: 22905k
Garbage: 247312k
Leak: 10363k
Overhead: 30403k
GGC runs: 347
Pre-IPA-Garbage: 50428k
Pre-IPA-Leak: 49681k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50428k
Post-IPA-Leak: 49681k
Post-IPA-Overhead: 7550k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190443k
Peak memory use before GGC: 68033k
Peak memory use after GGC: 62281k
Maximum of released memory in single GGC run: 23399k
Garbage: 275170k
Leak: 10400k
Overhead: 32196k
GGC runs: 350
Pre-IPA-Garbage: 50428k
Pre-IPA-Leak: 49681k
Pre-IPA-Overhead: 7550k
Post-IPA-Garbage: 50428k
Post-IPA-Leak: 49681k
Post-IPA-Overhead: 7550k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 148428k -> 148424k
Peak memory use before GGC: 84242k
Peak memory use after GGC: 83407k
Maximum of released memory in single GGC run: 16731k
Garbage: 200926k
Leak: 48024k
Overhead: 23992k
GGC runs: 417
Pre-IPA-Garbage: 109791k
Pre-IPA-Leak: 71152k
Pre-IPA-Overhead: 12099k
Post-IPA-Garbage: 109791k
Post-IPA-Leak: 71152k
Post-IPA-Overhead: 12099k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 169704k -> 169700k
Peak memory use before GGC: 96213k
Peak memory use after GGC: 95248k
Maximum of released memory in single GGC run: 17546k
Garbage: 206565k
Leak: 69707k
Overhead: 28969k
GGC runs: 390
Pre-IPA-Garbage: 110434k
Pre-IPA-Leak: 84433k
Pre-IPA-Overhead: 14675k
Post-IPA-Garbage: 110434k
Post-IPA-Leak: 84433k
Post-IPA-Overhead: 14675k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Amount of produced GGC garbage increased from 290910k to 291457k, overall 0.19%
Overall memory needed: 122804k -> 122520k
Peak memory use before GGC: 84151k -> 84156k
Peak memory use after GGC: 83317k -> 83321k
Maximum of released memory in single GGC run: 16272k
Garbage: 290910k -> 291457k
Leak: 47432k -> 47314k
Overhead: 29394k -> 29430k
GGC runs: 515 -> 519
Pre-IPA-Garbage: 155012k
Pre-IPA-Leak: 87948k -> 87953k
Pre-IPA-Overhead: 17503k -> 17504k
Post-IPA-Garbage: 155012k
Post-IPA-Leak: 87948k -> 87953k
Post-IPA-Overhead: 17503k -> 17504k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Amount of produced GGC garbage increased from 355588k to 356488k, overall 0.25%
Overall memory needed: 124576k -> 124644k
Peak memory use before GGC: 84341k -> 84334k
Peak memory use after GGC: 83500k -> 83498k
Maximum of released memory in single GGC run: 16273k
Garbage: 355588k -> 356488k
Leak: 48431k -> 48286k
Overhead: 36212k -> 36310k
GGC runs: 592 -> 588
Pre-IPA-Garbage: 157587k
Pre-IPA-Leak: 88098k -> 88098k
Pre-IPA-Overhead: 17791k -> 17791k
Post-IPA-Garbage: 157587k
Post-IPA-Leak: 88098k -> 88098k
Post-IPA-Overhead: 17791k -> 17791k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Amount of produced GGC garbage increased from 381139k to 382580k, overall 0.38%
Overall memory needed: 127328k -> 127608k
Peak memory use before GGC: 85613k
Peak memory use after GGC: 84751k -> 84752k
Maximum of released memory in single GGC run: 16624k
Garbage: 381139k -> 382580k
Leak: 48886k -> 48877k
Overhead: 38416k -> 38536k
GGC runs: 611 -> 613
Pre-IPA-Garbage: 160300k
Pre-IPA-Leak: 88381k -> 88382k
Pre-IPA-Overhead: 18040k -> 18040k
Post-IPA-Garbage: 160300k
Post-IPA-Leak: 88381k -> 88382k
Post-IPA-Overhead: 18040k -> 18040k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 380438k -> 380437k
Peak memory use before GGC: 101210k
Peak memory use after GGC: 56863k
Maximum of released memory in single GGC run: 50583k
Garbage: 178904k
Leak: 6099k
Overhead: 30782k
GGC runs: 106
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 381238k -> 381241k
Peak memory use before GGC: 101840k
Peak memory use after GGC: 57494k
Maximum of released memory in single GGC run: 50582k
Garbage: 179019k
Leak: 7829k
Overhead: 31215k
GGC runs: 111
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 437899k -> 437687k
Peak memory use before GGC: 78686k
Peak memory use after GGC: 70437k
Maximum of released memory in single GGC run: 37594k
Garbage: 234297k
Leak: 15903k
Overhead: 35589k
GGC runs: 105
Pre-IPA-Garbage: 52925k
Pre-IPA-Leak: 49233k
Pre-IPA-Overhead: 7120k
Post-IPA-Garbage: 52925k
Post-IPA-Leak: 49233k
Post-IPA-Overhead: 7120k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 356599k -> 356603k
Peak memory use before GGC: 75424k
Peak memory use after GGC: 70438k
Maximum of released memory in single GGC run: 32243k
Garbage: 245000k
Leak: 16075k
Overhead: 38757k
GGC runs: 116
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77291k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77291k
Post-IPA-Overhead: 11793k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1197779k -> 1195911k
Peak memory use before GGC: 136585k
Peak memory use after GGC: 127943k
Maximum of released memory in single GGC run: 59911k
Garbage: 371518k
Leak: 24889k
Overhead: 49888k
GGC runs: 103
Pre-IPA-Garbage: 91836k
Pre-IPA-Leak: 77291k
Pre-IPA-Overhead: 11793k
Post-IPA-Garbage: 91836k
Post-IPA-Leak: 77291k
Post-IPA-Overhead: 11793k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-03-03 19:04:53.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-03-04 11:07:33.000000000 +0000
@@ -1,3 +1,22 @@
+2008-03-04 Jan Hubicka <jh@suse.cz>
+
+ PR c++/35262
+ * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
+ in last commit.
+
+2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
+ label to probe the stack.
+
+2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
+ (__gthr_win32_mutex_destroy): Declare.
+ [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
+ __gthr_win32_mutex_destroy.
+ * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
+
2008-03-03 Jan Hubicka <jh@suse.cz>
PR c++/35262
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