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!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Sun, 09 Sep 2007 19:54:00 +0000
- Subject: 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:
Overall memory needed: 7026k -> 7024k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1061k
Maximum of released memory in single GGC run: 122k
Garbage: 239k
Leak: 1077k
Overhead: 147k
GGC runs: 4
comparing empty function compilation at -O0 -g level:
Overall memory needed: 7042k -> 7040k
Peak memory use before GGC: 1184k
Peak memory use after GGC: 1089k
Maximum of released memory in single GGC run: 123k
Garbage: 242k
Leak: 1109k
Overhead: 152k
GGC runs: 4
comparing empty function compilation at -O1 level:
Overall memory needed: 7082k -> 7080k
Peak memory use before GGC: 1156k
Peak memory use after GGC: 1053k
Maximum of released memory in single GGC run: 116k
Garbage: 241k
Leak: 1078k
Overhead: 148k
GGC runs: 3
comparing empty function compilation at -O2 level:
Overall memory needed: 7102k -> 7100k
Peak memory use before GGC: 1157k
Peak memory use after GGC: 1054k
Maximum of released memory in single GGC run: 117k
Garbage: 245k
Leak: 1079k
Overhead: 148k
GGC runs: 3
comparing empty function compilation at -O3 level:
Overall memory needed: 7102k -> 7100k
Peak memory use before GGC: 1157k
Peak memory use after GGC: 1054k
Maximum of released memory in single GGC run: 117k
Garbage: 245k
Leak: 1079k
Overhead: 148k
GGC runs: 3
comparing combine.c compilation at -O0 level:
Overall memory needed: 22050k -> 22048k
Peak memory use before GGC: 8292k
Peak memory use after GGC: 7631k
Maximum of released memory in single GGC run: 1581k
Garbage: 38803k
Leak: 6197k
Overhead: 5051k
GGC runs: 371
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 24058k -> 24056k
Peak memory use before GGC: 10122k
Peak memory use after GGC: 9396k
Maximum of released memory in single GGC run: 1875k
Garbage: 39152k
Leak: 9036k
Overhead: 5723k
GGC runs: 344
comparing combine.c compilation at -O1 level:
Overall memory needed: 33138k -> 33136k
Peak memory use before GGC: 17073k -> 17066k
Peak memory use after GGC: 16885k -> 16879k
Maximum of released memory in single GGC run: 1378k -> 1379k
Garbage: 52434k -> 52432k
Leak: 6348k
Overhead: 6032k -> 6032k
GGC runs: 441
comparing combine.c compilation at -O2 level:
Overall memory needed: 35398k -> 35388k
Peak memory use before GGC: 17143k -> 17137k
Peak memory use after GGC: 16973k -> 16967k
Maximum of released memory in single GGC run: 1335k
Garbage: 71321k -> 71310k
Leak: 6675k
Overhead: 8287k -> 8285k
GGC runs: 509
comparing combine.c compilation at -O3 level:
Amount of memory still referenced at the end of compilation increased from 6789k to 6797k, overall 0.12%
Overall memory needed: 39886k -> 39856k
Peak memory use before GGC: 17372k -> 17366k
Peak memory use after GGC: 17027k -> 17021k
Maximum of released memory in single GGC run: 2130k -> 2131k
Garbage: 92716k -> 92720k
Leak: 6789k -> 6797k
Overhead: 10763k -> 10763k
GGC runs: 538 -> 539
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 138498k -> 138492k
Peak memory use before GGC: 58645k
Peak memory use after GGC: 32139k
Maximum of released memory in single GGC run: 34143k
Garbage: 131577k
Leak: 8939k
Overhead: 14855k
GGC runs: 296
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 139754k -> 139752k
Peak memory use before GGC: 59795k
Peak memory use after GGC: 33288k
Maximum of released memory in single GGC run: 34144k
Garbage: 131805k
Leak: 10615k
Overhead: 15236k
GGC runs: 290
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 149614k -> 149680k
Peak memory use before GGC: 57143k
Peak memory use after GGC: 50913k
Maximum of released memory in single GGC run: 24232k
Garbage: 212474k
Leak: 9831k
Overhead: 24860k -> 24860k
GGC runs: 320
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 187378k -> 187452k
Peak memory use before GGC: 57777k
Peak memory use after GGC: 52506k
Maximum of released memory in single GGC run: 22972k -> 22973k
Garbage: 253940k
Leak: 10918k
Overhead: 30607k -> 30607k
GGC runs: 351
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 194394k -> 194468k
Peak memory use before GGC: 69770k
Peak memory use after GGC: 63203k
Maximum of released memory in single GGC run: 23358k
Garbage: 280700k
Leak: 10924k
Overhead: 32373k -> 32373k
GGC runs: 351
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 155169k -> 155100k
Peak memory use before GGC: 89693k
Peak memory use after GGC: 88800k
Maximum of released memory in single GGC run: 18062k
Garbage: 210298k
Leak: 52988k
Overhead: 26476k
GGC runs: 418
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 175461k -> 175460k
Peak memory use before GGC: 101997k
Peak memory use after GGC: 100987k
Maximum of released memory in single GGC run: 18268k
Garbage: 216154k
Leak: 75856k
Overhead: 32156k
GGC runs: 386
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 121663k -> 121601k
Peak memory use before GGC: 88593k
Peak memory use after GGC: 87715k
Maximum of released memory in single GGC run: 17330k
Garbage: 297894k -> 297795k
Leak: 52239k -> 52242k
Overhead: 30852k -> 30849k
GGC runs: 517
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 127087k -> 127301k
Peak memory use before GGC: 88772k
Peak memory use after GGC: 87885k
Maximum of released memory in single GGC run: 17312k
Garbage: 364871k -> 365139k
Leak: 53322k -> 53323k
Overhead: 38024k -> 38086k
GGC runs: 593
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 131215k -> 131081k
Peak memory use before GGC: 89878k
Peak memory use after GGC: 88984k
Maximum of released memory in single GGC run: 17671k
Garbage: 391984k -> 392002k
Leak: 53578k -> 53572k
Overhead: 40491k -> 40456k
GGC runs: 612 -> 611
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 379364k -> 379367k
Peak memory use before GGC: 101487k
Peak memory use after GGC: 57140k
Maximum of released memory in single GGC run: 50583k
Garbage: 179439k
Leak: 6289k
Overhead: 30886k
GGC runs: 107
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 380180k -> 380179k
Peak memory use before GGC: 102120k
Peak memory use after GGC: 57774k
Maximum of released memory in single GGC run: 50582k
Garbage: 179527k
Leak: 7997k
Overhead: 31352k
GGC runs: 110
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 294594k -> 294396k
Peak memory use before GGC: 80800k
Peak memory use after GGC: 73181k
Maximum of released memory in single GGC run: 40023k
Garbage: 235769k
Leak: 15627k
Overhead: 31951k -> 32054k
GGC runs: 105
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 270094k -> 270160k
Peak memory use before GGC: 78168k
Peak memory use after GGC: 73182k
Maximum of released memory in single GGC run: 33750k
Garbage: 245807k
Leak: 15716k
Overhead: 34176k -> 34279k
GGC runs: 118
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 1017622k -> 1017544k
Peak memory use before GGC: 166810k
Peak memory use after GGC: 156373k
Maximum of released memory in single GGC run: 83494k
Garbage: 357337k
Leak: 25859k
Overhead: 46219k -> 46231k
GGC runs: 99
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-09-09 03:18:48.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-09-09 18:01:56.000000000 +0000
@@ -1,3 +1,251 @@
+2007-09-09 Jan Hubicka <jh@suse.cz>
+ Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
+ (TARGET_USE_VECTOR_CONVERTS): New.
+ * i386.md: New post-reload splitters for converting SF to DF and DF to
+ SF.
+ (floatsi* expander): Special case vector conversions.
+ (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
+ floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
+ floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
+ (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
+ Disable when doing vector converts.
+ (floatsi<mode>2_i387): Disable when
+ * sse.md (vec_dupv2df): Export.
+ * i386.c (ix86_tune_features): Enable SSE conversions.
+
+2007-09-09 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-operands.c (add_virtual_operand): Only mark
+ stores as has_volatile_ops if alias information is not available.
+
+2007-09-09 Revital Eres <eres@il.ibm.com>
+
+ * doc/contrib.texi: Add myself.
+
+2007-09-09 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
+ stmt_vinfo_set_outside_of_loop_cost): New functions.
+ * tree-vect-transform.c (vect_get_cost_fields): Remove.
+ (vect_model_simple_cost): Call
+ stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
+ field instead of calling vect_get_cost_fields.
+ (vect_model_store_cost, vect_model_load_cost): Likewise.
+
+2007-09-09 Revital Eres <eres@il.ibm.com>
+
+ * config/rs6000/rs6000.c (paired_init_builtins): Add const
+ declaration to bdesc_paired_preds variable.
+ (paired_expand_builtin): Likewise.
+
+2007-09-09 Revital Eres <eres@il.ibm.com>
+
+ * dbgcnt.def (sms_sched_loop): New counter.
+ * modulo-sched.c: Use sms_sched_loop instead of
+ MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
+ perform swing modulo scheduling on. Include dbgcnt.h.
+ * Makefile.in: Add DBGCNT_H to modulo-sched.o.
+ * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
+
+2007-09-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
+ Substitute all uses with ...
+ (MODEF): New mode iterator.
+
+ (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
+ from pre-regalloc define_insn_and_split splitter pattern.
+ (*fix_trunc<mode>_i387_1): Ditto.
+ (*fistdi2_1): Ditto.
+ (*fist<mode>2_1): Ditto.
+ (frndintxf2_floor): Ditto.
+ (*fist<mode>2_floor_1): Ditto.
+ (frndintxf2_ceil): Ditto.
+ (*fist<mode>2_ceil_1): Ditto.
+ (frndintxf2_trunc): Ditto.
+ (frndintxf2_mask_pm): Ditto.
+
+ (prologue): Use (const_int 0) as never generated filler insn.
+ (epilogue): Ditto.
+ (sibcall_epilogue): Ditto.
+ (eh_return_si): Ditto.
+ (eh_return_di): Ditto.
+
+ (add<mode>3): Rename from adddf3 and addsf3. Macroize expander
+ using MODEF mode iterator.
+ (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander
+ using MODEF mode iterator.
+ (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander
+ using MODEF mode iterator.
+ (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
+ Macroize expander using MODEF mode iterator.
+
+ (zero_extendsidi2): Remove operand constraints from expander.
+ (smuldi3_highpart): Ditto.
+ (indirect_jump): Ditto.
+ (tablejump): Ditto.
+ (rsqrtsf2): Ditto.
+ * config/i386/sse.md (storentv4sf): Ditto.
+ (storentv2df): Ditto.
+ (storentv2di): Ditto.
+ (storentsi): Ditto.
+ (sse2_cvtpd2ps): Ditto.
+ (vec_interleave_highv16qi): Ditto.
+ (vec_interleave_lowv16qi): Ditto.
+ (vec_interleave_highv8hi): Ditto.
+ (vec_interleave_lowv8hi): Ditto.
+ (vec_interleave_highv4si): Ditto.
+ (vec_interleave_lowv4si): Ditto.
+ (vec_interleave_highv2di): Ditto.
+ (vec_interleave_lowv2di): Ditto.
+ (sse2_maskmovdqu): Ditto.
+ * config/i386/mmx.md (mmx_maskmovq): Ditto.
+
+2007-09-09 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
+ (struct _slp_tree, struct _slp_instance): Define new data structures
+ along macros for their access.
+ (struct _loop_vec_info): Define new fields: strided_stores,
+ slp_instances, and slp_unrolling_factor along macros for their access.
+ (enum slp_vect_type): New.
+ (struct _stmt_vec_info): Define new field, slp_type, and macros for its
+ access.
+ (STMT_VINFO_STRIDED_ACCESS): New macro.
+ (vect_free_slp_tree): Declare.
+ (vectorizable_load): Add an argument of type slp_tree.
+ (vectorizable_store, vectorizable_operation, vectorizable_conversion,
+ vectorizable_assignment): Likewise.
+ (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
+ Declare (make extern).
+ * tree-vectorizer.c (new_stmt_vec_info): Initiliaze the new field.
+ (new_loop_vec_info): Likewise.
+ (destroy_loop_vec_info): Free memory allocated for SLP structures.
+ * tree-vect-analyze.c: Include recog.h.
+ (vect_update_slp_costs_according_to_vf): New.
+ (vect_analyze_operations): Add argument for calls to vectorizable_ ()
+ functions. For not pure SLP stmts with strided access check that the
+ group size is power of 2. Update the vectorization factor according to
+ SLP. Call vect_update_slp_costs_according_to_vf.
+ (vect_analyze_group_access): New.
+ (vect_analyze_data_ref_access): Call vect_analyze_group_access.
+ (vect_free_slp_tree): New functions.
+ (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
+ vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
+ vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
+ vect_detect_hybrid_slp): Likewise.
+ (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
+ and vect_detect_hybrid_slp.
+ * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
+ SLP costs into account.
+ (vect_get_cost_fields): New function.
+ (vect_model_simple_cost): Make extern, add SLP parameter and handle
+ SLP.
+ (vect_model_store_cost, vect_model_load_cost): Likewise.
+ (vect_get_constant_vectors): New function.
+ (vect_get_slp_vect_defs, vect_get_slp_defs,
+ vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
+ vect_get_vec_defs): Likewise.
+ (vectorizable_reduction): Don't handle SLP for now.
+ (vectorizable_call): Don't handle SLP for now. Add argument to
+ vect_model_simple_cost.
+ (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
+ get SLPed and vectorized defs). Fix indentation and spacing.
+ (vectorizable_assignment): Handle SLP.
+ (vectorizable_induction): Don't handle SLP for now.
+ (vectorizable_operation): Likewise.
+ (vectorizable_type_demotion): Add argument to
+ vect_model_simple_cost.
+ (vectorizable_type_promotion): Likewise.
+ (vectorizable_store, vectorizable_load): Handle SLP.
+ (vectorizable_condition): Don't handle SLP for now.
+ (vect_transform_stmt): Add a new argument for SLP. Check that there is
+ no SLP transformation required for unsupported cases. Add SLP
+ argument for supported cases.
+ (vect_remove_stores): New function.
+ (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
+ (vect_transform_loop): Schedule SLP instances.
+ * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
+
+2007-09-09 Andrew Haley <aph@redhat.com>
+
+ * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the
+ fake signed optab.
+
+2007-09-09 Hans-Peter Nilsson <hp@axis.com>
+
+ Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
+ * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
+ Similar for what label_refs can go in the JUMP_TARGET field. Split
+ REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
+ * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
+ REG_LABEL when replacing an operand with a LABEL_REF for a
+ non-jump insn.
+ (subst_reloads): When replacing a LABEL_REG with a register,
+ instead of generating a REG_LABEL note, assert that there already
+ is one or that the label is a known target for the insn.
+ * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
+ note, check the JUMP_LABEL field. Remove "else" after return.
+ * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
+ cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
+ (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
+ REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
+ insns. Iterate over all notes; don't assume there's only one.
+ * cse.c (recorded_label_ref): Adjust comment to refer to
+ REG_LABEL_OPERAND.
+ (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
+ insns, not just NONJUMP_INSN_P.
+ (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
+ isn't a jump target.
+ * jump.c (rebuild_jump_labels): Adjust head comment.
+ (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only;
+ don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
+ (mark_all_labels): For JUMP_P insns without a target, check if the
+ the target is noted on the previous nonjump insn.
+ (mark_jump_label_1): New function, guts from mark_jump_label.
+ <case IF_THEN_ELSE>: Handle first operand as a non-target when
+ marking jump target labels.
+ <case LABEL_REF>: Adjust for whether to generate a
+ REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
+ For 'E' format rtl, iterate in descending element order.
+ (delete_related_insns): Handle both REG_LABEL_TARGET and
+ REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero
+ reference count, delete and fallthrough. Move finding-next-
+ non-deleted insn last in the function. Look at all INSN_P insns
+ for REG_LABEL_OPERAND notes.
+ (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
+ JUMP.
+ * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
+ JUMP_LABEL, output the INSN_UID of it.
+ * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
+ and/or REG_LABEL_TARGET.
+ (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line
+ with jump.c copy by only adding notes for labels actually
+ referenced in the insn.
+ * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
+ usage count increment; handle all INSN_P trial insns.
+ (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
+ notes.
+ * rtl.h (struct rtx_def) <volatil>: Adjust to mention
+ REG_LABEL_TARGET and REG_LABEL_OPERAND.
+ (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
+ REG_LABEL_OPERAND.
+ * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
+ JUMP_P insns and REG_LABEL_OPERAND everywhere.
+ * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
+ on all INSN_P insns.
+ * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
+ * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
+ REG_LABEL_OPERAND notes.
+ * reload1.c (calculate_needs_all_insns): Adjust comments.
+ (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
+ * config/alpha/alpha.md (split for load of an address into a
+ four-insn sequence on Unicos/Mk): Adjust to use
+ REG_LABEL_OPERAND.
+ * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
+
2007-09-09 Laurynas Biveinis <laurynas.biveinis@gmail.com>
Revert:
@@ -54,12 +302,12 @@
2007-09-08 Uros Bizjak <ubizjak@gmail.com>
PR target/33329
- PR target/26449
+ PR rtl-optimization/26449
* config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
(*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
split1 pass.
(mulv16qi3): Implement as define_insn_and_split pattern instead of
- define_expand, to split insn in split1 pass.
+ define_expand. Split insn in split1 pass.
(mulv2di3): Ditto.
2007-09-08 Dorit Nuzman <dorit@il.ibm.com>
@@ -177,8 +425,8 @@
2007-09-07 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/33299
- * tree-vect-transform.c (vect_create_epilog_for_reduction): Update uses
- for all relevant loop-exit phis, not just the first.
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
+ uses for all relevant loop-exit phis, not just the first.
2007-09-07 Richard Guenther <rguenther@suse.de>
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2007-09-07 05:16:12.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2007-09-09 18:01:55.000000000 +0000
@@ -1,3 +1,9 @@
+2007-09-08 Jason Merrill <jason@redhat.com>
+
+ PR c++/33342
+ * pt.c (most_specialized_class): Set processing_template_decl
+ while tsubsting partial spec args.
+
2007-09-06 Jason Merrill <jason@redhat.com>
* decl2.c (get_guard): Copy visibility from the guarded variable.
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.