A recent patch increased GCC's memory consumption in some cases!

gcctest@suse.de gcctest@suse.de
Wed May 9 10:19:00 GMT 2007


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: 7413k -> 7492k
    Peak memory use before GGC: 2324k
    Peak memory use after GGC: 1997k
    Maximum of released memory in single GGC run: 327k
    Garbage: 479k -> 480k
    Leak: 2374k
    Overhead: 516k -> 516k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 7429k -> 7508k
    Peak memory use before GGC: 2352k
    Peak memory use after GGC: 2025k
    Maximum of released memory in single GGC run: 327k
    Garbage: 482k -> 482k
    Leak: 2407k
    Overhead: 521k -> 521k
    GGC runs: 3

comparing empty function compilation at -O1 level:
    Overall memory needed: 7517k -> 7532k
    Peak memory use before GGC: 2324k
    Peak memory use after GGC: 1997k
    Maximum of released memory in single GGC run: 327k
    Garbage: 485k -> 485k
    Leak: 2376k
    Overhead: 517k -> 517k
    GGC runs: 3

comparing empty function compilation at -O2 level:
    Overall memory needed: 7525k -> 7560k
    Peak memory use before GGC: 2325k
    Peak memory use after GGC: 1997k
    Maximum of released memory in single GGC run: 328k
    Garbage: 488k -> 488k
    Leak: 2376k
    Overhead: 517k -> 517k
    GGC runs: 4

comparing empty function compilation at -O3 level:
    Overall memory needed: 7525k -> 7560k
    Peak memory use before GGC: 2325k
    Peak memory use after GGC: 1997k
    Maximum of released memory in single GGC run: 328k
    Garbage: 488k -> 488k
    Leak: 2376k
    Overhead: 517k -> 517k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 17673k to 22416k, overall 26.84%
  Amount of produced GGC garbage increased from 37683k to 38397k, overall 1.89%
    Overall memory needed: 17673k -> 22416k
    Peak memory use before GGC: 9015k -> 9018k
    Peak memory use after GGC: 8255k -> 8231k
    Maximum of released memory in single GGC run: 1874k -> 1595k
    Garbage: 37683k -> 38397k
    Leak: 7000k -> 7000k
    Overhead: 4753k -> 4988k
    GGC runs: 279 -> 280

comparing combine.c compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 19569k to 24332k, overall 24.34%
  Peak amount of GGC memory still allocated after garbage collecting increased from 9975k to 9990k, overall 0.15%
  Amount of produced GGC garbage increased from 38050k to 38747k, overall 1.83%
    Overall memory needed: 19569k -> 24332k
    Peak memory use before GGC: 10751k -> 10757k
    Peak memory use after GGC: 9975k -> 9990k
    Maximum of released memory in single GGC run: 1558k -> 1891k
    Garbage: 38050k -> 38747k
    Leak: 9884k -> 9892k
    Overhead: 5460k -> 5694k
    GGC runs: 270 -> 272

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 29989k to 35296k, overall 17.70%
  Amount of produced GGC garbage increased from 52532k to 53953k, overall 2.70%
    Overall memory needed: 29989k -> 35296k
    Peak memory use before GGC: 17844k -> 17829k
    Peak memory use after GGC: 17651k
    Maximum of released memory in single GGC run: 1450k -> 1344k
    Garbage: 52532k -> 53953k
    Leak: 7051k -> 7051k
    Overhead: 5910k -> 6222k
    GGC runs: 357 -> 362

comparing combine.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 34341k to 37080k, overall 7.98%
  Amount of produced GGC garbage increased from 69075k to 70449k, overall 1.99%
    Overall memory needed: 34341k -> 37080k
    Peak memory use before GGC: 17874k
    Peak memory use after GGC: 17667k
    Maximum of released memory in single GGC run: 1392k -> 1366k
    Garbage: 69075k -> 70449k
    Leak: 7167k -> 7171k
    Overhead: 7992k -> 8318k
    GGC runs: 414 -> 420

comparing combine.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 40693k to 43600k, overall 7.14%
  Amount of produced GGC garbage increased from 94384k to 96008k, overall 1.72%
  Amount of memory still referenced at the end of compilation increased from 7272k to 7279k, overall 0.10%
    Overall memory needed: 40693k -> 43600k
    Peak memory use before GGC: 18146k
    Peak memory use after GGC: 17822k
    Maximum of released memory in single GGC run: 3636k
    Garbage: 94384k -> 96008k
    Leak: 7272k -> 7279k
    Overhead: 11263k -> 11660k
    GGC runs: 443 -> 449

comparing insn-attrtab.c compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 92885k to 140888k, overall 51.68%
  Peak amount of GGC memory allocated before garbage collecting increased from 58836k to 59786k, overall 1.61%
  Amount of produced GGC garbage increased from 129388k to 132107k, overall 2.10%
    Overall memory needed: 92885k -> 140888k
    Peak memory use before GGC: 58836k -> 59786k
    Peak memory use after GGC: 33331k -> 32792k
    Maximum of released memory in single GGC run: 33675k -> 34625k
    Garbage: 129388k -> 132107k
    Leak: 9612k -> 9582k
    Overhead: 13888k -> 14379k
    GGC runs: 216 -> 220

comparing insn-attrtab.c compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 94117k to 142140k, overall 51.02%
  Peak amount of GGC memory allocated before garbage collecting increased from 59998k to 60948k, overall 1.58%
  Amount of produced GGC garbage increased from 129349k to 132072k, overall 2.10%
    Overall memory needed: 94117k -> 142140k
    Peak memory use before GGC: 59998k -> 60948k
    Peak memory use after GGC: 34492k -> 33953k
    Maximum of released memory in single GGC run: 33676k -> 34626k
    Garbage: 129349k -> 132072k
    Leak: 11544k
    Overhead: 14285k -> 14776k
    GGC runs: 213 -> 218

comparing insn-attrtab.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 110189k to 153780k, overall 39.56%
  Amount of produced GGC garbage increased from 233014k to 237316k, overall 1.85%
    Overall memory needed: 110189k -> 153780k
    Peak memory use before GGC: 63393k -> 63440k
    Peak memory use after GGC: 60767k -> 60815k
    Maximum of released memory in single GGC run: 24882k -> 24426k
    Garbage: 233014k -> 237316k
    Leak: 9731k -> 9732k
    Overhead: 26089k -> 26779k
    GGC runs: 244 -> 249

comparing insn-attrtab.c compilation at -O2 level:
  Amount of produced GGC garbage increased from 269022k to 271019k, overall 0.74%
    Overall memory needed: 169409k -> 167968k
    Peak memory use before GGC: 63528k -> 63584k
    Peak memory use after GGC: 61065k -> 61114k
    Maximum of released memory in single GGC run: 21237k -> 23381k
    Garbage: 269022k -> 271019k
    Leak: 9724k -> 9725k
    Overhead: 31664k -> 32152k
    GGC runs: 266 -> 273

comparing insn-attrtab.c compilation at -O3 level:
  Amount of produced GGC garbage increased from 300278k to 302287k, overall 0.67%
    Overall memory needed: 182245k -> 178480k
    Peak memory use before GGC: 75550k -> 75615k
    Peak memory use after GGC: 71470k -> 71528k
    Maximum of released memory in single GGC run: 21971k -> 25685k
    Garbage: 300278k -> 302287k
    Leak: 9728k -> 9729k
    Overhead: 32921k -> 33409k
    GGC runs: 267 -> 276

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 145895k to 153928k, overall 5.51%
  Amount of produced GGC garbage increased from 207126k to 209084k, overall 0.95%
    Overall memory needed: 145895k -> 153928k
    Peak memory use before GGC: 89180k -> 89181k
    Peak memory use after GGC: 88297k -> 88298k
    Maximum of released memory in single GGC run: 18129k
    Garbage: 207126k -> 209084k
    Leak: 51176k -> 51182k
    Overhead: 23513k -> 24300k
    GGC runs: 409 -> 411

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 163559k to 174140k, overall 6.47%
  Amount of produced GGC garbage increased from 212809k to 214778k, overall 0.93%
    Overall memory needed: 163559k -> 174140k
    Peak memory use before GGC: 101737k -> 101738k
    Peak memory use after GGC: 100729k -> 100730k
    Maximum of released memory in single GGC run: 18434k
    Garbage: 212809k -> 214778k
    Leak: 74491k -> 74497k
    Overhead: 29409k -> 30197k
    GGC runs: 381 -> 383

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 141608k to 150328k, overall 6.16%
  Amount of produced GGC garbage increased from 342093k to 345357k, overall 0.95%
    Overall memory needed: 141608k -> 150328k
    Peak memory use before GGC: 100515k -> 100526k
    Peak memory use after GGC: 99503k -> 99507k
    Maximum of released memory in single GGC run: 17480k -> 17478k
    Garbage: 342093k -> 345357k
    Leak: 51758k -> 51757k
    Overhead: 30472k -> 31242k
    GGC runs: 527 -> 530

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 147916k to 157800k, overall 6.68%
  Amount of produced GGC garbage increased from 388868k to 391971k, overall 0.80%
    Overall memory needed: 147916k -> 157800k
    Peak memory use before GGC: 101308k -> 101312k
    Peak memory use after GGC: 100304k -> 100302k
    Maximum of released memory in single GGC run: 17477k -> 17475k
    Garbage: 388868k -> 391971k
    Leak: 52844k -> 52844k
    Overhead: 35881k -> 36651k
    GGC runs: 577 -> 578

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 149088k to 160096k, overall 7.38%
  Amount of produced GGC garbage increased from 421793k to 424714k, overall 0.69%
    Overall memory needed: 149088k -> 160096k
    Peak memory use before GGC: 102906k -> 102903k
    Peak memory use after GGC: 101885k -> 101883k
    Maximum of released memory in single GGC run: 17911k -> 17909k
    Garbage: 421793k -> 424714k
    Leak: 53145k -> 53143k
    Overhead: 38426k -> 39165k
    GGC runs: 599 -> 604

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Overall memory allocated via mmap and sbrk increased from 244569k to 344480k, overall 40.85%
  Amount of produced GGC garbage increased from 144428k to 144990k, overall 0.39%
    Overall memory needed: 244569k -> 344480k
    Peak memory use before GGC: 81018k -> 80312k
    Peak memory use after GGC: 58757k -> 58051k
    Maximum of released memory in single GGC run: 44133k -> 43619k
    Garbage: 144428k -> 144990k
    Leak: 7724k -> 7532k
    Overhead: 23300k -> 24697k
    GGC runs: 79 -> 74

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
  Overall memory allocated via mmap and sbrk increased from 245389k to 345272k, overall 40.70%
  Amount of produced GGC garbage increased from 144537k to 145095k, overall 0.39%
    Overall memory needed: 245389k -> 345272k
    Peak memory use before GGC: 81665k -> 80958k
    Peak memory use after GGC: 59403k -> 58697k
    Maximum of released memory in single GGC run: 44122k -> 43608k
    Garbage: 144537k -> 145095k
    Leak: 9492k -> 9300k
    Overhead: 23796k -> 25193k
    GGC runs: 87 -> 83

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 243741k to 305296k, overall 25.25%
  Amount of produced GGC garbage increased from 223287k to 232826k, overall 4.27%
    Overall memory needed: 243741k -> 305296k
    Peak memory use before GGC: 83516k -> 83378k
    Peak memory use after GGC: 74900k
    Maximum of released memory in single GGC run: 39417k
    Garbage: 223287k -> 232826k
    Leak: 20967k -> 20967k
    Overhead: 29202k -> 31896k
    GGC runs: 81

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 264001k to 317504k, overall 20.27%
  Amount of produced GGC garbage increased from 229973k to 240713k, overall 4.67%
    Overall memory needed: 264001k -> 317504k
    Peak memory use before GGC: 79886k
    Peak memory use after GGC: 74900k
    Maximum of released memory in single GGC run: 33022k
    Garbage: 229973k -> 240713k
    Leak: 21057k -> 21057k
    Overhead: 31220k -> 34134k
    GGC runs: 91 -> 92

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Ovarall memory allocated via mmap and sbrk decreased from 1297677k to 1036836k, overall -25.16%
  Amount of produced GGC garbage increased from 363312k to 369016k, overall 1.57%
    Overall memory needed: 1297677k -> 1036836k
    Peak memory use before GGC: 190659k
    Peak memory use after GGC: 178175k
    Maximum of released memory in single GGC run: 80667k -> 80835k
    Garbage: 363312k -> 369016k
    Leak: 46424k -> 46424k
    Overhead: 43892k -> 46339k
    GGC runs: 72 -> 74

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-05-08 15:38:34.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2007-05-08 21:27:25.000000000 +0000
@@ -1,329 +1,6 @@
-2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
-
-	PR 31847
-	* tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
-	dumps.
-
-2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
-            Nigel Stephens  <nigel@mips.com>
-
-	* config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
-	Update comments and all uses.
-	(MIN_FPRS_PER_FMT): Define.
-	* config/mips/mips.c (function_arg): Fix to correctly handle
-	the -mips32r2 -mfp64 -mabi=32 case.
-	(override_options): Enable use of odd-numbered registers for
-	SFmode values on MIPS32.
-	(mips_save_reg_p): Save whole floating-point register pair if
-	either half is used.
-	(compute_frame_size): Fix comment.
-
-2007-05-08  Jie Zhang  <jie.zhang@analog.com>
-
-	* config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
-	argument of type bool.
-	* config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
-	argument. Safely select temporary P register according to it.
-	(do_link): Change call site of add_to_reg accordingly.
-	(do_unlink): Add epilogue_p as a fourth argument and pass it
-	to add_to_reg.
-	(expand_interrupt_handler_epilogue): Change call of do_unlink
-	accordingly.
-	(bfin_expand_prologue): Add a third argument sibcall_p.
-	* config/bfin/bfin.md (epilogue): Change call of
-	bfin_expand_epilogue accordingly.
-	(sibcall_epilogue): Likewise.
-	(eh_return_internal): Likewise.
-		
-	* config/bfin/bfin-protos.h (enum bfin_cpu): Add
-	BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
-	* config/bfin/bfin.c (bfin_handle_option): Handle
-	-mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
-	* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
-	Support bf534, bf536 and bf561.
-	* doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
-
-2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
-
-	PR target/31854
-	* config/i386/i386.c (ix86_function_regparm): Process local
-	functions only when TREE_CODE (decl) equals FUNCTION_DECL.
-	
-2007-05-07  Mike Stump  <mrs@apple.com>
-
-	* doc/invoke.texi (Warning Options): Document that -Wempty-body
-	also checks for and while statements in C++.
-
-2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
-
-	* gcc.c (at_file_supplied): New variable.
-	(main): Set it if we expanded argv.
-	(do_spec_1): Pass an @-file to the linker if we were called with
-	an @-file argument and HAVE_GNU_LD.
-	* collect2.c (at_file_supplied): New variable.
-	(response_file): New variable.
-	(collect_exit): Unlink response_file if necessary.
-	(handler): Likewise.
-	(do_wait): Likewise.
-	(main): Set at_file_supplied if we expanded argv.
-	(collect_execute): Pass an @-file to subprocesses if we were called
-	with an @-file argument.
-	* configure.ac: Add define for HAVE_GNU_LD.
-	* configure: Regenerate.
-	* config.in: Regenerate.
-
-2007-05-07   Naveen.H.S  <naveen.hs@kpitcummins.com>
-
-	* config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
-	operand to HI mode.
-	(mulsi3): New.
-	(divsi3): New.
-	(udivsi3): New.
-
-2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
-
-	* config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
-	(TARGET_ENCODE_SECTION_INFO): Re-define.
-	(m32c_encode_section_info): New
-	(function_vector_handler): New
-	(current_function_special_page_vector): New
-	(m32c_special_page_vector_p): New.
-	* config/m32c/m32c-protos.h (m32c_special_page_vector_p): 
-	Prototype.
-	* config/m32c/jump.md: Added instruction JSRS for functions 
-	with attribute "function_vector".
-	* doc/extend.texi (function_vector): Added description 
-	for M16C, M32C targets.
-
-2007-05-07  DJ Delorie  <dj@redhat.com>
-
-	PR 31794
-	* config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
-	ashrpsi3, lshrpsi3): Update shift count constraint.
-
-2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
-	    Nathan Froyd  <froydnj@codesourcery.com>
-
-	PR 22133
-	* c-incpath.c (add_path): Strip trailing path separators.
-
-2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
-
-	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
-	Free dominance info before purging EH edges.
-	(eliminate_degenerate_phis): Likewise.
-	(propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
-
-2007-05-07  Jan Hubicka  <jh@suse.cz>
-
-	* gimplify.c (gimplify_expr): Do not crash when folding
-	(void *)(int)&a + 4.
-
-2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
-
-	PR driver/31694
-	* c-opts.c (lang_fortran): Make it non static.
-	* c-common.h (lang_fortran): New prototype.
-	* c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
-	-lang-fortran option was passed by the driver.
-
-2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
-
-	* timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
-	of ASSERT_CHECKING.  Tweak message.
-
-2007-05-06  Revital Eres  <eres@il.ibm.com>
-
-	PR 30957
-	* loop-unroll.c (insert_var_expansion_initialization):
-	Initialize the expansions with -zero instead of +zero.
-
-2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
-
-	* config/pa/pa.md: Split tgd_load, tld_load and tie_load
-	into pic and non-pic versions. Mark r19 as used for 
-	tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used 
-	for tgd_load, tld_load and tie_load .
-	* config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
-	version of tgd_load, tld_load and tie_load depending on the 
-	value of flag_pic.
-
-2007-05-04  Ulrich Drepper  <drepper@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
-	(__do_global_dtors_aux): Use more paranoid loop to run
-	destructors if HIDDEN_DTOR_LIST_END.
-	(__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
-
-2007-05-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* varasm.c (align_variable): Don't increase alignment for
-	DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
-	DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
-
-2007-05-04  Josh Conner  <jconner@apple.com>
-
-	* basic-block.h (cdi_direction): Assign values to all enumeration
-	constants.
-	(dom_computed): Remove.
-	(dom_info_state): New.
-	(set_dom_info_availability): New.
-	* tree-ssa-loop-im.c (determine_invariantness): Initialize
-	walk_data.dom_direction.
-	* cfghooks.c (delete_basic_block): Use dom_info_available_p()
-	instead of dom_computed[].
-	(split_edge): Likewise.
-	(create_basic_block): Likewise.
-	(merge_blocks): Likewise.
-	* ifcvt.c (find_if_header): Likewise.
-	* tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
-	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
-	* tree-ssa.c (verify_ssa): Likewise.
-	* tree-cfg.c (tree_verify_flow_info): Likewise.
-	(remove_edge_and_dominated_blocks): Likewise.
-	* dominance.c (dom_computed): Make static.
-	(calc_dfs_tree_nonrec): Change third param to a bool.
-	(calc_dfs_tree): Change second param to a bool.
-	(calc_idioms): Change second param to a bool.  Use
-	dom_convert_dir_to_idx.
-	(init_dom_info): Validate dir before using.
-	(dom_convert_dir_to_idx): New.
-	(calculate_dominance_info): Use dom_convert_dir_to_idx.  New
-	variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
-	(free_dominance_info): Use dom_convert_dir_to_idx.
-	(get_immediate_dominator): Likewise.
-	(set_immediate_dominator): Likewise.
-	(get_dominated_by): Likewise.
-	(redirect_immediate_dominators): Likewise.
-	(nearest_common_denominator): Likewise.
-	(dominated_by_p): Likewise.
-	(bb_dom_dfs_in): Likewise.
-	(bb_dom_dfs_out): Likewise.
-	(recount_dominator): Likewise.
-	(iterate_fix_dominators): Likewise.
-	(add_to_dominance_info): Likewise.
-	(delete_from_dominance_info): Likewise.
-	(first_dom_son): Likewise.
-	(next_dom_son): Likewise.
-	(dom_info_available_p): Likewise.
-	(dom_info_state): New.
-	(set_dom_info_availability): New.
-
-2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
-
-	* config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
-	Expander removed.
-	("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
-
-2007-05-04  Bob Wilson  <bob.wilson@acm.org>
-	
-	* config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
-	(subdi3, subdi_carry): Delete.
-	
-2007-05-04  Jan Hubicka  <jh@suse.cz>
-	    Richard Guenther  <rguenther@suse.de>
-
-	* opts.c (decode_options): Do not fiddle with inlining
-	parameters in case of optimizing for size.
-	* ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
-	for size do nothing.
-	(cgraph_decide_inlining_of_small_function): When optimizing for
-	size never inline functions increasing caller size.
-	(cgraph_early_inlining): Inline for size when optimizing for size.
-
-2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
-
-	* config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
-	logical operations piecewise.
-	(<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
-	zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
-	subdi_sesidi_di): Delete.
-	(add_with_carry): Produce carry in CC instead of a DREG to shorten
-	the generated sequence.  Allow three-reg add in constraints.  Rewrite
-	the rtl expression for carry to avoid zero_extend of a constant.
-	(sub_with_carry): New pattern.
-	(adddi3, subdi3): Change into define_expand.  For subtract, generate a
-	different sequence not involving jumps.
-	(notbi): Now a named pattern.
-
-2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
-
-	* doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
-	Add the note about a significant loss of accuracy of some
-	mathematical routines when these options are used.
-
-2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
-
-	* haifa-sched.c (rtx_vec_t): New typedef.
-	(contributes_to_priority_p): Extract piece of priority () into new
-	static function.
-	(priority): Use the function.  Add assertion.
-	(rank_for_schedule, set_priorities): Add assertion to check that
-	insn's priority is initialized.
-	(clear_priorities, calc_priorities): Change signature.  Make it update
-	all relevant insns.  Update all callers ('add_to_speculative_block ()'
-	and 'create_block_check_twin ()').
-	* sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
-	Add new field 'priority_status'.
-	(INSN_PRIORITY_STATUS): New macro.
-	(INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
-
-2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
-
-	* sched-ebb.c (debug_ebb_dependencies): New static function.
-	(init_ready_list): Use it.
-
-	* sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
-	with changed signature and 'debug_rgn_dependencies ()'.
-	(debug_rgn_dependencies): New static function.
-	(init_ready_list): Use it.
-	
-	* sched-int.h (debug_dependencies): Declare.
-
-2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
-
-	* libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
-
-2007-05-04  Dirk Mueller  <dmueller@suse.de>
-
-	* c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
-
-2007-05-03  Jan Hubicka  <jh@suse.cz>
-
-	* fold-const.c (fold_unary): Convert (T1)(X op Y) into ((T1)X op (T1)Y),
-	for pointer type in more cases than before.
-
-	* gimplify.c (gimplify_expr): Fold (void *)&a + 4.
-
-	* tree-object-size.c (plus_expr_object_size): When operand size is
-	unknown, return unknown.
-
-2007-05-03  Dirk Mueller  <dmueller@suse.de>
-
-	* doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
-
-	* config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
-	options.
-
-	* config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
-
-2007-05-03  Janis Johnson  <janis187@us.ibm.com>
-
-	* doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
-
-2007-05-03  Joseph Myers  <joseph@codesourcery.com>
-
-	* config/soft-fp/double.h, config/soft-fp/extended.h,
-	config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
-	config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
-	config/soft-fp/op-2.h, config/soft-fp/op-4.h,
-	config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
-	glibc CVS.
-
 2007-05-03  Ian Lance Taylor  <iant@google.com>
 
-	* config/rs6000/rs6000.c (rs6000_override_options): Don't set
+	* config/rs6000/rs6000.c (rs6000_override_options): Don't se
 	MASK_PPC_GFXOPT for 8540 or 8548.
 
 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2007-05-08 13:30:21.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2007-05-08 21:26:36.000000000 +0000
@@ -1,20 +1,3 @@
-2007-05-07  Mike Stump  <mrs@apple.com>
-
-	* parser.c (check_empty_body): Add.
-	(cp_parser_iteration_statement): Add call to check_empty_body.
-
-2007-05-05  Geoffrey Keating  <geoffk@apple.com>
-
-	PR 31775
-	* mangle.c (write_mangled_name): Mangle static variable names.
-	(write_unqualified_name): Use local-source-name for
-	namespace-scope static variables.
-
-2007-05-04  Dirk Mueller  <dmueller@suse.de>
-
-	* cp-tree.h (DECL_MAIN_P): only if -ffreestanding is
-	not in effect.
-
 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
 
 	PR c++/31663
@@ -1104,7 +1087,7 @@
 
 	* pt.c: Fix a comment typo.
 
-2007-01-02  Ian Lance Taylor  <iant@google.com>
+2006-01-02  Ian Lance Taylor  <iant@google.com>
 
 	* semantics.c (maybe_convert_cond): Optionally warn when using an
 	assignment as a condition.
@@ -1164,3 +1147,7019 @@
 	canonical reduced type parameter.
 	(any_template_arguments_need_structural_equality_p): New.
 
+2006-12-31  Simon Martin  <simartin@users.sourceforge.net>
+
+	PR c++/29731
+	* parser.c (cp_parser_primary_expression): Return error_mark_node when
+	a statement-expression is found outside of a function body.
+
+2006-12-28  Kazu Hirata  <kazu@codesourcery.com>
+
+	* cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
+	Remove.
+
+	* decl2.c: Fix a comment typo.
+
+2006-12-21  Andrew Pinski  <pinskia@gmail.com>
+
+	PR C++/30225
+	* decl.c (cxx_builtin_function): Only copy the decl if adding
+	it to the std namespace.
+
+2006-12-21  Andrew Pinski  <pinskia@gmail.com>
+
+	PR C++/30168
+	* optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
+
+2006-12-22  Kazu Hirata  <kazu@codesourcery.com>
+
+	* decl.c: Fix a coment typo.
+
+2006-12-18  Ian Lance Taylor  <iant@google.com>
+
+	* decl.c (start_preparsed_function): Add support for
+	-Wmissing-declarations.
+
+2006-12-16  Simon Martin  <simartin@users.sourceforge.net>
+
+	PR c++/29475
+	* cp-tree.h (struct deferred_access_check): New structure to represent a
+	deferred access check. It replaces the previous representation as a tree.
+	(get_deferred_access_checks): Return a vector of struct
+	deferred_access_check instead of a tree list.
+	(perform_access_checks): Take a vector of struct deferred_access_check
+	instead of a tree list.
+	* semantics.c (struct deferred_access): Store the deferred access checks
+	as a vector of struct deferred_access_check instead of a tree list.
+	(push_deferring_access_checks): Handle the change in struct
+	deferred_access.
+	(get_deferred_access_checks): Likewise.
+	(pop_to_parent_deferring_access_checks): Likewise.
+	(perform_or_defer_access_check): Likewise.
+	(perform_access_checks): Take a vector of struct deferred_access_check
+	instead of a tree list.
+	* parser.c (struct tree_check): New structure to store various data
+	associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
+	(struct cp_token): Changed the value field to be a union with a pointer to
+	a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
+	tokens and a tree field for all other tokens.
+	(eof_token): Adjusted due to the change in struct cp_token.
+	(cp_lexer_get_preprocessor_token): Likewise.
+	(cp_lexer_purge_token): Likewise.
+	(cp_lexer_purge_tokens_after): Likewise.
+	(cp_lexer_print_token): Likewise.
+	(cp_parser_error): Likewise.
+	(cp_parser_identifier): Likewise.
+	(cp_parser_string_literal): Likewise.
+	(cp_parser_primary_expression): Likewise.
+	(cp_parser_unqualified_id): Likewise.
+	(cp_parser_parenthesized_expression_list): Likewise.
+	(cp_parser_storage_class_specifier_opt): Likewise.
+	(cp_parser_function_specifier_opt): Likewise.
+	(cp_parser_type_specifier): Likewise.
+	(cp_parser_simple_type_specifier): Likewise.
+	(cp_parser_initializer_list): Likewise.
+	(cp_parser_member_specification_opt): Likewise.
+	(cp_parser_attribute_list): Likewise.
+	(cp_parser_objc_expression): Likewise.
+	(cp_parser_objc_protocol_qualifiers): Likewise.
+	(cp_parser_objc_selector): Likewise.
+	(cp_parser_objc_declaration): Likewise.
+	(cp_parser_objc_statement): Likewise.
+	(cp_parser_omp_clause_name): Likewise.
+	(cp_parser_omp_clause_default): Likewise.
+	(cp_parser_omp_clause_schedule): Likewise.
+	(cp_parser_omp_parallel): Likewise.
+	(cp_parser_initial_pragma): Likewise.
+	(pragma_lex): Likewise.
+	(cp_parser_pre_parsed_nested_name_specifier): Likewise.
+	(cp_parser_nested_name_specifier_opt): Likewise.
+	Use cp_token::u::tree_check_value to save the token's value, the
+	associated deferred checks and its qualifying scope.
+	(cp_parser_template_id): Likewise.
+	(cp_parser_template_declaration_after_export): Adjusted the call to
+	get_deferred_access_checks.
+	(cp_parser_init_declarator): Take the access checks as a vector of struct
+	deferred_access_check instead of a tree list.
+	(cp_parser_single_declaration): Likewise.
+	(cp_parser_perform_template_parameter_access_checks): Likewise.
+	(cp_parser_simple_declaration): Adjusted the call to
+	cp_parser_init_declarator.
+	(cp_parser_explicit_specialization): Adjusted the call to
+	cp_parser_single_declaration.
+
+2006-12-13  Ian Lance Taylor  <iant@google.com>
+
+	PR c++/19564
+	PR c++/19756
+	* parser.c (cp_parser_expression_stack_entry): Add field
+	lhs_type.
+	(cp_parser_binary_expression): Track tree code of left hand side
+	of expression.  Use it when calling build_x_binary_op.
+	(cp_parser_selection_statement): Add if_p parameter.  Change all
+	callers.  Warn about ambiguous else.
+	(cp_parser_statement): Add if_p parameter.  Change all callers.
+	(cp_parser_implicitly_scoped_statement): Likewise.
+	* typeck.c (build_x_binary_op): Add parameters arg1_code and
+	arg2_code.  Change all callers.  Call warn_about_parentheses.
+	* cp-tree.h (build_x_binary_op): Update declaration.
+
+2006-12-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* decl.c (build_enumerator): Update error message to match C
+	front-end.
+	
+2006-12-11  Jan Hubicka  <jh@suse.cz>
+
+	* decl2.c (var_finalized_p): Update for renamed varpool functions.
+
+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
+	* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
+	(explicit_class_specialization_p): Declare.
+	* pt.c (explicit_class_specialization_p): New function.
+	* parser.c (cp_parser_init_declarator): Check correct number of
+	template parameters for in-class function definitions.
+	(cp_parser_check_declrator_template_parameters): Stop looking for
+	template classes when we find an explicit specialization.
+
+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.
+
+2006-12-06  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29730
+	* parser.c (cp_parser_init_declarator): Reject initialization of
+	functions.
+
+2006-12-05  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29729
+	* decl2.c (check_member_template): Move check for member
+	templates in local classes to ...
+	* parser.c (cp_parser_template_declaration_after_export):
+	... here.
+
+	PR c++/29728
+	* decl.c (check_array_designated_initializer): New function.
+	(maybe_deduce_size_from_array_init): Use it.
+	(reshape_init_array): Likewise.
+
+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.
+	(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
+	(cxx_omp_clause_copy_ctor): Same.
+	(cxx_omp_clause_assign_op): Same.
+
+	2006-09-28  Aldy Hernandez  <aldyh@redhat.com>
+
+	* cp-tree.h (union lang_tree_node): Gimple statements do not
+	have a TREE_CHAIN.
+	(TREE_INDIRECT_USING): Look in base.
+
+2006-12-04  Jan Hubicka  <jh@suse.cz>
+
+	* cp-objcp-common.c (cp_expr_size): Return NULL in the case
+	size is undefined.
+
+2006-12-04  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29733
+	* pt.c (tsubst_decl): Disallow variables of function type.
+
+	PR c++/29632
+	* call.c (add_builtin_candidate): Do not permit NULL pointer
+	constants to be compared with template parameters.
+
+2006-12-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
+	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>
+
+	PR C++/14329
+	* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
+
+2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+	PR C++/30033
+	* decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
+
+2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
+
+	* name-lookup.c: Follow spelling conventions.
+
+2006-12-01  Geoffrey Keating  <geoffk@apple.com>
+
+	* decl.c (poplevel): Check DECL_INITIAL invariant.
+	(duplicate_decls): Preserve DECL_INITIAL when eliminating
+	a new definition in favour of an old declaration.
+	(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):
+	Skip duplicate function definitions.
+
+2006-12-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	PR c++/30022
+	* typeck.c (type_after_usual_arithmetic_conversions):
+	Fix assertion for vector types.
+	(build_binary_op): Use temporary for inner type of vector types.
+
+2006-12-01  Ryan Mansfield  <rmansfield@qnx.com>
+
+	PR c++/29066
+	* typeck.c (build_binary_op):  Fix pointer to member function
+	comparison for ptrmemfunc_vbit_in_delta targets.
+
+2006-12-01  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/18313
+	* decl.c (grokdeclarator): Warn for type qualifiers on return
+	type for non-dependent types.
+	* pt.c (tsubst_function_type): Warn for type qualifiers on
+	return type for dependent types.
+
+2006-11-30  Geoffrey Keating  <geoffk@apple.com>
+
+	* rtti.c (get_tinfo_decl): Handle return value from
+	pushdecl_top_level_and_finish.
+
+2006-11-29  Lee Millward  <lee.millward@codesourcery.com>
+
+	PR c++/29022
+	* parser.c (cp_parser_class_head): Move processing
+	of any base classes to...
+	(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
+	* decl.c (grokfndecl): Check main's type after applying
+	attributes, not before.
+
+2006-11-27  Mark Mitchell  <mark@codesourcery.com>
+
+	* class.c (build_vcall_offset_vtbl_entries): Do not add vcall
+	entries for a primary construction virtual table.
+
+2006-11-26  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29886
+	* parser.c (cp_parser): Add in_function_body.
+	(cp_parser_new): Initialize it.
+	(cp_parser_primary_expression): Use parser->in_function_body
+	instead of at_function_scope_p.
+	(cp_parser_asm_definition): Likewise.
+	(cp_parser_direct_declarator): Likewise.
+	(cp_parser_class_specifier): Clear parser->in_function_body.
+	(cp_parser_constructor_declarator_p): Use parser->in_function_body
+	instead of at_function_scope_p.
+	(cp_parser_function_body_after_declarator): Set
+	parser->in_function_body.
+
+2006-11-21      Douglas Gregor <doug.gregor@gmail.com>
+
+	* 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_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.
+	* 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.
+	* 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
+	assertions.
+	(cp_parser_static_assert): New.
+	(cp_parser_member_declaration): Parse static assertions.
+
+2006-11-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/29570
+	* decl.c (cp_finish_decl): Check for value dependent brace enclosed
+	scalar initializer.
+
+	PR c++/29734
+	* cp-tree.h (WANT_VECTOR): Define.
+	(WANT_ARITH): Add WANT_VECTOR.
+	* cvt.c (build_expr_type_conversion): Handle vector types.
+	* typeck.c (build_unary_op): Add WANT_VECTOR to
+	build_expr_type_conversion flags.
+
+2006-11-20  Simon Martin  <simartin@users.sourceforge.net>
+
+	PR c++/29475
+	* cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
+	extra argument that represents the declaration to use to print
+	potential error messages.
+	* init.c (build_offset_ref): Adjusted the call to
+	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.
+	* search.c (lookup_member): Likewise.
+	* friend.c (add_friend): Likewise.
+	* parser.c (cp_parser_template_id,
+	cp_parser_pre_parsed_nested_name_specifier): Likewise.
+	* semantics.c (finish_non_static_data_member,
+	check_accessibility_of_qualified_id, finish_id_expression): Likewise.
+	(pop_to_parent_deferring_access_checks, perform_access_checks,
+	perform_or_defer_access_check): Adjusted the call to enforce_access.
+	* call.c (enforce_access): Use the new extra argument to build the
+	error message.
+	(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
+	GGC_NEW and memset.
+
+2006-11-13  Roger Sayle  <roger@eyesopen.com>
+
+	* rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
+	base type info initializer has the correct type.
+
+2006-11-13  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29518
+	* pt.c (coerce_template_parms): Do not skip_evaluation while
+	substituting template arguments.
+
+2006-11-11  Richard Guenther  <rguenther@suse.de>
+
+	* typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
+	FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
+
+2006-11-03  Roger Sayle  <roger@eyesopen.com>
+
+	* call.c (build_op_delete_call): Test user-visible type against
+	size_type_node, instead of against the internal type, sizetype.
+	* class.c (type_requires_array_cookie): Likewise.
+	* mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
+	handling of TYPE_IS_SIZETYPE.
+	* typeck.c (type_after_usual_arithmetic_conversions): Remove
+	special case handling of TYPE_IS_SIZETYPE.
+	(comptypes): Likewise.
+
+2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+	* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
+	if targetm.cxx.use_atexit_for cxa_atexit.
+	(start_cleanup_fn): Likewise.
+	(register_dtor_fn): Likewise.
+
+2006-09-25  Geoffrey Keating  <geoffk@apple.com>
+
+	* decl2.c (cp_write_global_declarations): Rename from
+	cp_finish_file.
+	* cp-lang.c (finish_file): Don't call cp_finish_file.
+	* cp-tree.h (cp_write_global_declarations): Rename from
+	cp_finish_file.
+	* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
+	cp_write_global_declarations.
+
+2006-10-31  Geoffrey Keating  <geoffk@apple.com>
+
+	* name-lookup.c (get_anonymous_namespace_name): New.
+	(push_namespace_with_attribs): Use get_anonymous_namespace_name.
+	* decl2.c (start_objects): Update for rename of
+	get_file_function_name_long.
+
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/28704
+	* decl.c (grokdeclarator): Duplicate diagnostic message
+	for easier translation.
+	* decl.c (grokdeclarator): Fix line-wrapping.
+
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/6321
+	* decl.c (grokfndecl): Use check_main_parameter_types.
+
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/28669
+	* decl.c (grokfndecl): Duplicate warning message for
+	easier translation.
+
+2006-10-30  Dirk Mueller  <dmueller@suse.de>
+
+	* typeck.c (build_unary_op): Fix indenting. Use G_().
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/29089
+	* typeck.c (build_unary_op): Duplicate warning message
+	for easier translation.
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/16307
+	* typeck.c (build_array_ref): Warn for char subscriptions
+	on pointers.
+
+2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
+
+	* decl.c: Fix a comment typo.
+
+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
+	boolean type.
+
+2006-10-29  Dirk Mueller  <dmueller@suse.de>
+
+	PR c++/29033
+	* typeck.c (build_binary_op): Duplicate warning message
+	for better translation.
+
+2006-10-23  Rafael Avila de Espindola  <rafael.espindola@gmail.com>
+
+	* decl.c (builtin_function_1): Move common code to
+	add_builtin_function.
+	(builtin_function): Rename to cxx_builtin_function.
+	Change the signature.
+	* call.c: Include langhooks.h.
+	(build_java_interface_fn_ref):  Replace calls to
+	builtin_function with add_builtin_function.
+	* Make-lang.in (cp/call.o): Depend on langhooks.h.
+	* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+	cxx_builtin_function.
+	* cp-tree.h (builtin_function): Rename to cxx_builtin_function.
+	Change the signature.
+
+2006-10-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+	PR c++/20647
+	* 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>
+
+	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>
+
+	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
+	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
+	comment.
+
+	PR c++/28261
+	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
+	function.
+	(cp_parser_constructor_declarator_p): Use it.
+	(cp_parser_check_type_definition): Return a value indicating
+	whether or not the definition is valid.
+	(cp_parser_enum_specifier): Skip invalid enum definitions.
+
+2006-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29039
+	* typeck2.c (build_functional_cast): Don't zero-initialize
+	non-PODs; instead, call their constructors.
+	* method.c (synthesize_method): Always build mem-initializers, if
+	we're synthesizing the default constructor.
+
+2006-10-17  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/27270
+	* decl.c (reshape_init_class): Move check for designated
+	to ...
+	* parser.c (cp_parser_initializer_list): ... here.
+	* pt.c (tsubst_copy_and_build): Use finish_compound_literal.
+
+2006-10-16  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/27270
+	* typeck2.c (process_init_constructor_array): Reword comment.
+	* pt.c (tsubst_copy_and_built): Call reshape_init before calling
+	digest_init.
+
+	PR c++/29408
+	* parser.c (cp_parser_using_declaration): Stop parsing when
+	something goes wrong with an access declaration.
+
+	PR c++/29435
+	* typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
+	types when their sizes are required.  Refine test for VLAs.
+
+	PR c++/28211
+	* parser.c (cp_parser_template_argument): Don't consider "&var" a
+	possible constant-expression.
+	* pt.c (convert_nontype_argument): Refine handling of arguments of
+	pointer type.
+
+2006-10-13  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/28506
+	* parser.c (function_declarator_p): New function.
+	(cp_parser_init_declarator): Use it.
+	(cp_parser_member_declaration): Likewise.
+
+2006-10-12  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29318
+	* rtti.c (get_tinfo_decl): Refuse to create type info objects for
+	variably modified types.
+
+2006-10-12 Lee Millward <lee.millward@codesourcery.com>
+
+       PR c++/27961
+       * decl.c (start_decl): Return error_mark_node if a
+       function is initialized like a variable.
+       (check_var_type): If a variable of field is declared void,
+       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
+	* decl.c (check_initializer): Issue errors about trying to
+	initialize arrays whose elements have variable size.
+
+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.
+
+2006-10-10  Brooks Moses  <bmoses@stanford.edu>
+
+	* Make-lang.in: Added "c++.pdf" target support.
+
+2006-10-10  Richard Guenther  <rguenther@suse.de>
+
+	PR rtl-optimization/29323
+	* decl.c (finish_function): Set TREE_NOTHROW only for
+	functions that bind local.
+
+2006-10-09  Richard Henderson  <rth@redhat.com>
+
+	Revert emutls patch.
+
+2006-10-04  Richard Henderson  <rth@redhat.com>
+	    Jakub Jelinek  <jakub@redhat.com>
+
+	* decl.c (grokvardecl): Don't error if !have_tls.
+	(grokdeclarator): Likewise.
+	* parser.c (cp_parser_omp_threadprivate): Likewise.
+
+2006-10-03  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/29020
+	* friend.c (do_friend): Improve comments; add assertion.
+	* parser.c (cp_parser_nested_name_specifier_opt): Resolve
+	typenames for qualified names used in declarations, even when
+	caching qualified name lookup.
+
+	PR c++/29138
+	* decl2.c (grokfield): Don't handle access declarations here.
+	* parser.c (cp_parser_using_declaration): Handle access
+	declarations too.
+	(cp_parser_block_declaration): Adjust calls to


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.



More information about the Gcc-regression mailing list