Hi, to give some perspective to the discussion on memory usage, I generated comparsion of 4.2 branchpoint to 4.3 branchpoint from logs of our memory tester. I would say it is quite pleasing to see that 4.3 is not really regression relative 4.2 in most tests like it was custom in previous releases, but still we ought to do a lot better ;)
There is posssibly interesting 35% regression at -O1 combine.c... Honza comparing combine.c compilation at -O0 level: Peak amount of GGC memory allocated before garbage collecting run decreased from 9595k to 8929k, overall -7.46% Peak amount of GGC memory still allocated after garbage collecting decreased from 8942k to 8558k, overall -4.49% Amount of produced GGC garbage decreased from 40099k to 34878k, overall -14.97% Amount of memory still referenced at the end of compilation decreased from 6705k to 6073k, overall -10.41% Overall memory needed: 24905k -> 24797k Peak memory use before GGC: 9595k -> 8929k Peak memory use after GGC: 8942k -> 8558k Maximum of released memory in single GGC run: 2737k -> 2576k Garbage: 40099k -> 34878k Leak: 6705k -> 6073k Overhead: 5788k -> 4715k GGC runs: 317 -> 294 comparing combine.c compilation at -O1 level: Overall memory allocated via mmap and sbrk increased from 26820k to 36237k, overall 35.11% Amount of produced GGC garbage decreased from 60618k to 55748k, overall -8.74% Amount of memory still referenced at the end of compilation decreased from 6888k to 6151k, overall -11.98% Overall memory needed: 26820k -> 36237k Peak memory use before GGC: 17364k -> 16999k Peak memory use after GGC: 17180k -> 16830k Maximum of released memory in single GGC run: 2372k -> 2342k Garbage: 60618k -> 55748k Leak: 6888k -> 6151k Overhead: 7578k -> 6045k GGC runs: 387 -> 369 comparing combine.c compilation at -O2 level: Amount of memory still referenced at the end of compilation decreased from 6973k to 6252k, overall -11.53% Overall memory needed: 26820k -> 26496k Peak memory use before GGC: 17367k -> 16999k Peak memory use after GGC: 17180k -> 16830k Maximum of released memory in single GGC run: 2452k -> 2884k Garbage: 77388k -> 76521k Leak: 6973k -> 6252k Overhead: 10022k -> 8785k GGC runs: 456 -> 443 comparing combine.c compilation at -O3 level: Ovarall memory allocated via mmap and sbrk decreased from 26820k to 25596k, overall -4.78% Amount of memory still referenced at the end of compilation decreased from 7030k to 6317k, overall -11.28% Overall memory needed: 26820k -> 25596k Peak memory use before GGC: 18365k -> 17988k Peak memory use after GGC: 17995k -> 17536k Maximum of released memory in single GGC run: 3510k -> 4130k Garbage: 107793k -> 107354k Leak: 7030k -> 6317k Overhead: 13563k -> 12408k GGC runs: 509 -> 490 comparing insn-attrtab.c compilation at -O0 level: Overall memory allocated via mmap and sbrk increased from 80924k to 83700k, overall 3.43% Amount of produced GGC garbage decreased from 146623k to 125964k, overall -16.40% Amount of memory still referenced at the end of compilation decreased from 9856k to 9117k, overall -8.11% Overall memory needed: 80924k -> 83700k Peak memory use before GGC: 69469k -> 68247k Peak memory use after GGC: 45007k -> 43913k Maximum of released memory in single GGC run: 36247k -> 35708k Garbage: 146623k -> 125964k Leak: 9856k -> 9117k Overhead: 19791k -> 16830k GGC runs: 252 -> 231 comparing insn-attrtab.c compilation at -O1 level: Overall memory allocated via mmap and sbrk increased from 111696k to 118444k, overall 6.04% Peak amount of GGC memory allocated before garbage collecting increased from 94037k to 94551k, overall 0.55% Peak amount of GGC memory still allocated after garbage collectin increased from 83553k to 90403k, overall 8.20% Amount of memory still referenced at the end of compilation decreased from 10072k to 8977k, overall -12.20% Overall memory needed: 111696k -> 118444k Peak memory use before GGC: 94037k -> 94551k Peak memory use after GGC: 83553k -> 90403k Maximum of released memory in single GGC run: 32589k -> 31807k Garbage: 289765k -> 289427k Leak: 10072k -> 8977k Overhead: 36663k -> 29408k GGC runs: 245 -> 240 comparing insn-attrtab.c compilation at -O2 level: Ovarall memory allocated via mmap and sbrk decreased from 127120k to 114404k, overall -11.11% Peak amount of GGC memory allocated before garbage collecting run decreased from 113347k to 95237k, overall -19.02% Peak amount of GGC memory still allocated after garbage collectin increased from 83466k to 90625k, overall 8.58% Amount of produced GGC garbage decreased from 372181k to 328157k, overall -13.42% Amount of memory still referenced at the end of compilation decreased from 10176k to 8982k, overall -13.30% Overall memory needed: 127120k -> 114404k Peak memory use before GGC: 113347k -> 95237k Peak memory use after GGC: 83466k -> 90625k Maximum of released memory in single GGC run: 32177k -> 30386k Garbage: 372181k -> 328157k Leak: 10176k -> 8982k Overhead: 48194k -> 36436k GGC runs: 273 -> 269 comparing insn-attrtab.c compilation at -O3 level: Ovarall memory allocated via mmap and sbrk decreased from 127188k to 114436k, overall -11.14% Peak amount of GGC memory allocated before garbage collecting run decreased from 113377k to 95263k, overall -19.01% Peak amount of GGC memory still allocated after garbage collectin increased from 83496k to 90651k, overall 8.57% Amount of produced GGC garbage decreased from 372762k to 328738k, overall -13.39% Amount of memory still referenced at the end of compilation decreased from 10181k to 8984k, overall -13.32% Overall memory needed: 127188k -> 114436k Peak memory use before GGC: 113377k -> 95263k Peak memory use after GGC: 83496k -> 90651k Maximum of released memory in single GGC run: 32501k -> 30582k Garbage: 372762k -> 328738k Leak: 10181k -> 8984k Overhead: 48348k -> 36612k GGC runs: 276 -> 271 comparing Gerald's testcase PR8361 compilation at -O0 level: Amount of produced GGC garbage decreased from 223559k to 200877k, overall -11.29% Amount of memory still referenced at the end of compilation decreased from 49198k to 47326k, overall -3.96% Overall memory needed: 118380k -> 116568k Peak memory use before GGC: 95138k -> 92731k Peak memory use after GGC: 94190k -> 91812k Maximum of released memory in single GGC run: 20460k -> 19778k Garbage: 223559k -> 200877k Leak: 49198k -> 47326k Overhead: 36725k -> 20503k GGC runs: 369 -> 399 comparing Gerald's testcase PR8361 compilation at -O1 level: Overall memory allocated via mmap and sbrk increased from 105796k to 115728k, overall 9.39% Peak amount of GGC memory allocated before garbage collecting increased from 95267k to 97572k, overall 2.42% Peak amount of GGC memory still allocated after garbage collectin increased from 93193k to 95362k, overall 2.33% Amount of produced GGC garbage decreased from 567631k to 436946k, overall -29.91% Amount of memory still referenced at the end of compilation decreased from 55030k to 49793k, overall -10.52% Overall memory needed: 105796k -> 115728k Peak memory use before GGC: 95267k -> 97572k Peak memory use after GGC: 93193k -> 95362k Maximum of released memory in single GGC run: 20343k -> 18425k Garbage: 567631k -> 436946k Leak: 55030k -> 49793k Overhead: 67667k -> 32048k GGC runs: 518 -> 546 comparing Gerald's testcase PR8361 compilation at -O2 level: Overall memory allocated via mmap and sbrk increased from 106304k to 115708k, overall 8.85% Peak amount of GGC memory allocated before garbage collecting increased from 95268k to 97573k, overall 2.42% Peak amount of GGC memory still allocated after garbage collectin increased from 93193k to 95363k, overall 2.33% Amount of produced GGC garbage decreased from 653958k to 505402k, overall -29.39% Amount of memory still referenced at the end of compilation decreased from 55807k to 50510k, overall -10.49% Overall memory needed: 106304k -> 115708k Peak memory use before GGC: 95268k -> 97573k Peak memory use after GGC: 93193k -> 95363k Maximum of released memory in single GGC run: 20344k -> 18424k Garbage: 653958k -> 505402k Leak: 55807k -> 50510k Overhead: 79247k -> 40543k GGC runs: 585 -> 616 Comparing Gerald's testcase PR8361 compilation at -O3 level: Overall memory allocated via mmap and sbrk increased from 108896k to 115648k, overall 6.20% Peak amount of GGC memory allocated before garbage collecting increased from 96736k to 97616k, overall 0.91% Peak amount of GGC memory still allocated after garbage collectin increased from 94271k to 96649k, overall 2.52% Amount of produced GGC garbage decreased from 708770k to 523573k, overall -35.37% Amount of memory still referenced at the end of compilation decreased from 56981k to 50058k, overall -13.83% Overall memory needed: 108896k -> 115648k Peak memory use before GGC: 96736k -> 97616k Peak memory use after GGC: 94271k -> 96649k Maximum of released memory in single GGC run: 20840k -> 18845k Garbage: 708770k -> 523573k Leak: 56981k -> 50058k Overhead: 84217k -> 41001k GGC runs: 597 -> 624