This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 1035k to 995k, overall -4.02%
  Amount of memory still referenced at the end of compilation decreased from 984k to 952k, overall -3.38%
    Overall memory needed: 8181k -> 8152k
    Peak memory use before GGC: 1130k -> 1097k
    Peak memory use after GGC: 1035k -> 995k
    Maximum of released memory in single GGC run: 127k -> 129k
    Garbage: 238k -> 238k
    Leak: 984k -> 952k
    Overhead: 80k -> 80k
    GGC runs: 4 -> 2
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O0 -g level:
  Amount of memory still referenced at the end of compilation decreased from 1017k to 985k, overall -3.26%
    Overall memory needed: 8197k -> 8168k
    Peak memory use before GGC: 1157k -> 1125k
    Peak memory use after GGC: 1062k -> 1031k
    Maximum of released memory in single GGC run: 127k -> 128k
    Garbage: 240k
    Leak: 1017k -> 985k
    Overhead: 84k -> 84k
    GGC runs: 4
Testing has produced no results
Testing has produced no results

comparing empty function compilation at -O1 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 1027k to 995k, overall -3.22%
  Amount of produced GGC garbage increased from 239k to 240k, overall 0.14%
  Amount of memory still referenced at the end of compilation decreased from 985k to 953k, overall -3.37%
    Overall memory needed: 8237k -> 8204k
    Peak memory use before GGC: 1130k -> 1097k
    Peak memory use after GGC: 1027k -> 995k
    Maximum of released memory in single GGC run: 120k -> 131k
    Garbage: 239k -> 240k
    Leak: 985k -> 953k
    Overhead: 81k -> 81k
    GGC runs: 3 -> 2
  Amount of memory referenced pre-ipa decreased from 987k to 955k, overall -3.33%
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 987k -> 955k
    Pre-IPA-Overhead: 79k -> 79k
  Amount of memory referenced post-ipa decreased from 987k to 955k, overall -3.33%
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 987k -> 955k
    Post-IPA-Overhead: 79k -> 79k

comparing empty function compilation at -O2 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 1027k to 995k, overall -3.22%
  Amount of produced GGC garbage increased from 243k to 243k, overall 0.14%
  Amount of memory still referenced at the end of compilation decreased from 986k to 954k, overall -3.37%
    Overall memory needed: 8257k -> 8224k
    Peak memory use before GGC: 1130k -> 1098k
    Peak memory use after GGC: 1027k -> 995k
    Maximum of released memory in single GGC run: 121k -> 134k
    Garbage: 243k -> 243k
    Leak: 986k -> 954k
    Overhead: 81k -> 81k
    GGC runs: 3 -> 2
  Amount of memory referenced pre-ipa decreased from 988k to 956k, overall -3.33%
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 988k -> 956k
    Pre-IPA-Overhead: 79k -> 79k
  Amount of memory referenced post-ipa decreased from 988k to 956k, overall -3.33%
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 988k -> 956k
    Post-IPA-Overhead: 79k -> 79k

comparing empty function compilation at -O3 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 1027k to 995k, overall -3.22%
  Amount of produced GGC garbage increased from 243k to 243k, overall 0.14%
  Amount of memory still referenced at the end of compilation decreased from 986k to 954k, overall -3.37%
    Overall memory needed: 8257k -> 8224k
    Peak memory use before GGC: 1130k -> 1098k
    Peak memory use after GGC: 1027k -> 995k
    Maximum of released memory in single GGC run: 121k -> 134k
    Garbage: 243k -> 243k
    Leak: 986k -> 954k
    Overhead: 81k -> 81k
    GGC runs: 3 -> 2
  Amount of memory referenced pre-ipa decreased from 988k to 956k, overall -3.33%
    Pre-IPA-Garbage: 227k
    Pre-IPA-Leak: 988k -> 956k
    Pre-IPA-Overhead: 79k -> 79k
  Amount of memory referenced post-ipa decreased from 988k to 956k, overall -3.33%
    Post-IPA-Garbage: 227k
    Post-IPA-Leak: 988k -> 956k
    Post-IPA-Overhead: 79k -> 79k

comparing combine.c compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 8064k to 7810k, overall -3.25%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 7443k to 7187k, overall -3.56%
  Amount of memory still referenced at the end of compilation decreased from 5771k to 5515k, overall -4.65%
    Overall memory needed: 22957k -> 22700k
    Peak memory use before GGC: 8064k -> 7810k
    Peak memory use after GGC: 7443k -> 7187k
    Maximum of released memory in single GGC run: 1550k
    Garbage: 38412k -> 37932k
    Leak: 5771k -> 5515k
    Overhead: 4649k -> 4649k
    GGC runs: 363 -> 372
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 24961k -> 24708k
    Peak memory use before GGC: 9886k -> 9648k
    Peak memory use after GGC: 9211k -> 8955k
    Maximum of released memory in single GGC run: 1838k
    Garbage: 38776k -> 38271k
    Leak: 8637k -> 8380k
    Overhead: 5277k -> 5276k
    GGC runs: 338 -> 343
Testing has produced no results
Testing has produced no results

comparing combine.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation decreased from 5925k to 5660k, overall -4.67%
    Overall memory needed: 33105k -> 32940k
    Peak memory use before GGC: 16514k -> 16345k
    Peak memory use after GGC: 16330k -> 16161k
    Maximum of released memory in single GGC run: 1361k -> 1362k
    Garbage: 51713k -> 51449k
    Leak: 5925k -> 5660k
    Overhead: 5777k -> 5777k
    GGC runs: 435 -> 444
    Pre-IPA-Garbage: 14319k -> 13922k
    Pre-IPA-Leak: 17607k -> 17182k
    Pre-IPA-Overhead: 2128k -> 2129k
    Post-IPA-Garbage: 14319k -> 13922k
    Post-IPA-Leak: 17607k -> 17182k
    Post-IPA-Overhead: 2128k -> 2129k

comparing combine.c compilation at -O2 level:
  Amount of memory still referenced at the end of compilation decreased from 6242k to 5986k, overall -4.28%
    Overall memory needed: 35881k -> 35748k
    Peak memory use before GGC: 16608k -> 16447k
    Peak memory use after GGC: 16442k -> 16280k
    Maximum of released memory in single GGC run: 1317k
    Garbage: 71391k -> 71179k
    Leak: 6242k -> 5986k
    Overhead: 8067k -> 8077k
    GGC runs: 502 -> 511
    Pre-IPA-Garbage: 14465k -> 14079k
    Pre-IPA-Leak: 17665k -> 17247k
    Pre-IPA-Overhead: 2143k -> 2144k
    Post-IPA-Garbage: 14465k -> 14079k
    Post-IPA-Leak: 17665k -> 17247k
    Post-IPA-Overhead: 2143k -> 2144k

comparing combine.c compilation at -O3 level:
  Amount of memory still referenced at the end of compilation decreased from 6295k to 6039k, overall -4.24%
    Overall memory needed: 38977k -> 38760k
    Peak memory use before GGC: 16779k -> 16616k
    Peak memory use after GGC: 16458k -> 16293k
    Maximum of released memory in single GGC run: 2018k -> 2041k
    Garbage: 88828k -> 88677k
    Leak: 6295k -> 6039k
    Overhead: 9989k -> 10002k
    GGC runs: 535 -> 544
    Pre-IPA-Garbage: 14471k -> 14085k
    Pre-IPA-Leak: 17677k -> 17258k
    Pre-IPA-Overhead: 2145k -> 2145k
    Post-IPA-Garbage: 14471k -> 14085k
    Post-IPA-Leak: 17677k -> 17258k
    Post-IPA-Overhead: 2145k -> 2145k

comparing insn-attrtab.c compilation at -O0 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 32481k to 31457k, overall -3.26%
  Amount of memory still referenced at the end of compilation decreased from 9407k to 8383k, overall -12.22%
    Overall memory needed: 138977k -> 137440k
    Peak memory use before GGC: 58536k -> 57000k
    Peak memory use after GGC: 32481k -> 31457k
    Maximum of released memory in single GGC run: 33768k -> 33256k
    Garbage: 129603k -> 128611k
    Leak: 9407k -> 8383k
    Overhead: 14369k -> 14368k
    GGC runs: 289 -> 293
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O0 -g level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 33623k to 32599k, overall -3.14%
  Amount of memory still referenced at the end of compilation decreased from 11082k to 10058k, overall -10.18%
    Overall memory needed: 140225k -> 138696k
    Peak memory use before GGC: 59678k -> 58142k
    Peak memory use after GGC: 33623k -> 32599k
    Maximum of released memory in single GGC run: 33768k -> 33256k
    Garbage: 129856k -> 128862k
    Leak: 11082k -> 10058k
    Overhead: 14724k -> 14724k
    GGC runs: 284 -> 288
Testing has produced no results
Testing has produced no results

comparing insn-attrtab.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation decreased from 10300k to 9276k, overall -11.04%
    Overall memory needed: 143801k -> 142956k
    Peak memory use before GGC: 56776k -> 56212k
    Peak memory use after GGC: 50757k -> 49987k
    Maximum of released memory in single GGC run: 23976k -> 23977k
    Garbage: 206763k -> 206428k
    Leak: 10300k -> 9276k
    Overhead: 24744k -> 24742k
    GGC runs: 312 -> 315
    Pre-IPA-Garbage: 51059k -> 50356k
    Pre-IPA-Leak: 50420k -> 49677k
    Pre-IPA-Overhead: 7544k -> 7543k
    Post-IPA-Garbage: 51059k -> 50356k
    Post-IPA-Leak: 50420k -> 49677k
    Post-IPA-Overhead: 7544k -> 7543k

comparing insn-attrtab.c compilation at -O2 level:
  Amount of memory still referenced at the end of compilation decreased from 11387k to 10363k, overall -9.88%
    Overall memory needed: 185445k -> 184536k
    Peak memory use before GGC: 57882k -> 56854k
    Peak memory use after GGC: 52347k -> 51574k
    Maximum of released memory in single GGC run: 22904k -> 22909k
    Garbage: 249215k -> 247266k
    Leak: 11387k -> 10363k
    Overhead: 30401k -> 30401k
    GGC runs: 342 -> 346
    Pre-IPA-Garbage: 51129k -> 50428k
    Pre-IPA-Leak: 50425k -> 49681k
    Pre-IPA-Overhead: 7551k -> 7550k
    Post-IPA-Garbage: 51129k -> 50428k
    Post-IPA-Leak: 50425k -> 49681k
    Post-IPA-Overhead: 7551k -> 7550k

comparing insn-attrtab.c compilation at -O3 level:
  Amount of memory still referenced at the end of compilation decreased from 11424k to 10400k, overall -9.85%
    Overall memory needed: 191465k -> 190652k
    Peak memory use before GGC: 68810k -> 68037k
    Peak memory use after GGC: 63054k -> 62281k
    Maximum of released memory in single GGC run: 23396k -> 23405k
    Garbage: 276812k -> 275121k
    Leak: 11424k -> 10400k
    Overhead: 32191k -> 32191k
    GGC runs: 343 -> 348
    Pre-IPA-Garbage: 51129k -> 50428k
    Pre-IPA-Leak: 50425k -> 49681k
    Pre-IPA-Overhead: 7551k -> 7550k
    Post-IPA-Garbage: 51129k -> 50428k
    Post-IPA-Leak: 50425k -> 49681k
    Post-IPA-Overhead: 7551k -> 7550k

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of memory still referenced at the end of compilation decreased from 50072k to 48024k, overall -4.26%
    Overall memory needed: 150807k -> 148463k
    Peak memory use before GGC: 86709k -> 84242k
    Peak memory use after GGC: 85850k -> 83407k
    Maximum of released memory in single GGC run: 17150k -> 16731k
    Garbage: 202940k -> 200926k
    Leak: 50072k -> 48024k
    Overhead: 23992k -> 23992k
    GGC runs: 412 -> 417
    Pre-IPA-Garbage: 111807k -> 109791k
    Pre-IPA-Leak: 73200k -> 71152k
    Pre-IPA-Overhead: 12100k -> 12099k
    Post-IPA-Garbage: 111807k -> 109791k
    Post-IPA-Leak: 73200k -> 71152k
    Post-IPA-Overhead: 12100k -> 12099k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 171611k -> 169711k
    Peak memory use before GGC: 97994k -> 96213k
    Peak memory use after GGC: 97015k -> 95248k
    Maximum of released memory in single GGC run: 17279k -> 17546k
    Garbage: 208569k -> 206565k
    Leak: 71755k -> 69707k
    Overhead: 28969k -> 28969k
    GGC runs: 387 -> 390
    Pre-IPA-Garbage: 112451k -> 110434k
    Pre-IPA-Leak: 86481k -> 84433k
    Pre-IPA-Overhead: 14676k -> 14675k
    Post-IPA-Garbage: 112451k -> 110434k
    Post-IPA-Leak: 86481k -> 84433k
    Post-IPA-Overhead: 14676k -> 14675k

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 87486k to 84151k, overall -3.96%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 86611k to 83317k, overall -3.95%
  Amount of memory still referenced at the end of compilation decreased from 51526k to 47431k, overall -8.63%
    Overall memory needed: 126185k -> 122812k
    Peak memory use before GGC: 87486k -> 84151k
    Peak memory use after GGC: 86611k -> 83317k
    Maximum of released memory in single GGC run: 16221k -> 16272k
    Garbage: 290943k -> 290109k
    Leak: 51526k -> 47431k
    Overhead: 29287k -> 29317k
    GGC runs: 498 -> 513
  Amount of memory referenced pre-ipa decreased from 91245k to 87948k, overall -3.75%
    Pre-IPA-Garbage: 157328k -> 155013k
    Pre-IPA-Leak: 91245k -> 87948k
    Pre-IPA-Overhead: 17483k -> 17503k
  Amount of memory referenced post-ipa decreased from 91245k to 87948k, overall -3.75%
    Post-IPA-Garbage: 157328k -> 155013k
    Post-IPA-Leak: 91245k -> 87948k
    Post-IPA-Overhead: 17483k -> 17503k

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 87770k to 84382k, overall -4.02%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 86851k to 83500k, overall -4.01%
  Amount of memory still referenced at the end of compilation decreased from 52529k to 48431k, overall -8.46%
    Overall memory needed: 128005k -> 124580k
    Peak memory use before GGC: 87770k -> 84382k
    Peak memory use after GGC: 86851k -> 83500k
    Maximum of released memory in single GGC run: 16224k -> 16273k
    Garbage: 355674k -> 355257k
    Leak: 52529k -> 48431k
    Overhead: 36116k -> 36160k
    GGC runs: 571 -> 591
  Amount of memory referenced pre-ipa decreased from 91407k to 88098k, overall -3.76%
    Pre-IPA-Garbage: 159776k -> 157657k
    Pre-IPA-Leak: 91407k -> 88098k
    Pre-IPA-Overhead: 17773k -> 17796k
  Amount of memory referenced post-ipa decreased from 91407k to 88098k, overall -3.76%
    Post-IPA-Garbage: 159776k -> 157657k
    Post-IPA-Leak: 91407k -> 88098k
    Post-IPA-Overhead: 17773k -> 17796k

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 88576k to 85615k, overall -3.46%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 87692k to 84751k, overall -3.47%
  Amount of memory still referenced at the end of compilation decreased from 52973k to 48886k, overall -8.36%
    Overall memory needed: 130485k -> 127276k
    Peak memory use before GGC: 88576k -> 85615k
    Peak memory use after GGC: 87692k -> 84751k
    Maximum of released memory in single GGC run: 16660k -> 16624k
    Garbage: 381599k -> 381361k
    Leak: 52973k -> 48886k
    Overhead: 38335k -> 38401k
    GGC runs: 597 -> 612
  Amount of memory referenced pre-ipa decreased from 91700k to 88381k, overall -3.76%
    Pre-IPA-Garbage: 162490k -> 160395k
    Pre-IPA-Leak: 91700k -> 88381k
    Pre-IPA-Overhead: 18023k -> 18046k
  Amount of memory referenced post-ipa decreased from 91700k to 88381k, overall -3.76%
    Post-IPA-Garbage: 162490k -> 160395k
    Post-IPA-Leak: 91700k -> 88381k
    Post-IPA-Overhead: 18023k -> 18046k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Amount of memory still referenced at the end of compilation decreased from 6355k to 6099k, overall -4.20%
    Overall memory needed: 380695k -> 380439k
    Peak memory use before GGC: 101466k -> 101210k
    Peak memory use after GGC: 57119k -> 56863k
    Maximum of released memory in single GGC run: 50583k
    Garbage: 179256k -> 178904k
    Leak: 6355k -> 6099k
    Overhead: 30783k -> 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:
  Amount of memory still referenced at the end of compilation decreased from 8085k to 7829k, overall -3.27%
    Overall memory needed: 381491k -> 381243k
    Peak memory use before GGC: 102097k -> 101840k
    Peak memory use after GGC: 57750k -> 57494k
    Maximum of released memory in single GGC run: 50583k -> 50582k
    Garbage: 179371k -> 179019k
    Leak: 8085k -> 7829k
    Overhead: 31215k -> 31215k
    GGC runs: 109 -> 111
Testing has produced no results
Testing has produced no results

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Amount of memory still referenced at the end of compilation decreased from 17951k to 15903k, overall -12.88%
    Overall memory needed: 443933k -> 437484k
    Peak memory use before GGC: 79761k -> 78686k
    Peak memory use after GGC: 71493k -> 70437k
    Maximum of released memory in single GGC run: 36621k -> 37594k
    Garbage: 237606k -> 234297k
    Leak: 17951k -> 15903k
    Overhead: 35598k -> 35589k
    GGC runs: 108 -> 105
  Amount of produced pre-ipa-GGC garbage decreased from 58078k to 52925k, overall -9.74%
  Amount of memory referenced pre-ipa decreased from 51236k to 49233k, overall -4.07%
    Pre-IPA-Garbage: 58078k -> 52925k
    Pre-IPA-Leak: 51236k -> 49233k
    Pre-IPA-Overhead: 7126k -> 7120k
  Amount of produced post-ipa-GGC garbage decreased from 58078k to 52925k, overall -9.74%
  Amount of memory referenced post-ipa decreased from 51236k to 49233k, overall -4.07%
    Post-IPA-Garbage: 58078k -> 52925k
    Post-IPA-Leak: 51236k -> 49233k
    Post-IPA-Overhead: 7126k -> 7120k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Amount of memory still referenced at the end of compilation decreased from 18123k to 16075k, overall -12.74%
    Overall memory needed: 356213k -> 358096k
    Peak memory use before GGC: 77503k -> 75424k
    Peak memory use after GGC: 71493k -> 70438k
    Maximum of released memory in single GGC run: 32243k
    Garbage: 249554k -> 245000k
    Leak: 18123k -> 16075k
    Overhead: 38765k -> 38757k
    GGC runs: 121 -> 116
  Amount of produced pre-ipa-GGC garbage decreased from 102437k to 91836k, overall -11.54%
  Amount of memory referenced pre-ipa decreased from 81162k to 77291k, overall -5.01%
    Pre-IPA-Garbage: 102437k -> 91836k
    Pre-IPA-Leak: 81162k -> 77291k
    Pre-IPA-Overhead: 11804k -> 11793k
  Amount of produced post-ipa-GGC garbage decreased from 102437k to 91836k, overall -11.54%
  Amount of memory referenced post-ipa decreased from 81162k to 77291k, overall -5.01%
    Post-IPA-Garbage: 102437k -> 91836k
    Post-IPA-Leak: 81162k -> 77291k
    Post-IPA-Overhead: 11804k -> 11793k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Amount of memory still referenced at the end of compilation decreased from 28985k to 24889k, overall -16.46%
    Overall memory needed: 1203673k -> 1197912k
    Peak memory use before GGC: 140747k -> 136585k
    Peak memory use after GGC: 130057k -> 127943k
    Maximum of released memory in single GGC run: 58637k -> 59911k
    Garbage: 382908k -> 371518k
    Leak: 28985k -> 24889k
    Overhead: 49936k -> 49888k
    GGC runs: 110 -> 103
  Amount of produced pre-ipa-GGC garbage decreased from 102437k to 91836k, overall -11.54%
  Amount of memory referenced pre-ipa decreased from 81162k to 77291k, overall -5.01%
    Pre-IPA-Garbage: 102437k -> 91836k
    Pre-IPA-Leak: 81162k -> 77291k
    Pre-IPA-Overhead: 11804k -> 11793k
  Amount of produced post-ipa-GGC garbage decreased from 102437k to 91836k, overall -11.54%
  Amount of memory referenced post-ipa decreased from 81162k to 77291k, overall -5.01%
    Post-IPA-Garbage: 102437k -> 91836k
    Post-IPA-Leak: 81162k -> 77291k
    Post-IPA-Overhead: 11804k -> 11793k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2008-02-27 19:53:03.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2008-02-28 11:47:13.000000000 +0000
@@ -1,3 +1,66 @@
+2008-02-28  Richard Guenther  <rguenther@suse.de>
+
+	Revert:
+	2008-02-26  Richard Guenther  <rguenther@suse.de>
+
+	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
+	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
+	(lookup_decl_from_uid): Declare.
+	(remove_decl_from_map): Likewise.
+	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
+	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
+	(decl_for_uid_map): New global hashtable mapping DECL_UID
+	to the decl tree.
+	(init_ttree): Allocate it.
+	(insert_decl_to_uid_decl_map): New helper function.
+	(make_node_stat): Insert new decls into the map.
+	(copy_node_stat): Likewise.
+	(lookup_decl_from_uid): New function.
+	(remove_decl_from_map): Likewise.
+	(print_decl_for_uid_map_statistics): New helper.
+	(dump_tree_statistics): Call it.
+
+	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
+	(referenced_var_iterator): Adjust.
+	(FOR_EACH_REFERENCED_VAR): Adjust.
+	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
+	(num_referenced_vars): Adjust.
+	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
+	(first_referenced_var): Remove.
+	(end_referenced_vars_p): Likewise.
+	(next_referenced_var): Likewise.
+	(referenced_var_iterator_set): New helper function.
+	* tree-dfa.c (referenced_var_lookup): Adjust.
+	(referenced_var_check_and_insert): Likewise.
+	(remove_referenced_var): Likewise.
+	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
+	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+	(verify_call_clobbering): Likewise.
+	(verify_memory_partitions): Likewise.
+	(init_tree_ssa): Allocate bitmap instead of hashtable for
+	referenced_vars.
+	(delete_tree_ssa): Adjust.
+	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
+	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
+	(compute_tag_properties): Likewise.
+	(set_initial_properties): Likewise.
+	(find_partition_for): Likewise.
+	(update_reference_counts): Likewise.
+	(dump_may_aliases_for): Likewise.
+	* tree-ssa-operands.c (add_virtual_operand): Likewise.
+	(add_call_clobber_ops): Likewise.
+	(add_call_read_ops): Likewise.
+	(get_asm_expr_operands): Likewise.
+	* tree-into-ssa.c (dump_decl_set): Likewise.
+	(update_ssa): Likewise.
+	* tree-sra.c (scan_function): Likewise.
+	(decide_instantiations): Likewise.
+	(scalarize_parms): Likewise.
+	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
+	(dsa_named_for): Likewise.
+	* tree-ssa-structalias.c (update_alias_info): Likewise.
+	(merge_smts_into): Likewise.
+
 2008-02-27  David Daney  <ddaney@avtrex.com>
 
 	PR target/34409
@@ -37,7 +100,7 @@
 
 2008-02-27  Richard Guenther  <rguenther@suse.de>
 
-	PR middle-end/25290
+	PR middle-end/35390
 	* fold-const.c (fold_unary): Return the correct argument,
 	converted to the result type.
 
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2008-02-27 19:52:40.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2008-02-28 11:47:13.000000000 +0000
@@ -1,3 +1,11 @@
+2008-02-28  Richard Guenther  <rguenther@suse.de>
+
+	Revert:
+	2008-02-26  Richard Guenther  <rguenther@suse.de>
+
+	* decl.c (duplicate_decls): Remove decl from global mapping
+	before ggc_freeing it.
+
 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c++/35368


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]