A recent patch increased GCC's memory consumption in some cases!
Jan Hubicka
jh@suse.cz
Sat Jul 26 22:34:00 GMT 2008
This is the difference for switching tester from mainline to tuples
branch. Not too bad overall, about 4-8% savings on overall memory
footprint before IPA...
Honza
> 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: 8475k -> 8472k
> Peak memory use before GGC: 1409k -> 1408k
> Peak memory use after GGC: 1338k
> Maximum of released memory in single GGC run: 172k -> 173k
> Garbage: 249k -> 249k
> Leak: 1332k -> 1331k
> Overhead: 159k -> 159k
> GGC runs: 3
> Amount of produced pre-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Pre-IPA-Garbage: 238k -> 238k
> Pre-IPA-Leak: 1334k -> 1333k
> Pre-IPA-Overhead: 158k -> 157k
> Amount of produced post-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Post-IPA-Garbage: 238k -> 238k
> Post-IPA-Leak: 1334k -> 1333k
> Post-IPA-Overhead: 158k -> 157k
>
> comparing empty function compilation at -O0 -g level:
> Overall memory needed: 8503k -> 8500k
> Peak memory use before GGC: 1436k
> Peak memory use after GGC: 1366k -> 1365k
> Maximum of released memory in single GGC run: 175k -> 167k
> Garbage: 252k -> 252k
> Leak: 1365k -> 1364k
> Overhead: 164k -> 163k
> GGC runs: 3 -> 4
> Amount of produced pre-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Pre-IPA-Garbage: 238k -> 238k
> Pre-IPA-Leak: 1334k -> 1333k
> Pre-IPA-Overhead: 158k -> 157k
> Amount of produced post-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Post-IPA-Garbage: 238k -> 238k
> Post-IPA-Leak: 1334k -> 1333k
> Post-IPA-Overhead: 158k -> 157k
>
> comparing empty function compilation at -O1 level:
> Overall memory needed: 8547k -> 8552k
> Peak memory use before GGC: 1409k -> 1408k
> Peak memory use after GGC: 1338k
> Maximum of released memory in single GGC run: 169k -> 168k
> Garbage: 252k -> 252k
> Leak: 1332k -> 1331k
> Overhead: 160k -> 159k
> GGC runs: 4
> Amount of produced pre-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Pre-IPA-Garbage: 238k -> 238k
> Pre-IPA-Leak: 1334k -> 1334k
> Pre-IPA-Overhead: 158k -> 157k
> Amount of produced post-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Post-IPA-Garbage: 238k -> 238k
> Post-IPA-Leak: 1334k -> 1334k
> Post-IPA-Overhead: 158k -> 157k
>
> comparing empty function compilation at -O2 level:
> Overall memory needed: 8575k -> 8576k
> Peak memory use before GGC: 1409k
> Peak memory use after GGC: 1338k
> Maximum of released memory in single GGC run: 168k
> Garbage: 257k -> 255k
> Leak: 1333k -> 1332k
> Overhead: 161k -> 160k
> GGC runs: 4
> Amount of produced pre-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Pre-IPA-Garbage: 238k -> 238k
> Pre-IPA-Leak: 1335k -> 1334k
> Pre-IPA-Overhead: 158k -> 157k
> Amount of produced post-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Post-IPA-Garbage: 238k -> 238k
> Post-IPA-Leak: 1335k -> 1334k
> Post-IPA-Overhead: 158k -> 157k
>
> comparing empty function compilation at -O3 level:
> Overall memory needed: 8579k -> 8580k
> Peak memory use before GGC: 1409k
> Peak memory use after GGC: 1338k
> Maximum of released memory in single GGC run: 168k
> Garbage: 257k -> 255k
> Leak: 1333k -> 1332k
> Overhead: 161k -> 160k
> GGC runs: 4
> Amount of produced pre-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Pre-IPA-Garbage: 238k -> 238k
> Pre-IPA-Leak: 1335k -> 1334k
> Pre-IPA-Overhead: 158k -> 157k
> Amount of produced post-ipa-GGC garbage increased from 238k to 238k, overall 0.12%
> Post-IPA-Garbage: 238k -> 238k
> Post-IPA-Leak: 1335k -> 1334k
> Post-IPA-Overhead: 158k -> 157k
>
> comparing combine.c compilation at -O0 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 18853k to 18036k, overall -4.53%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 18660k to 17772k, overall -5.00%
> Amount of produced GGC garbage increased from 39844k to 39998k, overall 0.39%
> Overall memory needed: 32047k -> 31128k
> Peak memory use before GGC: 18853k -> 18036k
> Peak memory use after GGC: 18660k -> 17772k
> Maximum of released memory in single GGC run: 1842k -> 1849k
> Garbage: 39844k -> 39998k
> Leak: 5766k -> 5752k
> Overhead: 4991k -> 5236k
> GGC runs: 340 -> 338
> Amount of produced pre-ipa-GGC garbage decreased from 13096k to 12564k, overall -4.24%
> Amount of memory referenced pre-ipa decreased from 20015k to 19308k, overall -3.66%
> Pre-IPA-Garbage: 13096k -> 12564k
> Pre-IPA-Leak: 20015k -> 19308k
> Pre-IPA-Overhead: 2339k -> 2546k
> Amount of produced post-ipa-GGC garbage decreased from 13096k to 12564k, overall -4.24%
> Amount of memory referenced post-ipa decreased from 20015k to 19308k, overall -3.66%
> Post-IPA-Garbage: 13096k -> 12564k
> Post-IPA-Leak: 20015k -> 19308k
> Post-IPA-Overhead: 2339k -> 2546k
>
> comparing combine.c compilation at -O0 -g level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 20746k to 19963k, overall -3.92%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 20530k to 19627k, overall -4.60%
> Amount of produced GGC garbage increased from 40217k to 40344k, overall 0.31%
> Amount of memory still referenced at the end of compilation increased from 9040k to 9066k, overall 0.28%
> Overall memory needed: 33995k -> 32996k
> Peak memory use before GGC: 20746k -> 19963k
> Peak memory use after GGC: 20530k -> 19627k
> Maximum of released memory in single GGC run: 1851k -> 1859k
> Garbage: 40217k -> 40344k
> Leak: 9040k -> 9066k
> Overhead: 5812k -> 6055k
> GGC runs: 325 -> 320
> Amount of produced pre-ipa-GGC garbage decreased from 13195k to 12663k, overall -4.21%
> Amount of memory referenced pre-ipa decreased from 22291k to 21581k, overall -3.29%
> Pre-IPA-Garbage: 13195k -> 12663k
> Pre-IPA-Leak: 22291k -> 21581k
> Pre-IPA-Overhead: 2830k -> 3036k
> Amount of produced post-ipa-GGC garbage decreased from 13195k to 12663k, overall -4.21%
> Amount of memory referenced post-ipa decreased from 22291k to 21581k, overall -3.29%
> Post-IPA-Garbage: 13195k -> 12663k
> Post-IPA-Leak: 22291k -> 21581k
> Post-IPA-Overhead: 2830k -> 3036k
>
> comparing combine.c compilation at -O1 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 16650k to 15662k, overall -6.31%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 16484k to 15480k, overall -6.49%
> Amount of produced GGC garbage decreased from 50469k to 47221k, overall -6.88%
> Overall memory needed: 30599k -> 30060k
> Peak memory use before GGC: 16650k -> 15662k
> Peak memory use after GGC: 16484k -> 15480k
> Maximum of released memory in single GGC run: 1396k -> 1355k
> Garbage: 50469k -> 47221k
> Leak: 5734k -> 5738k
> Overhead: 5777k -> 5934k
> GGC runs: 409 -> 392
> Amount of produced pre-ipa-GGC garbage decreased from 13941k to 13456k, overall -3.61%
> Amount of memory referenced pre-ipa decreased from 17656k to 16841k, overall -4.84%
> Pre-IPA-Garbage: 13941k -> 13456k
> Pre-IPA-Leak: 17656k -> 16841k
> Pre-IPA-Overhead: 2288k -> 2491k
> Amount of produced post-ipa-GGC garbage decreased from 13941k to 13456k, overall -3.61%
> Amount of memory referenced post-ipa decreased from 17656k to 16841k, overall -4.84%
> Post-IPA-Garbage: 13941k -> 13456k
> Post-IPA-Leak: 17656k -> 16841k
> Post-IPA-Overhead: 2288k -> 2491k
>
> comparing combine.c compilation at -O2 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 16746k to 15770k, overall -6.19%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 16580k to 15594k, overall -6.32%
> Amount of produced GGC garbage decreased from 66412k to 59586k, overall -11.45%
> Amount of memory still referenced at the end of compilation increased from 5763k to 5774k, overall 0.20%
> Overall memory needed: 31919k -> 31120k
> Peak memory use before GGC: 16746k -> 15770k
> Peak memory use after GGC: 16580k -> 15594k
> Maximum of released memory in single GGC run: 1334k -> 1329k
> Garbage: 66412k -> 59586k
> Leak: 5763k -> 5774k
> Overhead: 7589k -> 7591k
> GGC runs: 481 -> 460
> Amount of produced pre-ipa-GGC garbage decreased from 14090k to 13627k, overall -3.40%
> Amount of memory referenced pre-ipa decreased from 17718k to 16910k, overall -4.78%
> Pre-IPA-Garbage: 14090k -> 13627k
> Pre-IPA-Leak: 17718k -> 16910k
> Pre-IPA-Overhead: 2301k -> 2510k
> Amount of produced post-ipa-GGC garbage decreased from 14090k to 13627k, overall -3.40%
> Amount of memory referenced post-ipa decreased from 17718k to 16910k, overall -4.78%
> Post-IPA-Garbage: 14090k -> 13627k
> Post-IPA-Leak: 17718k -> 16910k
> Post-IPA-Overhead: 2301k -> 2510k
>
> comparing combine.c compilation at -O3 level:
> Ovarall memory allocated via mmap and sbrk decreased from 37647k to 36176k, overall -4.07%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 16770k to 15794k, overall -6.18%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 16596k to 15637k, overall -6.13%
> Amount of produced GGC garbage decreased from 83077k to 74205k, overall -11.96%
> Amount of memory still referenced at the end of compilation increased from 5782k to 5789k, overall 0.12%
> Overall memory needed: 37647k -> 36176k
> Peak memory use before GGC: 16770k -> 15794k
> Peak memory use after GGC: 16596k -> 15637k
> Maximum of released memory in single GGC run: 2122k -> 1860k
> Garbage: 83077k -> 74205k
> Leak: 5782k -> 5789k
> Overhead: 9220k -> 9260k
> GGC runs: 513 -> 498
> Amount of produced pre-ipa-GGC garbage decreased from 14091k to 13627k, overall -3.40%
> Amount of memory referenced pre-ipa decreased from 17729k to 16921k, overall -4.77%
> Pre-IPA-Garbage: 14091k -> 13627k
> Pre-IPA-Leak: 17729k -> 16921k
> Pre-IPA-Overhead: 2302k -> 2511k
> Amount of produced post-ipa-GGC garbage decreased from 14091k to 13627k, overall -3.40%
> Amount of memory referenced post-ipa decreased from 17729k to 16921k, overall -4.77%
> Post-IPA-Garbage: 14091k -> 13627k
> Post-IPA-Leak: 17729k -> 16921k
> Post-IPA-Overhead: 2302k -> 2511k
>
> comparing insn-attrtab.c compilation at -O0 level:
> Ovarall memory allocated via mmap and sbrk decreased from 148235k to 140164k, overall -5.76%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 58720k to 54607k, overall -7.53%
> Amount of produced GGC garbage decreased from 135591k to 131074k, overall -3.45%
> Overall memory needed: 148235k -> 140164k
> Peak memory use before GGC: 66309k -> 64730k
> Peak memory use after GGC: 58720k -> 54607k
> Maximum of released memory in single GGC run: 28091k -> 27749k
> Garbage: 135591k -> 131074k
> Leak: 7596k -> 7600k
> Overhead: 14872k -> 15513k
> GGC runs: 259 -> 260
> Amount of produced pre-ipa-GGC garbage decreased from 43667k to 39184k, overall -11.44%
> Amount of memory referenced pre-ipa decreased from 60539k to 54989k, overall -10.09%
> Pre-IPA-Garbage: 43667k -> 39184k
> Pre-IPA-Leak: 60539k -> 54989k
> Pre-IPA-Overhead: 7757k -> 8306k
> Amount of produced post-ipa-GGC garbage decreased from 43667k to 39184k, overall -11.44%
> Amount of memory referenced post-ipa decreased from 60539k to 54989k, overall -10.09%
> Post-IPA-Garbage: 43667k -> 39184k
> Post-IPA-Leak: 60539k -> 54989k
> Post-IPA-Overhead: 7757k -> 8306k
>
> comparing insn-attrtab.c compilation at -O0 -g level:
> Ovarall memory allocated via mmap and sbrk decreased from 149711k to 143076k, overall -4.64%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 59992k to 55880k, overall -7.36%
> Amount of produced GGC garbage decreased from 136116k to 131590k, overall -3.44%
> Overall memory needed: 149711k -> 143076k
> Peak memory use before GGC: 67584k -> 66005k
> Peak memory use after GGC: 59992k -> 55880k
> Maximum of released memory in single GGC run: 28091k -> 27750k
> Garbage: 136116k -> 131590k
> Leak: 9247k -> 9251k
> Overhead: 15331k -> 15970k
> GGC runs: 253
> Amount of produced pre-ipa-GGC garbage decreased from 43724k to 39241k, overall -11.42%
> Amount of memory referenced pre-ipa decreased from 62081k to 56531k, overall -9.82%
> Pre-IPA-Garbage: 43724k -> 39241k
> Pre-IPA-Leak: 62081k -> 56531k
> Pre-IPA-Overhead: 8094k -> 8641k
> Amount of produced post-ipa-GGC garbage decreased from 43724k to 39241k, overall -11.42%
> Amount of memory referenced post-ipa decreased from 62081k to 56531k, overall -9.82%
> Post-IPA-Garbage: 43724k -> 39241k
> Post-IPA-Leak: 62081k -> 56531k
> Post-IPA-Overhead: 8094k -> 8641k
>
> comparing insn-attrtab.c compilation at -O1 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 53459k to 49645k, overall -7.68%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 47720k to 42480k, overall -12.34%
> Amount of produced GGC garbage decreased from 202867k to 185556k, overall -9.33%
> Overall memory needed: 131999k -> 128156k
> Peak memory use before GGC: 53459k -> 49645k
> Peak memory use after GGC: 47720k -> 42480k
> Maximum of released memory in single GGC run: 23289k -> 22930k
> Garbage: 202867k -> 185556k
> Leak: 6978k -> 6982k
> Overhead: 24163k -> 25040k
> GGC runs: 298 -> 299
> Amount of produced pre-ipa-GGC garbage decreased from 50254k to 45165k, overall -11.27%
> Amount of memory referenced pre-ipa decreased from 48654k to 42668k, overall -14.03%
> Pre-IPA-Garbage: 50254k -> 45165k
> Pre-IPA-Leak: 48654k -> 42668k
> Pre-IPA-Overhead: 7367k -> 7852k
> Amount of produced post-ipa-GGC garbage decreased from 50254k to 45165k, overall -11.27%
> Amount of memory referenced post-ipa decreased from 48654k to 42668k, overall -14.03%
> Post-IPA-Garbage: 50254k -> 45165k
> Post-IPA-Leak: 48654k -> 42668k
> Post-IPA-Overhead: 7367k -> 7852k
>
> comparing insn-attrtab.c compilation at -O2 level:
> Ovarall memory allocated via mmap and sbrk decreased from 178751k to 170752k, overall -4.68%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 54123k to 49693k, overall -8.91%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 48728k to 43507k, overall -12.00%
> Amount of produced GGC garbage decreased from 239725k to 218680k, overall -9.62%
> Overall memory needed: 178751k -> 170752k
> Peak memory use before GGC: 54123k -> 49693k
> Peak memory use after GGC: 48728k -> 43507k
> Maximum of released memory in single GGC run: 22127k -> 21651k
> Garbage: 239725k -> 218680k
> Leak: 6986k -> 6990k
> Overhead: 29748k -> 30421k
> GGC runs: 331 -> 333
> Amount of produced pre-ipa-GGC garbage decreased from 50323k to 45243k, overall -11.23%
> Amount of memory referenced pre-ipa decreased from 48659k to 42673k, overall -14.03%
> Pre-IPA-Garbage: 50323k -> 45243k
> Pre-IPA-Leak: 48659k -> 42673k
> Pre-IPA-Overhead: 7374k -> 7860k
> Amount of produced post-ipa-GGC garbage decreased from 50323k to 45243k, overall -11.23%
> Amount of memory referenced post-ipa decreased from 48659k to 42673k, overall -14.03%
> Post-IPA-Garbage: 50323k -> 45243k
> Post-IPA-Leak: 48659k -> 42673k
> Post-IPA-Overhead: 7374k -> 7860k
>
> comparing insn-attrtab.c compilation at -O3 level:
> Ovarall memory allocated via mmap and sbrk decreased from 187239k to 179092k, overall -4.55%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 65039k to 61709k, overall -5.40%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 62171k to 58153k, overall -6.91%
> Amount of produced GGC garbage decreased from 266382k to 250116k, overall -6.50%
> Overall memory needed: 187239k -> 179092k
> Peak memory use before GGC: 65039k -> 61709k
> Peak memory use after GGC: 62171k -> 58153k
> Maximum of released memory in single GGC run: 24136k -> 23742k
> Garbage: 266382k -> 250116k
> Leak: 6994k -> 6998k
> Overhead: 31585k -> 33988k
> GGC runs: 333 -> 338
> Amount of produced pre-ipa-GGC garbage decreased from 50323k to 45243k, overall -11.23%
> Amount of memory referenced pre-ipa decreased from 48659k to 42673k, overall -14.03%
> Pre-IPA-Garbage: 50323k -> 45243k
> Pre-IPA-Leak: 48659k -> 42673k
> Pre-IPA-Overhead: 7374k -> 7860k
> Amount of produced post-ipa-GGC garbage decreased from 50323k to 45243k, overall -11.23%
> Amount of memory referenced post-ipa decreased from 48659k to 42673k, overall -14.03%
> Post-IPA-Garbage: 50323k -> 45243k
> Post-IPA-Leak: 48659k -> 42673k
> Post-IPA-Overhead: 7374k -> 7860k
>
> comparing Gerald's testcase PR8361 compilation at -O0 level:
> Amount of produced GGC garbage increased from 205361k to 211214k, overall 2.85%
> Overall memory needed: 148701k -> 147923k
> Peak memory use before GGC: 83343k -> 81234k
> Peak memory use after GGC: 82490k -> 80428k
> Maximum of released memory in single GGC run: 14621k -> 15884k
> Garbage: 205361k -> 211214k
> Leak: 49661k -> 49337k
> Overhead: 26144k -> 26892k
> GGC runs: 414 -> 421
> Amount of produced pre-ipa-GGC garbage increased from 107822k to 112585k, overall 4.42%
> Pre-IPA-Garbage: 107822k -> 112585k
> Pre-IPA-Leak: 88230k -> 86234k
> Pre-IPA-Overhead: 13911k -> 14544k
> Amount of produced post-ipa-GGC garbage increased from 107822k to 112585k, overall 4.42%
> Post-IPA-Garbage: 107822k -> 112585k
> Post-IPA-Leak: 88230k -> 86234k
> Post-IPA-Overhead: 13911k -> 14544k
>
> comparing Gerald's testcase PR8361 compilation at -O0 -g level:
> Amount of produced GGC garbage increased from 210991k to 216833k, overall 2.77%
> Overall memory needed: 166229k -> 165347k
> Peak memory use before GGC: 97292k -> 94894k
> Peak memory use after GGC: 96328k -> 93954k
> Maximum of released memory in single GGC run: 14909k -> 16223k
> Garbage: 210991k -> 216833k
> Leak: 76251k -> 75899k
> Overhead: 32832k -> 33548k
> GGC runs: 385 -> 393
> Amount of produced pre-ipa-GGC garbage increased from 108461k to 113207k, overall 4.38%
> Pre-IPA-Garbage: 108461k -> 113207k
> Pre-IPA-Leak: 104800k -> 102753k
> Pre-IPA-Overhead: 17450k -> 18048k
> Amount of produced post-ipa-GGC garbage increased from 108461k to 113207k, overall 4.38%
> Post-IPA-Garbage: 108461k -> 113207k
> Post-IPA-Leak: 104800k -> 102753k
> Post-IPA-Overhead: 17450k -> 18048k
>
> comparing Gerald's testcase PR8361 compilation at -O1 level:
> Ovarall memory allocated via mmap and sbrk decreased from 111653k to 108276k, overall -3.12%
> Amount of produced GGC garbage increased from 286799k to 291154k, overall 1.52%
> Overall memory needed: 111653k -> 108276k
> Peak memory use before GGC: 81606k -> 80809k
> Peak memory use after GGC: 80791k -> 80003k
> Maximum of released memory in single GGC run: 14786k -> 15998k
> Garbage: 286799k -> 291154k
> Leak: 46887k -> 46438k
> Overhead: 28989k -> 31041k
> GGC runs: 509 -> 511
> Amount of produced pre-ipa-GGC garbage increased from 152239k to 160850k, overall 5.66%
> Pre-IPA-Garbage: 152239k -> 160850k
> Pre-IPA-Leak: 84520k -> 83803k
> Pre-IPA-Overhead: 17402k -> 18931k
> Amount of produced post-ipa-GGC garbage increased from 152239k to 160850k, overall 5.66%
> Post-IPA-Garbage: 152239k -> 160850k
> Post-IPA-Leak: 84520k -> 83803k
> Post-IPA-Overhead: 17402k -> 18931k
>
> comparing Gerald's testcase PR8361 compilation at -O2 level:
> Overall memory needed: 113169k -> 110240k
> Peak memory use before GGC: 81700k -> 80908k
> Peak memory use after GGC: 80884k -> 80103k
> Maximum of released memory in single GGC run: 14788k -> 16001k
> Garbage: 339211k -> 338275k
> Leak: 46961k -> 46605k
> Overhead: 33953k -> 36150k
> GGC runs: 578 -> 570
> Amount of produced pre-ipa-GGC garbage increased from 153846k to 162586k, overall 5.68%
> Pre-IPA-Garbage: 153846k -> 162586k
> Pre-IPA-Leak: 84396k -> 83854k
> Pre-IPA-Overhead: 17538k -> 19119k
> Amount of produced post-ipa-GGC garbage increased from 153846k to 162586k, overall 5.68%
> Post-IPA-Garbage: 153846k -> 162586k
> Post-IPA-Leak: 84396k -> 83854k
> Post-IPA-Overhead: 17538k -> 19119k
>
> comparing Gerald's testcase PR8361 compilation at -O3 level:
> Amount of produced GGC garbage increased from 363823k to 370237k, overall 1.76%
> Overall memory needed: 119581k -> 116820k
> Peak memory use before GGC: 81700k -> 80908k
> Peak memory use after GGC: 80884k -> 80103k
> Maximum of released memory in single GGC run: 14788k -> 16001k
> Garbage: 363823k -> 370237k
> Leak: 46936k -> 46451k
> Overhead: 35784k -> 39289k
> GGC runs: 594 -> 597
> Amount of produced pre-ipa-GGC garbage increased from 153846k to 162586k, overall 5.68%
> Pre-IPA-Garbage: 153846k -> 162586k
> Pre-IPA-Leak: 84400k -> 83868k
> Pre-IPA-Overhead: 17538k -> 19120k
> Amount of produced post-ipa-GGC garbage increased from 153846k to 162586k, overall 5.68%
> Post-IPA-Garbage: 153846k -> 162586k
> Post-IPA-Leak: 84400k -> 83868k
> Post-IPA-Overhead: 17538k -> 19120k
>
> comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
> Amount of produced GGC garbage increased from 180611k to 181152k, overall 0.30%
> Overall memory needed: 377731k -> 375459k
> Peak memory use before GGC: 101152k -> 100315k
> Peak memory use after GGC: 56806k -> 55968k
> Maximum of released memory in single GGC run: 50582k
> Garbage: 180611k -> 181152k
> Leak: 6622k -> 6622k
> Overhead: 30732k -> 31039k
> GGC runs: 88 -> 90
> Amount of produced pre-ipa-GGC garbage increased from 12467k to 13660k, overall 9.57%
> Amount of memory referenced pre-ipa decreased from 21983k to 19296k, overall -13.93%
> Pre-IPA-Garbage: 12467k -> 13660k
> Pre-IPA-Leak: 21983k -> 19296k
> Pre-IPA-Overhead: 1847k -> 1972k
> Amount of produced post-ipa-GGC garbage increased from 12467k to 13660k, overall 9.57%
> Amount of memory referenced post-ipa decreased from 21983k to 19296k, overall -13.93%
> Post-IPA-Garbage: 12467k -> 13660k
> Post-IPA-Leak: 21983k -> 19296k
> Post-IPA-Overhead: 1847k -> 1972k
>
> comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
> Amount of produced GGC garbage increased from 180728k to 181269k, overall 0.30%
> Overall memory needed: 378691k -> 376279k
> Peak memory use before GGC: 101851k -> 101014k
> Peak memory use after GGC: 57504k -> 56667k
> Maximum of released memory in single GGC run: 50583k
> Garbage: 180728k -> 181269k
> Leak: 8667k -> 8666k
> Overhead: 31318k -> 31624k
> GGC runs: 95 -> 97
> Amount of produced pre-ipa-GGC garbage increased from 12475k to 13668k, overall 9.56%
> Amount of memory referenced pre-ipa decreased from 22232k to 19545k, overall -13.75%
> Pre-IPA-Garbage: 12475k -> 13668k
> Pre-IPA-Leak: 22232k -> 19545k
> Pre-IPA-Overhead: 1901k -> 2026k
> Amount of produced post-ipa-GGC garbage increased from 12475k to 13668k, overall 9.56%
> Amount of memory referenced post-ipa decreased from 22232k to 19545k, overall -13.75%
> Post-IPA-Garbage: 12475k -> 13668k
> Post-IPA-Leak: 22232k -> 19545k
> Post-IPA-Overhead: 1901k -> 2026k
>
> comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
> Ovarall memory allocated via mmap and sbrk decreased from 384083k to 363616k, overall -5.63%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 75898k to 71726k, overall -5.82%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 67842k to 63619k, overall -6.64%
> Amount of memory still referenced at the end of compilation decreased from 8242k to 7266k, overall -13.44%
> Overall memory needed: 384083k -> 363616k
> Peak memory use before GGC: 75898k -> 71726k
> Peak memory use after GGC: 67842k -> 63619k
> Maximum of released memory in single GGC run: 34793k -> 34866k
> Garbage: 243329k -> 242138k
> Leak: 8242k -> 7266k
> Overhead: 30714k -> 32534k
> GGC runs: 94 -> 96
> Amount of produced pre-ipa-GGC garbage increased from 49540k to 51866k, overall 4.69%
> Amount of memory referenced pre-ipa decreased from 63958k to 60977k, overall -4.89%
> Pre-IPA-Garbage: 49540k -> 51866k
> Pre-IPA-Leak: 63958k -> 60977k
> Pre-IPA-Overhead: 6527k -> 7892k
> Amount of produced post-ipa-GGC garbage increased from 49540k to 51866k, overall 4.69%
> Amount of memory referenced post-ipa decreased from 63958k to 60977k, overall -4.89%
> Post-IPA-Garbage: 49540k -> 51866k
> Post-IPA-Leak: 63958k -> 60977k
> Post-IPA-Overhead: 6527k -> 7892k
>
> comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 75899k to 71496k, overall -6.16%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 67843k to 63620k, overall -6.64%
> Amount of produced GGC garbage decreased from 254882k to 245858k, overall -3.67%
> Amount of memory still referenced at the end of compilation decreased from 8405k to 7429k, overall -13.14%
> Overall memory needed: 319143k -> 316904k
> Peak memory use before GGC: 75899k -> 71496k
> Peak memory use after GGC: 67843k -> 63620k
> Maximum of released memory in single GGC run: 32467k -> 36143k
> Garbage: 254882k -> 245858k
> Leak: 8405k -> 7429k
> Overhead: 33489k -> 33920k
> GGC runs: 106 -> 102
> Amount of produced pre-ipa-GGC garbage increased from 107535k to 111746k, overall 3.92%
> Amount of memory referenced pre-ipa decreased from 75847k to 72217k, overall -5.03%
> Pre-IPA-Garbage: 107535k -> 111746k
> Pre-IPA-Leak: 75847k -> 72217k
> Pre-IPA-Overhead: 10845k -> 13700k
> Amount of produced post-ipa-GGC garbage increased from 107535k to 111746k, overall 3.92%
> Amount of memory referenced post-ipa decreased from 75847k to 72217k, overall -5.03%
> Post-IPA-Garbage: 107535k -> 111746k
> Post-IPA-Leak: 75847k -> 72217k
> Post-IPA-Overhead: 10845k -> 13700k
>
> comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
> Overall memory allocated via mmap and sbrk increased from 1068407k to 1118412k, overall 4.68%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 142724k to 137913k, overall -3.49%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 129380k to 125190k, overall -3.35%
> Amount of produced GGC garbage increased from 356330k to 366793k, overall 2.94%
> Amount of memory still referenced at the end of compilation decreased from 11384k to 9929k, overall -14.66%
> Overall memory needed: 1068407k -> 1118412k
> Peak memory use before GGC: 142724k -> 137913k
> Peak memory use after GGC: 129380k -> 125190k
> Maximum of released memory in single GGC run: 59679k -> 61836k
> Garbage: 356330k -> 366793k
> Leak: 11384k -> 9929k
> Overhead: 38131k -> 42451k
> GGC runs: 92 -> 97
> Amount of produced pre-ipa-GGC garbage increased from 107535k to 111746k, overall 3.92%
> Amount of memory referenced pre-ipa decreased from 75847k to 72217k, overall -5.03%
> Pre-IPA-Garbage: 107535k -> 111746k
> Pre-IPA-Leak: 75847k -> 72217k
> Pre-IPA-Overhead: 10845k -> 13700k
> Amount of produced post-ipa-GGC garbage increased from 107535k to 111746k, overall 3.92%
> Amount of memory referenced post-ipa decreased from 75847k to 72217k, overall -5.03%
> Post-IPA-Garbage: 107535k -> 111746k
> Post-IPA-Leak: 75847k -> 72217k
> Post-IPA-Overhead: 10845k -> 13700k
>
> Head of the ChangeLog is:
>
> --- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-07-26 00:01:44.000000000 +0000
> +++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-07-26 18:54:49.000000000 +0000
> @@ -1,7 +1,732 @@
> -2008-07-25 Andreas Krebbel <krebbel1@de.ibm.com>
> +2008-07-25 Michael Meissner <gnu@the-meissners.org>
>
> - * tree-tailcall.c (process_assignment): Prevent tail call
> - optimization if the modes of the return types don't match.
> + * doc/extend.texi (hot attribute): Document that the hot attribute
> + turns on -O3 for some ports.
> + (cold attribute): Document that the cold attribute turns on -Os
> + for some ports
> +
> + * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
> + reflect function specific option support.
> +
> + * target.h (struct target_option_hooks): Add fields to say whether
> + the cold attribute implies -Os and the hot attribute implies -O3.
> +
> + * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
> + By default, do not turn on -Os for cold functions.
> + (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
> + not turn on -O3 for hot functions.
> +
> + * c-common.c (handle_hot_attribute): Use target hook to determine
> + if hot functions should enable -O3.
> + (handle_cold_attribute): Use target hook to determine if cold
> + functions should enable -Os.
> +
> + * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
> + (override_options): Move disable scheduling to
> + optimization_options.
> + (optimization_options): Disable scheduling here, not
> + override_options.
> + (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
> + (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
> +
> + * config/ia64/ia64.c (ia64_override_options): Move setting
> + scheduling flags to ia64_optimization_options.
> + (ia64_optimization_options): Disable scheduling options here, and
> + not in ia64_override_options.
> + (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
> + (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
> +
> +2008-07-25 H.J. Lu <hongjiu.lu@intel.com>
> +
> + PR target/36936
> + * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
> +
> +2008-07-25 Martin Jambor <mjambor@suse.cz>
> +
> + PR tree-optimization/36926
> + * ipa-prop.c (ipa_analyze_call_uses): Call
> + ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
> +
> +2008-07-25 Joseph Myers <joseph@codesourcery.com>
> +
> + * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
> + movv2si_internal): Add mem = reg alternative.
> +
> +2008-07-25 Andreas Tobler <a.tobler@schweiz.org>
> +
> + PR bootstrap/36918
> + * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
> + DEFAULT_PCC_STRUCT_RETURN to 127.
> +
> +2008-07-24 Jan Hubicka <jh@suse.cz>
> +
> + * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
> + (build_cgraph_edges): Likewise.
> + * cgraph.c (cgraph_node): Do not update assembler hash.
> + (cgraph_remove_node): Drop non-unit-at-a-time code.
> + * tree-pass.h (pass_O0_always_inline): Remove.
> + * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
> + * toplev.c (process_options): Flag unit-at-a-time does not imply
> + no section anchors.
> + * cgraphunit.c: Update comments.
> + (decide_is_function_needed): Drop non-unit-at-a-time mode.
> + (cgraph_assemble_pending_functions): Remove.
> + (cgraph_reset_node): Drop non-unit-at-a-time code.
> + (cgraph_finalize_function): Likewise.
> + (cgraph_analyze_function): Likewise.
> + (cgraph_finalize_compilation_unit): Likewise.
> + (cgraph_expand_function): Likewise.
> + (cgraph_optimize): Likesise.
> + (save_inline_function_body): Likewise.
> + * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
> + * tree-ssa-alias.c (maybe_be_aliased): Likewise.
> + * ipa-inline.c: Update comments.
> + (enum inlining_mode): remove INLINE_SPEED.
> + (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
> + (cgraph_mark_inline_edge): Likewise.
> + (try_inline): Likewise.
> + (cgraph_decide_inlining_incrementally): Likewise.
> + (cgraph_gate_inlining): Remove.
> + (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
> + (cgraph_gate_early_inlining): Likewise.
> + (gate_inline_passes): Remove.
> + (pass_inline_parameters, pass_ipa_inline): Remove gates.
> + (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
> + pass_O0_always_inline): Remove.
> + * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
> + * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
> + * opts.c (no_unit_at_a_time_default): Remove.
> + (decode_options): Remove flag_unit_at_a_time reset and warning.
> + * opts.h (no_unit_at_a_time_default): Remove.
> + * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
> + early in GNU dialect.
> + (merge_decls): Update comment; drop unit-at-a-time check.
> + (finish_decl): Likewise.
> + (grok_declaration): Remove flag_inline_trees code.
> + (finish_functions): Return on function returning non-void on all
> + statics.
> + * ipa-tye-escape.c (gate_type_escape_vars): Remove.
> + * cfgexpand.c (expand_one_static_var): Remove.
> + (expand_one_var): Remove expand_one_static_var call.
> + (expand_used_vars_for_block): Remove flag_unit_a_time check.
> + * c-opts.c (c_common_post_options): Remove flag_inline_trees code
> + and flag_unit_at_a-time compatibility checks.
> + * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
> + * tree-inline.c (flag_inline_trees): Remove.
> + (inlinable_function_p): Don't check it.
> + (expand_call_inline): Remove non-unit-at-a-time code.
> + * tree-inline.h (flag_inline_trees): Remove.
> + * tree-optimize.c (execute_early_local_optimizations): Remove
> + unit-at-a-time checks.
> + (tree_rest_of_compilation): Likewise.
> + * combine.c (setup_incoming_promotions): Likewise.
> + * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
> + * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
> + * passes.c (pass_inline_parameters): Update comments; remove
> + O0_alwaysinline pass.
> + (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
> + (execute_one_pass): Likewise.
> + * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
> + (ix86_function_sseregparm): Likewise.
> + * arm.c (arm_function_in_section_p): Likewise.
> + * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
> + * varpool.c: Update comments.
> + (decide_is_variable_needed): Remove unit-at-a-time checks.
> + (varpool_finalize_decl): Likewise.
> +
> +2008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
> +
> + * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
> + to 2 instead of -1.
> + (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
> + to 2.
> +
> +2008-07-24 Kai Tietz <kai.tietz@onevision.com>
> +
> + * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
> + imp symbol extension.
> +
> + 2008-07-23 Ian Lance Taylor <iant@google.com>
> +
> + * tree-vrp.c (infer_value_range): Ignore asm statements when
> + looking for memory accesses for -fdelete-null-pointer-checks.
> +
> +2008-07-24 Ben Elliston <bje@au.ibm.com>
> +
> + * config/spu/spu-c.c (__vector_keyword): New variable.
> + (vector_keyword): Likewise.
> + (spu_categorize_keyword): New function.
> + (spu_macro_to_expand): Likewise.
> + (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
> + compiling an ISO C dialect.
> +
> +2008-07-24 Ben Elliston <bje@au.ibm.com>
> +
> + * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
> + conventional usage.
> +
> +2008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
> +
> + * configure: Regenerate.
> + * configure.ac: Require texinfo 4.7.
> + * doc/install.texi: Document texinfo 4.7 requirement.
> +
> +2008-07-23 Martin Jambor <mjambor@suse.cz>
> +
> + * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
> + rather than for DECL_SAVED_TREE.
> + * ipa-prop.c: Include diagnostic.h.
> + (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
> + thoroughly.
> + (ipa_detect_param_modifications): Function rewritten from scratch.
> + (ipa_compute_jump_functions): Changed accesses to modification flags.
> + (ipa_free_node_params_substructures): Update flags destruction.
> + (ipa_node_duplication_hook): Update flags duplication.
> + (ipa_print_all_params_modified): Updated flag access.
> + * ipa-prop.h (struct ipa_param_flags): New structure.
> + (struct ipa_node_params): New field modification_analysis_done,
> + modified_flags changed into param_flags.
> + (ipa_is_ith_param_modified): Changed to use new flags.
> + * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
> +
> + * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
> + ipa-cp.c and split into two functions.
> + (ipa_print_node_jump_functions): New function.
> + (compute_scalar_jump_functions): New function.
> + (type_like_member_ptr_p): New function.
> + (compute_pass_through_member_ptrs): New function.
> + (fill_member_ptr_cst_jump_function): New function.
> + (determine_cst_member_ptr): New function.
> + (compute_cst_member_ptr_arguments): New function.
> + (ipa_compute_jump_functions): Complete rewrite.
> + * ipa-prop.h (enum jump_func_type): Make explicit that we depend
> + on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
> + (struct ipa_member_ptr_cst): New structure.
> + (union jump_func_value): New field member_cst.
> + * ipa-cp.c (ipcp_lat_is_insertable): New function.
> + (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
> + jump function types.
> + (ipcp_print_all_lattices): Slight fprintf rearrangement.
> + (ipcp_print_all_structures): Call ipa_print_all_jump_functions
> + instead of ipcp_print_all_jump_functions.
> + (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
> + only for replacable scalars.
> +
> + * doc/invoke.texi (Optimize options): Add description of
> + -findirect-inlining.
> + * common.opt (flag_indirect_inlining): New flag.
> + * opts.c (decode_options): Set flag_indirect_inlining when
> + optimize >= 3.
> +
> + * ipa-inline.c: Include ipa-prop.h.
> + (inline_indirect_intraprocedural_analysis): New function.
> + (inline_generate_summary): Allocate parameter and argument info
> + structures, call inline_indirect_intraprocedural_analysis on each
> + node when doing indirect inlining and deallocate indirect inlining
> + data structures in the end.
> + * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
> + (free_all_ipa_structures_after_iinln): New function.
> + (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
> + done.
> + * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
> +
> + * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
> + (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
> + of computing the frequency separately.
> + (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
> + of computing the frequency separately.
> + * ipa-cp.c (ipcp_print_all_structures): Replace a call to
> + ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
> + * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
> + (ipa_get_stmt_member_ptr_load_param): New function.
> + (ipa_is_ssa_with_stmt_def): New function.
> + (ipa_note_param_call): New function.
> + (ipa_analyze_call_uses): New function.
> + (ipa_analyze_stmt_uses): New function.
> + (ipa_analyze_params_uses): New function.
> + (ipa_free_node_params_substructures): Also free the param_calls linked
> + list.
> + (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
> + (ipa_print_node_param_flags): New function.
> + (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
> + (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
> + * ipa-prop.h (struct ipa_param_flags): New field called.
> + (struct ipa_param_call_note): New structure.
> + (struct ipa_node_params): New fields param_calls and
> + uses_analysis_done.
> + (ipa_is_ith_param_called): New function.
> + * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
> + ipa_analyze_params_uses and dump parameter flags.
> +
> + * ipa-inline.c (cgraph_decide_recursive_inlining): Call
> + ipa_propagate_indirect_call_infos if performing indirect inlining,
> + pass a new parameter new_edges to it.
> + (add_new_edges_to_heap): New fucntion.
> + (cgraph_decide_inlining_of_small_functions): New vector
> + new_indirect_edges for newly found indirect edges , call
> + ipa_propagate_indirect_call_infos after inlining.
> + (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
> + inlining if performing indirect inlining. Call
> + free_all_ipa_structures_after_iinln when doing so too.
> + (inline_generate_summary): Do not call
> + free_all_ipa_structures_after_iinln here.
> + * ipa-prop.c (update_jump_functions_after_inlining): New function.
> + (print_edge_addition_message): New function.
> + (update_call_notes_after_inlining): New function.
> + (propagate_info_to_inlined_callees): New function.
> + (ipa_propagate_indirect_call_infos): New function.
> + * ipa-prop.h: Include cgraph.h
> + (struct ipa_param_call_note): Fields reordered, new field processed.
> + * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
> + flag indirect_call.
> + * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
> + rediscovered call statements.
> + * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
> + (dump_cgraph_node): Dump also the indirect_call flag.
> + (cgraph_clone_edge): Copy also the indirect_call flag.
> + * tree-inline.c (copy_bb): Do not check for fndecls from call
> + expressions, check for edge availability when moving clones.
> + (get_indirect_callee_fndecl): New function.
> + (expand_call_inline): If callee declaration is not apprent from
> + the statement, try calling get_indirect_callee_fndecl. Do not
> + issue warnings or call sorry when not inlinings an indirect edge.
> + * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
> +
> + * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
> + bit more frandly to matching.
> + * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
> + * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
> + * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
> +
> +2008-07-23 Michael Meissner <gnu@the-meissners.org>
> +
> + PR 36907
> + * opth-gen.awk: Suppress function specific features when building
> + target libraries.
> + * optc-gen.awk: Ditto.
> +
> +2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
> +
> + PR 35058
> + * diagnostic.c (pedwarn): Add opt parameter.
> + (pedwarn0): New.
> + * c-tree.h (pedwarn_init): Add opt parameter.
> + (pedwarn_c90): Likewise.
> + (pedwarn_c99): Likewise.
> + * c-errors.c (pedwarn_c99): Likewise.
> + (pedwarn_c90): Likewise.
> + * toplev.h (pedwarn): Update declaration.
> + (pedwarn0): Declare.
> + * c-lex.c: All calls to pedwarn changed.
> + * builtins.c: All calls to pedwarn changed.
> + * toplev.c: All calls to pedwarn changed.
> + * c-decl.c: All calls to pedwarn changed.
> + * c-typeck.c: All calls to pedwarn changed.
> + * c-common.c: All calls to pedwarn changed.
> + * c-parser.c: All calls to pedwarn changed.
> +
> +2008-07-23 Michael Meissner <gnu@the-meissners.org>
> + Karthik Kumar <karthikkumar@gmail.com>
> +
> + * attribs.c (file scope): Include c-common.h.
> + (decl_attributes): Add support for #pragma GCC optimize and
> + #pragma GCC option.
> +
> + * targhooks.c (default_can_inline_p): New function that is the
> + default for the TARGET_CAN_INLINE_P target hook.
> +
> + * targhooks.h (default_can_inline_p): Add declaration.
> +
> + * tree.c (cl_optimization_node): New static tree for building
> + OPTIMIZATION_NODE tree.
> + (cl_target_option_node): New static tree for building
> + TARGET_OPTION_NODE tree.
> + (cl_option_hash_table): New hash table for hashing
> + OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
> + (cl_option_hash_hash): New function to provide the hash value for
> + OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
> + (cl_option_hash_eq): New function to provide an equality test for
> + OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
> + (tree_code_size): Add support for OPTIMIZATION_NODE and
> + TARGET_OPTION_NODE trees.
> + (tree_code_structure): Add support for OPTIMIZATION_NODE and
> + TARGET_OPTION_NODE trees.
> + (build_optimization_node): Build a tree that has all of the
> + current optimization options.
> + (build_target_option_node): Build a tree that has the target
> + options that might be changed on a per function basis.
> +
> + * tree.h (file scope): Include options.h.
> + (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
> + (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
> + (TREE_OPTIMIZATION): Ditto.
> + (TREE_TARGET_SPECIFIC): Ditto.
> + (struct tree_function_decl): Add fields for remembering the
> + current optimization options and target specific options.
> + (struct tree_optimization_option): New tree variant that remembers
> + the optimization options.
> + (struct tree_target_option): New tree variant that remembers the
> + target specific flags that might change for compiling a particular
> + function.
> + (union tree_node): Include tree_optimization_option and
> + tree_target_option fields.
> + (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
> + TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
> + TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
> + TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
> + TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
> + optimization and target options.
> + (optimization_default_node): New macro to refer to global_trees
> + field.
> + (optimization_current_node): Ditto.
> + (optimization_cold_node): Ditto.
> + (optimization_hot_node): Ditto.
> + (target_option_default_node): Ditto.
> + (target_option_current_node): Ditto.
> + (current_option_pragma): Ditto.
> + (current_optimize_pragma): Ditto.
> +
> + * target.h (struct gcc_target): Add valid_option_attribute_p,
> + target_option_save, target_option_restore, target_option_print,
> + target_option_pragma_parse, and can_inline_p hooks.
> +
> + * toplev.h (parse_optimize_options): Add declaration.
> + (fast_math_flags_struct_set_p): Ditto.
> +
> + * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
> + adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
> + optimize is used.
> +
> + * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
> + tree_can_inline_p hook to see if one function can inline another.
> + (cgraph_decide_inlining): Ditto.
> + (cgraph_decide_inlining_incrementally): Ditto.
> +
> + * opts.c (decode_options): Add support for running multiple times
> + to allow functions with different target or optimization options
> + than was specified on the command line.
> + (fast_math_flags_struct_set_p): New function that is similar to
> + fast_math_flags_set_p, except it uses the values in the
> + cl_optimization structure instead of global variables.
> +
> + * optc-gen.awk: Add support for TargetSave to allow a back end to
> + declare new fields that need to be saved when using function
> + specific options. Include flags.h and target.h in the options.c
> + source. Add support for Save to indicate which options can be set
> + for individual functions. Generate cl_optimize_save,
> + cl_optimize_restore, cl_optimize_print, cl_target_option_save,
> + cl_target_option_restore, cl_target_option_print functions to
> + allow functions to use different optimization or target options.
> +
> + * opt-functions.awk (var_type_struct): Return the type used for
> + storing the field in a structure.
> +
> + * opth-gen.awk: Add support for TargetSave to allow a back end to
> + declare new fields that need to be saved when using function
> + specific options. Add support for Save to indicate which options
> + can be set for individual functions. Only generate one extern for
> + Mask fields. Generate cl_optimization and cl_target_option
> + structures to remember optimization and target options.
> +
> + * treestruct.def (TS_OPTIMIZATION): Add support for garbage
> + collecting new tree nodes.
> + (TS_TARGET_OPTION): Ditto.
> +
> + * c-decl.c (merge_decls): Merge function specific target and
> + optimization options.
> +
> + * function.c (invoke_set_current_function_hook): If the function
> + uses different optimization options, change the global variables
> + to reflect this.
> +
> + * coretypes.h (struct cl_optimization): Add forward reference.
> + (struct cl_target_option): Ditto.
> +
> + * c-pragma.c (option_stack): New static vector to remember the
> + current #pragma GCC option stack.
> + (handle_pragma_option): New function to support #pragma GCC option
> + to change target options.
> + (optimize_stack): New static vector to remember the current
> + #pragma GCC optimize stack.
> + (handle_pragma_optimize): New function to support #pragma GCC
> + optimize to change optimization options.
> + (init_pragma): Add support for #pragma GCC optimize and #pragma
> + GCC option.
> +
> + * tree.def (OPTIMIZATION_NODE): New tree code for remembering
> + optimization options.
> + (TARGET_OPTION_NODE): New tree code for remembering certain target
> + options.
> +
> + * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
> + TARGET_OPTION_NODE trees.
> +
> + * common.opt (-O): Add Optimization flag.
> + (-Os): Ditto.
> + (-fmath-errno): Ditto.
> + (-falign-functions): Add UInteger flag to make sure flag gets full
> + int in cl_optimization structure.
> + (-falign-jumps): Ditto.
> + (-falign-labels): Ditto.
> + (-falign-loops): Ditto.
> + (-fsched-stalled-insns): Ditto.
> + (-fsched-stalled-insns-dep): Ditto.
> +
> + * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
> + definition.
> + (TARGET_OPTION_SAVE): Ditto.
> + (TARGET_OPTION_RESTORE): Ditto.
> + (TARGET_OPTION_PRINT): Ditto.
> + (TARGET_OPTION_PRAGMA_PARSE): Ditto.
> + (TARGET_CAN_INLINE_P): Ditto.
> + (TARGET_INITIALIZER): Add new hooks.
> +
> + * tree-inline.c (tree_can_inline_p): New function to determine
> + whether one function can inline another. Check if the functions
> + use compatible optimization options, and also call the backend
> + can_inline_p hook.
> +
> + * tree-inline.h (tree_can_inline_p): Add declaration.
> +
> + * c-common.c (c_common_attribute): Add support for option and
> + optimize attributes.
> + (handle_option_attribute): Add support for the option attribute to
> + allow the user to specify different target options for compiling a
> + specific function.
> + (handle_optimize_attribute): Add support for the optimize
> + attribute to allow the user to specify different optimization
> + options for compiling a specific function.
> + (handle_hot_attribute): Turn on -O3 optimization for this one
> + function if it isn't the default optimization level.
> + (handle_cold_attribute): Turn on -Os optimization for this one
> + function if it insn't the default optimization.
> + (const_char_p): New const char * typedef.
> + (optimize_args): New static vector to remember the optimization
> + arguments.
> + (parse_optimize_options): New function to set up the optimization
> + arguments from either the optimize attribute or #pragma GCC
> + optimize.
> +
> + * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
> + (builtin_define_std): Ditto.
> +
> + * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
> + Add t-i386 Makefile fragment to add i386-c.o and i386.o
> + dependencies.
> + (x86_64-*-*): Ditto.
> +
> + * Makefile.in (TREE_H): Add options.h.
> + (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
> +
> + * doc/extend.texi (option attribute): Document new attribute.
> + (optimize attribute): Ditto.
> + (hot attribute): Document hot attribute sets -O3.
> + (cold attribute): Document cold attribute sets -Os.
> + (#pragma GCC option): Document new pragma.
> + (#pragma GCC optimize): Ditto.
> +
> + * doc/options.texi (TargetSave): Document TargetSave syntax.
> + (UInteger): Document UInteger must be used for certain flags.
> + (Save): Document Save option to create target specific options
> + that can be saved/restored on a function specific context.
> +
> + * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
> + macro.
> + (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
> +
> + * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
> + hook.
> + (TARGET_OPTION_SAVE): Ditto.
> + (TARGET_OPTION_RESTORE): Ditto.
> + (TARGET_OPTION_PRINT): Ditto.
> + (TARGET_OPTION_PRAGMA_PARSE): Ditto.
> + (TARGET_CAN_INLINE_P): Ditto.
> +
> + * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
> + -mfpmath=sse,387.
> + (-mfpmath=both): Ditto.
> +
> +2008-07-23 Michael Meissner <gnu@the-meissners.org>
> + Karthik Kumar <karthikkumar@gmail.com>
> +
> + * config/i386/i386.h (TARGET_ABM): Move switch into
> + ix86_isa_flags.
> + (TARGET_POPCNT): Ditto.
> + (TARGET_SAHF): Ditto.
> + (TARGET_AES): Ditto.
> + (TARGET_PCLMUL): Ditto.
> + (TARGET_CMPXCHG16B): Ditto.
> + (TARGET_RECIP): Move switch into target_flags.
> + (TARGET_FUSED_MADD): Ditto.
> + (ix86_arch_features): Make an unsigned char type.
> + (ix86_tune_features): Ditto.
> + (OVERRIDE_OPTIONS): Add bool argument to override_options call.
> + (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
> + (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
> +
> + * config/i386/i386.opt (arch): New TargetSave field to define
> + fields that need to be saved for function specific option
> + support.
> + (tune): Ditto.
> + (fpmath): Ditto.
> + (branch_cost): Ditto.
> + (ix86_isa_flags_explicit): Ditto.
> + (tune_defaulted): Ditto.
> + (arch_specified): Ditto.
> + (-m128-long-double): Add Save flag to save option for target
> + specific option support.
> + (-m80387): Ditto.
> + (-maccumulate-outgoing-args): Ditto.
> + (-malign-double): Ditto.
> + (-malign-stringops): Ditto.
> + (-mfancy-math-387): Ditto.
> + (-mhard-float): Ditto.
> + (-mieee-fp): Ditto.
> + (-minline-all-stringops): Ditto.
> + (-minline-stringops-dynamically): Ditto.
> + (-mms-bitfields): Ditto.
> + (-mno-align-stringops): Ditto.
> + (-mno-fancy-math-387): Ditto.
> + (-mno-push-args): Ditto.
> + (-mno-red-zone): Ditto.
> + (-mpush-args): Ditto.
> + (-mred-zone): Ditto.
> + (-mrtd): Ditto.
> + (-msseregparm): Ditto.
> + (-mstack-arg-probe): Ditto.
> + (-m32): Ditto.
> + (-m64): Ditto.
> + (-mmmx): Ditto.
> + (-m3dnow): Ditto.
> + (-m3dnowa): Ditto.
> + (-msse): Ditto.
> + (-msse2): Ditto.
> + (-msse3): Ditto.
> + (-msse4.1): Ditto.
> + (-msse4.2): Ditto.
> + (-msse4): Ditto.
> + (-mno-sse4): Ditto.
> + (-msse4a): Ditto.
> + (-msse5): Ditto.
> + (-mrecip): Move flag into target_flags.
> + (-mcld): Ditto.
> + (-mno-fused-madd): Ditto.
> + (-mfused-madd): Ditto.
> + (-mabm): Move flag into ix86_isa_flags.
> + (-mcx16): Ditto.
> + (-mpopcnt): Ditto.
> + (-msahf): Ditto.
> + (-maes): Ditto.
> + (-mpclmul): Ditto.
> +
> + * config/i386/i386-c.c: New file for #pragma support.
> + (ix86_target_macros_internal): New function to #define or #undef
> + target macros based when the user uses the #pragma GCC option to
> + change target options.
> + (ix86_pragma_option_parse): New function to add #pragma GCC option
> + support.
> + (ix86_target_macros): Move defining the target macros here from
> + TARGET_CPU_CPP_BUILTINS in i386.h.
> + (ix86_register_pragmas): Register the #pragma GCC option hook. If
> + defined, initialize any subtarget #pragmas.
> +
> + * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
> + REGISTER_TARGET_PRAGMAS.
> +
> + * config/i386/t-i386: New file for x86 dependencies.
> + (i386.o): Make dependencies mirror the include files used.
> + (i386-c.o): New file, add dependencies.
> +
> + * config/i386/i386-protos.h (override_options): Add bool
> + argument.
> + (ix86_valid_option_attribute_tree): Add declaration.
> + (ix86_target_macros): Ditto.
> + (ix86_register_macros): Ditto.
> +
> + * config/i386/i386.c (ix86_tune_features): Move initialization of
> + the target masks to initial_ix86_tune_features to allow functions
> + to have different target options. Make type unsigned char,
> + instead of unsigned int.
> + (initial_ix86_tune_features): New static vector to hold processor
> + masks for the tune variables.
> + (ix86_arch_features): Move initialization of the target masks to
> + initial_ix86_arch_features to allow functions to have different
> + target options. Make type unsigned char, instead of unsigned
> + int.
> + (initial_ix86_arch_features): New static vector to hold processor
> + masks for the arch variables.
> + (enum ix86_function_specific_strings): New enum to describe the
> + string options used for attribute((option(...))).
> + (ix86_target_string): New function to return a string that
> + describes the target options.
> + (ix86_debug_options): New function to print the current options in
> + the debugger.
> + (ix86_function_specific_save): New function hook to save the
> + function specific global variables in the cl_target_option
> + structure.
> + (ix86_function_specific_restore): New function hook to restore the
> + function specific variables from the cl_target_option structure to
> + the global variables.
> + (ix86_function_specific_print): New function hook to print the
> + target specific options in the cl_target_option structure.
> + (ix86_valid_option_attribute_p): New function hook to validate
> + attribute((option(...))) arguments.
> + (ix86_valid_option_attribute_tree): New function that is common
> + code between attribute((option(...))) and #pragma GCC option
> + support that parses the options and returns a tree holding the
> + options.
> + (ix86_valid_option_attribute_inner_p): New helper function for
> + ix86_valid_option_attribute_tree.
> + (ix86_can_inline_p): New function hook to decide if one function
> + can inline another on a target specific basis.
> + (ix86_set_current_function); New function hook to switch target
> + options if the user used attribute((option(...))) or #pragma GCC
> + option.
> + (ix86_tune_defaulted): Move to static file scope from
> + override_options.
> + (ix86_arch_specified): Ditto.
> + (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
> + ix86_isa_flags.
> + (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
> + (OPTION_MASK_ISA_ABM_SET): Ditto.
> + (OPTION_MASK_ISA_POPCNT_SET): Ditto.
> + (OPTION_MASK_ISA_CX16_SET): Ditto.
> + (OPTION_MASK_ISA_SAHF_SET): Ditto.
> + (OPTION_MASK_ISA_AES_UNSET): Ditto.
> + (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
> + (OPTION_MASK_ISA_ABM_UNSET): Ditto.
> + (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
> + (OPTION_MASK_ISA_CX16_UNSET): Ditto.
> + (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
> + (struct ptt): Move to static file scope from override_options.
> + (processor_target_table): Ditto.
> + (cpu_names): Ditto.
> + (ix86_handle_option): Add support for options that are now isa
> + options.
> + (override_options): Add support for declaring functions that
> + support different target options than were specified on the
> + command line. Move struct ptt, processor_target_table, cpu_names,
> + ix86_tune_defaulted, ix86_arch_specified to static file scope.
> + Add bool argument. Fix up error messages so the appropriate error
> + is given for either command line or attribute.
> + (ix86_previous_fndecl): New static to remember previous function
> + declaration to see if we need to change target options.
> + (ix86_builtins_isa): New array to record the ISA of each builtin
> + function.
> + (def_builtin): Always create the builtin function, even if the
> + current ISA doesn't support it.
> + (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
> + tests for those builtins.
> + (ix86_init_builtins): Remove TARGET_MMX test for calling
> + ix86_init_mmx_sse_builtins.
> + (ix86_expand_builtin): If the current ISA doesn't support a given
> + builtin, signal an error.
> + (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
> + (TARGET_SET_CURRENT_FUNCTION): Ditto.
> + (TARGET_OPTION_SAVE): Ditto.
> + (TARGET_OPTION_RESTORE): Ditto.
> + (TARGET_OPTION_PRINT): Ditto.
> + (TARGET_CAN_INLINE_P): Ditto.
>
> 2008-07-22 Rafael Avila de Espindola <espindola@google.com>
>
> --- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2008-07-25 23:59:55.000000000 +0000
> +++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2008-07-26 18:54:43.000000000 +0000
> @@ -1,3 +1,78 @@
> +2008-07-25 Jan Hubicka <jh@suse.cz>
> +
> + * typeck.c (inline_conversion): Remove.
> + (cp_build_function_call): Do not use inline_conversion.
> + * decl.c (duplicate_decls): Do not insist on inline being declared
> + early.
> + (start_cleanup_fn): Do not assume that INLINE flags prevent function
> + from being output. We now remove static functions always.
> + (finish_function): Do return warning on all static functions.
> + * call.c (build_over_call): Do not use inline_conversion.
> + * cp-tree.h (possibly_inlined_p): Declare.
> + (inline_conversion): Remove.
> + * pt.c (instantiate_decl): Use possibly_inlined_p predicate.
> + * decl2.c (cp_write_global_declarations): Likewise.
> + (mark_used): Likewise.
> + (possibly_inlined_p): New functions.
> +
> +2008-07-25 Jason Merrill <jason@redhat.com>
> +
> + * class.c (type_has_user_provided_default_constructor): Handle
> + templates.
> +
> +2008-07-23 Jan Hubicka <jh@suse.cz>
> +
> + * decl.c (duplicate_decls): Update comment and unit-at-a-time.
> + (grogfndecl): Drop flag_inline_trees code.
> + * pt.c (instantiate_decl): Drop flag_iline_trees code.
> + * lex.c (cxx_init): Do not set unit-at-a-time.
> +
> +2008-07-23 Jason Merrill <jason@redhat.com>
> +
> + * mangle.c (write_unqualified_name): Avoid infinite recursion when
> + trying to mangle a decl with no name.
> +
> + Implement defaulted/deleted functions as per N2346
> + * cp-tree.h (struct lang_decl_flags): Add defaulted_p bitfield.
> + (DECL_DELETED_FN): New macro.
> + (DECL_DEFAULTED_FN): New macro.
> + * class.c (user_provided_p): New fn.
> + (defaultable_fn_p): New fn.
> + (type_has_user_provided_constructor): New fn.
> + (type_has_user_provided_default_constructor): New fn.
> + (check_methods): A defaulted fn is still trivial.
> + (check_bases_and_members): Likewise.
> + * decl.c (grok_special_member_properties): Likewise.
> + (duplicate_decls): Complain about redeclaring a function as deleted.
> + (start_decl): initialized==2 means deleted.
> + (cp_finish_decl): Handle deleted/defaulted semantics.
> + * decl2.c (grokfield): Likewise.
> + (mark_used): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL.
> + Complain about using a deleted fn.
> + * init.c (build_value_init_1): Use type_has_user_provided_constructor.
> + (perform_member_init): Check for a user-provided default constructor
> + even if TYPE_NEEDS_CONSTRUCTING.
> + (build_new_1): Likewise.
> + * call.c (build_over_call): Don't call mark_used twice.
> + * method.c (implicitly_declare_fn): Set DECL_DEFAULTED_FN.
> + * search.c (check_final_overrider): Check for deleted mismatch.
> + * parser.c (cp_parser_init_declarator): Tell start_decl about =delete.
> + (cp_parser_pure_specifier): Handle =default and =delete.
> +
> + * error.c (maybe_warn_cpp0x): Suggest -std=gnu++0x as well.
> +
> +2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
> +
> + PR 35058
> + * typeck.c: All calls to pedwarn changed.
> + * decl.c: All calls to pedwarn changed.
> + * call.c: All calls to pedwarn changed.
> + * error.c: All calls to pedwarn changed.
> + * typeck2.c: All calls to pedwarn changed.
> + * pt.c: All calls to pedwarn changed.
> + * name-lookup.c: All calls to pedwarn changed.
> + * parser.c: All calls to pedwarn changed.
> +
> 2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
>
> * call.c: Fix comment typos.
>
>
> 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