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]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]