This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
Re: A recent patch increased GCC's memory consumption in some cases!
- From: Jan Hubicka <jh at suse dot cz>
- To: gcctest at suse dot de, rguenther at suse dot de
- Cc: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Tue, 5 Jun 2007 09:34:44 +0200
- Subject: Re: A recent patch increased GCC's memory consumption in some cases!
- References: <46645D4A.mail1H118U3E@suse.de>
this is comparing dataflow to current mainline with hack nullifying
tree_ssa_useless_conversion_p. I can't revert it right now.
Honza
> 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 allocated before garbage collecting increased from 2340k to 2349k, overall 0.38%
> Amount of produced GGC garbage increased from 481k to 489k, overall 1.58%
> Amount of memory still referenced at the end of compilation decreased from 2390k to 2277k, overall -4.98%
> Overall memory needed: 7493k -> 7416k
> Peak memory use before GGC: 2340k -> 2349k
> Peak memory use after GGC: 2012k -> 2014k
> Maximum of released memory in single GGC run: 328k -> 335k
> Garbage: 481k -> 489k
> Leak: 2390k -> 2277k
> Overhead: 519k -> 404k
> GGC runs: 3
>
> comparing empty function compilation at -O0 -g level:
> Peak amount of GGC memory allocated before garbage collecting increased from 2367k to 2377k, overall 0.42%
> Amount of produced GGC garbage increased from 483k to 491k, overall 1.57%
> Amount of memory still referenced at the end of compilation decreased from 2423k to 2310k, overall -4.91%
> Overall memory needed: 7509k -> 7432k
> Peak memory use before GGC: 2367k -> 2377k
> Peak memory use after GGC: 2040k -> 2042k
> Maximum of released memory in single GGC run: 327k -> 335k
> Garbage: 483k -> 491k
> Leak: 2423k -> 2310k
> Overhead: 523k -> 408k
> GGC runs: 3
>
> comparing empty function compilation at -O1 level:
> Peak amount of GGC memory allocated before garbage collecting increased from 2340k to 2349k, overall 0.38%
> Amount of produced GGC garbage increased from 486k to 494k, overall 1.58%
> Amount of memory still referenced at the end of compilation decreased from 2393k to 2279k, overall -4.97%
> Overall memory needed: 7545k -> 7524k
> Peak memory use before GGC: 2340k -> 2349k
> Peak memory use after GGC: 2012k -> 2014k
> Maximum of released memory in single GGC run: 328k -> 335k
> Garbage: 486k -> 494k
> Leak: 2393k -> 2279k
> Overhead: 519k -> 404k
> GGC runs: 3
>
> comparing empty function compilation at -O2 level:
> Peak amount of GGC memory allocated before garbage collecting increased from 2340k to 2350k, overall 0.43%
> Amount of produced GGC garbage increased from 490k to 497k, overall 1.60%
> Amount of memory still referenced at the end of compilation decreased from 2393k to 2280k, overall -4.97%
> Overall memory needed: 7561k -> 7532k
> Peak memory use before GGC: 2340k -> 2350k
> Peak memory use after GGC: 2012k -> 2014k
> Maximum of released memory in single GGC run: 328k -> 336k
> Garbage: 490k -> 497k
> Leak: 2393k -> 2280k
> Overhead: 520k -> 405k
> GGC runs: 4
>
> comparing empty function compilation at -O3 level:
> Peak amount of GGC memory allocated before garbage collecting increased from 2340k to 2350k, overall 0.43%
> Amount of produced GGC garbage increased from 490k to 497k, overall 1.60%
> Amount of memory still referenced at the end of compilation decreased from 2393k to 2280k, overall -4.97%
> Overall memory needed: 7561k -> 7532k
> Peak memory use before GGC: 2340k -> 2350k
> Peak memory use after GGC: 2012k -> 2014k
> Maximum of released memory in single GGC run: 328k -> 336k
> Garbage: 490k -> 497k
> Leak: 2393k -> 2280k
> Overhead: 520k -> 405k
> GGC runs: 4
>
> comparing combine.c compilation at -O0 level:
> Ovarall memory allocated via mmap and sbrk decreased from 22461k to 17648k, overall -27.27%
> Amount of memory still referenced at the end of compilation decreased from 7016k to 6766k, overall -3.69%
> Overall memory needed: 22461k -> 17648k
> Peak memory use before GGC: 9035k -> 8980k
> Peak memory use after GGC: 8246k -> 8214k
> Maximum of released memory in single GGC run: 1595k -> 1875k
> Garbage: 38371k -> 37733k
> Leak: 7016k -> 6766k
> Overhead: 4988k -> 4594k
> GGC runs: 280 -> 278
>
> comparing combine.c compilation at -O0 -g level:
> Ovarall memory allocated via mmap and sbrk decreased from 24389k to 19524k, overall -24.92%
> Overall memory needed: 24389k -> 19524k
> Peak memory use before GGC: 10770k -> 10715k
> Peak memory use after GGC: 10005k -> 9922k
> Maximum of released memory in single GGC run: 1891k -> 1559k
> Garbage: 38740k -> 38077k
> Leak: 9909k -> 9651k
> Overhead: 5694k -> 5299k
> GGC runs: 271 -> 269
>
> comparing combine.c compilation at -O1 level:
> Ovarall memory allocated via mmap and sbrk decreased from 35349k to 29968k, overall -17.96%
> Amount of produced GGC garbage decreased from 54065k to 50501k, overall -7.06%
> Amount of memory still referenced at the end of compilation decreased from 7068k to 6834k, overall -3.43%
> Overall memory needed: 35349k -> 29968k
> Peak memory use before GGC: 17850k -> 17663k
> Peak memory use after GGC: 17670k -> 17459k
> Maximum of released memory in single GGC run: 1346k -> 1448k
> Garbage: 54065k -> 50501k
> Leak: 7068k -> 6834k
> Overhead: 6253k -> 5634k
> GGC runs: 363 -> 353
>
> comparing combine.c compilation at -O2 level:
> Ovarall memory allocated via mmap and sbrk decreased from 37225k to 34372k, overall -8.30%
> Amount of produced GGC garbage decreased from 71145k to 67373k, overall -5.60%
> Amount of memory still referenced at the end of compilation decreased from 7196k to 6943k, overall -3.63%
> Overall memory needed: 37225k -> 34372k
> Peak memory use before GGC: 17897k -> 17715k
> Peak memory use after GGC: 17684k -> 17519k
> Maximum of released memory in single GGC run: 1365k -> 1390k
> Garbage: 71145k -> 67373k
> Leak: 7196k -> 6943k
> Overhead: 8413k -> 7776k
> GGC runs: 422 -> 416
>
> comparing combine.c compilation at -O3 level:
> Ovarall memory allocated via mmap and sbrk decreased from 43653k to 40764k, overall -7.09%
> Amount of produced GGC garbage decreased from 97102k to 92482k, overall -5.00%
> Amount of memory still referenced at the end of compilation decreased from 7302k to 7061k, overall -3.42%
> Overall memory needed: 43653k -> 40764k
> Peak memory use before GGC: 18125k -> 17922k
> Peak memory use after GGC: 17888k -> 17663k
> Maximum of released memory in single GGC run: 3637k
> Garbage: 97102k -> 92482k
> Leak: 7302k -> 7061k
> Overhead: 11746k -> 10981k
> GGC runs: 456 -> 443
>
> comparing insn-attrtab.c compilation at -O0 level:
> Ovarall memory allocated via mmap and sbrk decreased from 142057k to 92892k, overall -52.93%
> Peak amount of GGC memory still allocated after garbage collecting increased from 32807k to 33349k, overall 1.65%
> Amount of memory still referenced at the end of compilation decreased from 9852k to 9497k, overall -3.74%
> Overall memory needed: 142057k -> 92892k
> Peak memory use before GGC: 59801k -> 58854k
> Peak memory use after GGC: 32807k -> 33349k
> Maximum of released memory in single GGC run: 34625k -> 33675k
> Garbage: 131850k -> 129451k
> Leak: 9852k -> 9497k
> Overhead: 14381k -> 13788k
> GGC runs: 220 -> 215
>
> comparing insn-attrtab.c compilation at -O0 -g level:
> Ovarall memory allocated via mmap and sbrk decreased from 143301k to 94160k, overall -52.19%
> Peak amount of GGC memory still allocated after garbage collecting increased from 33968k to 34510k, overall 1.60%
> Overall memory needed: 143301k -> 94160k
> Peak memory use before GGC: 60963k -> 60016k
> Peak memory use after GGC: 33968k -> 34510k
> Maximum of released memory in single GGC run: 34626k -> 33676k
> Garbage: 132068k -> 129394k
> Leak: 11561k -> 11446k
> Overhead: 14778k -> 14185k
> GGC runs: 218 -> 213
>
> comparing insn-attrtab.c compilation at -O1 level:
> Ovarall memory allocated via mmap and sbrk decreased from 153065k to 107596k, overall -42.26%
> Peak amount of GGC memory allocated before garbage collecting run decreased from 62286k to 58483k, overall -6.50%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 59785k to 53813k, overall -11.10%
> Amount of produced GGC garbage decreased from 232080k to 211692k, overall -9.63%
> Overall memory needed: 153065k -> 107596k
> Peak memory use before GGC: 62286k -> 58483k
> Peak memory use after GGC: 59785k -> 53813k
> Maximum of released memory in single GGC run: 23630k -> 24263k
> Garbage: 232080k -> 211692k
> Leak: 9740k -> 9622k
> Overhead: 26103k -> 23938k
> GGC runs: 250 -> 243
>
> comparing insn-attrtab.c compilation at -O2 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 62710k to 58364k, overall -7.45%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 60106k to 53907k, overall -11.50%
> Amount of produced GGC garbage decreased from 265878k to 246389k, overall -7.91%
> Overall memory needed: 166985k -> 163736k
> Peak memory use before GGC: 62710k -> 58364k
> Peak memory use after GGC: 60106k -> 53907k
> Maximum of released memory in single GGC run: 21321k -> 20513k
> Garbage: 265878k -> 246389k
> Leak: 9731k -> 9617k
> Overhead: 31484k -> 29481k
> GGC runs: 273 -> 264
>
> comparing insn-attrtab.c compilation at -O3 level:
> Peak amount of GGC memory allocated before garbage collecting run decreased from 75342k to 69170k, overall -8.92%
> Peak amount of GGC memory still allocated after garbage collecting decreased from 70912k to 64711k, overall -9.58%
> Amount of produced GGC garbage decreased from 295048k to 275540k, overall -7.08%
> Overall memory needed: 179977k -> 178300k
> Peak memory use before GGC: 75342k -> 69170k
> Peak memory use after GGC: 70912k -> 64711k
> Maximum of released memory in single GGC run: 22939k -> 22127k
> Garbage: 295048k -> 275540k
> Leak: 9735k -> 9627k
> Overhead: 33204k -> 31207k
> GGC runs: 275 -> 264
>
> comparing Gerald's testcase PR8361 compilation at -O0 level:
> Ovarall memory allocated via mmap and sbrk decreased from 153851k to 147281k, overall -4.46%
> Peak amount of GGC memory allocated before garbage collecting increased from 89198k to 90173k, overall 1.09%
> Peak amount of GGC memory still allocated after garbage collecting increased from 88315k to 89268k, overall 1.08%
> Overall memory needed: 153851k -> 147281k
> Peak memory use before GGC: 89198k -> 90173k
> Peak memory use after GGC: 88315k -> 89268k
> Maximum of released memory in single GGC run: 18130k -> 18609k
> Garbage: 208681k -> 208442k
> Leak: 51201k -> 51105k
> Overhead: 24222k -> 23465k
> GGC runs: 410 -> 409
>
> comparing Gerald's testcase PR8361 compilation at -O0 -g level:
> Ovarall memory allocated via mmap and sbrk decreased from 173855k to 165329k, overall -5.16%
> Peak amount of GGC memory allocated before garbage collecting increased from 101755k to 102909k, overall 1.13%
> Peak amount of GGC memory still allocated after garbage collecting increased from 100747k to 101886k, overall 1.13%
> Overall memory needed: 173855k -> 165329k
> Peak memory use before GGC: 101755k -> 102909k
> Peak memory use after GGC: 100747k -> 101886k
> Maximum of released memory in single GGC run: 18434k -> 19093k
> Garbage: 214360k -> 214129k
> Leak: 74516k -> 74414k
> Overhead: 30118k -> 29361k
> GGC runs: 382
>
> comparing Gerald's testcase PR8361 compilation at -O1 level:
> Ovarall memory allocated via mmap and sbrk decreased from 150488k to 144783k, overall -3.94%
> Peak amount of GGC memory allocated before garbage collecting increased from 100963k to 102822k, overall 1.84%
> Peak amount of GGC memory still allocated after garbage collecting increased from 99962k to 101763k, overall 1.80%
> Overall memory needed: 150488k -> 144783k
> Peak memory use before GGC: 100963k -> 102822k
> Peak memory use after GGC: 99962k -> 101763k
> Maximum of released memory in single GGC run: 17471k -> 17649k
> Garbage: 346929k -> 341547k
> Leak: 51782k -> 51643k
> Overhead: 31500k -> 31059k
> GGC runs: 534 -> 527
>
> comparing Gerald's testcase PR8361 compilation at -O2 level:
> Ovarall memory allocated via mmap and sbrk decreased from 158120k to 150447k, overall -5.10%
> Peak amount of GGC memory allocated before garbage collecting increased from 101411k to 102768k, overall 1.34%
> Peak amount of GGC memory still allocated after garbage collecting increased from 100401k to 101749k, overall 1.34%
> Overall memory needed: 158120k -> 150447k
> Peak memory use before GGC: 101411k -> 102768k
> Peak memory use after GGC: 100401k -> 101749k
> Maximum of released memory in single GGC run: 17468k -> 17651k
> Garbage: 394687k -> 390633k
> Leak: 52907k -> 52874k
> Overhead: 37068k -> 36793k
> GGC runs: 581 -> 575
>
> comparing Gerald's testcase PR8361 compilation at -O3 level:
> Ovarall memory allocated via mmap and sbrk decreased from 160460k to 152063k, overall -5.52%
> Peak amount of GGC memory allocated before garbage collecting increased from 103024k to 104742k, overall 1.67%
> Peak amount of GGC memory still allocated after garbage collecting increased from 101989k to 103703k, overall 1.68%
> Overall memory needed: 160460k -> 152063k
> Peak memory use before GGC: 103024k -> 104742k
> Peak memory use after GGC: 101989k -> 103703k
> Maximum of released memory in single GGC run: 17871k -> 18053k
> Garbage: 429229k -> 425259k
> Leak: 53216k -> 53171k
> Overhead: 39704k -> 39401k
> GGC runs: 604 -> 602
>
> comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
> Ovarall memory allocated via mmap and sbrk decreased from 344493k to 287747k, overall -19.72%
> Peak amount of GGC memory allocated before garbage collecting increased from 80326k to 103120k, overall 28.38%
> Peak amount of GGC memory still allocated after garbage collecting increased from 58064k to 58773k, overall 1.22%
> Amount of produced GGC garbage increased from 144989k to 178436k, overall 23.07%
> Amount of memory still referenced at the end of compilation increased from 7547k to 7626k, overall 1.05%
> Overall memory needed: 344493k -> 287747k
> Peak memory use before GGC: 80326k -> 103120k
> Peak memory use after GGC: 58064k -> 58773k
> Maximum of released memory in single GGC run: 43620k -> 50583k
> Garbage: 144989k -> 178436k
> Leak: 7547k -> 7626k
> Overhead: 24699k -> 29160k
> GGC runs: 74 -> 81
>
> comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
> Ovarall memory allocated via mmap and sbrk decreased from 345297k to 288547k, overall -19.67%
> Peak amount of GGC memory allocated before garbage collecting increased from 80972k to 103766k, overall 28.15%
> Peak amount of GGC memory still allocated after garbage collecting increased from 58711k to 59420k, overall 1.21%
> Amount of produced GGC garbage increased from 145094k to 178589k, overall 23.09%
> Amount of memory still referenced at the end of compilation increased from 9315k to 9394k, overall 0.85%
> Overall memory needed: 345297k -> 288547k
> Peak memory use before GGC: 80972k -> 103766k
> Peak memory use after GGC: 58711k -> 59420k
> Maximum of released memory in single GGC run: 43609k -> 50582k
> Garbage: 145094k -> 178589k
> Leak: 9315k -> 9394k
> Overhead: 25195k -> 29656k
> GGC runs: 82 -> 89
>
> comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
> Overall memory allocated via mmap and sbrk increased from 306589k to 538976k, overall 75.80%
> Peak amount of GGC memory allocated before garbage collecting increased from 83376k to 148302k, overall 77.87%
> Peak amount of GGC memory still allocated after garbage collecting increased from 74913k to 94020k, overall 25.51%
> Amount of produced GGC garbage increased from 232514k to 321859k, overall 38.43%
> Amount of memory still referenced at the end of compilation increased from 20982k to 22573k, overall 7.58%
> Overall memory needed: 306589k -> 538976k
> Peak memory use before GGC: 83376k -> 148302k
> Peak memory use after GGC: 74913k -> 94020k
> Maximum of released memory in single GGC run: 39402k -> 76096k
> Garbage: 232514k -> 321859k
> Leak: 20982k -> 22573k
> Overhead: 31842k -> 49023k
> GGC runs: 81 -> 85
>
> comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
> Ovarall memory allocated via mmap and sbrk decreased from 318601k to 283204k, overall -12.50%
> Peak amount of GGC memory allocated before garbage collecting increased from 79899k to 118542k, overall 48.36%
> Peak amount of GGC memory still allocated after garbage collecting increased from 74913k to 94020k, overall 25.51%
> Amount of produced GGC garbage increased from 240432k to 330345k, overall 37.40%
> Amount of memory still referenced at the end of compilation increased from 21061k to 22663k, overall 7.60%
> Overall memory needed: 318601k -> 283204k
> Peak memory use before GGC: 79899k -> 118542k
> Peak memory use after GGC: 74913k -> 94020k
> Maximum of released memory in single GGC run: 33013k -> 57285k
> Garbage: 240432k -> 330345k
> Leak: 21061k -> 22663k
> Overhead: 34084k -> 52643k
> GGC runs: 92 -> 93
>
> comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
> Testing has produced no results
>
> Head of the ChangeLog is:
>
> --- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2007-05-25 21:42:03.000000000 +0000
> +++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2007-06-04 15:28:36.000000000 +0000
> @@ -1,3 +1,721 @@
> +2007-05-31 Jan Hubicka <jh@suse.cz>
> +
> + * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
> + reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
> + instead of _stat version.
> +
> +2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + PR tree-optimization/32194
> + * tree-predcom.c (determine_offset): Check that both references have
> + the same type.
> +
> +2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
> + Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
> + * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
> + * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
> + Add argument to iterate_fix_dominators call.
> + (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
> + * gcse.c (hoist_code): Change domby to vector.
> + * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
> + Add argument to iterate_fix_dominators call.
> + * loop-doloop.c (doloop_modify): Changed recount_dominator to
> + recompute_dominator.
> + * lambda-code.c (perfect_nestify): Ditto.
> + * cfgloopanal.c: Include graphds.h.
> + (struct edge, struct vertex, struct graph, dump_graph, new_graph,
> + add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
> + (mark_irreducible_loops): Use graphds_scc. Remove argument from
> + add_edge call.
> + * graphds.c: New file.
> + * graphds.h: New file.
> + * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
> + (get_dominated_by, get_dominated_by_region): Change return type to
> + vector.
> + (verify_dominators): Recompute all dominators and compare the results.
> + (recount_dominator): Renamed to ...
> + (recompute_dominator): ... this. Do not check that the block is
> + dominated by entry.
> + (iterate_fix_dominators): Reimplemented.
> + (prune_bbs_to_update_dominators, root_of_dom_tree,
> + determine_dominators_for_sons): New functions.
> + * et-forest.c (et_root): New function.
> + * et-forest.h (et_root): Declare.
> + * Makefile.in (graphds.o): Add.
> + (cfgloopanal.o): Add graphds.h dependency.
> + (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
> + * basic-block.h (get_dominated_by, get_dominated_by_region,
> + iterate_fix_dominators): Declaration changed.
> + (recount_dominator): Renamed to ...
> + (recompute_dominator): ... this.
> + * tree-ssa-threadupdate.c (thread_block): Free dominance info.
> + (thread_through_all_blocks): Do not free dominance info.
> +
> +2007-06-03 Andreas Schwab <schwab@suse.de>
> +
> + * config/m68k/m68k.c (override_options): Don't override
> + REAL_MODE_FORMAT.
> + * config/m68k/m68k-modes.def (SF, DF): Define to use
> + motorola_single_format and motorola_double_format, resp.
> + * real.c (motorola_single_format): Renamed from
> + coldfire_single_format.
> + (motorola_double_format): Renamed from coldfire_double_format.
> + (encode_ieee_extended): Generate a proper canonical NaN image
> + respecting canonical_nan_lsbs_set.
> + (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
> + true.
> + * real.h: Adjust declarations.
> +
> +2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
> +
> + PR target/32163
> + * config/sh/sh.md (symGOT_load): Don't schedule insns when
> + the symbol is generated with the stack protector.
> +
> +2007-06-03 Kazu Hirata <kazu@codesourcery.com>
> +
> + * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
> + (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
> + "interrupt".
> + * doc/extend.texi (interrupt): Mention m68k.
> +
> +2007-06-02 Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
> + safe_vector_operand() if input operand is VECTOR_MODE_P operand.
> + (ix86_expand_sse_pcmpestr): Do not check operands for
> + "register_operand", when insn operand predicate is "register_operand".
> + (ix86_expand_sse_pcmpistr): Ditto.
> +
> +2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
> + Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
> + (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
> + (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
> + (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
> + * config/i386/constraints.md ("z"): New register constraint
> + for members of SSE_FIRST_REG class.
> + * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
> + * config/i386/i386.c (regclass_map): Change class of %xmm0 to
> + SSE_FIRST_REG class.
> + (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
> + (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
> + (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
> + (IX86_BUILTIN_PCMPESTRM128): Likewise.
> + (IX86_BUILTIN_PCMPESTRA128): Likewise.
> + (IX86_BUILTIN_PCMPESTRC128): Likewise.
> + (IX86_BUILTIN_PCMPESTRO128): Likewise.
> + (IX86_BUILTIN_PCMPESTRS128): Likewise.
> + (IX86_BUILTIN_PCMPESTRZ128): Likewise.
> + (IX86_BUILTIN_PCMPISTRI128): Likewise.
> + (IX86_BUILTIN_PCMPISTRM128): Likewise.
> + (IX86_BUILTIN_PCMPISTRA128): Likewise.
> + (IX86_BUILTIN_PCMPISTRC128): Likewise.
> + (IX86_BUILTIN_PCMPISTRO128): Likewise.
> + (IX86_BUILTIN_PCMPISTRS128): Likewise.
> + (IX86_BUILTIN_PCMPISTRZ128): Likewise.
> + (struct builtin_description): Change "flag" field to unsigned.
> + (bdesc_pcmpestr): New builtin description table.
> + (bdesc_pcmpistr): Likewise.
> + (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
> + v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
> + Initialize pcmp[ei]str[im] insns for SSE4.2.
> + (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
> + (ix86_expand_sse_pcmpistr): Likewise.
> + (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
> + * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
> + (UNSPEC_PCMPISTR): Likewise.
> + * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
> + (sse4_2_pcmpestri):New isns pattern.
> + (sse4_2_pcmpestrm): Likewise.
> + (sse4_2_pcmpestr_cconly): Likewise.
> + (sse4_2_pcmpistr): New insn patern and splitter.
> + (sse4_2_pcmpistri):New isns pattern.
> + (sse4_2_pcmpistrm): Likewise.
> + (sse4_2_pcmpistr_cconly): Likewise.
> + * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
> + in SSE4.2.
> +
> +2007-06-01 David Daney <ddaney@avtrex.com>
> +
> + * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
> + LOADGP_ABSOLUTE and not binds_local_p.
> +
> +2007-06-01 Geoffrey Keating <geoffk@apple.com>
> +
> + * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
> +
> +2007-06-01 Ian Lance Taylor <iant@google.com>
> +
> + * tree-vrp.c (compare_name_with_value): Always set
> + used_strict_overflow if we get a result from the variable itself.
> +
> +2007-06-01 Ian Lance Taylor <iant@google.com>
> +
> + PR rtl-optimization/31455
> + * lower-subreg.c (find_decomposable_subregs): Don't decompose
> + subregs which have a cast between modes which are not tieable.
> +
> +2007-06-01 Uros Bizjak <ubizjak@gmail.com>
> +
> + * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
> + breaks after return statements.
> +
> +2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
> +
> + * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
> + only after no_new_pseudos.
> +
> +2007-05-31 Eric Christopher <echristo@apple.com>
> +
> + * expr.c (convert_move): Assert that we don't have a BLKmode
> + operand.
> + (store_expr): Handle BLKmode moves by calling emit_block_move.
> +
> +2007-05-31 Daniel Berlin <dberlin@dberlin.org>
> +
> + * c-typeck.c (build_indirect_ref): Include type in error message.
> + (build_binary_op): Pass types to binary_op_error.
> + * c-common.c (binary_op_error): Take two type arguments, print out
> + types with error.
> + * c-common.h (binary_op_error): Update prototype.
> +
> +2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
> +
> + * config/i386/i386.c: Correct coments on -mno-sse4.
> +
> +2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
> +
> + * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
> + (x86_64-*-*): Likewise.
> + * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
> + (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE4): Likewise.
> + (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
> + (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
> + (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
> + (override_options): Support SSE4.2.
> + (ix86_build_const_vector): Support SImode and DImode.
> + (ix86_build_signbit_mask): Likewise.
> + (ix86_expand_int_vcond): Support V2DImode.
> + (IX86_BUILTIN_CRC32QI): New for SSE4.2.
> + (IX86_BUILTIN_CRC32HI): Likewise.
> + (IX86_BUILTIN_CRC32SI): Likewise.
> + (IX86_BUILTIN_CRC32DI): Likewise.
> + (IX86_BUILTIN_PCMPGTQ): Likewise.
> + (bdesc_crc32): Likewise.
> + (bdesc_sse_3arg): Likewise.
> + (ix86_expand_crc32): Likewise.
> + (ix86_init_mmx_sse_builtins): Support SSE4.2.
> + (ix86_expand_builtin): Likewise.
> + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
> + __SSE4_2__ for -msse4.2.
> + * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
> + (CRC32MODE): Likewise.
> + (crc32modesuffix): Likewise.
> + (crc32modeconstraint): Likewise.
> + (sse4_2_crc32<mode>): Likewise.
> + (sse4_2_crc32di): Likewise.
> + * config/i386/i386.opt (msse4.2): New for SSE4.2.
> + (msse4): Likewise.
> + * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
> + * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
> + * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
> + (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
> + (vcondu<mode>): Likewise.
> + * doc/extend.texi: Document SSE4.2 built-in functions.
> + * doc/invoke.texi: Document -msse4.2/-msse4.
> +
> +2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + PR tree-optimization/32160
> + * tree-predcom.c (predcom_tmp_var): New function. Mark created
> + variable as gimple reg.
> + (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
> +
> +2007-05-31 Kazu Hirata <kazu@codesourcery.com>
> +
> + * gcc.c (main): Don't consider linker options when issuing the
> + warning about a linker input file not being used.
> +
> +2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
> +
> + * tree-vrp.c (compare_names): Initialize sop.
> +
> +2007-05-30 Dirk Mueller <dmueller@suse.de>
> +
> + * cgraphunit.c (cgraph_analyze_function): Remove
> + computation of inline parameters.
> +
> +2007-05-30 Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
> +
> +2007-05-30 Richard Sandiford <richard@codesourcery.com>
> +
> + * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
> + Add vx-common.h. Include vxworks.h between vx-common.h and
> + arm/vxworks.h.
> + * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
> + redefining.
> + * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
> + (TARGET_ASM_DESTRUCTOR): Likewise.
> + * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
> + instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
> + (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
> + (CC1_SPEC): Add -tstrongarm. Line up backslashes.
> + (VXWORKS_ENDIAN_SPEC): Define.
> + (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
> + (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
> + VXWORKS_* equivalents.
> + (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
> + (ASM_FILE_START): Delete.
> + (TARGET_VERSION): Reformat.
> + (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
> + (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
> + * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
> + (FPBIT, DPBIT): Define.
> + (fp-bit.c, dp-bit.c): New rules.
> + (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
> + (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
> + * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
> + * config/arm/arm.h: Include vxworks-dummy.h.
> + * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
> + Mark with ATTRIBUTE_UNUSED.
> + (arm_override_options): Do not allow VxWorks RTP PIC to be used
> + for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
> + make it incompatible with -msingle-pic-base.
> + (arm_function_ok_for_sibcall): Return false for calls that might
> + go through a VxWorks PIC PLT entry.
> + (require_pic_register): New function, split out from...
> + (legitimize_pic_address): ...here. Do not use GOTOFF accesses
> + for VxWorks RTPs.
> + (arm_load_pic_register): Handle the VxWorks RTP initialization
> + sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
> + (arm_emit_call_insn): New function.
> + (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
> + * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
> + (pic_offset_arm): New pattern.
> + (call, call_value): Use arm_emit_call_insn.
> + (call_internal, call_value_internal): New expanders.
> + * config/arm/lib1funcs.asm (__PLT__): Define to empty for
> + VxWorks unless __PIC__.
> +
> +2007-05-30 Eric Christopher <echristo@gmail.com>
> +
> + * genrecog.c: Include regs.h in generated file.
> + * genemit.c: Ditto. Fix up formatting.
> + * config/mn10300/constraints.md: New.
> + * config/mn10300/mn10300.md: Include.
> + * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
> + Fix up for removed macro.
> + * config/mn10300/predicates.md (call_address_operand): Ditto.
> + * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
> + (CONST_OK_FOR_I): Ditto.
> + (CONST_OK_FOR_J): Ditto.
> + (CONST_OK_FOR_K): Ditto.
> + (CONST_OK_FOR_L): Ditto.
> + (CONST_OK_FOR_M): Ditto.
> + (CONST_OK_FOR_N): Ditto.
> + (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
> + (OK_FOR_Q): Ditto.
> + (OK_FOR_R): Ditto.
> + (OK_FOR_T): Ditto.
> + (EXTRA_CONSTRAINT): Ditto.
> +
> +2007-05-30 Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
> + Remove defines.
> + * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
> + OPTION_MASK_ISA_64BIT.
> + * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
> +
> +2007-05-30 Richard Guenther <rguenther@suse.de>
> +
> + PR middle-end/32152
> + * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
> + types for comparison.
> + * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
> + with original typed arguments.
> + * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
> +
> +2007-05-30 Jakub Jelinek <jakub@redhat.com>
> +
> + PR tree-optimization/31769
> + * except.c (duplicate_eh_regions): Clear prev_try if
> + ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
> +
> +2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
> + * tree-ssa-sink.c (statement_sink_location): Return basic block and
> + bsi of the location where statements should be inserted.
> + (sink_code_in_bb): Take bsi from statement_sink_location.
> + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
> + instead of bsi_start.
> + * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
> + bsi_insert_after.
> + * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
> + (bsi_move_before): Document inconsistency with bsi_move_after.
> + (tree_redirect_edge_and_branch): Do not create labels if not necessary.
> +
> +2007-05-30 Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/i386.h (TARGET_ABM): New define.
> + (TARGET_POPCNT): Ditto.
> + (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
> + New temporary defines to redefine from OPTION_ISA_* defines.
> + (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
> + New temporary defines to redefine from OPTION_MASK_ISA_* defines.
> + (ix86_isa_flags): New extern int declaration.
> + (TARGET_SUBTARGET_DEFAULT): New define.
> + (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
> + (TARGET_SUBTARGET32_DEFAULT): Ditto.
> + (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
> + (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
> + * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
> + * config/i386/darwin.h: Change TARGET_64BIT define to
> + OPTION_ISA_64BIT.
> +
> + * config/i386/i386.opt (m3dnowa): Define as undocumented option
> + using existing "ix86_isa_flags" varible.
> + (m32, m64): Use existing "ix86_isa_flags" variable.
> + (mmmx, m3dnow): Ditto.
> + (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
> + (mabm): Define as non-negative option using "x86_abm" variable.
> + (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
> +
> + * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
> + Rewrite feature test bitmap.
> + (ix86_isa_flags): New initialized global int varible.
> + (ix86_isa_flags_explicit): New static int variable.
> + (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
> + msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
> + i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
> + target_flags_explicit.
> + (override_options): Remove "target_enable" and "target_disable" fields
> + from "struct ptt". Update processor_target_table accordingly. Remove
> + PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
> + defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
> + "target_flags" and "ix86_isa_flags_explicit" instead of
> + "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
> + MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
> + PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
> + to true when either of PTA_POPCNT or PTA_ABM is set in
> + processor_alias_table flags entry. Set "x86_prefetch_sse" to true
> + when either of PTA_PREFETCH_SSE or PTA_SSE is set in
> + processor_alias_table flags entry. Remove handling of
> + "target_enable" and "target_disable" fields of processor_target_table.
> + Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
> + targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
> + Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
> + targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
> + (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
> + "target_flags".
> + (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
> +
> +2007-05-29 David Daney <ddaney@avtrex.com>
> +
> + PR gcc/31975
> + * config/mips/mips.c (mips_output_mi_thunk): Emit
> + NOTE_INSN_PROLOGUE_END at beginning of the thunk.
> +
> +2007-05-29 Hui-May Chang <hm.chang@apple.com>
> + * config/i386/i386.c (ix86_function_regparm): Added checking of
> + ix86_force_align_arg_pointer to determine the number of
> + register parameters.
> +
> +2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
> + (SET_DR_MISALIGNMENT): New.
> + * tree-vect-analyze.c (vect_compute_data_ref_alignment,
> + vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
> + Use SET_DR_MISALIGNMENT.
> + * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
> + pointer.
> + * tree-data-ref.c (create_data_ref, compute_all_dependences,
> + find_loop_nest): Export.
> + * tree-data-ref.h (struct data_reference): Change aux field to pointer.
> + (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
> + * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
> + (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
> + New macros.
> + (struct mem_ref): Add field reuse_distance.
> + (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
> + Initialize reuse_distance field.
> + (issue_prefetch_ref): Select temporality of prefetch according to
> + reuse_distance.
> + (volume_of_references, volume_of_dist_vector, add_subscript_strides,
> + self_reuse_distance, determine_loop_nest_reuse): New functions.
> + (loop_prefetch_arrays): Call determine_loop_nest_reuse.
> + (tree_ssa_prefetch_arrays): Dump L2 cache size.
> + * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
> + dependency.
> +
> +2007-05-29 Daniel Berlin <dberlin@dberlin.org>
> +
> + * tree-ssa-alias.c: Add aliasing overview.
> +
> +2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
> + Danny Smith <dannysmith@users.sourceforge.net>
> +
> + PR target/29498
> + * config/i386/t-crtfm: Compile crtfastmath.o with
> + -minline-all-stringops.
> + * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
> + * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
> +
> +2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
> +
> + * doc/md.texi: Document constraints on HP PA-RISC.
> +
> + * pa/constraints.md: New file.
> + * pa.md: Include constraints.md.
> + * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
> + (integer_store_memory_operand, ldil_cint_p): New functions.
> + * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
> + * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
> + IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
> + * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
> + * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
> +
> +2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
> +
> + PR c/31339
> + * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
> + case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
> + case POSTDECREMENT_EXPR>): Return the error_mark_node
> + if either the real or imaginary parts would an
> + error_mark_node.
> +
> +2007-05-28 Daniel Berlin <dberlin@dberlin.org>
> +
> + * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
> + name when we remove it from a call.
> +
> +2007-05-28 Kazu Hirata <kazu@codesourcery.com>
> +
> + * targhooks.c (default_narrow_bitfield): Remove.
> + * targhooks.h: Remove the prototype for
> + default_narrow_bitfield.
> +
> + * langhooks-def.h: Remove the prototype for
> + hook_get_alias_set_0.
> + * langhooks.c (hook_get_alias_set_0): Remove.
> +
> + * global.c (EXECUTE_IF_CONFLICT): Remove.
> +
> +2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
> +
> + PR tree-opt/32100
> + * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
> + return true when truth_value_p is true and the type
> + is of signed:1.
> +
> +2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
> +
> + * doc/install.texi (Prerequisites): We no longer require Autoconf
> + 2.13 for the top-level.
> +
> +2007-05-28 Uros Bizjak <ubizjak@gmail.com>
> +
> + * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
> + memory access via x86_expand_vector_move_misalign() only for
> + TImode values on 32-bit targets.
> +
> +2007-05-28 Razya Ladelsky <razya@il.ibm.com>
> +
> + * matrix-reorg.c: New file. Implement matrix flattening and
> + transposing optimization.
> + * tree-pass.h: Add matrix reorg pass.
> + * common.opt: Add fipa-mreorg flag.
> + * Makefile.in: Add matrix-reorg.c.
> + * passes.c: Add matrix reorg pass.
> + * varpool.c (add_new_static_var): New function.
> + * cgraph.h (add_new_static_var): Declare.
> +
> +2007-05-27 Eric Christopher <echristo@apple.com>
> +
> + * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
> + sp_offset depending on stack size. Save r12 depending
> + on registers we're saving later.
> + (rs6000_emit_epilogue): Update sp_offset depending only
> + on stack size.
> +
> +2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
> +
> + * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
> + * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
> + * ifcvt.c (if_convert): Ditto.
> + * tree-ssa-threadupdate.c (thread_block): Ditto.
> + (thread_through_all_blocks): Ditto. Assert that loops were analysed.
> + * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
> + verify_loop_closed_ssa): Check number_of_loops instead of
> + current_loops.
> + * predict.c (tree_estimate_probability): Ditto.
> + * tree-if-conv.c (main_tree_if_conversion): Ditto.
> + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
> + * modulo-sched.c (sms_schedule): Ditto.
> + * tree-scalar-evolution.c (scev_const_prop): Ditto.
> + (scev_finalize): Do not do anything if scev analysis was not
> + initialized.
> + * cfgloopanal.c (mark_irreducible_loops): Do not check whether
> + current_loops == NULL.
> + (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
> + * loop-init.c (loop_optimizer_init): Do not free current_loops when
> + there are no loops.
> + (loop_optimizer_finalize): Assert that loops were analyzed.
> + (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
> + rtl_doloop): Check number_of_loops instead of current_loops.
> + * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
> + current_loops == NULL.
> + (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
> + gate_tree_vectorize tree_linear_transform, check_data_deps,
> + tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
> + tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
> + Check number_of_loops instead of current_loops.
> + (tree_ssa_loop_done): Do not check whether current_loops == NULL.
> + * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
> + free loops if available.
> + (execute_pre): Do not pass do_fre to fini_pre.
> +
> +2007-05-27 Tobias Burnus <burnus@net-b.de>
> +
> + PR middle-end/32083
> + * real.c (mpfr_from_real): Fix sign of -Inf.
> +
> +2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
> +
> + * tree-vect-transform.c (vectorizable_conversion): Initialize
> + tree_code variables to ERROR_MARK.
> + (vectorizable_type_demotion): Likewise.
> + (vectorizable_type_promotion): Likewise.
> +
> +2007-05-26 Uros Bizjak <ubizjak@gmail.com>
> +
> + PR target/32065
> + * config/i386/i386.md (movti): Handle push operands via
> + ix86_expand_push().
> +
> +2007-05-26 Kazu Hirata <kazu@codesourcery.com>
> +
> + * basic-block.h: Remove the prototype for merge_seq_blocks.
> + * cfgcleanup.c (merge_seq_blocks): Remove.
> +
> + * tree-flow.h: Remove the prototype for is_aliased_with.
> + * tree-ssa-alias.c (is_aliased_with): Remove.
> +
> +2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
> +
> + * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
> +
> + * config/i386/i386.c (ix86_expand_sse4_unpack): New.
> +
> + * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
> + ix86_expand_sse4_unpack if SSE4.1 is enabled.
> + (vec_unpacks_hi_v16qi): Likewise.
> + (vec_unpacku_lo_v16qi): Likewise.
> + (vec_unpacks_lo_v16qi): Likewise.
> + (vec_unpacku_hi_v8hi): Likewise.
> + (vec_unpacks_hi_v8hi): Likewise.
> + (vec_unpacku_lo_v8hi): Likewise.
> + (vec_unpacks_lo_v8hi): Likewise.
> + (vec_unpacku_hi_v4si): Likewise.
> + (vec_unpacks_hi_v4si): Likewise.
> + (vec_unpacku_lo_v4si): Likewise.
> + (vec_unpacks_lo_v4si): Likewise.
> +
> +2007-05-26 Kazu Hirata <kazu@codesourcery.com>
> +
> + * c-typeck.c, config/arm/arm.c, config/darwin.c,
> + config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
> + omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
> + follow spelling conventions in various
> + warning/error/diagnostic messages.
> +
> + * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
> + df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
> + fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
> + tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
> + tree-vrp.c: Fix comment typos. Follow spelling conventions.
> + * doc/tm.texi: Follow spelling conventions.
> +
> +2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
> +
> + PR tree-opt/32090
> + * tree-ssa-forwprop.c
> + (forward_propagate_addr_into_variable_array_index): Remove
> + the lhs argument. Use the type of def_rhs instead of lhs.
> + (forward_propagate_addr_expr_1): Update use of
> + forward_propagate_addr_into_variable_array_index.
> +
> +2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
> + Nigel Stephens <nigel@mips.com>
> +
> + * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
> + function attributes, "far" being an alias for "long_call".
> + (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
> + (mips_near_type_p, mips_far_type_p): New.
> + (mips_comp_type_attributes): New function to check that attributes
> + attached to a function type are compatible.
> + (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
> + TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
> + to the target function of the thunk.
> + (mips_encode_section_info): Check for "near" and "far" function
> + attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
> +
> + * config/mips/predicates.md (const_call_insn_operand): Test only
> + SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
> +
> + * doc/extend.texi (Function Attributes): Document MIPS "near" and
> + "far" attributes.
> +
> + * testsuite/gcc.target/mips/near-far-1.c: New test case.
> + * testsuite/gcc.target/mips/near-far-2.c: New test case.
> + * testsuite/gcc.target/mips/near-far-3.c: New test case.
> + * testsuite/gcc.target/mips/near-far-4.c: New test case.
> +
> +2007-05-25 Eric Christopher <echristo@apple.com>
> +
> + * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
> + to x86-darwin configurations.
> + * config/i386/t-darwin: Add softfp support.
> + * config/i386/t-darwin64: Ditto.
> + * config/i386/sfp-machine.h: If mach then don't use
> + aliasing, emit a stub to call.
> +
> +2007-05-25 Kazu Hirata <kazu@codesourcery.com>
> +
> + * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
> + haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
> + tree-predcom.c, tree-ssa-alias-warnings.c,
> + tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
> + comment typos. Follow spelling conventions.
> + * doc/cpp.texi, doc/invoke.texi: Fix typos.
> +
> +2007-05-26 Uros Bizjak <ubizjak@gmail.com>
> +
> + PR target/32065
> + * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
> + constants into memory. Expand unaligned memory references for
> + SSE modes via x86_expand_vector_move_misalign() function.
> +
> +2007-05-25 Uros Bizjak <ubizjak@gmail.com>
> +
> + * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
> + "memory" attribute for "sseishft" type insn without operands[2].
> +
> 2007-05-25 Dirk Mueller <dmueller@suse.de>
> Marcus Meissner <meissner@suse.de>
>
> @@ -262,7 +980,7 @@
> support for complex modes. Fill in DECL_RESULT for stubdecl.
> (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
>
> - * config/mips/mips16.S
> + * config/mips/mips16.S
> (RET, ARG1, ARG2): New.
> (MERGE_GPRf, MERGE_GPRt): New.
> (DELAYt, DELAYf): New.
> @@ -331,7 +1049,7 @@
> (__mips16_call_stub_dc_6): New.
> (__mips16_call_stub_dc_9): New.
> (__mips16_call_stub_dc_10): New.
> -
> +
> * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
> * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
> * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
> @@ -352,7 +1070,7 @@
> PR target/30474
> * config/score/score.c (score_print_operand): Make sure that only
> lower bits are used.
> -
> +
> 2007-05-22 Ian Lance Taylor <iant@google.com>
>
> * tree-vrp.c (avoid_overflow_infinity): New static function,
> @@ -877,7 +1595,7 @@
> * stmt.c (expand_case): Do not call squeeze_notes.
>
> 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
> -
> +
> PR middle-end/7651
> PR c++/11856
> PR c/12963
> @@ -920,7 +1638,7 @@
> * doc/invoke.texi (Wreturn-type): Complete description.
> (Wextra): Delete item about return-type warning.
> * c-decl.c: Delete redundant Wextra warning.
> -
> +
> 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
>
> PR target/31585
> @@ -969,26 +1687,26 @@
> 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
> Anatoly Sokolov <aesok@dol.ru>
>
> - * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
> + * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
> avr_epilogue_uses) : Add declaration.
> * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
> * config/avr/constraints.md (R): New constraint.
> - config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
> + config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
> UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
> (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
> (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
> - (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
> + (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
> call_prologue_saves, epilogue_restores, return_from_epilogue,
> - return_from_main_epilogue, return_from_interrupt_epilogue,
> + return_from_main_epilogue, return_from_interrupt_epilogue,
> return_from_naked_epilogue, prologue, epilogue): New patterns.
> (jump): Handle symbol reference.
> - * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
> - avr_output_function_prologue, avr_output_function_epilogue): Remove
> + * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
> + avr_output_function_prologue, avr_output_function_epilogue): Remove
> functions.
> - (avr_init_machine_status, expand_prologue, expand_epilogue,
> - avr_asm_function_end_prologue, avr_epilogue_uses,
> + (avr_init_machine_status, expand_prologue, expand_epilogue,
> + avr_asm_function_end_prologue, avr_epilogue_uses,
> avr_asm_function_begin_epilogue): New functions.
> - (prologue_size, epilogue_size, jump_tables_size): Remove global
> + (prologue_size, epilogue_size, jump_tables_size): Remove global
> variables.
> (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
> (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
> @@ -1233,7 +1951,7 @@
> and soft-fp/t-softfp to tmake_file.
> (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
> i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
> -
> +
> * config/i386/t-linux64 (softfp_wrap_start): New.
> (softfp_wrap_end): New.
> * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
> @@ -1241,7 +1959,7 @@
>
> 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
>
> - * c-common.c (c_common_signed_or_unsigned_type): Emulate
> + * c-common.c (c_common_signed_or_unsigned_type): Emulate
> c_common_unsigned_type behavior.
>
> 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
> --- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2007-05-25 21:38:25.000000000 +0000
> +++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2007-06-01 07:59:20.000000000 +0000
> @@ -1,3 +1,103 @@
> +2007-05-31 Mark Mitchell <mark@codesourcery.com>
> +
> + * decl.c (get_atexit_fn_ptr_type): New function.
> + (get_atexit_node): Use it.
> + (start_cleanup_fn): Likewise.
> + (register_dtor_fn): Use the object's destructor, instead of a
> + separate cleanup function, where possible.
> + * cp-tree.h (CPTI_ATEXIT_FN_PTR_TYPE): New enumerator.
> + (atexit_fn_ptr_type_node): New macro.
> + * decl2.c (build_cleanup): Use build_address.
> +
> +2007-05-31 Daniel Berlin <dberlin@dberlin.org>
> +
> + * typeck.c (build_binary_op): Include types in error.
> +
> +2007-05-31 Jakub Jelinek <jakub@redhat.com>
> +
> + PR c++/31806
> + * decl.c (cp_finish_decl): Also clear was_readonly if a static var
> + needs runtime initialization.
> +
> +2007-05-31 Paolo Carlini <pcarlini@suse.de>
> +
> + PR c++/32158
> + * semantics.c (finish_trait_expr): Complete the types.
> +
> +2007-05-30 Russell Yanofsky <russ@yanofsky.org>
> + Douglas Gregor <doug.gregor@gmail.com>
> + Pedro Lamarao <pedro.lamarao@mndfck.org>
> + Howard Hinnant <howard.hinnant@gmail.com>
> +
> + PR c++/7412
> + PR c++/29939
> + * typeck.c (comptypes): Don't consider rvalue and lvalue
> + reference types to be equivalent.
> + (check_return_expr): Move from certain lvalues when returning
> + them.
> + * decl.c (grokdeclarator): Implement reference collapsing.
> + (copy_fn_p): Don't consider constructors taking rvalue references
> + to be copy constructors.
> + (move_fn_p): New.
> + * call.c (conversion): New "rvaluedness_matches_p" member.
> + (convert_class_to_reference): Require reference type as first
> + parameter instead of base type.
> + (reference_binding): Add logic to handle rvalue references.
> + (implicit_conversion): Update inaccurate comment.
> + (convert_like_real): Disable creation of temporaries that are
> + impossible to initialize for types with move constructors.
> + (build_over_call): Elide move constructors when possible.
> + (maybe_handle_implicit_object): Set "rvaluedness_matches_p".
> + (maybe_handle_ref_bind): Return conversion instead of type node.
> + (compare_ics): Add logic to use "rvaluedness_matches_p" values to
> + determine preferred conversion sequences.
> + * cp-tree.h (TYPE_REF_IS_RVALUE): New.
> + (LOOKUP_PREFER_RVALUE): New.
> + (DECL_MOVE_CONSTRUCTOR_P): New.
> + (struct cp_declarator): Add "reference" member for reference
> + types, with new "rvalue_ref" flag.
> + (cp_build_reference_type): Declare.
> + (move_fn_p): Declare.
> + * error.c (dump_type_prefix): Format rvalue reference types
> + correctly in error messages.
> + * except.c (build_throw): Move from certain lvalues when
> + throwing.
> + * mangle.c (write_type): Mangle rvalue references differently
> + than regular references.
> + * parser.c (make_reference_declarator): Add boolean parameter for
> + rvalue references.
> + (cp_parser_make_indirect_declarator): New.
> + (cp_parser_new_declarator_opt): Call
> + cp_parser_make_indirect_declarator.
> + (cp_parser_conversion_declarator_opt): Ditto.
> + (cp_parser_declarator): Ditto.
> + (cp_parser_ptr_operator): Parse "&&" tokens into rvalue reference
> + declarators.
> + * pt.c (tsubst): Implement reference collapsing.
> + (maybe_adjust_types_for_deduction): Implement special template
> + parameter deduction rule for rvalue references.
> + (type_unification_real): Update calls to
> + maybe_adjust_types_for_deduction.
> + (try_one_overload): Ditto.
> + (unify_pack_expansion): Ditto.
> + * tree.c (lvalue_p_1): Handle rvalue reference types.
> + (cp_build_reference_type): New.
> +
> +2007-05-30 Jakub Jelinek <jakub@redhat.com>
> +
> + PR c++/31809
> + * decl.c (cp_finish_decl): Clear TREE_READONLY flag on TREE_STATIC
> + variables that need runtime initialization.
> +
> +2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
> +
> + PR c++/31339
> + * typeck.c (build_unary_op <case PREINCREMENT_EXPR,
> + case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
> + case POSTDECREMENT_EXPR>): Return the error_mark_node
> + if either the real or imaginary parts would an
> + error_mark_node.
> +
> 2007-05-25 Simon Martin <simartin@users.sourceforge.net>
> Manuel Lopez-Ibanez <manu@gcc.gnu.org>
>
>
>
> 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.