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:
    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.


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