This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption in some cases!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Thu, 19 Jun 2008 00:39:27 +0000
- Subject: A recent patch increased GCC's memory consumption in some cases!
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing empty function compilation at -O0 level:
Overall memory needed: 8155k -> 8151k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1060k -> 1053k
Maximum of released memory in single GGC run: 134k -> 131k
Garbage: 247k
Leak: 1012k
Overhead: 91k
GGC runs: 4 -> 3
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 237k
Pre-IPA-Leak: 0k -> 1012k
Pre-IPA-Overhead: 0k -> 90k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 237k
Post-IPA-Leak: 0k -> 1012k
Post-IPA-Overhead: 0k -> 90k
comparing empty function compilation at -O0 -g level:
Overall memory needed: 8251k -> 8167k
Peak memory use before GGC: 1184k
Peak memory use after GGC: 1088k -> 1080k
Maximum of released memory in single GGC run: 136k -> 131k
Garbage: 249k
Leak: 1045k
Overhead: 96k
GGC runs: 4 -> 3
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 237k
Pre-IPA-Leak: 0k -> 1012k
Pre-IPA-Overhead: 0k -> 90k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 237k
Post-IPA-Leak: 0k -> 1012k
Post-IPA-Overhead: 0k -> 90k
comparing empty function compilation at -O1 level:
Overall memory needed: 8243k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1053k
Maximum of released memory in single GGC run: 131k
Garbage: 249k
Leak: 1012k
Overhead: 92k
GGC runs: 3
Pre-IPA-Garbage: 237k
Pre-IPA-Leak: 1015k
Pre-IPA-Overhead: 90k
Post-IPA-Garbage: 237k
Post-IPA-Leak: 1015k
Post-IPA-Overhead: 90k
comparing empty function compilation at -O2 level:
Overall memory needed: 8243k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1053k
Maximum of released memory in single GGC run: 131k
Garbage: 254k
Leak: 1013k
Overhead: 93k
GGC runs: 3
Pre-IPA-Garbage: 237k
Pre-IPA-Leak: 1015k
Pre-IPA-Overhead: 90k
Post-IPA-Garbage: 237k
Post-IPA-Leak: 1015k
Post-IPA-Overhead: 90k
comparing empty function compilation at -O3 level:
Overall memory needed: 8247k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1053k
Maximum of released memory in single GGC run: 131k
Garbage: 254k
Leak: 1013k
Overhead: 93k
GGC runs: 3
Pre-IPA-Garbage: 237k
Pre-IPA-Leak: 1015k
Pre-IPA-Overhead: 90k
Post-IPA-Garbage: 237k
Post-IPA-Leak: 1015k
Post-IPA-Overhead: 90k
comparing combine.c compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 22699k to 29351k, overall 29.31%
Peak amount of GGC memory allocated before garbage collecting increased from 8007k to 15004k, overall 87.39%
Peak amount of GGC memory still allocated after garbage collecting increased from 7383k to 14742k, overall 99.67%
Amount of memory still referenced at the end of compilation decreased from 5512k to 5177k, overall -6.46%
Overall memory needed: 22699k -> 29351k
Peak memory use before GGC: 8007k -> 15004k
Peak memory use after GGC: 7383k -> 14742k
Maximum of released memory in single GGC run: 1546k -> 1788k
Garbage: 38104k -> 38096k
Leak: 5512k -> 5177k
Overhead: 4688k -> 4666k
GGC runs: 366 -> 357
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 12909k
Pre-IPA-Leak: 0k -> 15352k
Pre-IPA-Overhead: 0k -> 2000k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 12909k
Post-IPA-Leak: 0k -> 15352k
Post-IPA-Overhead: 0k -> 2000k
comparing combine.c compilation at -O0 -g level:
Overall memory allocated via mmap and sbrk increased from 24787k to 31587k, overall 27.43%
Peak amount of GGC memory allocated before garbage collecting increased from 10008k to 16864k, overall 68.51%
Peak amount of GGC memory still allocated after garbage collecting increased from 9383k to 16633k, overall 77.27%
Amount of memory still referenced at the end of compilation decreased from 8821k to 8474k, overall -4.09%
Overall memory needed: 24787k -> 31587k
Peak memory use before GGC: 10008k -> 16864k
Peak memory use after GGC: 9383k -> 16633k
Maximum of released memory in single GGC run: 1832k -> 1812k
Garbage: 38431k -> 38444k
Leak: 8821k -> 8474k
Overhead: 5509k -> 5485k
GGC runs: 335 -> 339
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 13009k
Pre-IPA-Leak: 0k -> 17627k
Pre-IPA-Overhead: 0k -> 2492k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 13009k
Post-IPA-Leak: 0k -> 17627k
Post-IPA-Overhead: 0k -> 2492k
comparing combine.c compilation at -O1 level:
Overall memory needed: 32719k -> 32723k
Peak memory use before GGC: 16329k
Peak memory use after GGC: 16165k
Maximum of released memory in single GGC run: 1413k
Garbage: 52028k
Leak: 5166k
Overhead: 5785k
GGC runs: 438
Pre-IPA-Garbage: 13944k
Pre-IPA-Leak: 17181k
Pre-IPA-Overhead: 2148k
Post-IPA-Garbage: 13944k
Post-IPA-Leak: 17181k
Post-IPA-Overhead: 2148k
comparing combine.c compilation at -O2 level:
Overall memory needed: 35003k
Peak memory use before GGC: 16423k
Peak memory use after GGC: 16258k
Maximum of released memory in single GGC run: 1341k
Garbage: 72726k
Leak: 5198k
Overhead: 8230k
GGC runs: 510
Pre-IPA-Garbage: 14093k
Pre-IPA-Leak: 17244k
Pre-IPA-Overhead: 2160k
Post-IPA-Garbage: 14093k
Post-IPA-Leak: 17244k
Post-IPA-Overhead: 2160k
comparing combine.c compilation at -O3 level:
Overall memory needed: 38807k
Peak memory use before GGC: 16440k
Peak memory use after GGC: 16271k
Maximum of released memory in single GGC run: 2487k
Garbage: 92227k
Leak: 5222k
Overhead: 10551k
GGC runs: 540
Pre-IPA-Garbage: 14093k
Pre-IPA-Leak: 17255k
Pre-IPA-Overhead: 2162k
Post-IPA-Garbage: 14093k
Post-IPA-Leak: 17255k
Post-IPA-Overhead: 2162k
comparing insn-attrtab.c compilation at -O0 level:
Overall memory allocated via mmap and sbrk increased from 137559k to 150747k, overall 9.59%
Peak amount of GGC memory allocated before garbage collecting increased from 57430k to 62354k, overall 8.57%
Peak amount of GGC memory still allocated after garbage collecting increased from 31856k to 52689k, overall 65.40%
Amount of memory still referenced at the end of compilation increased from 6979k to 7075k, overall 1.38%
Overall memory needed: 137559k -> 150747k
Peak memory use before GGC: 57430k -> 62354k
Peak memory use after GGC: 31856k -> 52689k
Maximum of released memory in single GGC run: 33223k -> 25736k
Garbage: 130450k -> 130348k
Leak: 6979k -> 7075k
Overhead: 14395k -> 14386k
GGC runs: 290 -> 274
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 43130k
Pre-IPA-Leak: 0k -> 49945k
Pre-IPA-Overhead: 0k -> 7271k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 43130k
Post-IPA-Leak: 0k -> 49945k
Post-IPA-Overhead: 0k -> 7271k
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory allocated via mmap and sbrk increased from 138847k to 152091k, overall 9.54%
Peak amount of GGC memory allocated before garbage collecting increased from 58690k to 63629k, overall 8.42%
Peak amount of GGC memory still allocated after garbage collecting increased from 33115k to 53962k, overall 62.95%
Amount of memory still referenced at the end of compilation increased from 8638k to 8727k, overall 1.03%
Overall memory needed: 138847k -> 152091k
Peak memory use before GGC: 58690k -> 63629k
Peak memory use after GGC: 33115k -> 53962k
Maximum of released memory in single GGC run: 33224k -> 25737k
Garbage: 130948k -> 130766k
Leak: 8638k -> 8727k
Overhead: 14854k -> 14841k
GGC runs: 284 -> 267
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 43187k
Pre-IPA-Leak: 0k -> 51488k
Pre-IPA-Overhead: 0k -> 7607k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 43187k
Post-IPA-Leak: 0k -> 51488k
Post-IPA-Overhead: 0k -> 7607k
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 140891k -> 140887k
Peak memory use before GGC: 54743k
Peak memory use after GGC: 49006k
Maximum of released memory in single GGC run: 24526k
Garbage: 209982k
Leak: 6465k
Overhead: 24854k
GGC runs: 314
Pre-IPA-Garbage: 50404k
Pre-IPA-Leak: 49457k
Pre-IPA-Overhead: 7465k
Post-IPA-Garbage: 50404k
Post-IPA-Leak: 49457k
Post-IPA-Overhead: 7465k
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 182507k -> 182639k
Peak memory use before GGC: 55417k
Peak memory use after GGC: 50027k
Maximum of released memory in single GGC run: 23366k
Garbage: 252487k
Leak: 6475k
Overhead: 30826k
GGC runs: 350
Pre-IPA-Garbage: 50473k
Pre-IPA-Leak: 49462k
Pre-IPA-Overhead: 7472k
Post-IPA-Garbage: 50473k
Post-IPA-Leak: 49462k
Post-IPA-Overhead: 7472k
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 190883k -> 190887k
Peak memory use before GGC: 68224k
Peak memory use after GGC: 63474k
Maximum of released memory in single GGC run: 25373k
Garbage: 279661k
Leak: 6483k
Overhead: 32726k
GGC runs: 352
Pre-IPA-Garbage: 50473k
Pre-IPA-Leak: 49462k
Pre-IPA-Overhead: 7472k
Post-IPA-Garbage: 50473k
Post-IPA-Leak: 49462k
Post-IPA-Overhead: 7472k
comparing Gerald's testcase PR8361 compilation at -O0 level:
Amount of produced GGC garbage increased from 196639k to 197603k, overall 0.49%
Overall memory needed: 143095k -> 142243k
Peak memory use before GGC: 79959k
Peak memory use after GGC: 79167k
Maximum of released memory in single GGC run: 14878k
Garbage: 196639k -> 197603k
Leak: 47692k -> 47695k
Overhead: 24192k -> 24320k
GGC runs: 417 -> 425
Pre-IPA-Garbage: 107302k
Pre-IPA-Leak: 68685k
Pre-IPA-Overhead: 12065k
Post-IPA-Garbage: 107302k
Post-IPA-Leak: 68685k
Post-IPA-Overhead: 12065k
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Amount of produced GGC garbage increased from 202273k to 203247k, overall 0.48%
Overall memory needed: 165575k -> 165715k
Peak memory use before GGC: 94245k
Peak memory use after GGC: 93312k
Maximum of released memory in single GGC run: 15682k
Garbage: 202273k -> 203247k
Leak: 74268k -> 74290k
Overhead: 30880k -> 31011k
GGC runs: 384 -> 391
Pre-IPA-Garbage: 107945k
Pre-IPA-Leak: 85252k
Pre-IPA-Overhead: 15603k
Post-IPA-Garbage: 107945k
Post-IPA-Leak: 85252k
Post-IPA-Overhead: 15603k
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 117987k -> 118023k
Peak memory use before GGC: 79051k
Peak memory use after GGC: 78209k
Maximum of released memory in single GGC run: 14459k
Garbage: 286753k
Leak: 44467k
Overhead: 28527k
GGC runs: 517
Pre-IPA-Garbage: 149327k
Pre-IPA-Leak: 82304k
Pre-IPA-Overhead: 16663k
Post-IPA-Garbage: 149327k
Post-IPA-Leak: 82304k
Post-IPA-Overhead: 16663k
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 120971k
Peak memory use before GGC: 79345k
Peak memory use after GGC: 78556k
Maximum of released memory in single GGC run: 14426k
Garbage: 353523k
Leak: 44602k
Overhead: 35562k
GGC runs: 598
Pre-IPA-Garbage: 150924k
Pre-IPA-Leak: 82169k
Pre-IPA-Overhead: 16795k
Post-IPA-Garbage: 150924k
Post-IPA-Leak: 82169k
Post-IPA-Overhead: 16795k
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 123483k -> 123479k
Peak memory use before GGC: 80337k
Peak memory use after GGC: 79533k
Maximum of released memory in single GGC run: 14783k
Garbage: 379980k
Leak: 44974k
Overhead: 37759k
GGC runs: 614
Pre-IPA-Garbage: 153554k
Pre-IPA-Leak: 82435k
Pre-IPA-Overhead: 17038k
Post-IPA-Garbage: 153554k
Post-IPA-Leak: 82435k
Post-IPA-Overhead: 17038k
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Amount of memory still referenced at the end of compilation increased from 6230k to 6276k, overall 0.73%
Overall memory needed: 380764k -> 380292k
Peak memory use before GGC: 101150k -> 100907k
Peak memory use after GGC: 56804k -> 56560k
Maximum of released memory in single GGC run: 50582k -> 50583k
Garbage: 178630k -> 178584k
Leak: 6230k -> 6276k
Overhead: 30604k -> 30603k
GGC runs: 104 -> 94
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 12156k
Pre-IPA-Leak: 0k -> 16538k
Pre-IPA-Overhead: 0k -> 1718k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 12156k
Post-IPA-Leak: 0k -> 16538k
Post-IPA-Overhead: 0k -> 1718k
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Amount of memory still referenced at the end of compilation increased from 8277k to 8321k, overall 0.53%
Overall memory needed: 381648k -> 381528k
Peak memory use before GGC: 101851k -> 101606k
Peak memory use after GGC: 57504k -> 57259k
Maximum of released memory in single GGC run: 50583k
Garbage: 178745k -> 178702k
Leak: 8277k -> 8321k
Overhead: 31189k -> 31188k
GGC runs: 110 -> 103
Reference run miss the results so I can't compare, sadly
Pre-IPA-Garbage: 0k -> 12164k
Pre-IPA-Leak: 0k -> 16788k
Pre-IPA-Overhead: 0k -> 1772k
Reference run miss the results so I can't compare, sadly
Post-IPA-Garbage: 0k -> 12164k
Post-IPA-Leak: 0k -> 16788k
Post-IPA-Overhead: 0k -> 1772k
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 391555k -> 391823k
Peak memory use before GGC: 75652k
Peak memory use after GGC: 67596k
Maximum of released memory in single GGC run: 35733k
Garbage: 244852k
Leak: 7895k
Overhead: 31115k
GGC runs: 105
Pre-IPA-Garbage: 49702k
Pre-IPA-Leak: 63716k
Pre-IPA-Overhead: 6705k
Post-IPA-Garbage: 49702k
Post-IPA-Leak: 63716k
Post-IPA-Overhead: 6705k
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 303195k
Peak memory use before GGC: 75653k
Peak memory use after GGC: 67597k
Maximum of released memory in single GGC run: 32543k
Garbage: 258969k
Leak: 8058k
Overhead: 34159k
GGC runs: 116
Pre-IPA-Garbage: 107698k
Pre-IPA-Leak: 75539k
Pre-IPA-Overhead: 10956k
Post-IPA-Garbage: 107698k
Post-IPA-Leak: 75539k
Post-IPA-Overhead: 10956k
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1070595k
Peak memory use before GGC: 142478k
Peak memory use after GGC: 129134k
Maximum of released memory in single GGC run: 59644k
Garbage: 356489k
Leak: 11038k
Overhead: 38241k
GGC runs: 101
Pre-IPA-Garbage: 107698k
Pre-IPA-Leak: 75539k
Pre-IPA-Overhead: 10956k
Post-IPA-Garbage: 107698k
Post-IPA-Leak: 75539k
Post-IPA-Overhead: 10956k
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2008-06-18 16:29:38.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2008-06-18 20:51:12.000000000 +0000
@@ -1,3 +1,72 @@
+2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * targhooks.h (struct gcc_target): New member unwind_word_mode.
+ (default_unwind_word_mode): Add prototype.
+ * targhooks.c (default_unwind_word_mode): New function.
+ (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
+ instead of word_mode.
+ * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
+ (TARGET_INITIALIZER): Use it.
+
+ * c-common.c (handle_mode_attribute): Support "unwind_word"
+ mode attribute.
+ * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
+
+ * except.c (init_eh): Use targetm.unwind_word_mode () instead of
+ word_mode to access SjLj_Function_Context member "data".
+ (sjlj_emit_dispatch_table): Likewise. Also, perform type
+ conversion from targetm.eh_return_filter_mode () to
+ targetm.unwind_word_mode () if they differ.
+
+ * builtin-types.def (BT_UNWINDWORD): New primitive type.
+ (BT_FN_UNWINDWORD_PTR): New function type.
+ (BT_FN_WORD_PTR): Remove.
+ * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
+ * except.c (expand_builtin_extend_pointer): Convert pointer to
+ targetm.unwind_word_mode () instead of word_mode.
+
+ * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
+ * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
+ (spu_unwind_word_mode): New function.
+ (TARGET_EH_RETURN_FILTER_MODE): Do not define.
+ (TARGET_UNWIND_WORD_MODE): Define.
+ * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
+
+2008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (reg_align): Remove.
+ (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
+ (spu_split_load): Use regno_aligned_for_load instead of reg_align.
+ (spu_split_store): Likewise.
+
+2006-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * gcc/tree-vn.c: Fix typo in comment.
+
+2008-06-18 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_optimize): Output debug info when doing
+ toplevel reorder too.
+
+2008-06-18 Jan Hubicka <jh@suse.cz>
+
+ * c-opts.c (c_common_post_options): PCH is not compatible with
+ no-unit-at-a-time.
+ * opts.c (handle_options): Enable unit-at-a-time at O0 along with
+ -fno-toplevel-reorder by default now.
+
+2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR documentation/30739
+ * doc/install.texi (Prerequisites): Document dependency on awk.
+
+2008-06-18 Uros Bizjak <ubizjak@gmail.com>
+ Ian Lance Taylor <iant@google.com>
+
+ PR rtl-optimization/35604
+ * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
+ only want to change jump destinations, not eventual label comparisons.
+
2008-06-16 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_expand_pending_functions): Give up at
@@ -436,8 +505,7 @@
2008-06-12 Jakub Jelinek <jakub@redhat.com>
PR middle-end/36506
- * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
- warning.
+ * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
@@ -482,8 +550,8 @@
2008-06-12 Kai Tietz <kai.tietz@onevision.com>
- * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
- w64 abi.
+ * config/i386/i386.c (ix86_compute_frame_layout): Disable
+ red zone for w64 abi.
(ix86_expand_prologue): Likewise.
(ix86_force_to_memory): Likewise.
(ix86_free_from_memory): Likewise.
@@ -492,8 +560,7 @@
PR target/36425
* config/rs6000/rs6000.c (rs6000_override_options): Set
- rs6000_isel conditionally to the absence of comand line
- override.
+ rs6000_isel conditionally to the absence of comand line override.
* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
Remove duplicate rs6000_isel setting.
* config/rs6000/eabispe.h: Ditto.
@@ -524,7 +591,7 @@
arch_32 and arch_64.
2008-06-11 Eric Botcazou <ebotcazou@adacore.com>
- Olivier Hainque <hainque@adacore.com>
+ Olivier Hainque <hainque@adacore.com>
* builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
Use DECL_SIZE_UNIT to retrieve the size of the field.
@@ -559,7 +626,8 @@
and target endianness differ.
2008-06-10 Vinodha Ramasamy <vinodha@google.com>
- * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
+
+ * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
Avoid division by 0.
(tree_mod_pow2_value_transform): Likewise.
(tree_ic_transform): Likewise.
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.