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 in some cases!


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: 7410k -> 7388k
    Peak memory use before GGC: 2260k
    Peak memory use after GGC: 1949k
    Maximum of released memory in single GGC run: 311k
    Garbage: 446k -> 446k
    Leak: 2283k
    Overhead: 456k -> 456k
    GGC runs: 3

comparing empty function compilation at -O0 -g level:
    Overall memory needed: 7426k -> 7404k
    Peak memory use before GGC: 2288k
    Peak memory use after GGC: 1977k
    Maximum of released memory in single GGC run: 311k
    Garbage: 449k -> 449k
    Leak: 2316k
    Overhead: 461k -> 461k
    GGC runs: 3

comparing empty function compilation at -O1 level:
    Overall memory needed: 7510k -> 7512k
    Peak memory use before GGC: 2260k
    Peak memory use after GGC: 1949k
    Maximum of released memory in single GGC run: 311k
    Garbage: 452k -> 452k
    Leak: 2286k -> 2286k
    Overhead: 457k -> 457k
    GGC runs: 4

comparing empty function compilation at -O2 level:
    Overall memory needed: 7578k -> 7520k
    Peak memory use before GGC: 2261k
    Peak memory use after GGC: 1950k
    Maximum of released memory in single GGC run: 311k
    Garbage: 455k -> 455k
    Leak: 2286k -> 2286k
    Overhead: 457k -> 457k
    GGC runs: 4

comparing empty function compilation at -O3 level:
    Overall memory needed: 7578k -> 7520k
    Peak memory use before GGC: 2261k
    Peak memory use after GGC: 1950k
    Maximum of released memory in single GGC run: 311k
    Garbage: 455k -> 455k
    Leak: 2286k -> 2286k
    Overhead: 457k -> 457k
    GGC runs: 4

comparing combine.c compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 23854k to 17732k, overall -34.53%
  Peak amount of GGC memory still allocated after garbage collecting increased from 8826k to 8849k, overall 0.26%
    Overall memory needed: 23854k -> 17732k
    Peak memory use before GGC: 9307k -> 9262k
    Peak memory use after GGC: 8826k -> 8849k
    Maximum of released memory in single GGC run: 2623k -> 2578k
    Garbage: 37695k -> 37116k
    Leak: 6578k
    Overhead: 5250k -> 5053k
    GGC runs: 282

comparing combine.c compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 25830k to 19864k, overall -30.03%
    Overall memory needed: 25830k -> 19864k
    Peak memory use before GGC: 11115k -> 10877k
    Peak memory use after GGC: 10578k -> 10509k
    Maximum of released memory in single GGC run: 2597k -> 2351k
    Garbage: 38229k -> 37681k
    Leak: 9487k -> 9463k
    Overhead: 5956k -> 5759k
    GGC runs: 270 -> 269

comparing combine.c compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 43862k to 35252k, overall -24.42%
    Overall memory needed: 43862k -> 35252k
    Peak memory use before GGC: 19332k -> 19330k
    Peak memory use after GGC: 19125k
    Maximum of released memory in single GGC run: 2092k -> 2200k
    Garbage: 57658k -> 56788k
    Leak: 6607k -> 6607k
    Overhead: 6518k -> 6311k
    GGC runs: 353 -> 355

comparing combine.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 44114k to 38344k, overall -15.05%
  Amount of memory still referenced at the end of compilation increased from 6726k to 6735k, overall 0.12%
    Overall memory needed: 44114k -> 38344k
    Peak memory use before GGC: 19371k
    Peak memory use after GGC: 19177k
    Maximum of released memory in single GGC run: 2123k -> 2170k
    Garbage: 69131k -> 68981k
    Leak: 6726k -> 6735k
    Overhead: 8271k -> 8144k
    GGC runs: 408 -> 404

comparing combine.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 44986k to 42680k, overall -5.40%
  Peak amount of GGC memory allocated before garbage collecting increased from 19528k to 19558k, overall 0.15%
  Amount of produced GGC garbage increased from 89137k to 90400k, overall 1.42%
    Overall memory needed: 44986k -> 42680k
    Peak memory use before GGC: 19528k -> 19558k
    Peak memory use after GGC: 19259k -> 19263k
    Maximum of released memory in single GGC run: 3035k -> 3644k
    Garbage: 89137k -> 90400k
    Leak: 6842k -> 6841k
    Overhead: 11098k -> 11156k
    GGC runs: 430 -> 427

comparing insn-attrtab.c compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 176314k to 102980k, overall -71.21%
  Peak amount of GGC memory still allocated after garbage collecting increased from 44189k to 44728k, overall 1.22%
    Overall memory needed: 176314k -> 102980k
    Peak memory use before GGC: 69575k -> 68624k
    Peak memory use after GGC: 44189k -> 44728k
    Maximum of released memory in single GGC run: 37380k -> 36429k
    Garbage: 133955k -> 130923k
    Leak: 9581k
    Overhead: 17418k -> 16927k
    GGC runs: 216 -> 212

comparing insn-attrtab.c compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 177826k to 104212k, overall -70.64%
  Peak amount of GGC memory still allocated after garbage collecting increased from 45456k to 45996k, overall 1.19%
    Overall memory needed: 177826k -> 104212k
    Peak memory use before GGC: 70736k -> 69786k
    Peak memory use after GGC: 45456k -> 45996k
    Maximum of released memory in single GGC run: 37380k -> 36430k
    Garbage: 135178k -> 132142k
    Leak: 11289k
    Overhead: 17815k -> 17324k
    GGC runs: 215 -> 209

comparing insn-attrtab.c compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 226034k to 147600k, overall -53.14%
    Overall memory needed: 226034k -> 147600k
    Peak memory use before GGC: 85946k
    Peak memory use after GGC: 80068k
    Maximum of released memory in single GGC run: 32274k -> 32839k
    Garbage: 270335k -> 264939k
    Leak: 9401k -> 9401k
    Overhead: 28644k -> 27688k
    GGC runs: 232 -> 228

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 260930k to 197776k, overall -31.93%
    Overall memory needed: 260930k -> 197776k
    Peak memory use before GGC: 87233k
    Peak memory use after GGC: 80138k
    Maximum of released memory in single GGC run: 30047k -> 30044k
    Garbage: 304277k -> 300339k
    Leak: 9399k -> 9399k
    Overhead: 34094k -> 33283k
    GGC runs: 252 -> 244

comparing insn-attrtab.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 260962k to 197308k, overall -32.26%
    Overall memory needed: 260962k -> 197308k
    Peak memory use before GGC: 87247k
    Peak memory use after GGC: 80152k
    Maximum of released memory in single GGC run: 30108k -> 30105k
    Garbage: 304937k -> 301008k
    Leak: 9404k -> 9404k
    Overhead: 34295k -> 33486k
    GGC runs: 255 -> 245

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 152924k to 147375k, overall -3.77%
    Overall memory needed: 152924k -> 147375k
    Peak memory use before GGC: 90241k
    Peak memory use after GGC: 89347k
    Maximum of released memory in single GGC run: 17774k
    Garbage: 210393k -> 207957k
    Leak: 49212k -> 49207k
    Overhead: 24724k -> 23912k
    GGC runs: 414 -> 410

comparing Gerald's testcase PR8361 compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 174476k to 165179k, overall -5.63%
    Overall memory needed: 174476k -> 165179k
    Peak memory use before GGC: 102847k
    Peak memory use after GGC: 101829k
    Maximum of released memory in single GGC run: 18128k
    Garbage: 216926k -> 214473k
    Leak: 72526k -> 72521k
    Overhead: 30621k -> 29809k
    GGC runs: 387 -> 385

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 151693k to 141831k, overall -6.95%
    Overall memory needed: 151693k -> 141831k
    Peak memory use before GGC: 101826k -> 101812k
    Peak memory use after GGC: 100807k -> 100801k
    Maximum of released memory in single GGC run: 17236k
    Garbage: 346851k -> 344728k
    Leak: 49932k -> 49940k
    Overhead: 31040k -> 30465k
    GGC runs: 532 -> 528

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 152849k to 143887k, overall -6.23%
    Overall memory needed: 152849k -> 143887k
    Peak memory use before GGC: 102425k -> 102422k
    Peak memory use after GGC: 101409k -> 101406k
    Maximum of released memory in single GGC run: 17233k
    Garbage: 375773k -> 375688k
    Leak: 50979k -> 51028k
    Overhead: 35069k -> 34747k
    GGC runs: 567 -> 565

comparing Gerald's testcase PR8361 compilation at -O3 level:
Reference run miss the results so I can't compare, sadly
    Overall memory needed: 104461k -> 146179k
    Peak memory use before GGC: 90658k -> 104266k
    Peak memory use after GGC: 89760k -> 103221k
    Maximum of released memory in single GGC run: 17610k
    Garbage: 0k -> 394794k
    Leak: 0k -> 51314k
    Overhead: 0k -> 36347k
    GGC runs: 355 -> 574

comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
  Ovarall memory allocated via mmap and sbrk decreased from 346054k to 244787k, overall -41.37%
  Peak amount of GGC memory allocated before garbage collecting increased from 80790k to 80960k, overall 0.21%
  Peak amount of GGC memory still allocated after garbage collecting increased from 58528k to 58699k, overall 0.29%
    Overall memory needed: 346054k -> 244787k
    Peak memory use before GGC: 80790k -> 80960k
    Peak memory use after GGC: 58528k -> 58699k
    Maximum of released memory in single GGC run: 43963k -> 44133k
    Garbage: 145522k -> 142148k
    Leak: 7611k -> 7611k
    Overhead: 26212k -> 24559k
    GGC runs: 74 -> 79

comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
  Ovarall memory allocated via mmap and sbrk decreased from 346942k to 245591k, overall -41.27%
  Peak amount of GGC memory allocated before garbage collecting increased from 81435k to 81606k, overall 0.21%
  Peak amount of GGC memory still allocated after garbage collecting increased from 59174k to 59345k, overall 0.29%
    Overall memory needed: 346942k -> 245591k
    Peak memory use before GGC: 81435k -> 81606k
    Peak memory use after GGC: 59174k -> 59345k
    Maximum of released memory in single GGC run: 43951k -> 44122k
    Garbage: 145803k -> 142367k
    Leak: 9378k -> 9379k
    Overhead: 26708k -> 25054k
    GGC runs: 84 -> 89

comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
  Ovarall memory allocated via mmap and sbrk decreased from 312430k to 244352k, overall -27.86%
    Overall memory needed: 312430k -> 244352k
    Peak memory use before GGC: 85020k -> 84278k
    Peak memory use after GGC: 74845k
    Maximum of released memory in single GGC run: 35652k -> 36149k
    Garbage: 225118k -> 221623k
    Leak: 20854k -> 20854k
    Overhead: 32048k -> 30444k
    GGC runs: 78 -> 81

comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 562846k to 497508k, overall -13.13%
    Overall memory needed: 562846k -> 497508k
    Peak memory use before GGC: 79831k
    Peak memory use after GGC: 74845k
    Maximum of released memory in single GGC run: 33317k -> 33439k
    Garbage: 235003k -> 228658k
    Leak: 20944k -> 20944k
    Overhead: 34675k -> 32526k
    GGC runs: 88 -> 91

comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Reference run miss the results so I can't compare, sadly
    Overall memory needed: 2624494k -> 1478460k
    Peak memory use before GGC: 201747k -> 201748k
    Peak memory use after GGC: 190209k
    Maximum of released memory in single GGC run: 80993k -> 80671k
    Garbage: 0k -> 362842k
    Leak: 0k -> 46310k
    Overhead: 0k -> 46464k
    GGC runs: 68 -> 71

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2007-03-24 02:27:20.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2007-03-25 16:40:57.000000000 +0000
@@ -1,3 +1,600 @@
+2007-03-25  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
+	in SImode for save_world.
+	* config/rs6000/altivec.md (save_world, restore_world): Convert to
+	LR hard reg.
+
+2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
+
+	PR tree-optimization/30784
+	* fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
+	BIT_FIELD_REF.
+
+2007-03-25  Revital Eres  <eres@il.ibm.com>
+
+        * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
+          Fold movement_possibility function into it.
+
+2007-03-25  David Edelsohn  <edelsohn@gnu.org>
+
+	* config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
+	(load_macho_picbase_{si,di}): Convert to LR hard reg.
+	(call_indirect_nonlocal_darwin64): Same.
+	(call_nonlocal_darwin64): Same.
+	(call_value_indirect_nonlocal_darwin64): Same.
+	(call_value_nonlocal_darwin64): Same.
+	(sibcall_nonlocal_darwin64): Same.
+	(sibcall_value_nonlocal_darwin64): Same.
+	(sibcall_symbolic_64): Same.
+	(sibcall_value_symbolic_64): Same.
+	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
+	LR pseudo.
+	(rs6000_emit_load_toc_table): Same.
+	* config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
+	* config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
+	(mull_call): Same.
+	(divss_call): Same.
+	(divus_call): Same.
+	(quoss_call): Same.
+	(quous_call): Same.
+	(load_toc_v4_pic_si): Same
+	(load_toc_v4_PIC_1): Same.
+	(load_toc_v4_PIC_1b): Same.
+	(call_indirect_aix{32,64}): Same.
+	(call_value_indirect_aix{32,64}): Same.
+	(call): Same.
+	(call_value): Same.
+	(call_local{32,64}): Same.
+	(call_value_local{32,64}): Same.
+	(call_indirect_nonlocal_aix{32,64}): Same.
+	(call_nonlocal_aix{32,64}): Same.
+	(call_value_indirect_nonlocal_aix{32,64}): Same.
+	(call_value_nonlocal_aix{32,64}): Same.
+	(call_indirect_nonlocal_sysv<mode>): Same.
+	(call_nonlocal_sysv<mode>): Same.
+	(call_value_indirect_nonlocal_sysv<mode>): Same.
+	(call_value_nonlocal_sysv<mode>): Same.
+	(sibcall): Same.
+	(sibcall_local{32,64}): Same.
+	(sibcall_value_local{32,64}): Same.
+	(sibcall_nonlocal_aix{32,64}): Same.
+	(sibcall_value_nonlocal_aix{32,64}): Same.
+	(sibcall_nonlocal_sysv<mode>): Same.
+	(sibcall_value): Same.
+	(sibcall_value_nonlocal_sysv<mode>): Same.
+
+2007-03-24  Paul Brook  <paul@codesourcery.com>
+
+	* config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
+	* config/arm/linux-eabi.h: Remove legacy syscall hack.
+
+2007-03-24  Richard Henderson  <rth@redhat.com>
+
+	* config/ia64/constraints.md: New file.
+	* config/ia64/predicates.md: Replace CONST_OK_FOR_? with
+	satisfies_constraint_?.
+	* config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
+	ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
+	ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
+	ia64_output_mi_thunk): Likewise.
+	(ia64_const_ok_for_letter_p): Remove.
+	(ia64_const_double_ok_for_letter_p): Remove.
+	(ia64_extra_constraint): Remove.
+	* config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
+	(CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
+	CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
+	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
+	CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
+	EXTRA_MEMORY_CONSTRAINT): Remove.
+	* config/ia64/ia64.md: Include constriants.md.  Replace
+	CONST_OK_FOR_? with satisfies_constraint_?.
+
+2007-03-23  Michael Meissner  <michael.meissner@amd.com>
+	    H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
+	DPD or BID name.
+	(name macros): Use DPD_BID_NAME to convert names properly.
+
+	* optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
+	decimal floating point format.
+	(init_floating_libfuncs): Change decimal functions so that they
+	have a "bid_" prefix if the decimal system uses the BID format,
+	and "dpd_" prefix if the decimal system uses the DPD format.
+	(init_interclass_conv_libfuncs): Ditto.
+	(init_intraclass_conv_libfuncs): Ditto.
+
+	* config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
+	using the BID format.
+
+	* configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
+	whether we are using the BID decimal format.
+	* configure: Regenerate.
+
+	* c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
+	the compiler has decimal floating point enabled.  Define
+	__DECIMAL_BID_FORMAT__ if BID decimal floating point is used
+	instead of DPD.
+
+	* config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
+	using the BID format.
+
+	* configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
+	whether we are using the BID decimal format.
+	* configure: Regenerate.
+
+	* c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
+	the compiler has decimal floating point enabled.  Define
+	__DECIMAL_BID_FORMAT__ if BID decimal floating point is used
+	instead of DPD.
+
+	* doc/install.texi (--enable-decimal-float): Document BID and DPD
+	options, and that it is enabled for i386/x86_64 systems.
+
+	* Makefile.in (enable_decimal_float): New.
+	(DECNUMFMT): New.
+	(DECNUMINC): Add  -I$(DECNUMFMT).
+	(DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
+	to $(DECNUMFMT) from $(DECNUM).
+
+	* configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
+	Substitute enable_decimal_float.
+	* configure: Regenerated.
+
+	PR other/30529
+	* config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
+	unsigned long.
+
+	* configure.ac: Enable decimal float for x86_64-*-linux*.
+	* configure: Regenerated.
+
+	PR other/30530
+	* dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
+	decimal128ClearSign to flip and clear the sign bit in decimal128.
+	(decimal_real_maxval): Set decimal128SetSign to set the sign
+	bit in decimal128.
+
+2007-03-23  Ian Lance Taylor  <iant@google.com>
+
+	* fold-const.c (fold_binary): Correct warning for X - c >= X.
+
+2007-03-23  Ian Lance Taylor  <iant@google.com>
+
+	* tree-dump.c (dump_files): Correct comment.
+
+2007-03-23  Ian Lance Taylor  <iant@google.com>
+
+	* tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
+
+2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
+
+	* tracer.c (tracer): Don't take FLAGS argument.  Assert we are
+	in cfglayout mode.  Don't go into and out of cfglayout mode.
+	Link the blocks in the order of the constructed traces.
+	(rest_of_handle_tracer): Adjust call to tracer.
+	* loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
+	Don't go into cfglayout mode.
+	(rtl_loop_done): Don't go out of cfglayout mode.
+	* cfglayout.c (relink_block_chain): New function, split out from...
+	(fixup_reorder_chain): ...here.  Remove redundant checking.
+	(cfg_layout_finalize): Don't clear the header, footer, and aux
+	fields here, move the code to do so to relink_block_chain.  Likewise
+	for free_original_copy_tables.
+	* rtl.h (tracer): Update prototype.
+	* bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
+	Assert we are in cfglayout mode.  Don't go into and out of cfglayout
+	mode.  Use relink_block_chain to serialize the CFG according to the
+	new basic block order.  Move targetm.cannot_modify_jumps_p check from
+	here...
+	(gate_handle_reorder_blocks): ...to here.
+	(duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
+	from here...
+	(gate_duplicate_computed_gotos): ...to here.
+	(rest_of_handle_reorder_blocks): Don't see if anything has changed,
+	something always changes when going into and out of cfglayout mode.
+	Perform an expensive cfg cleanup while going into cfglayout mode.
+	Always update liveness information on HAVE_conditional_execution
+	targets.  Reserialize the basic blocks and go out of cfglayout mode.
+	* reg-stack.c: Include cfglayout.h.
+	(rest_of_handle_stack_regs): Go into and out of cfglayout mode around
+	the call to reorder_basic_blocks.
+	* basic-block.h (reorder_basic_blocks): Update prototype.
+	(relink_block_chain): New prototype.
+	* passes.c (pass_outof_cfg_layout_mode): Move after cse2.
+
+2007-03-23  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/mips/mips.md (type, hazard, *movdi_32bit,
+	*movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
+	*movhi_internal, *movqi_internal, *movsf_hardfloat,
+	*movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
+	movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
+	mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
+	applicable.
+	(movcc): Change first xfer to multi.
+	* config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
+	config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
+	config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
+	config/mips/generic.md: Change reservations using "xfer" to use
+	"mfc,mtc".
+	* config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
+	using match_operand.
+	(ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
+	* config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
+	examining mode.
+	(ir_sr70_xfer_to): Use "mtc" instead of examining mode.
+
+2007-03-22  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/i386.c: Remove unnecessary function declarations.
+	Move targetm definition, and all related macros, to the end of
+	the file.  Resort some functions to put definitions before uses.
+	(ix86_attribute_table): Make static.  Move to end of file.
+	(ix86_gimplify_va_arg): Make static.
+
+2007-03-22  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
+	don't increase local_regparm with force_align_arg_pointer check.
+	(ix86_function_sseregparm): Assert 32-bit.
+	(type_has_variadic_args_p): New.
+	(ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
+	type_has_variadic_args_p.
+	(ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
+	(init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
+	use memset instead.  Do maybe_vaarg check first; skip attribute
+	tests if true; skip attribute tests for 64-bit.
+	(construct_container): Remove TARGET_DEBUG_ARG.
+	(function_arg_advance_32, function_arg_advance_64): Split out ...
+	(function_arg_advance): ... from here.
+	(function_arg_32, function_arg_64): Split out ...
+	(function_arg): ... from here.
+	(ix86_pass_by_reference): Tidy.
+	(ix86_function_value_regno_p): Rearrange w/ switch on regno.
+	(function_value_32): New, from parts of ix86_function_value
+	and ix86_value_regno.
+	(function_value_64): New, from parts of ix86_function_value
+	and ix86_libcall_value.
+	(ix86_function_value_1): New.
+	(ix86_function_value, ix86_libcall_value): Use it.
+	(return_in_memory_32, return_in_memory_64): Split out ...
+	(ix86_return_in_memory): ... from here.
+	(ix86_struct_value_rtx): Skip for 64-bit.
+	(ix86_libcall_value, ix86_value_regno): Remove.
+	(setup_incoming_varargs_64): Split out ...
+	(ix86_setup_incoming_varargs): ... from here.
+	(ix86_va_start): Remove TARGET_DEBUG_ARG.
+	(legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
+	* config/i386/i386-protos.h (ix86_function_value): Remove.
+	* config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
+
+2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	PR other/23572
+	* c-lex.c (interpret_float): On overflow, emit pedantic warning if
+	infinities not supported, otherwise emit warning if -Woverflow. On
+	underflow, emit warning if -Woverflow.
+	* real.c (real_from_string): Return -1 if underflow, +1 if overflow
+	and 0 otherwise.
+	* real.h (real_from_string): Update declaration
+	
+2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
+	    Richard Henderson  <rth@redhat.com>
+
+	* defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
+	* calls.c (compute_argument_block_size, expand_call,
+	emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
+	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
+	* function.c (STACK_DYNAMIC_OFFSET): Likewise.
+	* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
+	* config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
+	config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
+	config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
+	config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
+	Set to 1.
+
+2007-03-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* c-incpath.c (add_sysroot_to_chain): New.
+	(merge_include_chains): Add sysroot argument.  Call
+	add_sysroot_to_chain if sysrooted.
+	(register_include_chains): Update call to merge_include_chains.
+	* doc/cppopts.texi: Document use of '=' in include directory
+	arguments.
+
+2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
+	Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
+	(*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
+	insn pattern using X87MODEF12 mode macro.
+	
+2007-03-21  Seongbae Park <seongbae.park@gmail.com>
+
+	* regmove.c (regmove_optimize): Use reg_mentioned_p
+	instead of reg_overlap_mentioned_p for DST.
+
+2007-03-21  Mike Stump  <mrs@apple.com>
+
+	* c.opt: Fixup for Objective-C/C++.
+
+2007-03-21  Steve Ellcey  <sje@cup.hp.com>
+
+	* explow.c (convert_memory_address): Fold memory reference when
+	POINTERS_EXTEND_UNSIGNED < 0
+
+2007-03-21  Richard Henderson  <rth@redhat.com>
+
+	PR target/31245
+	* config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
+	* config/i386/mmintrin.h (__m64): Likewise.
+	* config/i386/xmmintrin.h (__m128): Likewise.
+
+2007-03-21  Richard Sandiford  <richard@codesourcery.com>
+
+	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
+	(VXWORKS_OS_CPP_BUILTINS): Define.
+	* config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
+	(TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
+
+2007-03-21  Richard Sandiford  <richard@codesourcery.com>
+
+	* rtl.h (constant_pool_reference_p): Delete.
+	(find_constant_src): Declare.
+	* rtlanal.c (find_constant_src): New function.
+	* simplify-rtx.c (constant_pool_reference_p): Delete.
+	* config/i386/i386.md: Use find_constant_src instead of
+	constant_pool_reference_p/avoid_constant_pool_reference pairs.
+
+2007-03-21  Richard Sandiford  <richard@codesourcery.com>
+
+	* doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
+	* c-cppbuiltin.c (c_cpp_builtins): Define them.
+
+2007-03-20  Mark Mitchell  <mark@codesourcery.com>
+
+	* config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
+	* config/arm/arm.c (arm_elf_asm_cdtor): New function.
+	(arm_elf_asm_constructor): Use it.
+	(arm_elf_asm_destructor): New function.
+
+2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+	* jump.c (mark_jump_label): Treat SEQUENCE specially.
+
+2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
+
+2007-03-19  Andrew Haley  <aph@redhat.com>
+
+	PR tree-optimization/31264
+	* tree-vrp.c (register_edge_assert_for_1): Don't look though
+	VIEW_CONVERT_EXPRs.
+
+2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR rtl-optimization/30907
+	* fwprop.c (forward_propagate_into): Never propagate inside a loop.
+	(fwprop_init): Always call loop_optimizer_initialize.
+	(fwprop_done): Always call loop_optimizer_finalize.
+	(fwprop): We always have loop info now.
+	(gate_fwprop_addr): Remove.
+	(pass_fwprop_addr): Use gate_fwprop as gate.
+
+	PR rtl-optimization/30841
+	* df-problems.c (df_ru_local_compute, df_rd_local_compute,
+	df_chain_alloc): Call df_reorganize_refs unconditionally.
+	* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
+	refs_organized to refs_organized_size.
+	(df_ref_create_structure): Use refs_organized_size instead of
+	bitmap_size if refs had been organized, and keep refs_organized_size
+	up-to-date.
+	* df.h (struct df_ref_info): Change refs_organized to
+	refs_organized_size.
+	(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
+	bitmap_size.
+
+2007-03-19  Mark Mitchell  <mark@codesourcery.com>
+
+	* except.c (output_function_exception_table): Do not reference the
+	EH personality routine for functions that do not require an
+	exception table.
+
+2007-03-20  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/30762
+	* c-typeck.c (convert_for_assignment): Call comptypes for
+	RECORD_TYPE or UNION_TYPE.
+
+	PR inline-asm/30505
+	* reload1.c (reload): Do invalid ASM checking after
+	cleanup_subreg_operands.
+
+2007-03-19  Jeff Law  <law@redhat.com>
+
+	* tree-cfg.c (find_taken_edge): Tighten conditions for
+	optimizing computed gotos.
+
+2007-03-19  Michael Matz  <matz@suse.de>
+
+	* builtins.c (expand_builtin_sync_operation,
+	expand_builtin_compare_and_swap,
+	expand_builtin_lock_test_and_set): Care for extending CONST_INTs
+	correctly.
+
+	* config/i386/sync.md (sync_double_compare_and_swapdi_pic,
+	sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
+	for operand 3.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* doc/tm.texi: Add brackets around the return type of
+	TARGET_SECONDARY_RELOAD.
+
+2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+	Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/31254
+	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
+	Use handled_component_p () where appropriate.  Continue
+	propagating into the rhs if we propagated into an INDIRECT_REF
+	on the lhs.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.md (op_type attribute): RRR instruction type added.
+	(FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
+	(xde, xdee): Mode attributes adjusted to support DFP modes.
+	(RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
+	("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
+	DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3", 
+	"*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
+	"*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
+	"div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
+	"*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP 
+	numbers.
+	("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
+	"movsf"): Insn definitions removed.
+	("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
+	"*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
+	"trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
+	definitions added.
+	("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
+	"reload_in<mode>", "reload_out<mode>"): Expander added.
+	("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
+	Expander removed.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.md: Only non-functional changes.  Renamed
+	FPR mode macro to BFP all over the file.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
+	(op_type attribute): RRF instruction type added.
+	(fT0): New mode attribute.
+	("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
+	"*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
+	* config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
+	no secondary memory is needed when moving DFmode values between GPRs
+	and FPRs.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
+	inverted and documentation adjusted.
+	("mhard-dfp", "msoft-dfp"): New options.
+	* config/s390/s390.c (s390_handle_arch_option): New architecture
+	switch: z9-ec.
+	(override_options): Sanity checks for the new options added.
+	* config.gcc: New architecture switch: z9-ec.
+	* config/s390/s390.h (processor_flags): PF_DFP added.
+	(TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
+	(TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
+	when the bit is NOT set so remove it from the defaults.
+
+2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* genemit.c (main): Print include statement for dfp.h.
+	* dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
+	is not available.
+
+2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
+
+2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	PR target/31022
+	* config/sh/sh.c (sh_adjust_cost): Use the result of single_set
+	instead of PATTERN.
+
+2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.c (output_deferred_plabels, output_bb, output_millicode_call,
+	attr_length_call, output_call, output_indirect_call): Cleanup
+	formatting of targetm calls.
+
+2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
+
+2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.md: Add fpstore_load and store_fpload instruction types.  Provide
+	reservation, bypass and anti-bypass descriptions for these instructions.
+	Update move patterns.
+	* pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
+	TYPE_FPSTORE.
+	
+2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
+
+	* tree-vect-transform.c (get_initial_def_for_induction): Replace
+	GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
+	(get_initial_def_for_reduction): Likewise.
+
+2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
+
+	Fix PR tree-optimization/29922
+	* tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
+	(get_representative): Removed.
+	(value_dies_in_block_x): Update for rvuse removal.
+	(valid_in_sets): Update for renaming of vuses_dies_in_block_x.
+	(compute_antic_aux): Handle when PHI nodes appear in
+	non-single-successors. 
+	(dump_bitmap_of_names): Removed.
+	(compute_antic_safe): Renamed and removed rvuse calculation.
+	Calculate only antic safe.
+	(insert_into_preds_of_block): Remove assert.
+	(execute_pre): Update for renamed functions.
+	(defer_or_phi_translate_block): New function.
+	
+2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
+
+	* config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
+	config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
+	typos.
+	* doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
+	Follow spelling conventions.
+
+	* tree-data-ref.h: Remove the prototype for analyze_array.
+
+2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
+
+	PR tree-optimization/31041
+	* tree-vect-transform.c (get_initial_def_for_induction): Call
+	force_gimple_operand.
+	
+2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
+  
+  	* ipa-type-escape.c (look_for_casts) : Revert code to use
+	handled_component_p due to ada test a-numaux.adb.
+
+2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
+
+	* final.c (final_scan_insn): Alter the condition of a
+	conditional trap if we have nonstandard CC.
+
+2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.ac: Remove excess quoting from asm line 0 test.
+	* configure: Rebuilt.
+
+2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* doc/invoke.texi (-Wconversion): Document warnings specific to C++.
+	* c-common.c (convert_and_check): Move warning logic to...
+	(warnings_for_convert_and_check): ...here. Define.
+	* c-common.h (warnings_for_convert_and_check): Declare.
+	
+2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* pa.c (attr_length_call): Partially revert change of 2007-03-09.
+	(output_call): Likewise.
+
 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
 
 	* config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp	2007-03-24 02:26:21.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog	2007-03-25 02:16:30.000000000 +0000
@@ -1,3 +1,40 @@
+2007-03-22  Mark Mitchell  <mark@codesourcery.com>
+
+	* cp-tree.h (current_tempalte_parms): Improve documentation.
+	* pt.c (current_template_args): Likewise.
+
+	PR c++/30863
+	* parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Do
+	not consume tokens when failing.
+
+2007-03-22  Jim Wilson  <wilson@specifix.com>
+	    Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/31273
+	* call.c (standard_conversion): Use type_decays_to.  Keep FCODE
+	consistent with FROM.
+
+2007-03-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	* error.c (dump_expr): Handle dependent names that designate types.
+	* cxx-pretty-print.c (pp_cxx_unqualified_id): Handle TYPENAME_TYPE.
+
+2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
+
+	* cp-tree.def, parser.c, pt.c: Fix comment typos.
+
+2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* cvt.c (cp_convert_and_check) : Define.
+	* cp-tree.h (cp_convert_and_check): Declare.
+	* call.c (convert_conversion_warnings): Rename to
+	conversion_null_warnings.  The warning for floating-point to
+	integer is handled by convert_and_check in convert_like_real.
+	(convert_like_real): convert_conversion_warnings was renamed as
+	conversion_null_warnings.
+	* typeck.c (build_binary_op): Use cp_convert_and_check to warn for
+	overflow and changes of value during conversion.
+
 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
 	PR c++/30891


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]