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!


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 allocated before garbage collecting increased from 1157k to 1165k, overall 0.69%
  Peak amount of GGC memory still allocated after garbage collecting increased from 1057k to 1063k, overall 0.57%
  Amount of produced GGC garbage increased from 242k to 245k, overall 1.23%
  Amount of memory still referenced at the end of compilation increased from 1018k to 1024k, overall 0.54%
    Overall memory needed: 8135k -> 8137k
    Peak memory use before GGC: 1157k -> 1165k
    Peak memory use after GGC: 1057k -> 1063k
    Maximum of released memory in single GGC run: 130k -> 131k
    Garbage: 242k -> 245k
    Leak: 1018k -> 1024k
    Overhead: 91k -> 92k
    GGC runs: 3
  Amount of produced pre-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced pre-ipa increased from 1018k to 1024k, overall 0.54%
    Pre-IPA-Garbage: 232k -> 235k
    Pre-IPA-Leak: 1018k -> 1024k
    Pre-IPA-Overhead: 90k -> 90k
  Amount of produced post-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced post-ipa increased from 1018k to 1024k, overall 0.54%
    Post-IPA-Garbage: 232k -> 235k
    Post-IPA-Leak: 1018k -> 1024k
    Post-IPA-Overhead: 90k -> 90k

comparing empty function compilation at -O0 -g level:
  Peak amount of GGC memory allocated before garbage collecting increased from 1184k to 1193k, overall 0.76%
  Peak amount of GGC memory still allocated after garbage collecting increased from 1085k to 1091k, overall 0.55%
  Amount of produced GGC garbage increased from 244k to 247k, overall 1.22%
  Amount of memory still referenced at the end of compilation increased from 1051k to 1057k, overall 0.53%
    Overall memory needed: 8151k -> 8153k
    Peak memory use before GGC: 1184k -> 1193k
    Peak memory use after GGC: 1085k -> 1091k
    Maximum of released memory in single GGC run: 130k -> 131k
    Garbage: 244k -> 247k
    Leak: 1051k -> 1057k
    Overhead: 96k -> 96k
    GGC runs: 3
  Amount of produced pre-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced pre-ipa increased from 1018k to 1024k, overall 0.54%
    Pre-IPA-Garbage: 232k -> 235k
    Pre-IPA-Leak: 1018k -> 1024k
    Pre-IPA-Overhead: 90k -> 90k
  Amount of produced post-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced post-ipa increased from 1018k to 1024k, overall 0.54%
    Post-IPA-Garbage: 232k -> 235k
    Post-IPA-Leak: 1018k -> 1024k
    Post-IPA-Overhead: 90k -> 90k

comparing empty function compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 1157k to 1165k, overall 0.69%
  Peak amount of GGC memory still allocated after garbage collecting increased from 1057k to 1063k, overall 0.57%
  Amount of produced GGC garbage increased from 246k to 249k, overall 1.21%
  Amount of memory still referenced at the end of compilation increased from 1018k to 1024k, overall 0.54%
    Overall memory needed: 8227k -> 8229k
    Peak memory use before GGC: 1157k -> 1165k
    Peak memory use after GGC: 1057k -> 1063k
    Maximum of released memory in single GGC run: 130k -> 131k
    Garbage: 246k -> 249k
    Leak: 1018k -> 1024k
    Overhead: 92k -> 93k
    GGC runs: 3
  Amount of produced pre-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced pre-ipa increased from 1021k to 1026k, overall 0.54%
    Pre-IPA-Garbage: 232k -> 235k
    Pre-IPA-Leak: 1021k -> 1026k
    Pre-IPA-Overhead: 90k -> 91k
  Amount of produced post-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced post-ipa increased from 1021k to 1026k, overall 0.54%
    Post-IPA-Garbage: 232k -> 235k
    Post-IPA-Leak: 1021k -> 1026k
    Post-IPA-Overhead: 90k -> 91k

comparing empty function compilation at -O2 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 1157k to 1165k, overall 0.69%
  Peak amount of GGC memory still allocated after garbage collecting increased from 1058k to 1064k, overall 0.57%
  Amount of produced GGC garbage increased from 251k to 254k, overall 1.18%
  Amount of memory still referenced at the end of compilation increased from 1019k to 1024k, overall 0.54%
    Overall memory needed: 8239k -> 8241k
    Peak memory use before GGC: 1157k -> 1165k
    Peak memory use after GGC: 1058k -> 1064k
    Maximum of released memory in single GGC run: 130k
    Garbage: 251k -> 254k
    Leak: 1019k -> 1024k
    Overhead: 93k -> 94k
    GGC runs: 3
  Amount of produced pre-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced pre-ipa increased from 1021k to 1027k, overall 0.54%
    Pre-IPA-Garbage: 232k -> 235k
    Pre-IPA-Leak: 1021k -> 1027k
    Pre-IPA-Overhead: 90k -> 91k
  Amount of produced post-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced post-ipa increased from 1021k to 1027k, overall 0.54%
    Post-IPA-Garbage: 232k -> 235k
    Post-IPA-Leak: 1021k -> 1027k
    Post-IPA-Overhead: 90k -> 91k

comparing empty function compilation at -O3 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 1157k to 1165k, overall 0.69%
  Peak amount of GGC memory still allocated after garbage collecting increased from 1058k to 1064k, overall 0.57%
  Amount of produced GGC garbage increased from 251k to 254k, overall 1.18%
  Amount of memory still referenced at the end of compilation increased from 1019k to 1024k, overall 0.54%
    Overall memory needed: 8243k -> 8245k
    Peak memory use before GGC: 1157k -> 1165k
    Peak memory use after GGC: 1058k -> 1064k
    Maximum of released memory in single GGC run: 130k
    Garbage: 251k -> 254k
    Leak: 1019k -> 1024k
    Overhead: 93k -> 94k
    GGC runs: 3
  Amount of produced pre-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced pre-ipa increased from 1021k to 1027k, overall 0.54%
    Pre-IPA-Garbage: 232k -> 235k
    Pre-IPA-Leak: 1021k -> 1027k
    Pre-IPA-Overhead: 90k -> 91k
  Amount of produced post-ipa-GGC garbage increased from 232k to 235k, overall 1.28%
  Amount of memory referenced post-ipa increased from 1021k to 1027k, overall 0.54%
    Post-IPA-Garbage: 232k -> 235k
    Post-IPA-Leak: 1021k -> 1027k
    Post-IPA-Overhead: 90k -> 91k

comparing combine.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation increased from 5183k to 5205k, overall 0.41%
    Overall memory needed: 27387k -> 27397k
    Peak memory use before GGC: 15009k -> 15015k
    Peak memory use after GGC: 14747k -> 14752k
    Maximum of released memory in single GGC run: 1787k
    Garbage: 38094k -> 38090k
    Leak: 5183k -> 5205k
    Overhead: 4666k -> 4666k
    GGC runs: 355 -> 354
    Pre-IPA-Garbage: 12904k -> 12907k
    Pre-IPA-Leak: 15358k -> 15364k
    Pre-IPA-Overhead: 2000k -> 2001k
    Post-IPA-Garbage: 12904k -> 12907k
    Post-IPA-Leak: 15358k -> 15364k
    Post-IPA-Overhead: 2000k -> 2001k

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 29591k -> 29601k
    Peak memory use before GGC: 16869k -> 16874k
    Peak memory use after GGC: 16638k -> 16644k
    Maximum of released memory in single GGC run: 1813k -> 1796k
    Garbage: 38463k -> 38462k
    Leak: 8481k -> 8470k
    Overhead: 5485k -> 5485k
    GGC runs: 338 -> 336
    Pre-IPA-Garbage: 13004k -> 13007k
    Pre-IPA-Leak: 17633k -> 17639k
    Pre-IPA-Overhead: 2492k -> 2492k
    Post-IPA-Garbage: 13004k -> 13007k
    Post-IPA-Leak: 17633k -> 17639k
    Post-IPA-Overhead: 2492k -> 2492k

comparing combine.c compilation at -O1 level:
  Amount of memory still referenced at the end of compilation increased from 5173k to 5186k, overall 0.26%
    Overall memory needed: 30503k -> 30513k
    Peak memory use before GGC: 16341k -> 16346k
    Peak memory use after GGC: 16176k -> 16181k
    Maximum of released memory in single GGC run: 1405k
    Garbage: 51440k -> 51437k
    Leak: 5173k -> 5186k
    Overhead: 5729k -> 5730k
    GGC runs: 433 -> 432
    Pre-IPA-Garbage: 13939k -> 13942k
    Pre-IPA-Leak: 17190k -> 17196k
    Pre-IPA-Overhead: 2148k -> 2148k
    Post-IPA-Garbage: 13939k -> 13942k
    Post-IPA-Leak: 17190k -> 17196k
    Post-IPA-Overhead: 2148k -> 2148k

comparing combine.c compilation at -O2 level:
  Amount of memory still referenced at the end of compilation increased from 5198k to 5210k, overall 0.24%
    Overall memory needed: 32307k -> 32325k
    Peak memory use before GGC: 16432k -> 16437k
    Peak memory use after GGC: 16266k -> 16272k
    Maximum of released memory in single GGC run: 1334k
    Garbage: 71677k -> 71684k
    Leak: 5198k -> 5210k
    Overhead: 8126k -> 8127k
    GGC runs: 507 -> 506
    Pre-IPA-Garbage: 14088k -> 14091k
    Pre-IPA-Leak: 17253k -> 17258k
    Pre-IPA-Overhead: 2160k -> 2161k
    Post-IPA-Garbage: 14088k -> 14091k
    Post-IPA-Leak: 17253k -> 17258k
    Post-IPA-Overhead: 2160k -> 2161k

comparing combine.c compilation at -O3 level:
    Overall memory needed: 36367k -> 36381k
    Peak memory use before GGC: 16453k -> 16458k
    Peak memory use after GGC: 16279k -> 16285k
    Maximum of released memory in single GGC run: 2369k
    Garbage: 91190k -> 91203k
    Leak: 5237k -> 5234k
    Overhead: 10384k -> 10385k
    GGC runs: 538 -> 537
    Pre-IPA-Garbage: 14089k -> 14092k
    Pre-IPA-Leak: 17264k -> 17269k
    Pre-IPA-Overhead: 2162k -> 2162k
    Post-IPA-Garbage: 14089k -> 14092k
    Post-IPA-Leak: 17264k -> 17269k
    Post-IPA-Overhead: 2162k -> 2162k

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 141735k -> 141737k
    Peak memory use before GGC: 62360k -> 62365k
    Peak memory use after GGC: 52695k -> 52700k
    Maximum of released memory in single GGC run: 25736k
    Garbage: 130343k -> 130346k
    Leak: 7081k -> 7087k
    Overhead: 14386k -> 14386k
    GGC runs: 274 -> 272
    Pre-IPA-Garbage: 43125k -> 43128k
    Pre-IPA-Leak: 49951k -> 49956k
    Pre-IPA-Overhead: 7271k -> 7271k
    Post-IPA-Garbage: 43125k -> 43128k
    Post-IPA-Leak: 49951k -> 49956k
    Post-IPA-Overhead: 7271k -> 7271k

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 143059k -> 143037k
    Peak memory use before GGC: 63635k -> 63640k
    Peak memory use after GGC: 53968k -> 53973k
    Maximum of released memory in single GGC run: 25737k
    Garbage: 130761k -> 130763k
    Leak: 8733k -> 8739k
    Overhead: 14841k -> 14841k
    GGC runs: 266 -> 263
    Pre-IPA-Garbage: 43182k -> 43185k
    Pre-IPA-Leak: 51494k -> 51499k
    Pre-IPA-Overhead: 7607k -> 7607k
    Post-IPA-Garbage: 43182k -> 43185k
    Post-IPA-Leak: 51494k -> 51499k
    Post-IPA-Overhead: 7607k -> 7607k

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 134123k -> 134121k
    Peak memory use before GGC: 54738k -> 54744k
    Peak memory use after GGC: 49016k -> 49021k
    Maximum of released memory in single GGC run: 23290k -> 23291k
    Garbage: 206726k -> 206733k
    Leak: 6471k -> 6477k
    Overhead: 24556k -> 24557k
    GGC runs: 314 -> 313
    Pre-IPA-Garbage: 50399k -> 50402k
    Pre-IPA-Leak: 49465k -> 49470k
    Pre-IPA-Overhead: 7465k -> 7466k
    Post-IPA-Garbage: 50399k -> 50402k
    Post-IPA-Leak: 49465k -> 49470k
    Post-IPA-Overhead: 7465k -> 7466k

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 180727k -> 180725k
    Peak memory use before GGC: 55423k -> 55428k
    Peak memory use after GGC: 50033k -> 50038k
    Maximum of released memory in single GGC run: 22130k -> 22129k
    Garbage: 246021k -> 246022k
    Leak: 6481k -> 6486k
    Overhead: 30233k -> 30233k
    GGC runs: 349 -> 348
    Pre-IPA-Garbage: 50468k -> 50471k
    Pre-IPA-Leak: 49470k -> 49475k
    Pre-IPA-Overhead: 7472k -> 7473k
    Post-IPA-Garbage: 50468k -> 50471k
    Post-IPA-Leak: 49470k -> 49475k
    Post-IPA-Overhead: 7472k -> 7473k

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 189075k -> 189033k
    Peak memory use before GGC: 66914k -> 66921k
    Peak memory use after GGC: 63475k -> 63482k
    Maximum of released memory in single GGC run: 24138k
    Garbage: 273197k -> 273197k
    Leak: 6489k -> 6494k
    Overhead: 32134k -> 32134k
    GGC runs: 352 -> 351
    Pre-IPA-Garbage: 50468k -> 50471k
    Pre-IPA-Leak: 49470k -> 49475k
    Pre-IPA-Overhead: 7472k -> 7473k
    Post-IPA-Garbage: 50468k -> 50471k
    Post-IPA-Leak: 49470k -> 49475k
    Post-IPA-Overhead: 7472k -> 7473k

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 137203k -> 137264k
    Peak memory use before GGC: 79966k -> 79972k
    Peak memory use after GGC: 79174k -> 79180k
    Maximum of released memory in single GGC run: 14878k
    Garbage: 198011k -> 198014k
    Leak: 47679k -> 47686k
    Overhead: 24300k -> 24300k
    GGC runs: 425
    Pre-IPA-Garbage: 107700k -> 107703k
    Pre-IPA-Leak: 68692k -> 68698k
    Pre-IPA-Overhead: 12065k -> 12065k
    Post-IPA-Garbage: 107700k -> 107703k
    Post-IPA-Leak: 68692k -> 68698k
    Post-IPA-Overhead: 12065k -> 12065k

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 155463k -> 155464k
    Peak memory use before GGC: 94251k -> 94257k
    Peak memory use after GGC: 93317k -> 93323k
    Maximum of released memory in single GGC run: 15679k
    Garbage: 203619k -> 203653k
    Leak: 74278k -> 74284k
    Overhead: 30991k -> 30991k
    GGC runs: 391 -> 390
    Pre-IPA-Garbage: 108340k -> 108342k
    Pre-IPA-Leak: 85262k -> 85268k
    Pre-IPA-Overhead: 15603k -> 15604k
    Post-IPA-Garbage: 108340k -> 108342k
    Post-IPA-Leak: 85262k -> 85268k
    Post-IPA-Overhead: 15603k -> 15604k

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 109945k -> 110055k
    Peak memory use before GGC: 79058k -> 79064k
    Peak memory use after GGC: 78216k -> 78222k
    Maximum of released memory in single GGC run: 14458k -> 14459k
    Garbage: 285910k -> 285925k
    Leak: 44469k -> 44475k
    Overhead: 28410k -> 28411k
    GGC runs: 516
    Pre-IPA-Garbage: 149831k -> 149834k
    Pre-IPA-Leak: 82336k -> 82343k
    Pre-IPA-Overhead: 16663k -> 16663k
    Post-IPA-Garbage: 149831k -> 149834k
    Post-IPA-Leak: 82336k -> 82343k
    Post-IPA-Overhead: 16663k -> 16663k

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 112577k -> 112595k
    Peak memory use before GGC: 79350k -> 79356k
    Peak memory use after GGC: 78563k -> 78569k
    Maximum of released memory in single GGC run: 14426k -> 14427k
    Garbage: 352160k -> 352036k
    Leak: 44605k -> 44588k
    Overhead: 35368k -> 35366k
    GGC runs: 596 -> 597
    Pre-IPA-Garbage: 151426k -> 151425k
    Pre-IPA-Leak: 82199k -> 82206k
    Pre-IPA-Overhead: 16795k -> 16795k
    Post-IPA-Garbage: 151426k -> 151425k
    Post-IPA-Leak: 82199k -> 82206k
    Post-IPA-Overhead: 16795k -> 16795k

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 114925k -> 114975k
    Peak memory use before GGC: 80345k -> 80351k
    Peak memory use after GGC: 79539k -> 79545k
    Maximum of released memory in single GGC run: 14783k
    Garbage: 378754k -> 379131k
    Leak: 44977k -> 44984k
    Overhead: 37574k -> 37630k
    GGC runs: 612
    Pre-IPA-Garbage: 154057k -> 154062k
    Pre-IPA-Leak: 82465k -> 82472k
    Pre-IPA-Overhead: 17038k -> 17038k
    Post-IPA-Garbage: 154057k -> 154062k
    Post-IPA-Leak: 82465k -> 82472k
    Post-IPA-Overhead: 17038k -> 17038k

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 377300k -> 377303k
    Peak memory use before GGC: 100912k -> 100917k
    Peak memory use after GGC: 56566k -> 56571k
    Maximum of released memory in single GGC run: 50582k
    Garbage: 178579k -> 178582k
    Leak: 6282k -> 6287k
    Overhead: 30603k -> 30603k
    GGC runs: 94
    Pre-IPA-Garbage: 12151k -> 12154k
    Pre-IPA-Leak: 16544k -> 16550k
    Pre-IPA-Overhead: 1718k -> 1718k
    Post-IPA-Garbage: 12151k -> 12154k
    Post-IPA-Leak: 16544k -> 16550k
    Post-IPA-Overhead: 1718k -> 1718k

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 378532k -> 378543k
    Peak memory use before GGC: 101611k -> 101616k
    Peak memory use after GGC: 57265k -> 57270k
    Maximum of released memory in single GGC run: 50582k
    Garbage: 178697k -> 178700k
    Leak: 8326k -> 8332k
    Overhead: 31188k -> 31189k
    GGC runs: 103
    Pre-IPA-Garbage: 12159k -> 12162k
    Pre-IPA-Leak: 16794k -> 16799k
    Pre-IPA-Overhead: 1772k -> 1772k
    Post-IPA-Garbage: 12159k -> 12162k
    Post-IPA-Leak: 16794k -> 16799k
    Post-IPA-Overhead: 1772k -> 1772k

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
    Overall memory needed: 385235k -> 385229k
    Peak memory use before GGC: 75659k -> 75664k
    Peak memory use after GGC: 67602k -> 67608k
    Maximum of released memory in single GGC run: 35733k
    Garbage: 247363k -> 247366k
    Leak: 7901k -> 7907k
    Overhead: 31264k -> 31264k
    GGC runs: 105
    Pre-IPA-Garbage: 49697k -> 49700k
    Pre-IPA-Leak: 63723k -> 63729k
    Pre-IPA-Overhead: 6705k -> 6705k
    Post-IPA-Garbage: 49697k -> 49700k
    Post-IPA-Leak: 63723k -> 63729k
    Post-IPA-Overhead: 6705k -> 6705k

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 300819k -> 300897k
    Peak memory use before GGC: 75659k -> 75664k
    Peak memory use after GGC: 67603k -> 67608k
    Maximum of released memory in single GGC run: 32489k
    Garbage: 262741k -> 262744k
    Leak: 8064k -> 8070k
    Overhead: 34382k -> 34382k
    GGC runs: 116
    Pre-IPA-Garbage: 107693k -> 107695k
    Pre-IPA-Leak: 75546k -> 75552k
    Pre-IPA-Overhead: 10956k -> 10957k
    Post-IPA-Garbage: 107693k -> 107695k
    Post-IPA-Leak: 75546k -> 75552k
    Post-IPA-Overhead: 10956k -> 10957k

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 1068175k -> 1068205k
    Peak memory use before GGC: 142484k -> 142490k
    Peak memory use after GGC: 129140k -> 129145k
    Maximum of released memory in single GGC run: 59679k
    Garbage: 356529k -> 356532k
    Leak: 11044k -> 11049k
    Overhead: 38244k -> 38244k
    GGC runs: 101
    Pre-IPA-Garbage: 107693k -> 107695k
    Pre-IPA-Leak: 75546k -> 75552k
    Pre-IPA-Overhead: 10956k -> 10957k
    Post-IPA-Garbage: 107693k -> 107695k
    Post-IPA-Leak: 75546k -> 75552k
    Post-IPA-Overhead: 10956k -> 10957k

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2008-07-05 22:35:29.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2008-07-06 15:20:37.000000000 +0000
@@ -1,3 +1,53 @@
+2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
+
+	* config.gcc (extra_headers): Add cross-stdarg.h for target
+	x86_64-*-* and i?86-*-*.
+	* config/i386/cross-stdarg.h: New.
+	* builtins.c (std_fn_abi_va_list): New.
+	(std_canonical_va_list_type): New.
+	(stabilize_va_list): Replace va_list_type_node use by
+	mtarget.canonical_va_list_type.
+	(gimplify_va_arg_expr): Likewise.
+	(expand_builtin_va_copy): Replace va_list_type_node use by
+	mtarget.fn_abi_va_list.
+	* tree-sra.c (is_va_list_type): New helper.
+	(decl_can_be_decomposed_p): Replace
+	va_list_type_node use by is_va_list_type.
+	* tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
+	* tree-stdarg.c (execute_optimize_stdarg): Likewise.
+	* c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
+	* config/i386/i386-protos.h (ix86_get_valist_type): New.
+	(ix86_enum_va_list): New.
+	* config/i386/i386.c (sysv_va_list_type_node): New.
+	(ms_va_list_type_node): New.
+	(ix86_function_type_abi): Remove sorry.
+	(ix86_build_builtin_va_list_abi): New.
+	(ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
+	for 64-bit targets.
+	(ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
+	(ix86_init_builtins_va_builtins_abi): New.
+	(ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
+	for 64-bit targets.
+	(ix86_handle_abi_attribute): New.
+	(attribute_spec): Add sysv_abi and ms_abi.
+	(ix86_fn_abi_va_list): New.
+	(ix86_canonical_va_list_type): New.
+	(ix86_enum_va_list): New.
+	(TARGET_FN_ABI_VA_LIST): New.
+	(TARGET_CANONICAL_VA_LIST_TYPE): New.
+	* config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
+	* doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
+	(TARGET_CANONICAL_VA_LIST_TYPE): New.
+	(TARGET_ENUM_VA_LIST): New.
+	* expr.h (std_fn_abi_va_list): New.
+	(std_canonical_va_list_type): New.
+	* target-def.h (TARGET_FN_ABI_VA_LIST): New.
+	(TARGET_CANONICAL_VA_LIST_TYPE): New.
+	(TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
+	TARGET_CANONICAL_VA_LIST_TYPE.
+	* target.h (struct gcc_target): Add fn_abi_va_list hook
+	and canonical_va_list_type hook.
+
 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
 	* fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as


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]