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: 18261k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 422k
    Leak: 2271k
    Overhead: 446k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 18277k
    Peak memory use before GGC: 2260k
    Peak memory use after GGC: 1967k
    Maximum of released memory in single GGC run: 293k
    Garbage: 425k
    Leak: 2303k
    Overhead: 450k
    GGC runs: 3

comparing empty function compilation at -O1 level:
    Overall memory needed: 18361k -> 18365k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 426k
    Leak: 2273k
    Overhead: 446k
    GGC runs: 4

comparing empty function compilation at -O2 level:
    Overall memory needed: 18373k -> 18377k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 430k
    Leak: 2273k
    Overhead: 447k
    GGC runs: 4

comparing empty function compilation at -O3 level:
    Overall memory needed: 18373k -> 18377k
    Peak memory use before GGC: 2233k
    Peak memory use after GGC: 1940k
    Maximum of released memory in single GGC run: 293k
    Garbage: 430k
    Leak: 2273k
    Overhead: 447k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
    Overall memory needed: 28393k
    Peak memory use before GGC: 9268k
    Peak memory use after GGC: 8786k
    Maximum of released memory in single GGC run: 2643k
    Garbage: 37458k
    Leak: 6452k
    Overhead: 4868k
    GGC runs: 280

comparing combine.c compilation at -O0 -g level:
    Overall memory needed: 30477k
    Peak memory use before GGC: 10816k
    Peak memory use after GGC: 10446k
    Maximum of released memory in single GGC run: 2319k
    Garbage: 38030k
    Leak: 9328k
    Overhead: 5569k
    GGC runs: 272

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 58202k to 58315k, overall 0.20%
  Amount of memory still referenced at the end of compilation increased from 6473k to 6481k, overall 0.12%
    Overall memory needed: 39821k
    Peak memory use before GGC: 16872k
    Peak memory use after GGC: 16704k
    Maximum of released memory in single GGC run: 2254k -> 2255k
    Garbage: 58202k -> 58315k
    Leak: 6473k -> 6481k
    Overhead: 6269k -> 6292k
    GGC runs: 359

comparing combine.c compilation at -O2 level:
    Overall memory needed: 29386k
    Peak memory use before GGC: 16874k
    Peak memory use after GGC: 16704k
    Maximum of released memory in single GGC run: 3776k -> 3774k
    Garbage: 79514k -> 79483k
    Leak: 6589k
    Overhead: 8630k -> 8624k
    GGC runs: 416

comparing combine.c compilation at -O3 level:
    Overall memory needed: 29510k
    Peak memory use before GGC: 18390k
    Peak memory use after GGC: 17806k
    Maximum of released memory in single GGC run: 5531k -> 5529k
    Garbage: 116420k -> 116390k
    Leak: 6671k
    Overhead: 13262k -> 13256k
    GGC runs: 468

comparing insn-attrtab.c compilation at -O0 level:
    Overall memory needed: 88530k
    Peak memory use before GGC: 70079k
    Peak memory use after GGC: 43585k
    Maximum of released memory in single GGC run: 37868k
    Garbage: 131134k
    Leak: 9274k
    Overhead: 16943k
    GGC runs: 216

comparing insn-attrtab.c compilation at -O0 -g level:
    Overall memory needed: 89710k
    Peak memory use before GGC: 71240k
    Peak memory use after GGC: 44853k
    Maximum of released memory in single GGC run: 37869k
    Garbage: 132034k
    Leak: 11218k
    Overhead: 17339k
    GGC runs: 213

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 110262k
    Peak memory use before GGC: 85471k
    Peak memory use after GGC: 79438k
    Maximum of released memory in single GGC run: 31668k -> 31671k
    Garbage: 271364k -> 271418k
    Leak: 9336k -> 9336k
    Overhead: 28698k -> 28708k
    GGC runs: 223

comparing insn-attrtab.c compilation at -O2 level:
    Overall memory needed: 120766k -> 120754k
    Peak memory use before GGC: 87633k
    Peak memory use after GGC: 80352k
    Maximum of released memory in single GGC run: 30219k -> 30216k
    Garbage: 310401k -> 310287k
    Leak: 9339k
    Overhead: 35209k -> 35187k
    GGC runs: 246

comparing insn-attrtab.c compilation at -O3 level:
    Overall memory needed: 120774k
    Peak memory use before GGC: 87658k
    Peak memory use after GGC: 80378k
    Maximum of released memory in single GGC run: 30412k -> 30409k
    Garbage: 311241k -> 311124k
    Leak: 9342k
    Overhead: 35436k -> 35414k
    GGC runs: 250

comparing Gerald's testcase PR8361 compilation at -O0 level:
    Overall memory needed: 118582k
    Peak memory use before GGC: 91843k
    Peak memory use after GGC: 90934k
    Maximum of released memory in single GGC run: 19241k
    Garbage: 209815k
    Leak: 47804k
    Overhead: 21134k
    GGC runs: 414

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
    Overall memory needed: 130990k
    Peak memory use before GGC: 104049k
    Peak memory use after GGC: 103007k
    Maximum of released memory in single GGC run: 18732k
    Garbage: 216401k
    Leak: 71322k
    Overhead: 27038k
    GGC runs: 385

comparing Gerald's testcase PR8361 compilation at -O1 level:
    Overall memory needed: 119610k
    Peak memory use before GGC: 96238k
    Peak memory use after GGC: 93982k
    Maximum of released memory in single GGC run: 18069k
    Garbage: 446627k -> 447048k
    Leak: 49491k -> 49491k
    Overhead: 32420k -> 32497k
    GGC runs: 564

comparing Gerald's testcase PR8361 compilation at -O2 level:
    Overall memory needed: 119630k
    Peak memory use before GGC: 96264k
    Peak memory use after GGC: 94009k
    Maximum of released memory in single GGC run: 18069k
    Garbage: 564573k -> 564492k
    Leak: 50411k -> 50412k
    Overhead: 42180k -> 42167k
    GGC runs: 623

comparing Gerald's testcase PR8361 compilation at -O3 level:
    Overall memory needed: 121402k
    Peak memory use before GGC: 97232k
    Peak memory use after GGC: 95640k
    Maximum of released memory in single GGC run: 18476k
    Garbage: 585824k -> 585778k
    Leak: 50363k -> 50364k
    Overhead: 43027k -> 43016k
    GGC runs: 634

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 137618k
    Peak memory use before GGC: 81563k
    Peak memory use after GGC: 58443k
    Maximum of released memory in single GGC run: 45145k
    Garbage: 148487k
    Leak: 7540k
    Overhead: 25306k
    GGC runs: 82

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 137990k
    Peak memory use before GGC: 82209k
    Peak memory use after GGC: 59089k
    Maximum of released memory in single GGC run: 45210k
    Garbage: 148690k
    Leak: 9307k
    Overhead: 25801k
    GGC runs: 88

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
    Overall memory needed: 408426k -> 408334k
    Peak memory use before GGC: 194153k
    Peak memory use after GGC: 187972k
    Maximum of released memory in single GGC run: 94098k -> 94097k
    Garbage: 283874k -> 283876k
    Leak: 29776k
    Overhead: 29694k -> 29695k
    GGC runs: 98

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
    Overall memory needed: 330170k -> 330306k
    Peak memory use before GGC: 194146k
    Peak memory use after GGC: 187965k
    Maximum of released memory in single GGC run: 96112k -> 96113k
    Garbage: 364116k -> 364116k
    Leak: 30359k
    Overhead: 45444k -> 45444k
    GGC runs: 105

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
    Overall memory needed: 777850k -> 777762k
    Peak memory use before GGC: 308402k
    Peak memory use after GGC: 286746k
    Maximum of released memory in single GGC run: 162713k -> 162843k
    Garbage: 501959k -> 502122k
    Leak: 45412k
    Overhead: 57075k -> 57108k
    GGC runs: 98

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2006-12-09 19:27:25.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2006-12-10 11:37:41.000000000 +0000
@@ -1,3 +1,38 @@
+2006-12-10  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* cse.c: (struct cse_basic_block_data): Remove LAST field.
+	(struct branch_path): Remove BRANCH and TAKEN fields. Add new
+	BB field.
+	(cse_visited_basic_blocks): New static bitmap.
+	(cse_end_of_basic_block, cse_basic_block): Remove.
+	(cse_find_path, cse_dump_path, cse_prescan_path,
+	cse_extended_basic_block): New static functions.
+	(cse_insn): Don't CSE over setjmp calls.  Use the CFG to find
+	basic block boundaries.  Don't record jump equivalences here.
+	Update the CFG after doing in-place replacement of the SET_SRC.
+	(cse_main): Rewrite.  Look for extended basic block headers
+	and call cse_extended_basic_block on them until all paths that
+	start at this header are exhausted.
+	(rest_of_handle_cse): Verify that the CFG is incrementally updated
+	and correct after cse_main.
+	Don't call delete_trivially_dead_insns, let cfgcleanup do that.
+	(rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
+	(pass_cse): Add TODO_verify_flow.
+	(pass_cse2): Likewise.
+
+2006-12-10  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+	* reload1.c (choose_reload_regs): Don't set byte offset when
+	resolving subregs of hard regs.
+
+2006-12-09  Zack Weinberg  <zackw@panix.com>
+
+	* c-opts.c (c_common_parse_file): Unconditionally give a warning,
+	suitable for the language, if set_yydebug is true.
+	* c-pragma.h: Define enum pragma_omp_clause here.  Don't define
+	YYDEBUG or declare yydebug.
+	* c-parser.c (yydebug, enum pragma_omp_clause): Delete.
+
 2006-12-09  Jan Hubicka  <jh@suse.cz>
 
 	* cgraph.c: Update copyright.
@@ -104,18 +139,18 @@
 2006-12-08  Andrew MacLeod  <amacleod@redhat.com>
 
 	* Makefile.in: Add new file tree-ssa-ter.c.
-	* tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, 
-	free_temp_expr_table, add_value_to_version_list, 
-	add_value_to_partition_list, remove_value_from_partition_list, 
-	add_dependence, check_replaceable, finish_expr, mark_replaceable, 
-	kill_expr, kill_virtual_exprs, find_replaceable_in_bb, 
+	* tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
+	free_temp_expr_table, add_value_to_version_list,
+	add_value_to_partition_list, remove_value_from_partition_list,
+	add_dependence, check_replaceable, finish_expr, mark_replaceable,
+	kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
 	find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
 	* tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
 	prototypes.
 	* tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
 	(struct value_expr_d): Remove.
 	(struct temp_expr_table_d): Rename fields, add explicit vector of
-	replaceable expressions instead of sharing.  Change value_expr_p's to 
+	replaceable expressions instead of sharing.  Change value_expr_p's to
 	bitmap.  Delete free_list.
 	(new_temp_expr_table): Rename fields, count number of ssa_names in
 	each partition.
@@ -131,7 +166,7 @@
 	partition list, free the bitmap if it is empty.
 	(add_dependence): Use renamed field, cleanup.  Don't add a dependence
 	on partitions with only one member.
-	(is_replaceable_p): New.  Split out replaceability check from 
+	(is_replaceable_p): New.  Split out replaceability check from
 	check_replaceable.
 	(process_replaceable): New.  Code split from check_replaceable.
 	(check_replaceable): Removed.
@@ -208,7 +243,7 @@
 	(struct gcc_target): Add record_gcc_switches and
 	record_gcc_switches_section fields.
 	* target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
-        default definition.
+	default definition.
 	(TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
 	definition.
 	* toplev.c (print_single_switch): Simplify by providing a
@@ -218,9 +253,9 @@
 	(print_to_asm_out_file): New function.
 	(print_to_stderr): New function.
 	(init_asm_output): If flag_record_gcc_switches is set then if
-        the target supports recording the switches then emit them into
-        the assembler output file, otherwise tell the user that the
-        switch is not supported.
+	the target supports recording the switches then emit them into
+	the assembler output file, otherwise tell the user that the
+	switch is not supported.
 	* varasm.c (eld_record_gcc_switches): New function.  Example
 	handler for the record_gcc_switches target hook.
 	* doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2006-12-08 10:37:53.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2006-12-10 11:37:41.000000000 +0000
@@ -1,3 +1,7 @@
+2006-12-09  Zack Weinberg  <zackw@panix.com>
+
+	* parser.c (yydebug, enum pragma_omp_clause): Delete.
+
 2006-12-07  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/29732
@@ -11,10 +15,10 @@
 
 2006-12-07  Lee Millward  <lee.millward@codesourcery.com>
 
-        PR c++/29980
-        * cp_parser_elaborated_type_specifier: Check
-        the return value of check_elaborated_type_specifier.
-	
+	PR c++/29980
+	* cp_parser_elaborated_type_specifier: Check
+	the return value of check_elaborated_type_specifier.
+
 2006-12-06  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/29730
@@ -37,7 +41,7 @@
 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
 
 	Merge from gimple-tuples-branch.
-	
+
 	2006-10-05  Aldy Hernandez  <aldyh@redhat.com>
 
 	* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
@@ -47,7 +51,7 @@
 
 	2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
 
-        * cp-tree.h (union lang_tree_node): Gimple statements do not
+	* cp-tree.h (union lang_tree_node): Gimple statements do not
 	have a TREE_CHAIN.
 	(TREE_INDIRECT_USING): Look in base.
 
@@ -71,7 +75,7 @@
 	Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
 
 2006-12-03  Richard Henderson  <rth@redhat.com>
-            Andrew Pinski  <pinskia@gmail.com>
+	    Andrew Pinski  <pinskia@gmail.com>
 
 	PR C++/14329
 	* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
@@ -93,8 +97,8 @@
 	(start_preparsed_function): Define and document value of
 	DECL_INITIAL before and after routine.
 	(finish_function): Check DECL_INITIAL invariant.
-	* parser.c 
-	(cp_parser_function_definition_from_specifiers_and_declarator): 
+	* parser.c
+	(cp_parser_function_definition_from_specifiers_and_declarator):
 	Skip duplicate function definitions.
 
 2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
@@ -123,7 +127,7 @@
 	* rtti.c (get_tinfo_decl): Handle return value from
 	pushdecl_top_level_and_finish.
 
-2006-11-29  Lee Millward  <lee.millward@codesourcery.com> 
+2006-11-29  Lee Millward  <lee.millward@codesourcery.com>
 
 	PR c++/29022
 	* parser.c (cp_parser_class_head): Move processing
@@ -131,7 +135,7 @@
 	(cp_parser_class_specifier) ...here. Take an extra
 	tree* parameter for any base classes. Only process
 	them if the opening brace was found.
-	
+
 2006-11-28  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c++/29735
@@ -160,29 +164,29 @@
 
 2006-11-21      Douglas Gregor <doug.gregor@gmail.com>
 
-        * cp-tree.def (STATIC_ASSERT): New.  
+	* cp-tree.def (STATIC_ASSERT): New.
 	* cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
 	* error.c (dump_decl): Handle STATIC_ASSERT.
 	* cp-tree.h (STATIC_ASSERT_CONDITION): New.
-        (STATIC_ASSERT_MESSAGE): New.
+	(STATIC_ASSERT_MESSAGE): New.
 	(STATIC_ASSERT_SOURCE_LOCATION): New.
 	(struct tree_static_assert): New.
 	(enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
 	(union lang_tree_node): Add static_assertion.
-        (finish_static_assert): Declare.
+	(finish_static_assert): Declare.
 	* cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
 	(pp_cxx_declaration): Handle STATIC_ASSERT.
 	* pt.c (instantiate_class_template): Handle
 	STATIC_ASSERT members.
-        (tsubst_expr): Handle STATIC_ASSERT statements.  
+	(tsubst_expr): Handle STATIC_ASSERT statements.
 	* semantics.c (finish_static_assert): New.
-        * lex.c (D_CPP0X): New.
-        (reswords): Add static_assert keyword.
-        (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
-        * parser.c (cp_parser_block_declaration): Parse static
+	* lex.c (D_CPP0X): New.
+	(reswords): Add static_assert keyword.
+	(init_reswords): If not flag_cpp0x, mask out C++0x keywords.
+	* parser.c (cp_parser_block_declaration): Parse static
 	assertions.
-        (cp_parser_static_assert): New.
-        (cp_parser_member_declaration): Parse static assertions.
+	(cp_parser_static_assert): New.
+	(cp_parser_member_declaration): Parse static assertions.
 
 2006-11-21  Jakub Jelinek  <jakub@redhat.com>
 
@@ -207,7 +211,7 @@
 	perform_or_defer_access_check.
 	* class.c (alter_access, resolve_address_of_overloaded_function):
 	Likewise.
-	* decl.c (make_typename_type, make_unbound_class_template): Likewise. 
+	* decl.c (make_typename_type, make_unbound_class_template): Likewise.
 	* search.c (lookup_member): Likewise.
 	* friend.c (add_friend): Likewise.
 	* parser.c (cp_parser_template_id,
@@ -221,7 +225,7 @@
 	(build_op_delete_call): Adjusted the call to
 	perform_or_defer_access_check.
 	(build_over_call): Likewise.
-	
+
 2006-11-16  Dirk Mueller  <dmueller@suse.de>
 
 	* name-lookup.c (begin_scope): Use GGC_CNEW instead of
@@ -319,7 +323,7 @@
 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
 	PR C++/29295
-	* typeck.c (build_unary_op): Use same_type_p when comparing to 
+	* typeck.c (build_unary_op): Use same_type_p when comparing to
 	boolean type.
 
 2006-10-29  Dirk Mueller  <dmueller@suse.de>
@@ -349,27 +353,27 @@
 	* rtti.c (tinfo_base_init): The type info string is always global.
 
 2006-10-20  Lee Millward  <lee.millward@codesourcery.com>
-            Mark Mitchell <mark@codesourcery.com>
+	    Mark Mitchell <mark@codesourcery.com>
+
+	PR c++/28053
+	* decl2.c (grokbitfield): Detect invalid non-integral
+	types earlier when possible.
 
-        PR c++/28053
-        * decl2.c (grokbitfield): Detect invalid non-integral 
-        types earlier when possible.
-	
 2006-10-18  Mark Shinwell  <shinwell@codesourcery.com>
 
 	PR c++/26884
 	* typeck2.c (digest_init): Raise error upon attempts to
 	initialize arrays with variables.
 
-2006-10-17  Lee Millward  <lee.millward@codesourcery.com> 
+2006-10-17  Lee Millward  <lee.millward@codesourcery.com>
+
+	PR c++/27952
+	* cp-tree.h (xref_basetypes): Return bool instead of void.
+	* decl.c (xref_basetypes): Adjust definition. Return false
+	if the class bases are invalid.
+	* parser.c (cp_parser_class_head): Check the return value
+	from xref_basetypes.
 
-        PR c++/27952
-        * cp-tree.h (xref_basetypes): Return bool instead of void.
-        * decl.c (xref_basetypes): Adjust definition. Return false
-        if the class bases are invalid.
-        * parser.c (cp_parser_class_head): Check the return value
-        from xref_basetypes.
-	
 2006-10-17  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/28261
@@ -443,7 +447,7 @@
        set the type to error_mark_node.
        (grokdeclarator): Check the return type of check_var_type.
        * class.c (finish_struct_1): Robustify.
-	
+
 2006-10-11  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/29175
@@ -453,17 +457,17 @@
 2006-10-11  Lee Millward  <lee.millward@codesourcery.com>
 
 	PR c++/29024
-        * cp-tree (struct cp_decl_specifier_seq): Rename to 
-        conflicting_specifiers_p
-        * parser.c (cp_parser_set_storage_class): Set
-        conflicting_specifiers_p for the input decl specifier 
-        if a typedef specifier is present. Rename uses of
-        multiple_specifiers_p to conflicting_specifiers_p.
-        (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage 
-        class specifier has already been set for this declaration, 
-        set conflicting_specifiers_p to true on the decl_specs.
-        * decl.c (grokdeclarator): Rename uses of
-        multiple_specifiers_p to conflicting_specifiers_p.
+	* cp-tree (struct cp_decl_specifier_seq): Rename to
+	conflicting_specifiers_p
+	* parser.c (cp_parser_set_storage_class): Set
+	conflicting_specifiers_p for the input decl specifier
+	if a typedef specifier is present. Rename uses of
+	multiple_specifiers_p to conflicting_specifiers_p.
+	(cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
+	class specifier has already been set for this declaration,
+	set conflicting_specifiers_p to true on the decl_specs.
+	* decl.c (grokdeclarator): Rename uses of
+	multiple_specifiers_p to conflicting_specifiers_p.
 
 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
 
@@ -524,31 +528,31 @@
 	PR c++/29080
 	* parser.c (cp_parser_postfix_dot_deref_expression): Use
 	BASELINK_ACCESS_BINFO as the qualifying scope when calling
-	adjust_result_of_qualified_name_lookup. 
+	adjust_result_of_qualified_name_lookup.
 
 2006-09-25  Lee Millward  <lee.millward@codesourcery.com>
 
-        PR c++/27329
-        PR c++/26938
-        * cp-tree.h (redeclare_class_template): Adjust declaration
-        to return bool instead of void.
-        * pt.c (redeclare_class_template): Update definition.
+	PR c++/27329
+	PR c++/26938
+	* cp-tree.h (redeclare_class_template): Adjust declaration
+	to return bool instead of void.
+	* pt.c (redeclare_class_template): Update definition.
 	Return false on error.
-        * decl.c (xref_tag): Return error_mark_node if
+	* decl.c (xref_tag): Return error_mark_node if
 	redeclare_class_template returned false.
 
 	PR c++/27667
-        * cp-tree.h (begin_specialization): Return bool 
+	* cp-tree.h (begin_specialization): Return bool
 	instead of void.
-        * pt.c (check_specialization_scope): Likwise. 
-	Adjust comment. Return false if a specialization 
+	* pt.c (check_specialization_scope): Likwise.
+	Adjust comment. Return false if a specialization
 	isn't permitted in the current scope.
-        (begin_specialization): Use the return value of  
-        check_specialization_scope.
-        * parser.c (cp_parser_explicit_specialization): If
-        begin_specialization returned false, skip the rest 
+	(begin_specialization): Use the return value of
+	check_specialization_scope.
+	* parser.c (cp_parser_explicit_specialization): If
+	begin_specialization returned false, skip the rest
 	of the specialization.
-	
+
 2006-09-21  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/29016
@@ -559,12 +563,12 @@
 
 	PR c++/28861
 	* decl.c (shadow_tag): Return error_mark_node
-        if maybe_process_partial_specialization failed.
+	if maybe_process_partial_specialization failed.
 
 	PR c++/28303
-        * decl.c (grokdeclarator): Return error_mark_node on
-        declaration with two or more data types.
-	
+	* decl.c (grokdeclarator): Return error_mark_node on
+	declaration with two or more data types.
+
 2006-09-20  Danny Smith  <dannysmith@users.sourceforge.net>
 
 	PR target/27650
@@ -660,7 +664,7 @@
 	* tree.c (build_cplus_new): Set it.
 
 	PR c++/26696
-	* cvt.c (convert_to_void): Replace a subexpression with no side 
+	* cvt.c (convert_to_void): Replace a subexpression with no side
 	effects with void_zero_node.
 	* tree.c (is_overloaded_fn): Look through COMPONENT_REF.
 	(get_first_fn): Ditto.
@@ -673,13 +677,13 @@
 	where the name is a type used incorrectly.
 
 	PR c++/26671
-	* typeck.c (maybe_warn_about_returning_address_of_local): Look 
-	through COMPONENT_REF and ARRAY_REF.	
+	* typeck.c (maybe_warn_about_returning_address_of_local): Look
+	through COMPONENT_REF and ARRAY_REF.
 
 	PR c++/26102
 	* name-lookup.c (do_class_using_decl): Try to find the base even
 	if bases_dependent_p.
-	* pt.c (type_dependent_expression_p): A USING_DECL is dependent.	
+	* pt.c (type_dependent_expression_p): A USING_DECL is dependent.
 
 	PR c++/19809
 	* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
@@ -756,7 +760,7 @@
 	fields can't be packed.
 
 	PR c++/26577
-	* cvt.c (convert_to_void): Don't automatically load from volatiles 
+	* cvt.c (convert_to_void): Don't automatically load from volatiles
 	of TREE_ADDRESSABLE type.
 
 2006-08-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
@@ -777,13 +781,13 @@
 	specialization-after-instantiation.
 	* decl2.c (mark_used): Mark the main function used when one of its
 	clones is used.
-	
+
 2006-08-27  Lee Millward  <lee.millward@codesourcery.com>
 
 	PR c++/26573
 	* class.c (check_field_decls): Don't issue error about
 	local classes containing static data members.
-	
+
 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
 
 	PR c++/24009
@@ -808,7 +812,7 @@
 	parameters, return 1 if either is error_mark_node.
 	(current_template_args): Robustify.
 	(redeclare_class_template): Likewise.
-	
+
 2006-08-26  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/28588
@@ -874,7 +878,7 @@
 2006-08-23  Jason Merrill  <jason@redhat.com>
 
 	PR c++/27714
-	* pt.c (push_template_decl_real): A friend template with class 
+	* pt.c (push_template_decl_real): A friend template with class
 	scope isn't primary.
 
 2006-08-23  Benjamin Smedberg <benjamin@smedbergs.us>
@@ -886,7 +890,7 @@
 2006-08-22  Jason Merrill  <jason@redhat.com>
 
 	PR c++/23372
-	* call.c (build_over_call): Don't make a copy here if build_call 
+	* call.c (build_over_call): Don't make a copy here if build_call
 	will make one too.
 
 2006-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
@@ -905,7 +909,7 @@
 2006-08-22  Jason Merrill  <jason@redhat.com>
 
 	PR c++/28659
-	* typeck.c (merge_types): If either of the types have the right 
+	* typeck.c (merge_types): If either of the types have the right
 	attributes, return that one.
 
 	* tree.c (cp_build_type_attribute_variant): Make sure we aren't
@@ -936,7 +940,7 @@
 	PR c++/28741
 	* tree.c (decl_anon_ns_mem_p): Robustify.
 	* decl2.c (determine_visibility): Likewise.
-	
+
 2006-08-20  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/28341
@@ -967,7 +971,7 @@
 
 	PR c++/28346
 	* pt.c (tsubst_qualified_id): Do not strip references from
-	OFFSET_REFs. 
+	OFFSET_REFs.
 
 2006-08-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
@@ -1010,7 +1014,7 @@
 
 	PR c++/28594
 	* pt.c (process_template_parm): Robustify.
-	
+
 2006-08-14  Steve Ellcey  <sje@cup.hp.com>
 
 	PR c++/28288
@@ -1043,13 +1047,13 @@
 
 	PR c++/28641
 	* pt.c (type_unification_real): Robustify.
-	
+
 2006-08-03  Lee Millward  <lee.millward@codesourcery.com>
 
 	PR c++/28347
 	* decl.c (start_decl): Return error_mark_node if a
 	diagnostic was issed for an invalid typedef initialization.
-	
+
 2006-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
 	PR c++/27508
@@ -1126,7 +1130,7 @@
 	(mangle_class_name_for_template): Likewise.
 	(tsubst_template_parms): Likewise.
 	* error.c (dump_template_argument_list): Likewise.
-	
+
 2006-07-28  Kazu Hirata  <kazu@codesourcery.com>
 
 	* cp-tree.h: Fix a comment typo.
@@ -1184,15 +1188,15 @@
 	* tree.c (decl_linkage): Only return lk_external if it's set.
 
 	PR c++/28409
-	* decl2.c (constrain_visibility): Ignore the anonymous namespace 
+	* decl2.c (constrain_visibility): Ignore the anonymous namespace
 	for extern "C" decls.
 	(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
 
-	* decl2.c (constrain_visibility): Remove specified and reason 
+	* decl2.c (constrain_visibility): Remove specified and reason
 	parameters.  Don't touch decls that already have explicit visibility.
-	(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from 
+	(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
 	template.
-	(determine_visibility_from_class): Reverse sense of 
+	(determine_visibility_from_class): Reverse sense of
 	DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
 	(constrain_class_visibility): Only complain about member visibility
 	if the member type is another class.  Don't change visibility of the
@@ -1229,7 +1233,7 @@
 	PR c++/28260
 	* decl.c (duplicate_decls): Return error_mark_node
 	on ambiguous declaration.
-	
+
 2006-07-18  Steve Ellcey  <sje@cup.hp.com>
 
 	PR c++/27495
@@ -1269,13 +1273,13 @@
 	* decl2.c (acceptable_java_type): Robustify. Use
 	proper Boolean return type instead of return 1.
 	(check_java_method): Don't issue error about
-	type not being an acceptable Java parameter if 
+	type not being an acceptable Java parameter if
 	it's error_mark_node.
-	
+
 	PR c++/28269
 	* parser.c (cp_parser_elaborated_type_specifier):
 	Return early if an invalid type was detected.
-	
+
 2006-07-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
 	PR c++/28249
@@ -1319,7 +1323,7 @@
 	* decl.c (define_label): Return error_mark_node on error.
 	* semantics.c (finish_label_stmt): Don't call
 	add_stmt for invalid labels.
-	
+
 2006-07-06  Jason Merrill  <jason@redhat.com>
 
 	PR c++/28279
@@ -1347,13 +1351,13 @@
 2006-07-01  Jason Merrill  <jason@redhat.com>
 
 	PR c++/28215
-	* method.c (make_thunk): Unset DECL_USE_TEMPLATE and 
+	* method.c (make_thunk): Unset DECL_USE_TEMPLATE and
 	DECL_TEMPLATE_INFO.
 
 2006-06-30  Jason Merrill  <jason@redhat.com>
 
 	PR c++/26577
-	* call.c (build_new_method_call): Force evaluation of the 
+	* call.c (build_new_method_call): Force evaluation of the
 	instance pointer, not the object.
 
 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
@@ -1363,7 +1367,7 @@
 2006-06-30  Jason Merrill  <jason@redhat.com>
 
 	PR c++/18698
-	* decl2.c (grokfield): Only try to treat the decl as an access 
+	* decl2.c (grokfield): Only try to treat the decl as an access
 	declaration if the scope is a class.
 
 2006-06-29  Jason Merrill  <jason@redhat.com>
@@ -1417,7 +1421,7 @@
 2006-06-28  Jason Merrill  <jason@redhat.com>
 
 	PR c++/27424
-	* pt.c (convert_template_argument): Pass all template arguments 
+	* pt.c (convert_template_argument): Pass all template arguments
 	on to coerce_template_template_parms.
 
 2006-06-25  Lee Millward  <lee.millward@gmail.com>
@@ -1428,7 +1432,7 @@
 	returning NULL_TREE, instead check for error_mark_node
 	to indicate failure.
 	* decl.c (grokdeclarator): Adjust block comment.
-	
+
 2006-06-25  Lee Millward  <lee.millward@gmail.com>
 
 	PR c++/28051
@@ -1436,7 +1440,7 @@
 	invalid types.
 	* name-lookup.c (push_class_level_binding): Robustify.
 	(do_class_using_decl): Return early if name is error_mark_node.
-	
+
 2006-06-23  Steve Ellcey  <sje@cup.hp.com>
 
 	PR c++/28114
@@ -1472,7 +1476,7 @@
 	PR c++/27821
 	* decl.c (grokdeclarator): Return error_mark_node on
 	invalid uses of the scope resolution operator.
-	
+
 2006-06-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
 
 	PR c++/28111


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]