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 in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Tue, 08 Apr 2008 22:22:28 +0000
- Subject: A recent patch increased GCC's memory consumption in some cases!
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:
Amount of produced GGC garbage increased from 235k to 237k, overall 1.18%
Overall memory needed: 8153k
Peak memory use before GGC: 1102k
Peak memory use after GGC: 1002k -> 1000k
Maximum of released memory in single GGC run: 129k
Garbage: 235k -> 237k
Leak: 960k -> 957k
Overhead: 80k
GGC runs: 2
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O0 -g level:
Amount of produced GGC garbage increased from 237k to 240k, overall 1.17%
Overall memory needed: 8169k
Peak memory use before GGC: 1129k
Peak memory use after GGC: 1034k
Maximum of released memory in single GGC run: 126k -> 128k
Garbage: 237k -> 240k
Leak: 993k -> 990k
Overhead: 85k
GGC runs: 4
Testing has produced no results
Testing has produced no results
comparing empty function compilation at -O1 level:
Amount of produced GGC garbage increased from 237k to 240k, overall 1.17%
Overall memory needed: 8205k
Peak memory use before GGC: 1102k
Peak memory use after GGC: 1002k -> 1000k
Maximum of released memory in single GGC run: 131k
Garbage: 237k -> 240k
Leak: 960k -> 958k
Overhead: 81k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Pre-IPA-Garbage: 224k -> 227k
Pre-IPA-Leak: 963k -> 960k
Pre-IPA-Overhead: 79k
Amount of produced post-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Post-IPA-Garbage: 224k -> 227k
Post-IPA-Leak: 963k -> 960k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O2 level:
Amount of produced GGC garbage increased from 240k to 243k, overall 1.15%
Overall memory needed: 8225k
Peak memory use before GGC: 1102k
Peak memory use after GGC: 1002k -> 1000k
Maximum of released memory in single GGC run: 135k
Garbage: 240k -> 243k
Leak: 961k -> 959k
Overhead: 82k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Pre-IPA-Garbage: 224k -> 227k
Pre-IPA-Leak: 963k -> 960k
Pre-IPA-Overhead: 79k
Amount of produced post-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Post-IPA-Garbage: 224k -> 227k
Post-IPA-Leak: 963k -> 960k
Post-IPA-Overhead: 79k
comparing empty function compilation at -O3 level:
Amount of produced GGC garbage increased from 240k to 243k, overall 1.15%
Overall memory needed: 8225k
Peak memory use before GGC: 1102k
Peak memory use after GGC: 1002k -> 1000k
Maximum of released memory in single GGC run: 135k
Garbage: 240k -> 243k
Leak: 961k -> 959k
Overhead: 82k
GGC runs: 2
Amount of produced pre-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Pre-IPA-Garbage: 224k -> 227k
Pre-IPA-Leak: 963k -> 960k
Pre-IPA-Overhead: 79k
Amount of produced post-ipa-GGC garbage increased from 224k to 227k, overall 1.23%
Post-IPA-Garbage: 224k -> 227k
Post-IPA-Leak: 963k -> 960k
Post-IPA-Overhead: 79k
comparing combine.c compilation at -O0 level:
Overall memory needed: 22617k -> 22621k
Peak memory use before GGC: 7784k
Peak memory use after GGC: 7160k
Maximum of released memory in single GGC run: 1545k
Garbage: 37775k -> 37789k
Leak: 5493k -> 5490k
Overhead: 4617k -> 4617k
GGC runs: 372
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24709k
Peak memory use before GGC: 9719k
Peak memory use after GGC: 9057k
Maximum of released memory in single GGC run: 1830k -> 1832k
Garbage: 38140k -> 38138k
Leak: 8688k -> 8685k
Overhead: 5413k -> 5413k
GGC runs: 340
Testing has produced no results
Testing has produced no results
comparing combine.c compilation at -O1 level:
Overall memory needed: 32857k -> 32849k
Peak memory use before GGC: 16260k
Peak memory use after GGC: 16077k
Maximum of released memory in single GGC run: 1375k
Garbage: 51568k -> 51571k
Leak: 5658k -> 5656k
Overhead: 5805k -> 5805k
GGC runs: 439
Pre-IPA-Garbage: 13911k -> 13914k
Pre-IPA-Leak: 17101k -> 17098k
Pre-IPA-Overhead: 2128k
Post-IPA-Garbage: 13911k -> 13914k
Post-IPA-Leak: 17101k -> 17098k
Post-IPA-Overhead: 2128k
comparing combine.c compilation at -O2 level:
Overall memory needed: 34661k
Peak memory use before GGC: 16358k
Peak memory use after GGC: 16195k
Maximum of released memory in single GGC run: 1305k
Garbage: 71447k -> 71457k
Leak: 5997k -> 5986k
Overhead: 8155k
GGC runs: 512
Pre-IPA-Garbage: 14064k -> 14067k
Pre-IPA-Leak: 17164k -> 17161k
Pre-IPA-Overhead: 2143k
Post-IPA-Garbage: 14064k -> 14067k
Post-IPA-Leak: 17164k -> 17161k
Post-IPA-Overhead: 2143k
comparing combine.c compilation at -O3 level:
Overall memory needed: 37377k
Peak memory use before GGC: 16494k
Peak memory use after GGC: 16200k
Maximum of released memory in single GGC run: 2006k
Garbage: 88475k -> 88480k
Leak: 6052k -> 6046k
Overhead: 10093k -> 10094k
GGC runs: 547
Pre-IPA-Garbage: 14066k -> 14069k
Pre-IPA-Leak: 17176k -> 17173k
Pre-IPA-Overhead: 2144k
Post-IPA-Garbage: 14066k -> 14069k
Post-IPA-Leak: 17176k -> 17173k
Post-IPA-Overhead: 2144k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 137437k -> 137433k
Peak memory use before GGC: 56962k
Peak memory use after GGC: 31388k
Maximum of released memory in single GGC run: 32967k -> 33223k
Garbage: 128459k -> 128459k
Leak: 8362k -> 8359k
Overhead: 14291k -> 14291k
GGC runs: 292
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 138717k -> 138725k
Peak memory use before GGC: 58164k
Peak memory use after GGC: 32589k
Maximum of released memory in single GGC run: 32968k -> 33224k
Garbage: 128705k -> 128708k
Leak: 10200k -> 10197k
Overhead: 14731k
GGC runs: 289
Testing has produced no results
Testing has produced no results
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 142897k -> 142869k
Peak memory use before GGC: 56191k
Peak memory use after GGC: 49970k
Maximum of released memory in single GGC run: 23960k
Garbage: 205132k -> 205137k
Leak: 9266k -> 9263k
Overhead: 24740k -> 24740k
GGC runs: 315
Pre-IPA-Garbage: 50364k -> 50366k
Pre-IPA-Leak: 49666k -> 49663k
Pre-IPA-Overhead: 7553k
Post-IPA-Garbage: 50364k -> 50366k
Post-IPA-Leak: 49666k -> 49663k
Post-IPA-Overhead: 7553k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 184373k -> 184377k
Peak memory use before GGC: 56811k -> 56813k
Peak memory use after GGC: 51537k -> 51539k
Maximum of released memory in single GGC run: 22860k
Garbage: 246864k -> 246859k
Leak: 10345k -> 10342k
Overhead: 30657k -> 30657k
GGC runs: 347
Pre-IPA-Garbage: 50436k -> 50438k
Pre-IPA-Leak: 49669k -> 49666k
Pre-IPA-Overhead: 7560k
Post-IPA-Garbage: 50436k -> 50438k
Post-IPA-Leak: 49669k -> 49666k
Post-IPA-Overhead: 7560k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 189781k
Peak memory use before GGC: 66353k
Peak memory use after GGC: 62275k
Maximum of released memory in single GGC run: 23357k
Garbage: 270570k -> 270573k
Leak: 10383k -> 10380k
Overhead: 32446k -> 32446k
GGC runs: 347
Pre-IPA-Garbage: 50436k -> 50438k
Pre-IPA-Leak: 49669k -> 49666k
Pre-IPA-Overhead: 7560k
Post-IPA-Garbage: 50436k -> 50438k
Post-IPA-Leak: 49669k -> 49666k
Post-IPA-Overhead: 7560k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 145933k -> 145937k
Peak memory use before GGC: 82004k -> 82002k
Peak memory use after GGC: 81191k -> 81189k
Maximum of released memory in single GGC run: 15827k
Garbage: 198501k -> 198510k
Leak: 47519k -> 47514k
Overhead: 24202k -> 24202k
GGC runs: 416
Pre-IPA-Garbage: 108675k -> 108678k
Pre-IPA-Leak: 69761k -> 69758k
Pre-IPA-Overhead: 12147k
Post-IPA-Garbage: 108675k -> 108678k
Post-IPA-Leak: 69761k -> 69758k
Post-IPA-Overhead: 12147k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 167225k -> 167489k
Peak memory use before GGC: 94378k -> 94376k
Peak memory use after GGC: 93436k -> 93434k
Maximum of released memory in single GGC run: 16319k
Garbage: 204145k -> 204153k
Leak: 71908k -> 71902k
Overhead: 30560k -> 30560k
GGC runs: 387
Pre-IPA-Garbage: 109318k -> 109321k
Pre-IPA-Leak: 84494k -> 84491k
Pre-IPA-Overhead: 15451k
Post-IPA-Garbage: 109318k -> 109321k
Post-IPA-Leak: 84494k -> 84491k
Post-IPA-Overhead: 15451k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 121429k -> 121449k
Peak memory use before GGC: 83342k -> 83341k
Peak memory use after GGC: 82509k -> 82508k
Maximum of released memory in single GGC run: 15131k
Garbage: 286850k -> 286855k
Leak: 46806k -> 46801k
Overhead: 29514k -> 29514k
GGC runs: 514
Pre-IPA-Garbage: 153388k -> 153391k
Pre-IPA-Leak: 87193k -> 87191k
Pre-IPA-Overhead: 17779k
Post-IPA-Garbage: 153388k -> 153391k
Post-IPA-Leak: 87193k -> 87191k
Post-IPA-Overhead: 17779k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 123853k
Peak memory use before GGC: 83526k -> 83524k
Peak memory use after GGC: 82686k -> 82684k
Maximum of released memory in single GGC run: 15121k
Garbage: 353713k -> 353692k
Leak: 47917k -> 47912k
Overhead: 36739k -> 36739k
GGC runs: 588 -> 587
Pre-IPA-Garbage: 155930k -> 155933k
Pre-IPA-Leak: 87339k -> 87336k
Pre-IPA-Overhead: 18058k
Post-IPA-Garbage: 155930k -> 155933k
Post-IPA-Leak: 87339k -> 87336k
Post-IPA-Overhead: 18058k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 126773k -> 126837k
Peak memory use before GGC: 84823k -> 84821k
Peak memory use after GGC: 83947k -> 83945k
Maximum of released memory in single GGC run: 15462k
Garbage: 377019k -> 377023k
Leak: 48475k -> 48486k
Overhead: 38876k -> 38876k
GGC runs: 611
Pre-IPA-Garbage: 158629k -> 158631k
Pre-IPA-Leak: 87621k -> 87618k
Pre-IPA-Overhead: 18310k
Post-IPA-Garbage: 158629k -> 158631k
Post-IPA-Leak: 87621k -> 87618k
Post-IPA-Overhead: 18310k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Amount of produced GGC garbage increased from 175622k to 178454k, overall 1.61%
Amount of memory still referenced at the end of compilation decreased from 8935k to 6103k, overall -46.40%
Overall memory needed: 380355k -> 380347k
Peak memory use before GGC: 100958k
Peak memory use after GGC: 56611k
Maximum of released memory in single GGC run: 50583k
Garbage: 175622k -> 178454k
Leak: 8935k -> 6103k
Overhead: 30540k
GGC runs: 107
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Amount of produced GGC garbage increased from 175737k to 178569k, overall 1.61%
Amount of memory still referenced at the end of compilation decreased from 10964k to 8132k, overall -34.82%
Overall memory needed: 381187k
Peak memory use before GGC: 101651k
Peak memory use after GGC: 57304k
Maximum of released memory in single GGC run: 50583k
Garbage: 175737k -> 178569k
Leak: 10964k -> 8132k
Overhead: 31123k
GGC runs: 111
Testing has produced no results
Testing has produced no results
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Amount of produced GGC garbage increased from 231507k to 232923k, overall 0.61%
Amount of memory still referenced at the end of compilation decreased from 16425k to 15009k, overall -9.43%
Overall memory needed: 427881k -> 428321k
Peak memory use before GGC: 78564k
Peak memory use after GGC: 70441k -> 70439k
Maximum of released memory in single GGC run: 37596k
Garbage: 231507k -> 232923k
Leak: 16425k -> 15009k
Overhead: 33114k
GGC runs: 106
Pre-IPA-Garbage: 52922k -> 52924k
Pre-IPA-Leak: 49240k -> 49237k
Pre-IPA-Overhead: 7122k
Post-IPA-Garbage: 52922k -> 52924k
Post-IPA-Leak: 49240k -> 49237k
Post-IPA-Overhead: 7122k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Amount of produced GGC garbage increased from 246016k to 247432k, overall 0.58%
Amount of memory still referenced at the end of compilation decreased from 16599k to 15183k, overall -9.33%
Overall memory needed: 354293k -> 353657k
Peak memory use before GGC: 75427k -> 75425k
Peak memory use after GGC: 70441k -> 70439k
Maximum of released memory in single GGC run: 31528k -> 31602k
Garbage: 246016k -> 247432k
Leak: 16599k -> 15183k
Overhead: 36249k
GGC runs: 117
Pre-IPA-Garbage: 91833k -> 91836k
Pre-IPA-Leak: 77297k -> 77295k
Pre-IPA-Overhead: 11795k
Post-IPA-Garbage: 91833k -> 91836k
Post-IPA-Leak: 77297k -> 77295k
Post-IPA-Overhead: 11795k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Amount of produced GGC garbage increased from 368801k to 370216k, overall 0.38%
Amount of memory still referenced at the end of compilation decreased from 25798k to 24382k, overall -5.81%
Overall memory needed: 1197433k -> 1198569k
Peak memory use before GGC: 136589k -> 136587k
Peak memory use after GGC: 127946k -> 127944k
Maximum of released memory in single GGC run: 59982k -> 59980k
Garbage: 368801k -> 370216k
Leak: 25798k -> 24382k
Overhead: 49862k
GGC runs: 104
Pre-IPA-Garbage: 91833k -> 91836k
Pre-IPA-Leak: 77297k -> 77295k
Pre-IPA-Overhead: 11795k
Post-IPA-Garbage: 91833k -> 91836k
Post-IPA-Leak: 77297k -> 77295k
Post-IPA-Overhead: 11795k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-04-08 15:13:49.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-04-08 19:04:40.000000000 +0000
@@ -1,3 +1,14 @@
+2008-04-08 Rafael Espindola <espindola@google.com>
+
+ * fold-canst.c (tree_call_nonnegative_warnv_p): New.
+ (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
+ * tree.h (tree_call_nonnegative_warnv_p): New.
+
+2008-04-08 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Clear out regno_reg_rtx
+ pointer.
+
2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
Revert
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.