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

gcctest@suse.de gcctest@suse.de
Tue Apr 24 15:56: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:
  Peak amount of GGC memory still allocated after garbage collecting increased from 1995k to 1997k, overall 0.10%
  Amount of memory still referenced at the end of compilation increased from 2371k to 2374k, overall 0.15%
    Overall memory needed: 7388k
    Peak memory use before GGC: 2322k -> 2324k
    Peak memory use after GGC: 1995k -> 1997k
    Maximum of released memory in single GGC run: 327k
    Garbage: 479k -> 479k
    Leak: 2371k -> 2374k
    Overhead: 515k -> 517k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 2022k to 2025k, overall 0.15%
  Amount of memory still referenced at the end of compilation increased from 2403k to 2407k, overall 0.16%
    Overall memory needed: 7404k
    Peak memory use before GGC: 2350k -> 2352k
    Peak memory use after GGC: 2022k -> 2025k
    Maximum of released memory in single GGC run: 328k -> 327k
    Garbage: 482k -> 482k
    Leak: 2403k -> 2407k
    Overhead: 520k -> 521k
    GGC runs: 3

comparing empty function compilation at -O1 level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 1995k to 1997k, overall 0.10%
  Amount of memory still referenced at the end of compilation increased from 2373k to 2377k, overall 0.15%
    Overall memory needed: 7520k
    Peak memory use before GGC: 2322k -> 2324k
    Peak memory use after GGC: 1995k -> 1997k
    Maximum of released memory in single GGC run: 327k
    Garbage: 485k -> 485k
    Leak: 2373k -> 2377k
    Overhead: 516k -> 517k
    GGC runs: 3 -> 4

comparing empty function compilation at -O2 level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 1995k to 1997k, overall 0.10%
  Amount of memory still referenced at the end of compilation increased from 2373k to 2377k, overall 0.15%
    Overall memory needed: 7528k
    Peak memory use before GGC: 2323k -> 2325k
    Peak memory use after GGC: 1995k -> 1997k
    Maximum of released memory in single GGC run: 328k
    Garbage: 488k -> 488k
    Leak: 2373k -> 2377k
    Overhead: 516k -> 518k
    GGC runs: 4

comparing empty function compilation at -O3 level:
  Peak amount of GGC memory still allocated after garbage collecting increased from 1995k to 1997k, overall 0.10%
  Amount of memory still referenced at the end of compilation increased from 2373k to 2377k, overall 0.15%
    Overall memory needed: 7528k
    Peak memory use before GGC: 2323k -> 2325k
    Peak memory use after GGC: 1995k -> 1997k
    Maximum of released memory in single GGC run: 328k
    Garbage: 488k -> 488k
    Leak: 2373k -> 2377k
    Overhead: 516k -> 518k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 8982k to 8203k, overall -9.50%
  Amount of produced GGC garbage increased from 36936k to 37014k, overall 0.21%
    Overall memory needed: 17900k -> 17652k
    Peak memory use before GGC: 9391k -> 9126k
    Peak memory use after GGC: 8982k -> 8203k
    Maximum of released memory in single GGC run: 2564k -> 1785k
    Garbage: 36936k -> 37014k
    Leak: 6873k -> 6876k
    Overhead: 4654k -> 5184k
    GGC runs: 281 -> 277

comparing combine.c compilation at -O0 -g level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 10641k to 9918k, overall -7.29%
  Amount of produced GGC garbage increased from 37307k to 37610k, overall 0.81%
    Overall memory needed: 19796k -> 19672k
    Peak memory use before GGC: 11010k -> 10913k
    Peak memory use after GGC: 10641k -> 9918k
    Maximum of released memory in single GGC run: 2341k -> 1557k
    Garbage: 37307k -> 37610k
    Leak: 9765k -> 9769k
    Overhead: 5358k -> 5890k
    GGC runs: 274 -> 270

comparing combine.c compilation at -O1 level:
  Amount of produced GGC garbage increased from 51342k to 51410k, overall 0.13%
    Overall memory needed: 34040k -> 33972k
    Peak memory use before GGC: 19409k -> 19424k
    Peak memory use after GGC: 19215k -> 19229k
    Maximum of released memory in single GGC run: 2261k -> 1518k
    Garbage: 51342k -> 51410k
    Leak: 6911k -> 6914k
    Overhead: 5758k -> 6091k
    GGC runs: 344 -> 346

comparing combine.c compilation at -O2 level:
    Overall memory needed: 38408k -> 38344k
    Peak memory use before GGC: 19472k -> 19486k
    Peak memory use after GGC: 19278k -> 19292k
    Maximum of released memory in single GGC run: 2188k -> 1582k
    Garbage: 67909k -> 67936k
    Leak: 7029k -> 7032k
    Overhead: 7850k -> 8181k
    GGC runs: 398 -> 399

comparing combine.c compilation at -O3 level:
    Overall memory needed: 42820k -> 42768k
    Peak memory use before GGC: 19801k -> 19789k
    Peak memory use after GGC: 19477k -> 19466k
    Maximum of released memory in single GGC run: 3723k -> 3724k
    Garbage: 93598k -> 93642k
    Leak: 7126k -> 7127k
    Overhead: 11148k -> 11618k
    GGC runs: 427

comparing insn-attrtab.c compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 97336k to 92668k, overall -5.04%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 68319k to 58835k, overall -16.12%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 44618k to 33728k, overall -32.29%
    Overall memory needed: 97336k -> 92668k
    Peak memory use before GGC: 68319k -> 58835k
    Peak memory use after GGC: 44618k -> 33728k
    Maximum of released memory in single GGC run: 36233k -> 26747k
    Garbage: 130197k -> 130252k
    Leak: 9828k -> 9832k
    Overhead: 14301k -> 16827k
    GGC runs: 218 -> 214

comparing insn-attrtab.c compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 98596k to 94048k, overall -4.84%
  Peak amount of GGC memory allocated before garbage collecting run decreased from 69481k to 59997k, overall -15.81%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 45779k to 35333k, overall -29.56%
  Amount of produced GGC garbage increased from 130672k to 131475k, overall 0.61%
  Amount of memory still referenced at the end of compilation increased from 11312k to 11541k, overall 2.03%
    Overall memory needed: 98596k -> 94048k
    Peak memory use before GGC: 69481k -> 59997k
    Peak memory use after GGC: 45779k -> 35333k
    Maximum of released memory in single GGC run: 36235k -> 26748k
    Garbage: 130672k -> 131475k
    Leak: 11312k -> 11541k
    Overhead: 14698k -> 17224k
    GGC runs: 217 -> 210

comparing insn-attrtab.c compilation at -O1 level:
    Overall memory needed: 120564k -> 117496k
    Peak memory use before GGC: 71728k -> 71736k
    Peak memory use after GGC: 69844k -> 69852k
    Maximum of released memory in single GGC run: 32923k -> 24926k
    Garbage: 225544k -> 225479k
    Leak: 9650k -> 9654k
    Overhead: 25381k -> 26621k
    GGC runs: 225 -> 226

comparing insn-attrtab.c compilation at -O2 level:
  Overall memory allocated via mmap and sbrk increased from 178792k to 182468k, overall 2.06%
    Overall memory needed: 178792k -> 182468k
    Peak memory use before GGC: 72375k -> 72379k
    Peak memory use after GGC: 69922k -> 69925k
    Maximum of released memory in single GGC run: 29815k -> 21659k
    Garbage: 261128k -> 260888k
    Leak: 9647k -> 9652k
    Overhead: 30933k -> 32167k
    GGC runs: 247 -> 246

comparing insn-attrtab.c compilation at -O3 level:
  Overall memory allocated via mmap and sbrk increased from 191196k to 195860k, overall 2.44%
    Overall memory needed: 191196k -> 195860k
    Peak memory use before GGC: 84491k -> 84495k
    Peak memory use after GGC: 80329k -> 80333k
    Maximum of released memory in single GGC run: 30750k -> 22592k
    Garbage: 292433k -> 292205k
    Leak: 9651k -> 9656k
    Overhead: 32189k -> 33428k
    GGC runs: 248 -> 246

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of produced GGC garbage increased from 204794k to 207302k, overall 1.22%
  Amount of memory still referenced at the end of compilation increased from 50301k to 50768k, overall 0.93%
    Overall memory needed: 147584k -> 147544k
    Peak memory use before GGC: 90672k -> 90568k
    Peak memory use after GGC: 89775k -> 89668k
    Maximum of released memory in single GGC run: 18042k -> 17654k
    Garbage: 204794k -> 207302k
    Leak: 50301k -> 50768k
    Overhead: 22340k -> 24650k
    GGC runs: 408 -> 407

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
  Peak amount of GGC memory allocated before garbage collecting increased from 103360k to 103898k, overall 0.52%
  Peak amount of GGC memory still allocated after garbage collecting increased from 102332k to 102868k, overall 0.52%
  Amount of produced GGC garbage increased from 210456k to 213837k, overall 1.61%
  Amount of memory still referenced at the end of compilation increased from 73616k to 74083k, overall 0.63%
    Overall memory needed: 165412k -> 166232k
    Peak memory use before GGC: 103360k -> 103898k
    Peak memory use after GGC: 102332k -> 102868k
    Maximum of released memory in single GGC run: 18488k -> 18731k
    Garbage: 210456k -> 213837k
    Leak: 73616k -> 74083k
    Overhead: 28217k -> 30547k
    GGC runs: 379 -> 382

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 101304k to 102466k, overall 1.15%
  Peak amount of GGC memory still allocated after garbage collecting increased from 100296k to 101450k, overall 1.15%
  Amount of produced GGC garbage increased from 335541k to 339675k, overall 1.23%
  Amount of memory still referenced at the end of compilation increased from 51196k to 51712k, overall 1.01%
    Overall memory needed: 145236k -> 146040k
    Peak memory use before GGC: 101304k -> 102466k
    Peak memory use after GGC: 100296k -> 101450k
    Maximum of released memory in single GGC run: 17230k -> 17404k
    Garbage: 335541k -> 339675k
    Leak: 51196k -> 51712k
    Overhead: 27821k -> 30837k
    GGC runs: 525 -> 524

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 101972k to 103120k, overall 1.13%
  Peak amount of GGC memory still allocated after garbage collecting increased from 100938k to 102094k, overall 1.15%
  Amount of produced GGC garbage increased from 383262k to 387392k, overall 1.08%
  Amount of memory still referenced at the end of compilation increased from 51915k to 52436k, overall 1.00%
    Overall memory needed: 150520k -> 152404k
    Peak memory use before GGC: 101972k -> 103120k
    Peak memory use after GGC: 100938k -> 102094k
    Maximum of released memory in single GGC run: 17227k -> 17405k
    Garbage: 383262k -> 387392k
    Leak: 51915k -> 52436k
    Overhead: 33265k -> 36326k
    GGC runs: 573 -> 572

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 104102k to 105349k, overall 1.20%
  Peak amount of GGC memory still allocated after garbage collecting increased from 103021k to 104257k, overall 1.20%
  Amount of produced GGC garbage increased from 415182k to 419560k, overall 1.05%
  Amount of memory still referenced at the end of compilation increased from 52187k to 52722k, overall 1.02%
    Overall memory needed: 152500k -> 153220k
    Peak memory use before GGC: 104102k -> 105349k
    Peak memory use after GGC: 103021k -> 104257k
    Maximum of released memory in single GGC run: 17595k -> 17713k
    Garbage: 415182k -> 419560k
    Leak: 52187k -> 52722k
    Overhead: 35607k -> 38869k
    GGC runs: 591 -> 590

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
    Overall memory needed: 244872k -> 244835k
    Peak memory use before GGC: 81016k -> 81019k
    Peak memory use after GGC: 58755k -> 58758k
    Maximum of released memory in single GGC run: 44133k -> 44134k
    Garbage: 142226k -> 142235k
    Leak: 7720k -> 7724k
    Overhead: 22860k -> 24635k
    GGC runs: 79

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
    Overall memory needed: 245684k -> 245643k
    Peak memory use before GGC: 81662k -> 81665k
    Peak memory use after GGC: 59401k -> 59404k
    Maximum of released memory in single GGC run: 44122k
    Garbage: 142331k -> 142454k
    Leak: 9488k -> 9492k
    Overhead: 23355k -> 25130k
    GGC runs: 87 -> 88

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting increased from 83625k to 84298k, overall 0.80%
  Peak amount of GGC memory still allocated after garbage collecting increased from 74753k to 74902k, overall 0.20%
  Amount of produced GGC garbage increased from 221285k to 221707k, overall 0.19%
  Amount of memory still referenced at the end of compilation increased from 20556k to 20968k, overall 2.00%
    Overall memory needed: 248056k -> 243244k
    Peak memory use before GGC: 83625k -> 84298k
    Peak memory use after GGC: 74753k -> 74902k
    Maximum of released memory in single GGC run: 36146k -> 38220k
    Garbage: 221285k -> 221707k
    Leak: 20556k -> 20968k
    Overhead: 28495k -> 30618k
    GGC runs: 81

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 273432k to 265036k, overall -3.17%
  Peak amount of GGC memory allocated before garbage collecting increased from 79740k to 79888k, overall 0.19%
  Peak amount of GGC memory still allocated after garbage collecting increased from 74754k to 74902k, overall 0.20%
  Amount of produced GGC garbage increased from 228006k to 228428k, overall 0.18%
  Amount of memory still referenced at the end of compilation increased from 20647k to 21058k, overall 1.99%
    Overall memory needed: 273432k -> 265036k
    Peak memory use before GGC: 79740k -> 79888k
    Peak memory use after GGC: 74754k -> 74902k
    Maximum of released memory in single GGC run: 33436k -> 31874k
    Garbage: 228006k -> 228428k
    Leak: 20647k -> 21058k
    Overhead: 30514k -> 32638k
    GGC runs: 91

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
  Peak amount of GGC memory allocated before garbage collecting increased from 198185k to 199088k, overall 0.46%
  Peak amount of GGC memory still allocated after garbage collecting increased from 186643k to 187546k, overall 0.48%
  Amount of memory still referenced at the end of compilation increased from 44590k to 46424k, overall 4.11%
    Overall memory needed: 1267984k -> 1242352k
    Peak memory use before GGC: 198185k -> 199088k
    Peak memory use after GGC: 186643k -> 187546k
    Maximum of released memory in single GGC run: 80671k -> 80688k
    Garbage: 375527k -> 375315k
    Leak: 44590k -> 46424k
    Overhead: 44538k -> 48686k
    GGC runs: 70 -> 71

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-04-23 21:11:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2007-04-24 14:00:33.000000000 +0000
@@ -1,3 +1,141 @@
+2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	PR target/31641
+	* config/s390/s390.c (s390_expand_setmem): Don't ICE for constant length
+	argument of 0 for memset.
+	(s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
+	unsigned shift instead of the signed variant.
+
+2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
+	"fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
+	"floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
+	"*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
+	"*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
+	"*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
+	"*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
+	"*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
+	"*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
+	("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
+	"truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
+	"mul<mode>3", "div<mode>3"): Insn definitions added.
+	("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
+	"fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
+	to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
+	("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
+	"trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
+	"sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
+	("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
+	* config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
+	TARGET_FLOAT_FORMAT): Macro definitions removed.
+	(FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
+	* config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
+	z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
+	(s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
+	(s390_gen_rtx_const_DI): Function removed.
+	* config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
+
+2007-04-24  Richard Sandiford  <richard@codesourcery.com>
+
+	* optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
+	over an external ffs function.
+
+2007-04-24  Chao-ying Fu  <fu@mips.com>
+	    Richard Sandiford  <richard@nildram.co.uk>
+
+	* doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
+	* optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
+	(smadd_widen_optab, umadd_widen_optab): Define.
+	* optabs.c (init_optabs): Initialize smadd_widen_optab and
+	umadd_widen_optab.
+	* genopinit.c (optabs): Fill in smadd_widen_optab and
+	umadd_widen_optab.
+	* expr.c (expand_expr_real_1): Try to use smadd_widen_optab
+	and umadd_widen_optab to implement multiply-add sequences.
+	* config/mips/mips.md (*<su>mul_acc_di): Rename to...
+	(<u>maddsidi4): ...this.  Extend condition to include
+	GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
+	of operand 0 to "ka" and use the three-operand form of madd<u>
+	for TARGET_DSPR2.
+	* config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
+	to define_expands.
+	* config/mips/constraints.md (ka): New register constraint.
+
+2007-04-24  Jan Hubicka  <j@suse.cz>
+
+	Revert:
+
+	2007-04-23  Jan Hubicka  <jh@suse.cz>
+	* function.c (init_function_start): Don't init line number info.
+	(expand_function_end): Update.
+	(reset_block_changes, record_block_change, finalize_block_changes,
+	check_block_change, free_block_changes): Kill.
+	* function.h (reset_block_changes, record_block_change,
+	finalize_block_changes, check_block_change, free_block_changes): Remove
+	prototypes.
+	(struct function): Remove ib_boundaries_block.
+	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
+	Use curr_insn_locator to initialize locator.
+	(emit_line_note): Remove.
+	* cfgexpand.c (expand_gimple_cond_expr): Update.
+	(construct_exit_block): Likewise.
+	(tree_expand_cfg): Initialize/finalize locators.
+	* expr.c (expand_expr_real): Update.
+	* cfglayout.c (line_locators_locs, line_locators_lines,
+	file_locators_locs, file_locators_files): Remove.
+	(set_block_levels): Move to cfgexpand.c.
+	(insn_locators_initialize): Remove.
+	(pass_insn_locators_initialize): Remove.
+	(locations_locators_locs, locations_locators_vals): New static vars.
+	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
+	Likewise.
+	(insn_locators_alloc, insn_locators_finalize,
+	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
+	New functions.
+	(locator_location): New.
+	(locator_line, locator_file): Rewrite.
+	* rtl.h (emit_line_note): Kill.
+	(insn_locators_alloc, insn_locators_finalize,
+	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
+	Declare.
+	* tree-inline.c (initialize_cfun): Do not initialize
+	ib_boundaries_block.
+	* passes.c (pass_insn_locators_initialize): Remove.
+
+2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
+
+	* doc/invoke.texi: Removed leading '-' from option index entries.
+
+2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
+
+	* tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
+	Use phi_nodes_ptr.
+	(create_phi_node): Use set_phi_nodes.
+	* omp-low.c (expand_omp_parallel): Use bb_stmt_list.
+	* tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
+	(combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
+	* tree-flow-inline.h (phi_nodes, set_phi_nodes,
+	(bsi_start, bsi_last): Use bb_stmt_list.
+	(phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
+	* cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
+	Traverse the statements using tsi iterator.
+	* basic-block.h (struct basic_block_def): Fields stmt_list
+	and phi_nodes moved to ...
+	(struct tree_bb_info): ... new structure.
+	* tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
+	(tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
+	(remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
+	(tree_verify_flow_info): Verify that il.tree is not set for
+	entry and exit block.
+	(tree_split_block): Use set_bb_stmt_list.
+
+2007-04-23  Mike Stump  <mrs@apple.com>
+
+	* config/i386/i386.c (ix86_tune_features
+	[X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
+	nocona and core2.
+
 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* config/i386/i386.md (prefix_extra): New attribute.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2007-04-23 21:11:19.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2007-04-24 14:00:30.000000000 +0000
@@ -1,3 +1,8 @@
+2007-04-23  Simon Baldwin  <simonb@google.com>
+
+	* decl.c (grokparms): Added new error for duplicate function
+	parameters names in function prototypes, to match gcc behavior.
+
 2007-04-23  Jan Hubicka  <jh@suse.cz>
 
 	* cp/decl2.c (finish_objects): Do not call target constructor/destructor


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