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 combine.c compilation at -O0 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 9503k to 9160k, overall -3.74%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 8890k to 8547k, overall -4.01%
  Amount of memory still referenced at the end of compilation decreased from 6742k to 6052k, overall -11.41%
    Overall memory needed: 25013k -> 24717k
    Peak memory use before GGC: 9503k -> 9160k
    Peak memory use after GGC: 8890k -> 8547k
    Maximum of released memory in single GGC run: 2603k -> 2580k
    Garbage: 38649k -> 38214k
    Leak: 6742k -> 6052k
    Overhead: 5888k -> 5326k
    GGC runs: 302 -> 307

comparing combine.c compilation at -O1 level:
  Overall memory allocated via mmap and sbrk increased from 26888k to 36357k, overall 35.22%
  Amount of produced GGC garbage decreased from 58951k to 56532k, overall -4.28%
  Amount of memory still referenced at the end of compilation decreased from 6860k to 6066k, overall -13.09%
    Overall memory needed: 26888k -> 36357k
    Peak memory use before GGC: 17424k -> 16999k
    Peak memory use after GGC: 17245k -> 16828k
    Maximum of released memory in single GGC run: 2284k -> 2261k
    Garbage: 58951k -> 56532k
    Leak: 6860k -> 6066k
    Overhead: 7253k -> 6070k
    GGC runs: 376 -> 378

comparing combine.c compilation at -O2 level:
  Amount of produced GGC garbage decreased from 83040k to 80305k, overall -3.41%
  Amount of memory still referenced at the end of compilation decreased from 6989k to 6170k, overall -13.28%
    Overall memory needed: 26888k -> 26496k
    Peak memory use before GGC: 17428k -> 16997k
    Peak memory use after GGC: 17245k -> 16828k
    Maximum of released memory in single GGC run: 2385k -> 2254k
    Garbage: 83040k -> 80305k
    Leak: 6989k -> 6170k
    Overhead: 9950k -> 8600k
    GGC runs: 442 -> 446

comparing combine.c compilation at -O3 level:
  Amount of produced GGC garbage decreased from 113734k to 109841k, overall -3.54%
  Amount of memory still referenced at the end of compilation decreased from 7077k to 6247k, overall -13.29%
    Overall memory needed: 25988k -> 25600k
    Peak memory use before GGC: 18565k -> 18087k
    Peak memory use after GGC: 17879k -> 17424k
    Maximum of released memory in single GGC run: 3521k -> 3346k
    Garbage: 113734k -> 109841k
    Leak: 7077k -> 6247k
    Overhead: 13575k -> 11873k
    GGC runs: 491 -> 496

comparing insn-attrtab.c compilation at -O0 level:
  Amount of memory still referenced at the end of compilation decreased from 10119k to 9116k, overall -11.01%
    Overall memory needed: 82160k -> 81508k
    Peak memory use before GGC: 69029k -> 68248k
    Peak memory use after GGC: 44784k -> 43996k
    Maximum of released memory in single GGC run: 36008k -> 35708k
    Garbage: 140138k -> 138286k
    Leak: 10119k -> 9116k
    Overhead: 20393k -> 18992k
    GGC runs: 239 -> 241

comparing insn-attrtab.c compilation at -O1 level:
  Amount of produced GGC garbage decreased from 284126k to 268543k, overall -5.80%
  Amount of memory still referenced at the end of compilation decreased from 10055k to 8940k, overall -12.47%
    Overall memory needed: 105924k -> 103676k
    Peak memory use before GGC: 85564k -> 83566k
    Peak memory use after GGC: 79517k -> 77686k
    Maximum of released memory in single GGC run: 32268k -> 31934k
    Garbage: 284126k -> 268543k
    Leak: 10055k -> 8940k
    Overhead: 34782k -> 29970k
    GGC runs: 239 -> 235

comparing insn-attrtab.c compilation at -O2 level:
  Ovarall memory allocated via mmap and sbrk decreased from 111844k to 103656k, overall -7.90%
  Amount of produced GGC garbage decreased from 331999k to 314640k, overall -5.52%
  Amount of memory still referenced at the end of compilation decreased from 10041k to 8935k, overall -12.38%
    Overall memory needed: 111844k -> 103656k
    Peak memory use before GGC: 89993k -> 87827k
    Peak memory use after GGC: 81920k -> 79920k
    Maximum of released memory in single GGC run: 30719k -> 30382k
    Garbage: 331999k -> 314640k
    Leak: 10041k -> 8935k
    Overhead: 42237k -> 36950k
    GGC runs: 265 -> 263

comparing insn-attrtab.c compilation at -O3 level:
  Ovarall memory allocated via mmap and sbrk decreased from 111500k to 103660k, overall -7.56%
  Amount of produced GGC garbage decreased from 332603k to 315231k, overall -5.51%
  Amount of memory still referenced at the end of compilation decreased from 10045k to 8938k, overall -12.39%
    Overall memory needed: 111500k -> 103660k
    Peak memory use before GGC: 90019k -> 87853k
    Peak memory use after GGC: 81946k -> 79946k
    Maximum of released memory in single GGC run: 30916k -> 30573k
    Garbage: 332603k -> 315231k
    Leak: 10045k -> 8938k
    Overhead: 42424k -> 37130k
    GGC runs: 268 -> 267

comparing Gerald's testcase PR8361 compilation at -O0 level:
  Amount of memory still referenced at the end of compilation decreased from 49496k to 47149k, overall -4.98%
    Overall memory needed: 118244k -> 116456k
    Peak memory use before GGC: 95013k -> 92791k
    Peak memory use after GGC: 94065k -> 91863k
    Maximum of released memory in single GGC run: 20358k -> 19688k
    Garbage: 218015k -> 214074k
    Leak: 49496k -> 47149k
    Overhead: 37974k -> 22154k
    GGC runs: 362 -> 416

comparing Gerald's testcase PR8361 compilation at -O1 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 97659k to 93832k, overall -4.08%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 96680k to 92903k, overall -4.07%
  Amount of produced GGC garbage decreased from 465511k to 437074k, overall -6.51%
  Amount of memory still referenced at the end of compilation decreased from 52775k to 48570k, overall -8.66%
    Overall memory needed: 115820k -> 112988k
    Peak memory use before GGC: 97659k -> 93832k
    Peak memory use after GGC: 96680k -> 92903k
    Maximum of released memory in single GGC run: 18987k -> 18471k
    Garbage: 465511k -> 437074k
    Leak: 52775k -> 48570k
    Overhead: 53396k -> 31867k
    GGC runs: 505 -> 557

comparing Gerald's testcase PR8361 compilation at -O2 level:
  Peak amount of GGC memory allocated before garbage collecting run decreased from 97659k to 93832k, overall -4.08%
  Peak amount of GGC memory still allocated after garbage collecting decreased from 96680k to 92903k, overall -4.07%
  Amount of produced GGC garbage decreased from 555592k to 521176k, overall -6.60%
  Amount of memory still referenced at the end of compilation decreased from 53672k to 49262k, overall -8.95%
    Overall memory needed: 115820k -> 112952k
    Peak memory use before GGC: 97659k -> 93832k
    Peak memory use after GGC: 96680k -> 92903k
    Maximum of released memory in single GGC run: 18987k -> 18470k
    Garbage: 555592k -> 521176k
    Leak: 53672k -> 49262k
    Overhead: 62424k -> 39516k
    GGC runs: 588 -> 635

comparing Gerald's testcase PR8361 compilation at -O3 level:
  Peak amount of GGC memory still allocated after garbage collecting decreased from 97976k to 94524k, overall -3.65%
  Amount of produced GGC garbage decreased from 575982k to 539157k, overall -6.83%
  Amount of memory still referenced at the end of compilation decreased from 54028k to 49600k, overall -8.93%
    Overall memory needed: 117116k -> 114920k
    Peak memory use before GGC: 98956k -> 96315k
    Peak memory use after GGC: 97976k -> 94524k
    Maximum of released memory in single GGC run: 19240k -> 18769k
    Garbage: 575982k -> 539157k
    Leak: 54028k -> 49600k
    Overhead: 63531k -> 40673k
    GGC runs: 595 -> 643

Head of the ChangeLog is:

--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog	2006-05-25 22:44:07.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog	2006-07-20 03:01:06.000000000 +0000
@@ -1,8 +1,1779 @@
+2006-07-19  Jakub Jelinek  <jakub@redhat.com>
+
+	* except.c (duplicate_eh_regions_1): Clear next_peer.
+
+2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+	* doc/invoke.texi (RS/6000 and PowerPC Options): Document that
+	-mlongcall does not guarantee all calls will be long.
+	* doc/extend.texi (long_call/short_call): Document that longcall
+	does not guarantee a long call will be used.
+	(longcall/shortcall): Likewise.
+
+2006-07-18  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/28283
+	* expmed.c (expand_shift): Additionally check that the shift_cost
+	is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
+	before implementing a LSHIFT_EXPR as a sequence of additions.
+	* config/sh/sh.c (shift_costs): Return MAX_COST to inform the
+	middle-end that DImode shifts need to be synthesized by expand.
+
+2006-07-18  Diego Novillo  <dnovillo@redhat.com>
+
+	PR 28410
+	* tree-ssa-operands.c (access_can_touch_variable): Update
+	comment.
+	Return true if ALIAS is .GLOBAL_VAR.
+
+2006-07-18  David Daney  <ddaney@avtrex.com>
+
+	* gcc.c (display_help): Fix typo in help text.
+
+2006-07-18  Olivier Hainque  <hainque@adacore.com>
+
+	* tree.h (categorize_ctor_elements): Adjust prototype and add
+	descriptive comment, both in accordance with the interface change
+	described below.
+	* varasm.c (constructor_static_from_elts_p): New function.
+	Whether a constructor node is a valid static constant initializer
+	if all its elements are.
+	(initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
+	* output.h: Declare it.	
+	* expr.c (categorize_ctor_elements_1): Return whether the constructor
+	is a valid constant initializer instead of computing the number of
+	non-constant elements.  Use constructor_static_from_elts_p for this
+	purpose.  Replace the head comment with an indication that this is a
+	helper for categorize_ctor_elements.
+	(categorize_ctor_elements): Same interface change as for the _1
+	helper.  Former head comment from this helper moved here, adjusted to
+	account for the interface changes.
+	(mostly_zeros_p): Adjust call to categorize_ctor_elements.
+	(all_zeros_p): Likewise.	
+	* gimplify.c (gimplify_init_constructor): Decide whether we can make
+	static versions of the constructor from the categorize_ctor_elements
+	return value instead of the formerly computed number of non-constant
+	elements.
+
+2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
+
+        * configure: Regenerate.
+        * Makefile.in (build_libsubdir): New configure substitution
+        (build_libobjdir): New variable.
+        (BUILD_LIBIBERTY): Use it.
+
+2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+	PR c/28286
+	* c-pragma.c (handle_pragma_pack): Handle invalid constants.
+
+2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR c/26993
+	* c-common.c (handle_weakref_attribute): Ignore attribute in
+	the same conditions the alias attribute is ignored.
+
+2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
+
+	* dbxout.c (dbxout_function_end): Do not increment scope_labelno.
+	(dbxout_begin_prologue): Increment scope_labelno.
+
+2006-07-17  Richard Henderson  <rth@redhat.com>
+
+	PR 27889
+	* tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
+	if needed.
+
+2006-07-17  Roger Sayle  <roger@eyesopen.com>
+	    Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* config/i386/gmon-sol2.c: Silence compilation warnings by partially
+	synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
+	blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
+	functions such as sbrk, write, etc..  Add function prototypes.
+	Convert function declarations from K&R to ISO C.  Cast pointers
+	to "long" and "unsigned long" instead of "int" and "unsigned int".
+	Convert tokens following #endif into comments.
+
+2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
+
+	* invoke.texi: Remove mention of f77; Reformat table for
+	inline parameter options correctly; mention that -malign-double
+	is default on x86-64 targets.
+
+2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* tree-chrec.c (avoid_arithmetics_in_type_p): New.
+	(convert_affine_scev, chrec_convert_aggressive): Use
+	avoid_arithmetics_in_type_p.  Do not check for the subtypes
+	separately.
+
+2006-07-17  Richard Sandiford  <richard@codesourcery.com>
+
+	PR middle-end/28403
+	* optabs.c (expand_doubleword_shift): Wrap the call to
+	do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
+
+2006-07-17  Richard Sandiford  <richard@codesourcery.com>
+
+	PR middle-end/28402
+	* optabs.c (expand_binop): Pass next_methods rather than methods
+	to expand_doubleword_shift.
+
+2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
+
+	PR other/28251
+	* tree.h (dump_addr): Declare.
+	* print-tree.c (dump_addr): New function.
+	(print_node_brief, print_node): Use it.
+	* print-rtl.c (print_rtx): Likewise.
+	* common.opt (-fdump-noaddr): New option.
+	* doc/invoke.texi (-fdump-noaddr): Document.
+	* loop-unroll.c (si_info_hash): Make hash independent of addresses.
+	(ve_info_hash): Likewise.
+
+2006-07-13  Andrew Haley  <aph@redhat.com>
+
+	PR tree-optimization/19505
+	* tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
+	edge leaving this block, make sure that the destination of this
+	block has only one predecessor.
+
+2006-07-17  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/28238
+	* tree-inline.c (copy_bb): Check if we produced valid
+	gimple copying and substituting a stmt.  If not, gimplify
+	it.
+
+2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* optabs.c (maybe_encapsulate_block): New function extracted from...
+	(emit_libcall_block): ...here.  Invoke it on the block of insns to
+	maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
+	(emit_no_conflict_block): Likewise.
+
+2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	* doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
+
+2006-07-15  Roger Sayle  <roger@eyesopen.com>
+
+	* tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
+	a new NOP_EXPR case of the switch statement.
+
+2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+	PR middle-end/28160
+	* stor-layout.c (place_field): Take the bit field with
+	an excessive size into account in the ms-bitfiled case.
+
+	PR middle-end/28161
+	* stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
+	the previous bit field.
+
+2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
+
+	PR target/27287
+	* config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
+
+2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
+	signal frames correctly even when the signal was installed with
+	sa_restorer set.
+
+2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
+
+	* dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
+	(dbxout_function_end): Use local label LFBB. Remove hook 
+	DBX_OUTPUT_NFUN.
+	(dbxout_source_line): Use local label LFBB.
+	(dbxout_block): Likewise.
+	(dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
+	(dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
+	* config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
+	and DBX_OUTPUT_NFUN.
+
+2006-07-13  Janis Johnson  <janis187@us.ibm.com>
+
+	* doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
+
+2006-07-13  Jan Hubicka  <jh@suse.cz>
+
+	* cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
+	align_variable.
+	* output.h (align_variable): Declare.
+	* varasm.c (align_variable): Export.
+	* value-prof.c (tree_value_profile_transformations): Recompute iterator
+	when basic block changed.
+
+2006-07-13  Nick Clifton  <nickc@redhat.com>
+
+	* config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
+	walking the LOG_LINKS chain.
+  
+2006-07-12  Geoffrey Keating  <geoffk@apple.com>
+
+	* doc/invoke.texi (C++ Dialect Options): Explain difference
+	between -fvisibility-inlines-hidden and setting hidden
+	visibility explicitly.
+
+2006-07-12  Eric Christopher  <echristo@apple.com>
+
+	* config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
+	(stmp-lipo): Depend on libgcc.a.
+
+2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
+
+	* tree.c: Fix a comment typo.
+
+2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
+
+	* config/m32c/muldiv.md (umulhisi3_c): Use only registers for
+	dest.
+	(umulhisi3_r): Likewise.
+
+2006-07-12  Paolo Carlini  <pcarlini@suse.de>
+
+	PR libstdc++/27878
+	* doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
+	x < 19, vs wchar_t support.
+
+2006-07-12  Nick Clifton  <nickc@redhat.com>
+
+	* config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
+	instead of -isa=sh4.
+
+2006-07-12  Mike Stump  <mrs@apple.com>
+
+	* protoize.c (edit_fn_definition): Add volatile to clean_text_p.
+
+2006-07-10  Eric Christopher  <echristo@apple.com>
+
+	* config/t-slibgcc-darwin: Rewrite.
+
+2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
+
+	PR bootstrap/20437
+	* Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
+	dependencies.
+
+2006-07-08  Matthias Klose  <doko@debian.org>
+
+	* doc/sourcebuild.texi: Fix typo.
+
+2006-07-07  Mike Stump  <mrs@apple.com>
+
+	* toplev.c (process_options): Don't give -ffunction-sections may
+	affect debugging warning for Mach-O.
+
+2006-07-07  James E Wilson  <wilson@specifix.com>
+
+	* config/mips/mips.md (cpu): Add sb1a.
+	* config/mips/sb1.md: Modify almost all patterns to accept sb1a in
+	addition to sb1.  Adjust comments to clarify SB-1A differences from
+	SB-1.
+	(ir_sb1a_load): New.  Modify bypasses to use it.
+	(ir_sb1a_simple_alu): Likewise.
+	* config/mips/mips.c (mips_cpu_info_table): Add sb1a.
+	(mips_rtx_cost_data): Add PROCESSOR_SB1A support.
+	(mips_issue_rate): Add PROCESSOR_SB1A.
+	(mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
+	* config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
+	(TARGET_SB1): Add PROCESSOR_SB1A check.
+	(TUNE_SB1): Likewise.
+
+	* config/mips/mips-protos.h (mips_store_data_bypass_p): New.
+	* config/mips/mips.c (mips_store_data_bypass_p): New.
+	* config/mips/sb1.md: Use mips_store_data_bypass_p instead of
+	store_data_bypass_p.
+
+2006-07-08  Paul Brook  <paul@codesourcery.com>
+
+	PR target/27991
+	* config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
+
+2006-07-07   Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/28268
+	* tree.h (build_one_cst): Declare.
+	* tree.c (build_one_cst): New function.
+	* tree-ssa-math-opts.c (get_constant_one): Remove.
+	(insert_reciprocals): Use build_one_cst.
+	* fold-const.c (fold_plusminus_mult): Likewise.
+
+2006-07-07  Roger Sayle  <roger@eyesopen.com>
+
+	* pointer-set.c (pointer_set_destroy): Correct whitespace.
+	* cfgloopanal.c (dump_graph): Likewise.
+	* dojump.c (discard_pending_stack_adjust): Likewise.
+	* fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
+	Likewise.
+	* alloc-pool.c (dump_alloc_pool_statistics): Likewise.
+	* function.c (finalize_block_changes): Likewise.
+	* gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
+	* tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
+	* rtl.c (dump_rtx_statistics): Likewise.
+	* tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
+	Likewise.
+	* varray.c (dump_varray_statistics): Likewise.
+	* dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
+	decode_decimal64, encode_decimal128, decode_decimal128,
+	decimal_real_to_decimal): Likewise.
+
+2006-07-07  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/28187
+	* tree-vrp.c (vrp_operand_equal_p): New function.
+	(vrp_bitmap_equal_p): Likewise.
+	(update_value_range): Use them to compare old and new
+	max and min values.
+
+2006-07-06  Roger Sayle  <roger@eyesopen.com>
+
+	* c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
+	a default case to switch statement to silence compiler warnings.
+
+2006-07-06  Roger Sayle  <roger@eyesopen.com>
+
+	PR target/27968
+	* configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
+	the configured assembler supports the x87's ffreep mnemonic.
+	* configure: Regenerate.
+	* config.in: Regenerate.
+
+	* config/i386/i386.c (output_387_ffreep): New function.
+	(output_fp_compare): Use output_387_ffreep to emit ffreep insns.
+	(output_387_reg_move): Likewise.
+
+2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Port to hosts whose 'sort' and 'tail' implementations
+	treat operands with leading '+' as file names, as POSIX
+	has required since 2001.  However, make sure the code still
+	works on pre-POSIX hosts.
+	* Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
+	which says you should use "tail -c +N" rather than "tail +Nc".
+	Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
+
+2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
+	argument name.
+
+2006-07-06  David Edelsohn  <edelsohn@gnu.org>
+
+	PR target/28150
+	* config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
+	PRE_{INC,DEC} of TFmode.
+
+2006-07-06  David Edelsohn  <edelsohn@gnu.org>
+	    Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/28170
+	* config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
+	bounds. Simplify.
+
+2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	PR target/28285
+	* config/alpha/predicates.md (alpha_swapped_comparison_operator):
+	Remove duplicate gtu.
+
+2006-07-05  Jason Merrill  <jason@redhat.com>
+
+	PR c++/13983
+	PR c++/17519
+	* stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
+	* c-common.c (handle_packed_attribute): So don't copy it here.
+	* c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
+
+2006-07-05  Mike Stump  <mrs@apple.com>
+
+	* doc/invoke.texi (Invoking G++): Clarify prose for g++.
+
+2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR target/26146
+	* config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
+
+2006-07-05  Richard Guenther  <rguenther@suse.de>
+
+	PR target/28158
+	* config/i386/i386.md (*negdf2_1): Restrict pattern to
+	TARGET_SSE2 targets if using SSE math.
+	(*absdf2_1): Likewise.
+
+2006-07-05  Richard Guenther  <rguenther@suse.de>
+
+	PR tree-optimization/28162
+	* fold-const.c (fold_binary): For (-A) * (-B) -> A * B
+	make sure to convert the operands to the correct type.
+
+2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR tree-optimization/28218
+
+	* tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
+	to calculate and free the dominator information.
+
+2006-07-04  Peter O'Gorman  <peter@pogma.com>
+
+	* mklibgcc.in: chmod 644 before ranlib during install.
+
+2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
+	    J"orn Rennecke <joern.rennecke@st.com>
+
+	* configure.ac (.eh_frame data check): Use diff -b.
+
+2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR bootstrap/18058
+	* Makefile.in (BUILD_RTL): Add build/vec.o.
+	(build/gencondmd.o): Filter out -fkeep-inline-functions.
+	(build/genextract): Delete.
+	(build/genautomata): Likewise.
+
+2006-07-04  Alan Modra  <amodra@bigpond.net.au>
+
+	PR target/28207
+	* config/rs6000/rs6000.c (function_arg_boundary): Double-word align
+	128-bit IBM long doubles for ABI_V4.
+
+2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* tree.c (range_in_array_bounds_p): New predicate.
+	* tree.h (range_in_array_bounds_p): Declare it.
+	* tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
+	return a less conservative answer.
+	* tree-sra.c (struct sra_elt): Add new pointer field 'groups'
+	and flag 'is_group'.
+	(IS_ELEMENT_FOR_GROUP): New macro.
+	(FOR_EACH_ACTUAL_CHILD): Likewise.
+	(next_child_for_group): New helper function.
+	(can_completely_scalarize_p): Take into account groups.
+	(sra_hash_tree): Handle RANGE_EXPR.
+	(sra_elt_eq): Likewise.
+	(lookup_element): Be prepared for handling groups.
+	(is_valid_const_index): Delete.
+	(maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
+	instead of is_valid_const_index.
+	<ARRAY_RANGE_REF>: New case.
+	(sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
+	is_valid_const_index.
+	<ARRAY_RANGE_REF>: Do not unconditionally punt.
+	(scan_dump): Dump info for groups too.
+	(decide_instantiation_1): Likewise.
+	(decide_block_copy): Assert that the element is not a group.
+	Propagate decision to groups.
+	(generate_one_element_ref): Handle RANGE_EXPR.
+	(mark_no_warning): Iterate over actual childs.
+	(generate_copy_inout): Likewise.
+	(generate_element_copy): Likewise.
+	(generate_element_zero): Likewise.
+	(generate_element_init_1): Likewise.
+	(dump_sra_elt_name): Handle RANGE_EXPR.
+
+2006-07-03  Roger Sayle  <roger@eyesopen.com>
+
+	PR tree-optimization/26251
+	* tree-ssa-threadupdate.c (redirection_block_p): New function.
+	(thread_block): When optimizing for size refuse to thread jumps
+	that would require duplication of blocks other than redirection
+	blocks.
+
+2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.ac: Fix thinko in previous check-in.
+	* configure: Regenerate.
+
+2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR other/27063
+	* configure.ac (for lang...): Simplify nesting of conditionals.
+	Test subdir_requires for non-enabled languages.  Move processing
+	of lang_opt_files and lang_tree_fiels below that test.
+	* configure: Regenerate.
+	* doc/sourcebuild.texi (Front End Config): Document subdir_requires.
+
+2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
+
+	* doc/gcov.texi (Invoking Gcov): Add a missing word.
+
+2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
+
+	* cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
+	comment typos.
+
+2006-06-29  Jason Merrill  <jason@redhat.com>
+
+	PR c++/26905
+	PR c++/26612
+	PR c++/27000
+	PR c++/26984
+	PR c++/19134
+	* tree.c (build_decl_stat): Don't hande #pragma visibility here.
+	* c-common.c (c_determine_visibility): Handle it here.
+	* c-decl.c (finish_decl): Call c_determine_visibility for
+	functions, too.
+	* flags.h (enum symbol_visibility): Sort from most to least visibility.
+	* tree.h: Likewise.
+	* varasm.c (default_assemble_visibility): Likewise.
+	* c-common.c (handle_visibility_attribute): Complain about trying
+	to give visibility to an already defined class, or trying to change
+	declared visibility. Always attach the attribute.
+
+	PR c++/26905
+	PR c++/21675
+	PR c++/17470
+	* attribs.c (decl_attributes): Ignore type-in-place attributes
+	once the type has been defined.
+
+2006-06-29  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/27428
+	* c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
+	to indicate the cpplib has issued an error message for us.
+
+2006-06-29  Asher Langton  <langton2@llnl.gov>
+
+	PR target/25765
+	* config/i386/i386.c (ix86_output_function_epilogue): Don't
+	insert a label at the end of an function under Mach-O.
+
+2006-06-29  Eric Christopher  <echristo@apple.com>
+	    Evan Cheng  <evan.cheng@apple.com>
+
+	* predicates.md (vector_all_ones_operand): New.
+	(nonimmediate_or_sse_const_operand): Ditto.
+	* config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
+	* config/i386/i386.c (standard_sse_constant_opcode): Define.
+	(standard_sse_mode_p): Ditto.
+	(standard_sse_constant_p): Add case for -1 vector.
+	(ix86_expand_vector_move): Try to use.
+	* sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
+	Call standard_sse_constant_opcode.
+	(*movv4sf_internal): Ditto.
+	(*movv2df_internal): Ditto.
+
+2006-06-29  Roger Sayle  <roger@eyesopen.com>
+
+	* genpreds.c (write_match_code_switch): Correctly use XSTR instead
+	of XEXP to extract the operands of a MATCH_CODE rtx.
+
+2006-06-28  Andrew Pinski  <pinskia@gmail.com>
+
+	* tree.c (tree_size): Do not waste tail padding in
+	struct tree_string and make the size be the same as
+	build_string will generate.
+
+2006-06-28  Jason Merrill  <jason@redhat.com>
+
+	PR c++/27768
+	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
+	may_aliases already in the tag's annotations to the bitmap.
+
+2006-06-28  Roger Sayle  <roger@eyesopen.com>
+
+	* genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
+
+2006-06-28  Roger Sayle  <roger@eyesopen.com>
+
+	* genpreds.c (generate_switch_p): New function.
+	(add_mode_tests): Push the new mode test down inside an AND expr
+	if this allows the switch-suitable MATCH_CODE to be near the root.
+	(write_match_code_switch): New function to write a MATCH_CODE as
+	a switch statement.
+	(write_predicate_stmts): New function to write a predicate RTX
+	expression as a sequence of statements.
+	(write_one_predicate_function): Use write_predicate_stmts.
+	(write_tm_constrs_h): Likewise.
+
+2006-06-26  Fred Fish  <fnf@specifix.com>
+
+	* config/mips/t-sb1: New file.
+	* config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
+	tmake_file list.
+
+2006-06-26  DJ Delorie  <dj@redhat.com>
+
+	* config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
+
+2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
+	    Jayant Sonar  <jayants@kpitcummins.com>
+	    Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
+
+	* config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
+	(subsi3, subsi3_1, subsi3_2): New.
+	* config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
+	* config/m32c/mov.md (SI mov peephole): New.
+	* config/m32c/m32.c (m32c_immd_dbl_mov): New.
+	* config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
+
+2006-06-26  Olivier Hainque  <hainque@adacore.com>
+
+	* function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
+	a CALL_EXPR target function declaration.
+
+2006-06-26  Richard Guenther  <rguenther@suse.de>
+
+	* tree.c (build_string): Do not waste tail padding in
+	struct tree_string.
+
+2006-06-26  Richard Guenther  <rguenther@suse.de>
+
+	* ggc-page.c (init_ggc): Add missing element to size_lookup
+	table.
+
+	Revert
+	2006-06-23  Richard Guenther  <rguenther@suse.de>
+
+	* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
+	sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
+	alignment requests instead.  Add verification code.
+	Add struct tree_function_decl and struct tree_binfo size to
+	extra_order_size_table.  Add missing element to size_lookup
+	table.
+
+2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR middle-end/28151
+	* fold-const.c (const_binop): Be prepared for self returning zero.
+	Simplify code handling complex values.
+
+2006-06-24  Olivier Hainque  <hainque@adacore.com>
+
+	* gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
+	(gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
+	aggregate types.
+
+2006-06-24  Olivier Hainque  <hainque@adacore.com>
+
+	* tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
+	ARRAY_REF, so have the callback called for the low bound expression.
+
+2006-06-23  Janis Johnson  <janis187@us.ibm.com>
+
+	* tree.h (DECIMAL_FLOAT_TYPE_P): New.
+	* c-typeck.c (c_common_type): Disallow operations on decimal float
+	types and other float types.
+	* convert.c (convert_to_real): Don't ignore conversions involving
+	decimal float types.
+
+2006-06-23  Olivier Hainque  <hainque@adacore.com>
+
+	* tree.c (max_int_size_in_bytes): New function, inspired from
+	code in function.c:assign_temp.
+	* tree.h (max_int_size_in_bytes): Declare.
+	* function.c (assign_temp): Use it.
+	* gimplify.c (create_tmp_var): Relax the assertions on the type
+	properties, not mandating constant size any more.
+	(force_constant_size): New static function.
+	(gimple_add_tmp_var): Use it, forcing variable size to a
+	constant upper bound if it is not constant on entry.
+
+2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
+
+	PR target/27789
+	* config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
+	for initialization and setting of one_only flag to ...
+	(i386_pe_encode_section_info): ...here.
+	(i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
+	Recheck that the symbol has not been defined.
+
+2006-06-23  Richard Guenther  <rguenther@suse.de>
+
+	* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
+	sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
+	alignment requests instead.  Add verification code.
+	Add struct tree_function_decl and struct tree_binfo size to
+	extra_order_size_table.  Add missing element to size_lookup
+	table.
+
+2006-06-22  Roger Sayle  <roger@eyesopen.com>
+	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR middle-end/28131
+	* expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
+	call to lang_hooks.types.type_for_mode returned NULL_TREE.
+
+2006-06-23  Ben Elliston  <bje@au.ibm.com>
+
+	* dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
+	negate dn -- manipulate it directly.
+
+2006-06-22  Roger Sayle  <roger@eyesopen.com>
+	    Steven Bosscher  <stevenb.gcc@gmail.com>
+
+	PR target/27531
+	* reload1.c (gen_reload): Call mark_jump_label on the new insns
+	generated by gen_move_insn to add REG_LABEL notes if necessary.
+
+2006-06-22  Bob Wilson  <bob.wilson@acm.org>
+
+	* config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
+	(leaf_entry): Remove use of MIN_ESA.
+
+2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
+
+	PR rtl-optimization/28121
+	* cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
+	the entry edge.
+
+2006-06-21  DJ Delorie  <dj@redhat.com>
+
+	* config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
+	(TN-16C-A156A/E).
+	(mulhisi3_r): Likewise.
+
+2006-06-21  Richard Sandiford  <richard@codesourcery.com>
+
+	PR middle-end/28034
+	* coverage.c (coverage_counter_alloc): Leave the index type
+	unspecified.
+	(coverage_counter_alloc): Use null arguments for operands 2 and 3
+	of the ARRAY_REF.
+
+2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	* doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
+	section from the "Options for Code Generation Conventions".
+
+2006-06-21  Richard Henderson  <rth@redhat.com>
+
+	PR target/26347
+	PR target/27082
+	* config/alpha/predicates.md (small_symbolic_operand): Deny weak
+	symbols.
+	(global_symbolic_operand): Allow weak symbols, even if local_p.
+
+2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
+	(find_interesting_uses_address): Punt if above function returns true.
+
+2006-06-21  Richard Guenther  <rguenther@suse.de>
+
+	* configure: Regenerated.
+
+2006-06-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* config/mips/mips.c (function_arg): Where one part of a
+	complex argument is in registers and the other part in the stack,
+	return a REG not a PARALLEL.
+
+2006-06-21  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure.ac: Set gcc_gxx_include_dir to $target/include/c++
+	when cross-compiling.  Do not substitute libstdcxx_incdir.
+	* configure: Regenerated.
+
+2006-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+	* varasm.c (mergeable_string_section): Check for embedded NULs and
+	NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
+	rather than TREE_STRING_LENGTH bytes.
+
+2006-06-21  Richard Guenther  <rguenther@suse.de>
+
+	* ggc-page.c (extra_order_size_table): Add var_ann_d,
+	tree_ssa_name, bitmap_element and phi_node with 4 arguments
+	sizes.
+
+2006-06-21  Richrad Guenther  <rguenther@suse.de>
+
+	* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
+	Limit iteration over the dominators.
+
+2006-06-20  Roger Sayle  <roger@eyesopen.com>
+
+	* config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
+	(SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
+
+2006-06-20  Richard Guenther  <rguenther@suse.de>
+	Michael Matz  <matz@suse.de>
+
+	* alloc-pool.h (free_alloc_pool_if_empty): Prototype new
+	function.
+	* alloc-pool.c (free_alloc_pool_if_empty): New function.
+	* et-forest.h (et_free_pools): Prototype new function.
+	* et-forest.c (et_free_tree_force): Free parent occurrence.
+	(et_free_pools): New function.
+	* dominance.c (free_dominance_info): Free et-forest alloc
+	pools.
+
+2006-06-20  Roger Sayle  <roger@eyesopen.com>
+
+	* expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
+	integer modes, attempt to directly construct an integer constant.
+
+	* fold-const.c (native_encode_vector): Determine the size of each
+	element from the vector type instead of the first vector element.
+
+	* tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
+	if all of its elements/components are constant.
+	(build_constructor_from_list): Likewise.
+
+2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
+
+	PR tree-optimization/27331
+	* tree-data-ref.c (free_data_ref): New function.
+	(create_data_ref): Fail if the data reference has unknown access
+	function.
+	(free_data_refs): Use free_data_ref.
+
+2006-06-19  Andrew Pinski  <pinskia@gmail.com>
+
+	PR middle-end/28075
+	* tree-inline.c (setup_one_parameter): Strip useless
+	type conversion before adding it to the IR.
+	(declare_return_variable): Likewise.
+
+2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
+
+	PR c/27149
+	* c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
+
+2006-06-19  Mike Stump  <mrs@apple.com>
+
+	* tree.c (variably_modified_type_p): VM arguments don't make the
+	type a VM type.
+
+2006-06-19  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-pre.c (try_combine_conversion): Strip useless
+	type conversions after folding.
+
+2006-06-19  Richard Guenther  <rguenther@suse.de>
+
+	* ggc-page.c (extra_order_size_tab): Add entries with
+	size of struct function and basic_block.
+	(size_lookup): Extend to cover sizes up to 511.
+	(ggc_alloc_stat): Adjust user.
+	(ggc_pch_count_object): Likewise.
+	(ggc_pch_alloc_object): Likewise.
+	(ggc_pch_write_object): Likewise.
+
+2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
+
+	* tree-ssa-loop-niter.c (implies_ge_p): New function.
+	(derive_constant_upper_bound): Handle OP0 - CST in unsigned types
+	correctly.
+
+2006-06-19  Denis Chertykov  <denisc@overta.ru>
+
+	* config/avr/libgcc.S : Correct my wrong previous commit.
+
+2006-06-19  Roger Sayle  <roger@eyesopen.com>
+
+	PR target/27861
+	* expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
+	have stripped a SUBREG from the shift count, so we may need to
+	convert_to_mode back to the type's mode before calling make_tree.
+	Use new_amount instead of amount to avoid expanding a tree twice.
+
+2006-06-19  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/28045
+	* fold-const.c (operand_equal_p): Check if the argument types
+	have the same precision before stripping NOPs.
+
+2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
+
+	Fix PR tree-optimization/27341
+	* tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
+	statement we get.
+	* tree-complex.c (pass_lower_complex): Update SMT usage.
+
+2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+	* config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
+	Add a new alternative to the constraint strings. Add move of
+	operand 1 to 3 to the splitter definition.
+	("doloop_si_long"): Second contraint alternative removed.
+
+2006-06-08  Anatoly Sokolov <aesok@post.ru>
+
+	* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
+	(TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
+	__AVR_HAVE_LPMX__.
+	(AVR_HAVE_MOVW) Define.
+	(ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
+	(ASM_SPEC): Add avr25.
+	(LINK_SPEC): Add avr25.
+	* config/avr/avr.c (avr_have_movw_lpmx_p): Add.
+	(base_arch_s): Add new member 'have_movw_lpmx'.
+	(avr_arch_types): Init 'have_movw_lpmx'.
+	(avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
+	attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
+	attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
+	(avr_override_options): Init 'avr_have_movw_lpmx_p'.
+	(output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
+	AVR_HAVE_MOVW.
+	(avr_file_start): Do not output '.arh' derective.
+	* config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
+	(__do_copy_data): Use __AVR_HAVE_LPMX__.
+	* config/avr/avr.md (mcu_enhanced): Delete.
+	(mcu_have_movw): Define.
+	(negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
+	(call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
+	* config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
+	(MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
+	attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
+	attiny861 and at86rf401 devices.
+
+2006-06-18  Jie Zhang  <jie.zhang@analog.com>
+
+	* config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
+	of 4096.
+
+2006-06-17  Karl Berry  <karl@gnu.org>
+
+	* doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
+	doc/gccint.texi, doc/install.texi (@dircategory): Use
+	"Software development" instead of "Programming", following
+	the Free Software Directory.
+
+2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config/i386/i386.c (legitimate_tls_address)
+	<TARGET_GNU2_TLS>: Add tp after DTPOFF.
+	* config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
+	(*tls_dynamic_gnu2_combine_64): Likewise.
+
+2006-06-16  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/27116
+	* fold-const.c (negate_expr_p): Do not introduce undefined
+	overflow in negating INTEGER_CSTs.
+	(fold_negate_expr): Rename from negate_expr.  Revert last
+	change for folding BIT_NOT_EXPR.  Change semantics to
+	return NULL_TREE for non-simplified negations.  Do not
+	strip type conversions and unify type handling.
+	(negate_expr): New function, wrap around fold_negate_expr
+	but ensure building a tree always.  Strip type conversions
+	here, fold to result type.
+	(fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
+
+2006-06-16  Roger Sayle  <roger@eyesopen.com>
+
+	PR middle-end/27802
+	* reg-stack.c (subst_stack_regs): Handle noreturn function calls
+	that (would) return their results in stack registers.
+
+2006-06-16  Michael Matz  <matz@suse.de>
+	Richard Guenther  <rguenther@suse.de>
+
+	* fold-const.c (fold_truthop): Only return new tree node if
+	we canonicalized something.
+
+2006-06-16  Richard Guenther  <rguenther@suse.de>
+
+	* function.h (enum function_frequency): Move declaration
+	out of struct function.
+	(struct function): Move bool fields and the enum to the bitfield
+	section.  Reorder elements to avoid padding.  Remove unused
+	fields left over from the RTL inliner removal.
+	* function.c (free_after_compilation): Do not zero removed fields.
+	* Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
+	(ipa-type-escape.o): Likewise.
+
+2006-06-16  Richard Guenther  <rguenther@suse.de>
+
+	* cgraph.h (struct cgraph_local_info): Turn bool elements
+	into a bitfield.
+	(struct cgraph_node): Likewise.
+	(struct cgraph_varpool_node): Likewise.
+
+2006-06-15  Richard Guenther  <rguenther@suse.de>
+
+	* fold-const.c (fold_truth_not_expr): Rename from
+	invert_truthvalue.  Give it fold_* semantics to avoid
+	generating garbage.
+	(invert_truthvalue): New function.  Wrapper around
+	fold_truth_not_expr.
+	(optimize_minmax_comparison): Avoid creating garbage.
+	(fold_unary): Use fold_truth_not_expr for folding


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]