tree-sra.c (generate_subtree_copies): Updated comment.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-09-15  Martin Jambor  <mjambor@suse.cz>
2
3         * tree-sra.c (generate_subtree_copies): Updated comment.
4         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
5         obtained from the statement iterator instead.
6         (load_assign_lhs_subreplacements): Removed parameters lhs and
7         right_offset, which is obtained from top_racc instead.  Parameter lacc
8         is now expected to be the root of the processed tree rather than root's
9         first child.  Updated all callers.
10
11 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
12
13         * config/pdp11/pdp11.c (register_move_cost): Rename to
14         pdp11_register_move_cost.
15         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
16         pdp11_register_move_cost.
17         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
18         pdp11_register_move_cost instead of register_move_cost.
19
20 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
21
22         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
23         pattern for vmovn. Expansion in case of non 
24         -mvectorize-with-neon-quad.
25         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
26         non- -mvectorize-with-neon-quad case.
27         (move_lo_quad_<mode>): New expansion to vmov into low part.
28         (move_hi_quad_<mode>): New expansion to vmov into high part.
29         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
30         (move_lo_quad_v4sf): Likewise.
31         (move_lo_quad_v8hi): Likewise.
32         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
33         low part.
34         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
35         high part.
36         * config/arm/iterators.md (ANY128): New mode iterator.
37         (V_narrow_pack): New mode attribute.
38         (V_HALF): Add attribute.
39         (V_DOUBLE): Add attribute.
40         (V_mode_nunits): Add attribute.
41
42 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
43
44         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
45         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
46
47 2010-09-15  Olivier Hainque  <hainque@adacore.com>
48             Jose Ruiz  <ruiz@adacore.com>
49
50         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
51         * config/alpha/osf5-unwind.h: New file.
52
53 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
54
55         PR bootstrap/45672
56         * config/mips/mips.c (mips_units_per_simd_word): Correct return
57         type.
58         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
59         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
60
61 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
62
63         * c-lang.h (struct lang_type): Add variable_size GTY option.
64
65 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
66
67         PR bootstrap/45672
68         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
69
70 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
71
72         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
73         result isn't used in memory address.
74
75 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
76
77         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
78         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
79         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
80         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
81         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
82         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
83
84         * target.def: Add units_per_simd_word to vectorize.
85
86         * targhooks.c (default_units_per_simd_word): New.
87         * targhooks.h (default_units_per_simd_word): Likewise.
88         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
89         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
90         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
91         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
92         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
93         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
94         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
95         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
96
97         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
98         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
99
100         * tree-vect-stmts.c: Don't include "tm_p.h".
101         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
102         with targetm.vectorize.units_per_simd_word.
103
104         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
105
106         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
107
108         * config/i386/i386.c (ix86_units_per_simd_word): Make it
109         static.
110         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
111
112         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
113         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
114
115         * doc/tm.texi: Regenerated.
116
117 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
118
119         * tree-vect-stmts.c: Include "tm_p.h".
120
121         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
122         out of RTX_CODE.
123
124 2010-09-14  Martin Jambor  <mjambor@suse.cz>
125
126         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
127         location of generated statement.  Changed all callers.
128         (build_ref_for_model): New parameter loc which used to set location of
129         all generated expressions.  Changed all callers.
130         (generate_subtree_copies): Likewise.
131         (init_subtree_with_zero): Likewise.
132         (sra_modify_expr): Set locations of all generated statements and
133         expressions to the location the original statement.
134         (handle_unscalarized_data_in_subtree): Likewise.
135         (load_assign_lhs_subreplacements): Likewise.
136         (sra_modify_constructor_assign): Likewise.
137         (sra_modify_assign): Likewise.
138
139 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
140
141         PR target/45277
142         PR target/45363
143         PR target/45407
144         * doc/install.texi (sparc*-*-*): New section.
145         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
146
147 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
148
149         PR middle-end/45567
150         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
151         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
152         (expand_builtin): Adjust caller.
153         (expand_builtin_unop): Only use subtarget if it has the right mode.
154
155 2010-09-14  Tristan Gingold  <gingold@adacore.com>
156
157         * configure.ac (plugins): Fix typos.
158         * configure: Regenerate.
159
160 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
161
162         PR debug/45660
163         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
164         gen_type_die for function/method return type.
165
166 2010-09-14  Ira Rosen  <irar@il.ibm.com>
167
168         PR tree-optimization/45470
169         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
170         can throw an exception.
171         * tree-vect-stmts.c (vectorizable_call): Likewise.      
172
173 2010-09-14  DJ Delorie  <dj@redhat.com>
174
175         PR target/44749
176         * config/mep/mep-protos.h (mep_save_register_info,
177         mep_reinit_regs, mep_init_regs): Declare.
178
179         * config/mep/mep.c: Move all target definitions to the end of the
180         file to avoid the need for duplicate declarations.
181         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
182         (mep_reorg_erepeat): Remove unused variables.
183         (mep_expand_builtin): Likewise.
184
185         * config/mep/mep-pragma.c: Don't include rtl.h.
186         (INVALID_REGNUM): New.
187         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
188         functions.
189         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
190         Avoid enum/integer math.
191
192 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
193
194         PR target/44749
195         * config/mep/t-mep (GTM_H): Add insn-constants.h.
196         * config/mep/mep.c (mep_conditional_register_usage): Take no
197         parameters.
198         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
199         prototype.
200         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
201         call to mep_conditional_register_usage.
202
203 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
204
205         PR debug/43937
206         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
207         the DECL as well.
208
209 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
210
211         PR rtl-optimization/45617
212         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
213         even if low N bits of X aren't known to be zero.
214
215 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
216
217         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
218
219         * config/i386/i386.c (initial_ix86_tune_features): Add
220         X86_TUNE_VECTORIZE_DOUBLE.
221         (ix86_units_per_simd_word): New.
222
223         * config/i386/i386.h (ix86_tune_indices): Add
224         X86_TUNE_VECTORIZE_DOUBLE.
225         (TARGET_VECTORIZE_DOUBLE): New.
226         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
227
228 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
229
230         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
231         (new_temp_expr_table): Allocate call_cnt vector.
232         (free_temp_expr_table): Free it.
233         (process_replaceable): Add call_cnt parm and set in vector.
234         (find_replaceable_in_bb): Skip replacement if def/use span a call.
235         (debug_ter): Dump call_cnt value, remove stderr uses.
236
237 2010-09-13  Jan Hubicka  <jh@suse.cz>
238
239         * tree.c (build_zero_cst): New.
240         * tree.h (build_zero_cst): Declare.
241         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
242         (get_base_constructor): Break out from ...
243         (fold_const_aggregate_ref): Here; handle empty constructors.
244
245 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
246
247         * config/arm/arm.md: (define_attr "conds"): Update comment.
248         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change 
249         conds attribute to clob.
250         (arm_sync_compare_and_swapsi): Likewise.
251         (arm_sync_compare_and_swap<mode>): Likewise.
252         (arm_sync_lock_test_and_setsi): Likewise.
253         (arm_sync_lock_test_and_set<mode>): Likewise.
254         (arm_sync_new_<sync_optab>si): Likewise.
255         (arm_sync_new_nandsi): Likewise.
256         (arm_sync_new_<sync_optab><mode>): Likewise.
257         (arm_sync_new_nand<mode>): Likewise.
258         (arm_sync_old_<sync_optab>si): Likewise.
259         (arm_sync_old_nandsi): Likewise.
260         (arm_sync_old_<sync_optab><mode>): Likewise.
261         (arm_sync_old_nand<mode>): Likewise.
262
263 2010-09-13  Olivier Hainque  <hainque@adacore.com>
264
265         * fwprop.c (forward_propagate_and_simplify): Only attach a
266         REG_EQUAL note to an insn if the destination is a register.
267         * gcse.c (try_replace_reg): Likewise.
268
269 2010-09-13  Richard Guenther  <rguenther@suse.de>
270
271         PR tree-optimization/45611
272         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
273         (copy_ref_info): Likewise.
274
275 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
276
277         PR debug/45604
278         PR debug/45419
279         PR debug/45408
280         * tree-pretty-print.c (dump_generic_node): Disregard top-level
281         types of MEM_REF pointer types to the same type.
282
283 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
284
285         PR rtl-optimization/41087
286         * ifcvt.c (noce_get_condition): Don't allow conditions with
287         side-effects.
288
289 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
290
291         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
292         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
293         * config/frv/frv.c (frv_register_move_cost): Make static. Change
294         arguments type to reg_class_t. Add mode argument.
295         (frv_memory_move_cost): New.
296         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
297
298 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
299
300         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
301         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
302
303 2010-09-10  Jan Hubicka  <jh@suse.cz>
304
305         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
306
307 2010-09-10  Richard Guenther  <rguenther@suse.de>
308
309         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
310         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
311         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
312         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
313         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
314
315 2010-09-10  Richard Guenther  <rguenther@suse.de>
316
317         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
318         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
319         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
320         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
321
322 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
323
324         PR middle-end/45634
325         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
326         of string folding is of integral type.
327
328 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
329
330         * doc/invoke.texi (-x): Fix typo.
331
332 2010-09-10  Richard Guenther  <rguenther@suse.de>
333
334         PR debug/44115
335         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
336         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
337         Output DECL_DEBUG_EXPR.
338         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
339         Input DECL_DEBUG_EXPR.
340
341 2010-09-10  Richard Guenther  <rguenther@suse.de>
342
343         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare
344         TYPE_SIZE.
345         (build_index_type): Implement in terms of build_range_type.
346         (build_range_type): Do not allow NULL_TREE type, improve
347         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
348         if we didn't hash.
349         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
350         create a distinct copy of the type.
351
352 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
353
354         * configure: Regenerated.
355         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
356
357 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
358
359         * config/arm/neon-schedgen.ml (allCores): Add support for
360         Cortex-A9.
361         * config/arm/cortex-a9-neon.md: New and partially generated.
362         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
363
364 2010-09-10  Richard Guenther  <rguenther@suse.de>
365
366         * tree.h (build_index_2_type): Remove.
367         * tree.c (build_index_2_type): Remove.
368
369 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
370
371         PR bootstrap/45630
372         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
373         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
374         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
375
376 2010-09-10  Martin Jambor  <mjambor@suse.cz>
377
378         PR tree-optimization/44972
379         * tree-sra.c: Include toplev.h.
380         (build_ref_for_offset): Entirely reimplemented.
381         (build_ref_for_model): New function.
382         (build_user_friendly_ref_for_offset): New function.
383         (analyze_access_subtree): Removed build_ref_for_offset check.
384         (propagate_subaccesses_across_link): Likewise.
385         (create_artificial_child_access): Use
386         build_user_friendly_ref_for_offset.
387         (propagate_subaccesses_across_link): Likewise.
388         (ref_expr_for_all_replacements_p): Removed.
389         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
390         (sra_modify_expr): Use build_ref_for_model.
391         (load_assign_lhs_subreplacements): Likewise.
392         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
393         checks for return values of build_ref_for_offset.
394         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
395         build_ref_for_offset.
396         * ipa-prop.h: Include gimple.h
397         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
398         (ipa_analyze_indirect_call_uses): Update comment.
399         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
400         (IPA_PROP_H): Likewise.
401
402 2010-09-10  Martin Jambor  <mjambor@suse.cz>
403
404         PR tree-optimization/44972
405         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
406         calling build_ref_for_offset.
407
408 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
409
410         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
411         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
412         * config/arm/arm-tune.md: Regenerate.
413         * doc/invoke.texi (ARM Options): Document it.
414
415 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
416
417         * config/i386/i386.c: Include sched-int.h.
418         (TARGET_SCHED_DISPATCH): Defined.
419         (TARGET_SCHED_DISPATCH_DO): Defined.
420         (DISPATCH_WINDOW_SIZE): Defined.
421         (MAX_DISPATCH_WINDOWS): Defined.
422         (MAX_INSN): Defined.
423         (MAX_IMM): Defined.
424         (MAX_IMM_SIZE): Defined.
425         (MAX_IMM_32): Defined.
426         (MAX_IMM_64): Defined.
427         (MAX_LOAD): Defined.
428         (MAX_STORE): Defined.
429         (BIG): Defined.
430         (dispatch_group): New.
431         (num_allowable_groups): New.
432         (group_name): New.
433         (sched_insn_info_s): New.
434         (dispatch_windows_s): New.
435         (imm_info_s): New.
436         (dispatch_window_list): New.
437         (dispatch_window_list1): New.
438         (get_mem_group): New.
439         (is_cmp): New.
440         (dispatch_violation): New.
441         (is_branch): New.
442         (is_prefetch): New.
443         (init_window): New.
444         (allocate_window): New.
445         (init_dispatch_sched): New.
446         (is_end_basic_block): New.
447         (process_end_window): New.
448         (allocate_next_window): New.
449         (find_constant_1): New.
450         (find_constant): New.
451         (get_num_immediates): New.
452         (has_immediate): New.
453         (get_insn_path): New.
454         (get_insn_group): New.
455         (count_num_restricted): New.
456         (fits_dispatch_window): New.
457         (add_insn_window): New.
458         (add_to_dispatch_window): New.
459         (debug_dispatch_window_file): New.
460         (debug_dispatch_window): New.
461         (debug_insn_dispatch_info_file): New.
462         (debug_ready_dispatch): New.
463         (do_dispatch): New.
464         (has_dispatch): New.
465         * config/i386/i386.h (debug_ready_dispatch): Declared.
466         (debug_dispatch_window): Declared.
467         * config/i386/i386.opt (mdispatch-scheduler): New flag.
468         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
469         (TARGET_SCHED_DISPATCH_DO): New.
470         * doc/tm.texi: Regererated.
471         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
472         ready_remove_first_dispatch
473         (schedule_block): Call targetm.sched.dispatch and
474         targetm.sched.dispatch_do.
475         (sched_init): Call targetm.sched.dispatch and
476         targetm.sched.dispatch_do.
477         (ready_remove_first_dispatch): New.
478         (number_in_ready): New.
479         (get_ready_element): New.
480         * hooks.c (hook_bool_rtx_int_false): New.
481         (hook_void_rtx_int): New.
482         * hooks.h (hook_bool_rtx_int_false): Declared.
483         (hook_void_rtx_int): Declared.
484         * sched-int.h (IS_DISPATCH_ON): Defined.
485         (IS_CMP): Defined.
486         (DISPATCH_VIOLATION): Defined.
487         (FITS_DISPATCH_WINDOW): Defined.
488         (DISPATCH_INIT): Defined.
489         (ADD_TO_DISPATCH_WINDOW): Defined.
490         (get_ready_element): Declared.
491         (number_in_ready): Declared.
492         * target.def (dispatch): Defined.
493         (dispatch_do): Defined.
494
495 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
496
497         PR middle-end/45312
498         * reload1.c (merge_assigned_reloads): Remove.
499         (reload_as_needed): Don't call it.
500
501 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
502
503         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
504         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
505         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
506
507 2010-09-09  Matthias Klose  <doko@ubuntu.com>
508
509         PR bootstrap/43847
510         * configure.ac (--enable-plugin): Enhance for cross builds.
511         * configure: Regenerate.
512
513 2010-09-09  Jan Hubicka  <jh@suse.cz>
514
515         PR tree-optimization/45598
516         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
517         string folding is of integral type.
518
519 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
520
521         * configure.ac (gnu_indirect_function): New test.
522         * configure: Rebuilt.
523         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
524         * defaults.h (IFUNC_ASM_TYPE): Provide default.
525
526         * doc/extend.texi (Function Attributes): Document ifunc.
527         * varasm.c (do_assemble_alias): Deal with ifuncs too.
528
529 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
530
531         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
532         epilogue instruction move.
533
534 2010-09-09  Jan Hubicka  <jh@suse.cz>
535
536         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
537         command line to allow more partitions than input files.
538
539 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
540
541         PR middle-end/44554
542         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
543
544 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
545
546         PR middle-end/40386
547         * ira.c (pseudo_for_reload_consideration_p): Don't use
548         flag_ira_share_spill_slots.
549
550 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
551
552         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
553         point zero operands that fit into a single GPR.
554         (s390_preferred_reload_class): Ensure we only return general-purpose
555         register classes.
556         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
557         floating-point zero operands into GPRs.
558         ("*mov<mode>_64"): Likewise.
559         ("mov<mode>"): Likewise using lhi.
560
561 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
562
563         * config/s390/s390.c (s390_symref_operand_p): Return false for
564         literal pool references.
565         (s390_check_qrst_address): Update caller.
566
567 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
568
569         * config/i386/predicates.md (ext_register_operand): Check that
570         SUBREG_REG is really a register before looking for REGNO.
571         (reg_not_xmm0_operand): Handle SUBREGs correctly.
572         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
573
574 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
575
576         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
577         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
578         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
579         * print-rtl.c (print_rtx): Likewise.
580         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
581         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
582         for ADDR_EXPR with non-addressable object.
583         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
584         (struct dw_val_struct): Add v.val_decl_ref.
585         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
586         Handle DW_OP_GNU_implicit_pointer.
587         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
588         (get_ref_die_offset_label): New function.
589         (implicit_ptr_descriptor): New function.
590         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
591         (loc_descriptor): Likewise.
592         (gen_variable_die): Put even definitions into decl_die_table.
593         (resolve_addr_in_expr): Resolve still unresolved
594         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
595         return false.
596         (dwarf2out_finish): Call output_location_lists after outputting
597         .debug_info and .debug_abbrev instead of before.
598
599 2010-09-09  Roland McGrath  <roland@redhat.com>
600
601         * dwarf2out.c (DWARF_REF_SIZE): Define.
602         (size_of_loc_descr): Use it for DW_OP_call_ref.
603
604 2010-09-09  Alan Modra  <amodra@gmail.com>
605
606         * doc/invoke.text: Reinstate mcmodel=medium.
607         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
608         CMODEL_MEDIUM as default.
609         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
610         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
611         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
612         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
613
614 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
615
616         PR target/45250
617         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
618         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
619         (builtin_longjmp): Likewise.
620         (allocate_stack): Use hard_frame_pointer_rtx instead of
621         frame_pointer_rtx.
622         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
623         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
624         (pa_can_eliminate): Likewise.
625         (TARGET_INTERNAL_ARG_POINTER): Define.
626         (TARGET_CAN_ELIMINATE): Define.
627         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
628         pointer.
629         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
630         (pa_internal_arg_pointer, pa_can_eliminate,
631         pa_initial_elimination_offset): New.
632         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
633         (HARD_FRAME_POINTER_REGNUM): Set to register three.
634         (INITIAL_FRAME_POINTER_OFFSET): Delete.
635         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
636         Define.
637         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
638         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
639         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
640         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
641         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
642         new soft frame pointer.
643         * config/pa/pa64-regs.h: Likewise.
644
645 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
646
647         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
648         numerical constant.
649         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
650
651 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
652
653         PR debug/45531
654         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
655
656 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
657
658         PR debug/45419
659         PR debug/45408
660         * tree-pretty-print.c (dump_generic_node): Disregard top-level
661         qualifiers in otherwise equal MEM_REF pointer types.
662         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
663         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
664
665 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
666
667         PR target/44392
668         * config/arm/arm.md (bswapsi2): Handle condition correctly
669         for armv6 and optimize_size.
670
671 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
672
673         PR other/18555
674         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
675
676 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
677
678         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
679         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
680         ix86_expand_strlen, legitimate_pic_address_disp_p,
681         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
682         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
683         ix86_check_movabs, ix86_secondary_memory_needed): Change function
684         prototype to bool.
685         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
686         return_in_memory_ms_64, ix86_check_movabs,
687         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
688         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
689         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
690         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
691         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
692         ix86_secondary_memory_needed): Change to bool.  Return
693         "true" and "false" values.
694         * config/i386/i386.md: Return "true" and "false" values.
695
696 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
697
698         * doc/sourcebuild.texi (Effective-Target Keywords): Document
699         run_expensive_tests.
700
701 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
702
703         * toplev.c (output_stack_usage): Use lbasename instead of basename.
704
705 2010-09-08  Martin Jambor  <mjambor@suse.cz>
706
707         PR other/45443
708         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
709         at -O3.
710
711 2010-09-08  Richard Guenther  <rguenther@suse.de>
712
713         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
714         (visit): Adjust.
715         (iterative_hash_gimple_type): Likewise.
716         (gimple_type_hash): Likewise.
717         (gimple_register_type): Likewise.
718         (print_gimple_types_stats): Likewise.
719         (free_gimple_type_tables): Likewise.
720
721 2010-09-08  Michael Matz  <matz@suse.de>
722
723         PR tree-optimization/43430
724         * tree-vect-stmts.c (vectorizable_condition): Support multiple
725         copies for conditional statements if it's not part of a reduction.
726
727 2010-09-08  Michael Matz  <matz@suse.de>
728
729         PR tree-optimization/33244
730         * tree-ssa-sink.c (statement_sink_location): Don't sink into
731         empty loop latches.
732
733 2010-09-08  Richard Guenther  <rguenther@suse.de>
734
735         PR tree-optimization/45578
736         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
737         Be more careful when transfering alignment information to
738         the new induction variable.
739         (copy_ref_info): Likewise.
740
741 2010-09-08  Richard Guenther  <rguenther@suse.de>
742
743         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
744         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
745
746 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
747
748         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
749         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
750
751 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
752
753         PR doc/45587
754         * doc/md.texi: Fixed modes on several standard pattern names.
755
756 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
757
758         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
759         (ashl<mode>3): ...this.
760         (loongson_psra<V_suffix>): Rename to...
761         (ashr<mode>3): ...this.
762         (loongson_psrl<V_suffix>): Rename to...
763         (lshr<mode>3): ...this.
764         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
765         (CODE_FOR_loongson_psllw): Define.
766         (CODE_FOR_loongson_psrlh): Define.
767         (CODE_FOR_loongson_psrlw): Define.
768         (CODE_FOR_loongson_psrah): Define.
769         (CODE_FOR_loongson_psraw): Define.
770
771 2010-09-07  Richard Henderson  <rth@redhat.com>
772
773         * tree-vect-data-refs.c: Include tm_p.h.
774         * Makefile.in (tree-vect-data-refs.o): Update deps.
775         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
776         Move delarations outside #ifdef RTX_CODE.
777
778 2010-09-07  Richard Henderson  <rth@redhat.com>
779
780         * final.c (rest_of_handle_final): Unconditionally do
781         output_function_exception_table before assemble_end_function.
782
783 2010-09-07  Jan Hubicka  <jh@suse.cz>
784
785         * tree-inline.c (tree_inlinable_function_p): Do not test
786         DECL_REPLACEABLE_P.
787         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
788         update_callee_keys, cgraph_decide_inlining): Test function availability.
789         * cif-code.def (OVERWRITABLE): New code.
790
791 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
792             Jack Howarth <howarth@bromo.med.uc.edu>
793
794         PR target/36502
795         PR target/42313
796         PR target/44651
797         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
798         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
799         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
800         MAX macro.
801
802 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
803
804         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
805         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
806
807 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
808
809         * config.gcc: Don't append t-android for Android targets.
810
811         * config/t-android: Removed.
812
813 2010-09-07  Richard Henderson  <rth@redhat.com>
814
815         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
816         * doc/tm.texi.in: Add doc marker.
817         * doc/tm.texi: Rebuild.
818         * except.c (switch_to_exception_section): Always build.
819         (output_one_function_exception_table): Move section switch,
820         personality output, and label output ...
821         (output_function_exception_table): ... here.  Use the new
822         personality hook.
823
824         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
825         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
826         TARGET_ASM_INIT_SECTIONS): New.
827         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
828         make static.
829         (TARGET_ASM_UNWIND_EMIT): Update to match.
830         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
831
832         * config/arm/arm.c (arm_asm_emit_except_personality): New.
833         (arm_asm_init_sections): New.
834         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
835
836 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
837
838         * config/arm/arm.md: Remove unused variable.
839
840 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
841
842         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
843         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
844         (m32r_memory_move_cost): New function.
845
846 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
847
848         * config.gcc: Append t-android for Android targets.
849
850         * config/t-android: New.
851
852 2010-09-07  Richard Henderson  <rth@redhat.com>
853
854         * target.def (unwind_emit_before_insn): New hook.
855         * doc/tm.texi.in: Add @hook marker for it.
856         * doc/tm.texi: Rebuild.
857         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
858
859 2010-09-07  Martin Jambor  <mjambor@suse.cz>
860
861         PR fortran/43665
862         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
863         are any type attributes.
864
865 2010-09-07  Jan Hubicka  <jh@suse.cz>
866
867         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
868         array_ref_low_bound in string access folding.
869
870 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
871
872         PR target/45206
873         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
874         eh_return fixup sequence.
875
876 2010-09-07  Jan Hubicka  <jh@suse.cz>
877
878         * gimple-fold.c (maybe_fold_reference): Verify that operand is
879         gimple_min_invariant.
880
881 2010-09-07  Richard Guenther  <rguenther@suse.de>
882
883         PR middle-end/45569
884         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
885         nor CONSTRUCTOR can trap.
886         * tree-complex.c (update_complex_assignment): Update EH info.
887
888 2010-09-07  Richard Guenther  <rguenther@suse.de>
889
890         PR middle-end/45569
891         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
892         * passes.c (execute_function_todo): Do not verify anything if
893         we saw errors.
894
895 2010-09-07  Richard Guenther  <rguenther@suse.de>
896
897         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
898
899 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
900
901         PR target/43137
902         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
903         New define_mode_attrs.
904         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
905         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
906         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
907         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
908         Remove pool_range attribute.
909         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
910         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
911         pool_range and neg_pool_range attributes.
912         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
913         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
914         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
915
916 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
917
918         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
919         check glibc.
920
921 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
922
923         PR target/22152
924         * config/i386/mmx.md (*mov<mode>_internal_rex64,
925         *mov<mode>_internal_avx, *mov<mode>_internal,
926         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
927         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
928
929 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
930
931         * c-typeck.c (do_warn_double_promotion): Remove.
932         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
933         Objective-C++ too.
934
935 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
936
937         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
938         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
939         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
940         argument type to reg_class_t. Change result type to bool.
941         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
942
943 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
944
945         PR libobjc/19850
946         * gthr-posix.h (__gthread_objc_thread_detach): Use
947         _objc_thread_attribs when detaching a thread.
948         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
949
950 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
951
952         PR target/45524
953         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
954         * configure: Regenerated.
955
956 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
957
958         * combine.c (try_combine): Set subst_low_luid to i0.
959
960 2010-09-06  Richard Guenther  <rguenther@suse.de>
961
962         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
963         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
964         (build_aligned_type): Declare.
965         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
966         (check_aligned_type): New function.
967         (build_aligned_type): Likewise.
968         * expr.c (expand_assignment): Handle misaligned stores via
969         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
970         (expand_expr_real_1): Likewise.
971         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
972         * tree-vect-stmts.c (vectorizable_store): Do not build
973         MISALIGNED_INDIRECT_REF but initialize alignment information.
974         (vectorizable_load): Likewise.
975         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
976         handling.
977         * cfgexpand.c (expand_debug_expr): Likewise.
978         * dwarf2out.c (loc_list_from_tree): Likewise.
979         * fold-const.c (maybe_lvalue_p): Likewise.
980         (operand_equal_p): Likewise.
981         (build_fold_addr_expr_with_type_loc): Likewise.
982         * gimplify.c (gimplify_addr_expr): Likewise.
983         (gimplify_expr): Likewise.
984         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
985         (verify_gimple_assign_single): Likewise.
986         * tree-dump.c (dequeue_and_dump): Likewise.
987         (tree_could_trap_p): Likewise.
988         * tree-predcom.c (ref_at_iteration): Likewise.
989         * tree-pretty-print.c (dump_generic_node): Likewise.
990         (op_code_prio): Likewise.
991         (op_symbol_code): Likewise.
992         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
993         * tree-ssa-loop-im.c (for_each_index): Likewise.
994         (gen_lsm_tmp_name): Likewise.
995         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
996         (find_interesting_uses_address): Likewise.
997         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
998         * tree-ssa-operands.c (get_expr_operands): Likewise.
999         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1000         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1001         (ao_ref_init_from_vn_reference): Likewise.
1002         * tree.c (staticp): Likewise.
1003         (build1_stat): Likewise.
1004         (reference_alias_ptr_type): Likewise.
1005         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1006         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1007         MISALIGNED_INDIRECT_REF handling.
1008
1009 2010-09-06  Richard Guenther  <rguenther@suse.de>
1010
1011         PR tree-optimization/45534
1012         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1013         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1014         on the target.
1015         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1016         valid on the target.
1017
1018 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1019
1020         * configure.ac: Quote argument of AC_MSG_WARN.
1021         * configure: Regenerate.
1022
1023 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1024
1025         * sel-sched.c (move_cond_jump): Correct arguments to
1026         maybe_tidy_empty_bb.
1027         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1028
1029 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1030
1031         PR rtl-optimization/44919
1032         * sel-sched.c (move_cond_jump): Remove assert, check that
1033         the several blocks case can only happen with mutually exclusive
1034         insns instead.  Rewrite the movement code to support moving through
1035         several basic blocks.
1036
1037 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1038
1039         * config/i386/i386.md (iptrsize): New mode attribute.
1040         (tp_seg): Ditto.
1041         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1042         mode iterator.
1043         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1044         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1045         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1046         (stack_tls_protect_set_<mode>): Ditto from
1047         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1048         of thread base pointer load.
1049         (stack_tls_protect_test_<mode>): Ditto from
1050         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1051         of thread base pointer load.
1052         (stack_protect_set): Rewrite using indirect functions.
1053         (stack_protect_test): Ditto.
1054         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1055         (ix86_print_operand): Handle '@'.
1056
1057 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1058
1059         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1060         MINUS_EXPR.
1061
1062 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1063
1064         * doc/invoke.texi: Document -Wdouble-promotion.
1065         * c-typeck.c (convert_arguments): Check for implicit conversions
1066         from float to double.
1067         (do_warn_double_promotion): New function.
1068         (build_conditional_expr): Use it.
1069         (build_binary_op): Likewise.
1070
1071 2010-09-05  Richard Guenther  <rguenther@suse.de>
1072
1073         PR tree-optimization/45535
1074         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1075         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1076         dereferencing it.
1077         (indirect_refs_may_alias_p): Likewise.
1078
1079 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1080
1081         * config/sh/sh.c (sh_option_override): Make static.
1082         Adjust comments.  Declare.
1083         (sh_function_value_regno_p): Likewise.
1084         (sh_register_move_cost): Modify the arguments, make static.
1085         Adjust comments.  Declare.
1086         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1087         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1088         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1089         REGISTER_MOVE_COST): Delete.
1090         * config/sh/sh-protos.h (sh_override_options): Delete.
1091         (sh_register_move_cost): Delete.
1092         (sh_function_value_regno_p): Delete.
1093
1094 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1095
1096         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1097         m32r_function_value_regno_p): New functions.
1098         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1099         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1100         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1101         FUNCTION_VALUE_REGNO_P): Remove.
1102
1103 2010-09-04  Jan Hubicka  <jh@suse.cz>
1104
1105         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1106         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1107         fold_read_from_constant_string.
1108
1109         * gimple.h (canonicalize_constructor_val): Declare.
1110         * gimple-fold.c (canonicalize_constructor_val): New function.
1111         (get_symbol_constant_value):Use it.
1112         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1113
1114 2010-09-04  Jan Hubicka  <jh@suse.cz>
1115
1116         * tree-switch-conversion.c (build_one_array): Set constructor to be
1117         static.
1118         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1119
1120 2010-09-04  Richard Guenther  <rguenther@suse.de>
1121
1122         PR bootstrap/45519
1123         * tree-flow.h (force_gimple_operand_1): Declare.
1124         (force_gimple_operand_gsi_1): Likewise.
1125         * gimplify.c (force_gimple_operand_1): New worker taking a
1126         gimple predicate for ...
1127         (force_gimple_operand): ... which now wraps it.
1128         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1129         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1130         last change.
1131         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1132         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1133         (create_mem_ref): Likewise.
1134
1135 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1136
1137         * config/i386/predicates.md (sse_reg_operand): New predicate.
1138         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1139         predicate for operand 1.
1140         (XFmode push splitter): Use fp_register_operand predicate
1141         for operand 1.
1142         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1143         (SF-DF float_extend push splitter): Add reload_completed insn
1144         predicate.
1145         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1146         MODEF mode macro.  Add reload_completed insn predicate.
1147
1148 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1149
1150         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1151         (struct df_extract_ref): Remove.
1152         (union df_ref_d): Remove extract_ref member.
1153         (df_ref_create): Remove last three arguments.
1154         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1155         * df-scan.c (df_ref_record): Remove last three arguments, do not
1156         pass them to df_ref_create_structure.
1157         (df_uses_record): Remove first and last three arguments.  Replace
1158         first argument with DF_REF_REGULAR, adjust calls to remove the
1159         width, offset and mode.  Always call recursively on the second
1160         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1161         (df_ref_create_structure): Remove first argument.
1162         (struct df_scan_problem_data): Remove ref_extract_pool.
1163         (df_scan_free_internal): Do not free it.
1164         (df_scan_alloc): Do not allocate it.
1165         (df_ref_create): Remove last three arguments, do not pass them to
1166         df_ref_create_structure.
1167         (df_free_ref): Remove DF_REF_EXTRACT case.
1168         (df_notes_rescan): Adjust call to df_uses_record.
1169         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1170         Remove DF_REF_EXTRACT case.
1171         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1172         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1173         and SUBREG definitions.
1174         (df_get_conditional_uses): Remove references to width/offset/mode,
1175         adjust call to df_ref_create_structure.
1176         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1177         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1178         calls to df_uses_record and df_ref_record.
1179         * fwprop.c (update_df): Remove references to width/offset/mode,
1180         adjust call to df_ref_create.
1181
1182 2010-09-03  Jan Hubicka  <jh@suse.cz>
1183
1184         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1185         (build_cdtor_fns): Update use of build_cdtor.
1186
1187 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1188
1189         * doc/options.texi (SeparateAlias): Document.
1190         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1191         * opth-gen.awk: Generate enumeration names for options marked
1192         SeparateAlias, but not for those marked Ignore.
1193         * opts-common.c (generate_canonical_option): Don't output separate
1194         argument for options marked CL_SEPARATE_ALIAS.
1195         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1196         * opts.h (CL_SEPARATE_ALIAS): New.
1197         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1198         CL_COMMON): Adjust definitions.
1199         * config/i386/darwin.opt, config/mips/sde.opt: New.
1200         * common.opt (fdump-final-insns): New.
1201         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1202         i386/darwin.opt.
1203         (mips*-sde-elf*): Add mips/sde.opt.
1204         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1205         -mno-data-in-code and -mcode-xonly here.
1206         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1207         * gcc.c (option_map): Add "j" to --dump entry.
1208         (translate_options): Don't translate -d to -foutput-class-dir= here.
1209
1210 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1211
1212         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1213         DR_IS_WRITE.
1214         (compute_all_dependences): Same.
1215         (create_rdg_edge_for_ddr): Same.
1216         * tree-data-ref.h (DR_IS_WRITE): New.
1217         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1218         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1219         (write_memrefs_written_at_least_once): Same.
1220         * tree-predcom.c (suitable_component_p): Same.
1221         (determine_roots_comp): Same.
1222         (execute_load_motion): Same.
1223         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1224         (vect_enhance_data_refs_alignment): Same.
1225         (vect_analyze_group_access): Same.
1226
1227 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1228
1229         PR testsuite/42843
1230         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
1231         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
1232
1233 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
1234
1235         * dwarf2out.c (file scope): Remove #if0'd code.
1236         (gen_subprogram_die): Same.
1237
1238 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1239
1240         PR middle-end/45484
1241         * dwarf2out.c (flush_queued_reg_saves): Rename to...
1242         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
1243         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
1244         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
1245         * config/i386/i386.c (output_set_got): Call it.
1246
1247 2010-09-03  Michael Matz  <matz@suse.de>
1248
1249         PR middle-end/45415
1250         * tree-sra.c (sra_modify_assign): If we modify the statement,
1251         say so.
1252
1253         * tree-ssa.c (verify_ssa): Check number of operands and links
1254         per statement to agree.
1255
1256 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1257             Iain Sandoe  <iains@gcc.gnu.org>
1258
1259         PR target/45476
1260         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
1261         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
1262         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1263
1264 2010-09-03  Richard Guenther  <rguenther@suse.de>
1265
1266         * lto-streamer-out.c (output_function): Output function
1267         start and end loci.
1268         * lto-streamer-in.c (input_function): Input function start
1269         and end loci.
1270
1271 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1272
1273         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
1274         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
1275         * configure: Regenerate.
1276         * aclocal.m4: Regenerate.
1277
1278 2010-09-03  Jan Hubicka  <jh@suse.cz>
1279
1280         PR lto/44812
1281         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
1282         on functions/variables in other partition.
1283
1284 2010-09-03  Jan Hubicka  <jh@suse.cz>
1285
1286         * cgraph.h (struct varpool_node): Add const_value_known.
1287         (varpool_decide_const_value_known): Declare.
1288         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
1289         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
1290         (input_varpool_node): Restore const_value_known.
1291         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
1292         initializer folding.
1293         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1294         function_and_variable_visibility): Compute const_value_known.
1295         * gimple-fold.c (get_symbol_constant_value): Use varpool for
1296         initializer folding.
1297         * varpool.c (varpool_decide_const_value_known): New function.
1298
1299 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1300
1301         * config/i386/i386.md: Remove empty preparation statements
1302         from splitters.
1303
1304 2010-09-03  Jan Hubicka  <jh@suse.cz>
1305
1306         * passes.c (rest_of_decl_compilation): Do not add local vars into
1307         varpool.
1308         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
1309         static or extern vars are in varpool.
1310         (varpool_finalize_decl): Sanity check that only static vars are
1311         finalized.
1312
1313 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1314
1315         PR debug/45500
1316         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
1317         not just generic vectors with BLKmode.
1318
1319 2010-09-03  Richard Guenther  <rguenther@suse.de>
1320
1321         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
1322         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
1323         * tree.h (TMR_SYMBOL): Remove.
1324         (TMR_BASE, TMR_OFFSET): Adjust.
1325         (TMR_INDEX2): New.
1326         * alias.c (ao_ref_from_mem): Use TMR_BASE.
1327         * builtins.c (get_object_alignment): Merge TMR_BASE and
1328         TMR_SYMBOL handling.
1329         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
1330         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
1331         handling.  Also allow TARGET_MEM_REF as base address.
1332         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
1333         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
1334         base.  Gimplify TMR_INDEX2.
1335         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
1336         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1337         (get_addr_base_and_unit_offset): Likewise.
1338         * tree-eh.c (tree_could_trap_p): Likewise.
1339         * tree-pretty-print.c (dump_generic_node): Likewise.
1340         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
1341         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
1342         base to index2.
1343         (get_address_description): Reconstruct addres description
1344         from merged TMR_BASE and TMR_INDEX2.
1345         (maybe_fold_tmr): Fold propagated addresses.
1346         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
1347         MEM_REF and TARGET_MEM_REF paths.
1348         (indirect_refs_may_alias_p): Likewise.
1349         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
1350         instead of TMR_SYMBOL.
1351         * tree-ssa-operands.c (get_tmr_operands): Simplify.
1352         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
1353         according to changes ...
1354         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
1355         Split TARGET_MEM_REF into two fields plus the base.
1356         * tree.c (mem_ref_offset): Simplify.
1357         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
1358         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
1359         Strip NOPs when folding MEM_REF addresses.
1360         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
1361         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
1362         (fold_gimple_assign): ... not here.
1363
1364 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
1365
1366         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
1367         * config/mips/mips.c (mips_shift_truncation_mask): New function.
1368         (TARGET_SHIFT_TRUNCATION_MASK): Define.
1369
1370 2010-09-02  Richard Henderson  <rth@redhat.com>
1371
1372         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
1373         instead of readelf in the test.
1374         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
1375         in the .debug_frame section for coff targets.
1376         * configure: Rebuild.
1377
1378 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1379
1380         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
1381         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
1382         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1383         (m32c_class_likely_spilled_p): Make static. Change argument type to
1384         reg_class_t. Change result type to bool.
1385
1386 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1387
1388         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
1389         to convert (double)(long) into a single FRIZ instruction or not
1390         when -ffast-math is used.
1391
1392         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
1393         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
1394         or FRIZ instruction if -ffast-math.
1395         * config/rs6000/rs6000.md (friz): Ditto.
1396
1397         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
1398
1399 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1400
1401         * opth-gen.awk (quote, comma): Remove unused variables.
1402
1403 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
1404
1405         * arm.c (arm_override_options): Correct fall-back code to use
1406         SUBTARGET_CPU_DEFAULT.
1407
1408 2010-09-02  Julian Brown  <julian@codesourcery.com>
1409
1410         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
1411         unspecs.
1412         (vcond<mode>, vcondu<mode>): New expanders.
1413         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
1414         comparisons with zero.
1415         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
1416         * config/arm/constraints.md (Dz): New constraint.
1417
1418 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1419
1420         * target.def (class_likely_spilled_p): New hook.
1421         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
1422         * doc/tm.texi: Regenerate.
1423         * targhooks.c (default_class_likely_spilled_p): New function.
1424         * targhooks.h (default_class_likely_spilled_p): Declare.
1425         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
1426         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
1427         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
1428         Use fixed_reg_set instead of fixed_regs.
1429         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1430         * calls.c (avoid_likely_spilled_reg): Ditto.
1431         * ira-conflicts.c (ira_build_conflicts): Ditto.
1432         * ira.c (update_equiv_regs): Ditto.
1433         * mode-switching.c (create_pre_exit): Ditto.
1434         * regmove.c (find_matches): Ditto.
1435         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1436         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
1437         (small_register_class_p): New inline function.
1438         (push_secondary_reload, find_reusable_reload, find_reloads): Use
1439         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
1440
1441         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
1442         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
1443         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1444
1445 2010-09-02  Richard Guenther  <rguenther@suse.de>
1446
1447         PR tree-optimization/44937
1448         PR tree-optimization/45412
1449         * ipa-split.c (split_function): Properly remove PHI nodes.
1450
1451 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1452
1453         * opts.h (struct cl_option): Add warn_message field.
1454         (struct cl_decoded_option): Add warn_message field.
1455         * doc/options.texi (Ignore, Warn): Document.
1456         * opt-functions.awk (needs_state_p): Don't consider aliases or
1457         ignored options to need state saved.
1458         * optc-gen.awk: Handle Warn and Ignore.
1459         * opth-gen.awk: Output OPT_SPECIAL_ignore.
1460         * opts-common.c (decode_cmdline_option): Set warn_message field.
1461         Handle ignored options.
1462         (decode_cmdline_options_to_array, generate_option,
1463         generate_option_input_file): Set warn_message field.
1464         (read_cmdline_option): Generate warnings from warn_message field.
1465         Handle ignored options.
1466         * common.opt (Wunreachable-code, fargument-alias,
1467         fargument-noalias, fargument-noalias-global,
1468         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
1469         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
1470         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
1471         ftree-salias): Mark Ignore.
1472         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
1473         -mintel-syntax and -mno-intel-syntax here.
1474         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
1475         using Warn.
1476         * opts.c (common_handle_option): Don't handle options marked as
1477         ignored.
1478         (enable_warning_as_error): Handle ignored options.
1479
1480 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1481
1482         PR driver/44076
1483         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
1484         alias_target fields.
1485         * opt-functions.awk (opt_sanitized_name): Don't handle
1486         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
1487         * optc-gen.awk: Generate alias fields.
1488         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
1489         Don't generate such constants for aliases.
1490         * opts-common.c (generate_canonical_option): New.
1491         (decode_cmdline_option): Handle aliases.  Use
1492         generate_canonical_option for known options instead of copying the
1493         input option text.
1494         * doc/options.texi (Alias): Document.
1495         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
1496         fstack-check, specs): Mark as aliases.
1497         * gcc.c (driver_handle_option): Canonicalize -L options to joined
1498         arguments.
1499         (driver_handle_option): Don't handle OPT_specs.
1500         * opts.c (common_handle_option): Don't handle options marked as
1501         aliases.
1502         (enable_warning_as_error): Handle aliases.
1503         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
1504         OPT_Wlarger_than_eq.
1505         * tree-optimize.c (tree_rest_of_compilation): Use
1506         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
1507
1508 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
1509
1510         * config/i386/i386.md (nonmemory_operand): New mode attribute.
1511         (push memory peephole2): Macroize peepholes using SWI mode iterator.
1512         (move immediate to memory peephole2): Macroize peepholes using
1513         SWI124 mode iterator.
1514         (non-pairable NOT peephole2): Macroize peepholes using SWI124
1515         mode iterator.
1516         (simple lea add peephole2): Macroize peepholes using SWI48
1517         mode iterator.
1518         (simple lea mult peephole2): Ditto.
1519         (imul by 3,5,9 to lea peephole2): Ditto.
1520         (mov $-1, reg peephole2): Macroize peepholes using SWI248
1521         mode iterator.
1522         (imul $32bit_imm,mem,reg peephole2): Ditto.
1523         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
1524
1525 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
1526
1527         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
1528
1529 2010-09-02  Olivier Hainque  <hainque@adacore.com>
1530
1531         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
1532         (allocno_priority_compare_func): Use it instead of a straight
1533         difference computation over priorities.
1534
1535 2010-09-02  Andi Kleen  <ak@linux.intel.com>
1536
1537         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
1538
1539 2010-09-02  Ira Rosen  <irar@il.ibm.com>
1540
1541         * tree-vectorizer.h (get_later_stmt): New function.
1542         (vect_analyze_data_ref_dependences): Add argument.
1543         * tree-vect-loop.c (vect_analyze_loop): Update call to
1544         vect_analyze_data_ref_dependences.
1545         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
1546         New function.
1547         (vect_analyze_data_ref_dependence): Add argument for basic block
1548         dependencies. Check dependencies in basic block vectorization.
1549         (vect_analyze_data_ref_dependences): Add argument and update call to
1550         vect_analyze_data_ref_dependences.
1551         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
1552         (vect_bb_vectorizable_with_dependencies): New.
1553         (vect_slp_analyze_bb): Check dependencies in basic block.
1554         (vect_schedule_slp_instance): Insert stores before the last store in
1555         SLP instance.
1556
1557 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
1558
1559         PR target/45476
1560         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
1561         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1562
1563 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
1564
1565         PR middle-end/45458
1566         * bb-reorder.c (add_labels_and_missing_jumps): Treat
1567         bbs ending with throwing insns like blocks ending with a call.
1568         (fix_up_fall_thru_edges): Likewise.
1569
1570 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
1571
1572         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
1573         (m32c_function_arg_advance): Delete.
1574         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1575         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
1576         comments.  Take a const_tree and a bool.  Declare.
1577         (m32c_function_arg_advance): Likewise.
1578         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1579
1580 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         PR target/45476
1583         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
1584         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
1585         * config/i386/mingw32.h: ... here.
1586
1587 2010-09-01  Andi Kleen  <ak@linux.intel.com>
1588
1589         PR lto/45475
1590         * lto-streamer-in.c (lto_input_ts_target_option): Add.
1591         (lto_input_tree_pointers): Call lto_input_ts_target_option.
1592         * lto-streamer-out (lto_output_ts_target_option): Add.
1593         (lto_output_tree_pointers): Call lto_output_ts_target_option.
1594
1595 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
1596
1597         PR/target 45452
1598         * config/i386/cygwin.h: Change order of specified import libraries.
1599         * config/i386/mingw32.h: Likewise.
1600         * config/i386/t-cygwin: Likewise.
1601         * config/i386/t-mingw32: Likewise.
1602         * config/i386/t-mingw-w32: Likewise.
1603         * config/i386/t-mingw-w64: Likewise.
1604
1605 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1606
1607         * config/arm/neon-schedgen.ml (core): New type.
1608         (allCores): List of supported cores.
1609         (availability_table): Add supported cores.
1610         (collate_bypasses): Accept core as a parameter.
1611         (worst_case_latencies_and_bypasses): Accept core as a parameter.
1612         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
1613         and coreStr to get tune attribute and prefix for functional units.
1614         (emit_bypasses): Accept core name and use it.
1615         (calculate_per_core_availability_table): New.
1616         (filter_core): New.
1617         (calculate_core_availability_table): New.
1618         (main): Use calculate_core_availablity_table.
1619         * config/arm/cortex-a8-neon.md: Update copyright year.
1620         Regenerated from ml file and merged in.
1621         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
1622         cortex_a8_neon_mrc.
1623
1624 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
1625
1626         * Makefile.in (tree-switch-conversion.o): Update dependencies.
1627
1628 2010-09-01  Richard Guenther  <rguenther@suse.de>
1629
1630         * alias.c (ao_ref_from_mem): Adjust.
1631         * builtins.c (get_object_alignment): Likewise.
1632         * cfgexpand.c (expand_debug_expr): Likewise.
1633         * gimple.c (get_base_address): Likewise.
1634         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1635         (get_addr_base_and_unit_offset): Likewise.  Fix for
1636         both TMR_SYMBOL and TMR_BASE being set.
1637         * tree-eh.c (tree_could_trap_p): Likewise.
1638         * gimplify.c (gimplify_expr): Do not attempt to gimplify
1639         TMR_SYMBOL.  Always gimplify TMR_BASE.
1640         * tree-cfg.c (verify_types_in_gimple_reference): Verify
1641         TMR_BASE if there is a TMR_SYMBOL.
1642         * tree-pretty-print.c (dump_generic_node): Adjust.
1643         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1644         (tree_mem_ref_addr): Likewise.
1645         (create_mem_ref_raw): Likewise.
1646         (move_fixed_address_to_symbol): Likewise.
1647         (create_mem_ref): Likewise.
1648         (dump_mem_address): Likewise.
1649         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
1650         Fix for both TMR_SYMBOL and TMR_BASE being set.
1651         (indirect_refs_may_alias_p): Likewise.
1652         * tree-ssa-operands.c (get_tmr_operands): Adjust.
1653         * tree.def (TARGET_MEM_REF): Adjust documentation.
1654
1655 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1656
1657         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
1658         Rename from X86_TUNE_ADD_ESP_4.
1659         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
1660         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
1661         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
1662         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
1663         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
1664         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
1665         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
1666         * config/i386/i386.c (initial_ix86_tune_features)
1667         <X86_TUNE_SINGLE_POP>: Invert members.
1668         <X86_TUNE_DOUBLE_POP>: Ditto.
1669         <X86_TUNE_SINGLE_PUSH>: Ditto.
1670         <X86_TUNE_DOUBLE_PUSH>: Ditto.
1671         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
1672         No longer exported.
1673         (push peephole2 patterns): Macroize peepholes using P mode iterator.
1674         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
1675         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
1676         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
1677
1678 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
1679
1680         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
1681         a volatile LHS if the constructor has only one element.
1682
1683 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
1684
1685         PR bootstrap/45321
1686         * tree.c (stdarg_p): Make fntype parameter const.
1687         * tree.h (stdarg_p): Likewise.
1688         (function_args_iterator): Remove unused fntype field.
1689         (function_args_iter_init): Do not initialize fntype
1690         field.  Make fntype parameter const.
1691
1692 2010-09-01  Richard Guenther  <rguenther@suse.de>
1693
1694         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
1695         estimate.
1696         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
1697         (execute_vrp): Compute number of iteration estimates.
1698         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
1699         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
1700         * tree-data-ref.c (estimated_loop_iterations): Adjust.
1701         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1702         Infer loop bounds from undefined behavior based on a new parameter.
1703         (estimate_numbers_of_iterations): Likewise.
1704         (scev_probably_wraps_p): Adjust.
1705         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
1706
1707 2010-09-01  Nick Clifton  <nickc@redhat.com>
1708
1709         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
1710         where appropriate.
1711         (xstormy16_legitimate_address_p): Use true and false instead of 1
1712         and 0.
1713         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
1714         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
1715         magic constant 2.
1716         (xstormy16_expand_call): Fix comment at start of function.
1717
1718 2010-09-01  Nick Clifton  <nickc@redhat.com>
1719
1720         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
1721         when pushing accumulator register.
1722         (rx_get_stack_layout): Always save call clobbered registers inside
1723         interrupt handlers.
1724         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
1725
1726 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
1727
1728         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
1729         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
1730
1731         * libgcc-std.ver (GCC_4.6.0): Define version.
1732
1733 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
1734
1735         * tree-nested.c (convert_all_function_calls): Iterate until after the
1736         sum of static chains in the nest doesn't change.
1737
1738 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
1739
1740         * config/m32c/m32c.c (classes_intersect): Remove.
1741         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
1742         reg_classes_intersect_p instead of classes_intersect.
1743         (class_can_hold_mode): Change arguments type from enum reg_class to
1744         reg_class_t.  Use reg_class_contents instead of class_contents.
1745         (m32c_register_move_cost): Make static. Change arguments type from
1746         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
1747         classes_intersect. Use reg_class_contents instead of class_contents.
1748         (m32c_memory_move_cost): Make static. Change arguments type from
1749         enum reg_class to reg_class_t.
1750         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
1751         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1752         * config/m32c/m32c-protos.h (m32c_register_move_cost,
1753         m32c_memory_move_cost): Remove.
1754
1755 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1756
1757         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
1758         (arm_function_arg): Delete.
1759         (arm_needs_doubleword_align): Take a const_tree.
1760         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1761         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
1762         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
1763         (arm_function_arg): Make static.  Take a const_tree and a bool.
1764         (arm_function_arg_advance): Likewise.
1765         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1766
1767 2010-08-31  Andi Kleen  <ak@linux.intel.com>
1768
1769         * common.opt (fwhopr=): Update for -fwhopr=jobserver
1770         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
1771         * lto-wrapper.c (run_gcc): Add jobserver mode.
1772         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
1773         argument.
1774
1775 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
1776
1777         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
1778         (popsi1): Ditto.
1779         (*popdi1_epilogue): Ditto.
1780         (*popsi1_epilogue): Ditto.
1781         (popsi, popdi peephole2 patterns): Update peepholes for changed
1782         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
1783
1784         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
1785         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
1786
1787         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
1788         (override_options): Do not initialize removed ix86_gen_pop1.
1789         (gen_pop): New static function.
1790         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
1791         (release_scratch_register_on_entry): Ditto.
1792         (ix86_restore_reg_using_pop): Ditto.
1793         (ix86_expand_epilogue): Ditto.
1794
1795 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
1796
1797         PR middle-end/45461
1798         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
1799
1800 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1801
1802         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
1803         semicolons.
1804
1805 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1806
1807         * doc/extend.texi: Fix documentation of the return value of
1808         __builtin_choose_expr.
1809
1810 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1811
1812         * config/v850/v850-protos.h (function_arg): Delete.
1813         * config/v850/v850.h (FUNCTION_ARG): Delete.
1814         (FUNCTION_ARG_ADVANCE): Move code to...
1815         * config/v850/v850.c (v850_function_arg_advance): ...here.
1816         (v850_function_arg): Make static.  Take a const_tree and a bool.
1817         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1818
1819 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1820
1821         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
1822         these...
1823         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1824         ...and these...
1825         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
1826         ..to here..
1827         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1828         ...and here.
1829         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1830
1831 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1832
1833         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
1834         Delete.
1835         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1836         * config/rx/rx.c (rx_function_arg_size): Make static.
1837         (rx_function_arg): Likewise.
1838         (rx_function_arg_advance): New function.
1839         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1840
1841 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
1842
1843         * config/arm/arm.c (arm_override_options): Remove superfluous test.
1844         Fix indentation.
1845
1846 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
1847
1848         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
1849         (dwarf2out_decl) <CONST_DECL>: Likewise.
1850
1851 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
1852
1853         Stack usage support
1854         * common.opt (-fstack-usage): New option.
1855         * doc/invoke.texi (Debugging options): Document it.
1856         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
1857         allocate_dynamic_stack_space.
1858         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
1859         and propagate it to allocate_dynamic_stack_space.
1860         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
1861         * calls.c (initialize_argument_information): Pass TRUE as 4th
1862         argument to allocate_dynamic_stack_space.
1863         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
1864         to 1 when pushing a variable-sized argument onto the stack.  Pass
1865         TRUE as 4th argument to allocate_dynamic_stack_space.
1866         Update current_function_pushed_stack_size.
1867         (emit_library_call_value_1): Likewise.
1868         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
1869         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
1870         attempt to find an upper bound.  Remove redundant code for the
1871         SETJMP_VIA_SAVE_AREA case.
1872         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
1873         * function.h (struct stack_usage): New structure.
1874         (current_function_static_stack_size): New macro.
1875         (current_function_dynamic_stack_size): Likewise.
1876         (current_function_pushed_stack_size): Likewise.
1877         (current_function_dynamic_alloc_count): Likewise.
1878         (current_function_has_unbounded_dynamic_stack_size): Likewise.
1879         (current_function_allocates_dynamic_stack_space): Likewise.
1880         (struct function): Add new field 'su'.
1881         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
1882         add the value of the dynamic offset to the dynamic stack usage.
1883         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
1884         for variable-sized objects.
1885         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
1886         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
1887         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
1888         BUILT_IN_ALLOCA for variable-sized objects.
1889         * output.h (output_stack_usage): Declare.
1890         * toplev.c (stack_usage_file): New file pointer.
1891         (output_stack_usage): New function.
1892         (open_auxiliary_file): Likewise.
1893         (lang_dependent_init): Open file if flag_stack_usage is set.
1894         (finalize): Close file if stack_usage_file is not null.
1895         * tree.h (ALLOCA_FOR_VAR_P): New macro.
1896         * config/alpha/alpha.c (compute_frame_size): New function.
1897         (alpha_expand_prologue): Use it.
1898         (alpha_start_function): Likewise.
1899         (alpha_expand_epilogue): Likewise.  Set stack usage info.
1900         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1901         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1902         * config/mips/mips.c (mips_expand_prologue): Likewise.
1903         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1904         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1905         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1906
1907 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
1908
1909         PR tree-optimization/45427
1910         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
1911         Handle the case that the exit is never taken correctly.
1912         (number_of_iterations_ne): Pass exit_must_be_taken to
1913         number_of_iterations_ne_max.
1914
1915 2010-08-30  Catherine Moore  <clm@codesourcery.com>
1916
1917         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
1918         Infer -mdspr2 for the the 74K.
1919
1920 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
1921
1922         PR debug/45419
1923         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
1924
1925         PR middle-end/45423
1926         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
1927         and TRUTH_{AND,OR,XOR}_EXPR.
1928         * c-parser.c (c_parser_omp_atomic): Handle boolean
1929         {PRE,POST}_{INC,DEC}REMENT.
1930
1931 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
1932
1933         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
1934         (function_arg): Delete.
1935         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1936         (FUNCTION_INCOMING_ARG): Delete.
1937         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
1938         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
1939         and a bool.
1940         (function_arg): Rename to...
1941         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
1942         a bool.
1943         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
1944         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1945         (TARGET_FUNCTION_INCOMING_ARG): Define.
1946
1947 2010-08-30  Richard Guenther  <rguenther@suse.de>
1948
1949         PR tree-optimization/21602
1950         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
1951         using points-to information.
1952
1953 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
1954
1955         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1956
1957 2010-08-30  Richard Guenther  <rguenther@suse.de>
1958
1959         PR tree-optimization/45449
1960         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1961         variables.
1962
1963 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1964
1965         * opts.h (CL_ERR_NEGATIVE): Define.
1966         * opts.c (unknown_option_callback): Don't postpone warnings for
1967         options marked with CL_ERR_NEGATIVE.
1968         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
1969         for negative versions of CL_REJECT_NEGATIVE options.
1970
1971 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
1972
1973         * config/i386/i386.md (zero_extendsidi2_1): Rename from
1974         zero_extendsidi2_32.
1975         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
1976         using SWI12 mode iterator.
1977         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
1978         to define_insn_and_split pattern.
1979         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
1980         using SWI24 mode iterator.
1981         (*zero_extendqi<mode>2_and): Macroize insn from
1982         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
1983         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
1984         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
1985         SWI24 mode iterator.
1986         (*zero_extendqi<mode>2_movzbl): Ditto from
1987         *zero_extendqi{hi,si}2_movzbl.
1988         (extendsidi2_1): Rename from extendsidi2_32.
1989         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
1990         SWI12 mode iterator.
1991
1992 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1993
1994         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
1995         general purpose registers.
1996         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
1997         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
1998         with general purpose registers and memory operands.  Add associated
1999         CCImode post-reload splitter.
2000         * config/ia64/div.md: Change BImode to CCImode throughout.
2001
2002 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2003
2004         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2005
2006 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2007
2008         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2009         function was dropping debug insns which caused PR45299.
2010
2011 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2012
2013         * config/i386/sse.md (extsuffix): New code attribute.
2014         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2015         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2016         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2017         and sse4_1_zero_extendv4qiv4si2.
2018         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2019         and sse4_1_zero_extendv2qiv2di2.
2020         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2021         and sse4_1_zero_extendv4hiv4si2.
2022         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2023         and sse4_1_zero_extendv2hiv2di2.
2024         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2025         and sse4_1_zero_extendv2siv2di2
2026
2027         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2028         using any_extend code iterator.
2029         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2030         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2031         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2032
2033         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2034         gen_sse4_1_sign_extend* functions.
2035         (struct builtin_description bdesc_args): Ditto.
2036
2037 2010-08-27  Xinliang David Li  <davidxl@google.com>
2038
2039         PR/45422
2040         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2041         (iv_ca_set_no_cp): Update used inv expr count.
2042         (iv_ca_set_cp): Ditto.
2043         (iv_ca_new): Initialize new member.
2044         (iv_ca_free): Free memory.
2045
2046 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2047
2048         * config/sh/sh-protos.h (sh_function_arg): Delete.
2049         (sh_function_arg_advance): Delete.
2050         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2051         (PASS_IN_REG_P): Eliminate cast.
2052         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2053         const_tree and a bool.
2054         (sh_function_arg): Likewise.
2055         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2056         sh_function_arg.
2057         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2058
2059 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2060             Kaz Kojima  <kkojima@gcc.gnu.org>
2061
2062         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2063         when possible.
2064         (sh_expand_epilogue): Likewise.
2065         * config/sh/sh.md (movml_push_banked): New insn.
2066         (movml_pop_banked): Likewise.
2067
2068 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2069
2070         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2071         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2072         in vector element 0 rather than the original string when there's
2073         only one element.
2074         (gen_regexp): Remove extra semicolon.
2075
2076         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2077         thumb2_movsf_vfp): Set attribute "insn".
2078         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2079         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2080         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2081         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2082         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2083         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2084         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2085         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2086         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2087         if_not_arith, if_arith_not, cond_move_not): Likewise.
2088
2089 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2090
2091         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2092         New declaration.
2093         (rs6000_allocate_stack_temp): Ditto.
2094         (rs6000_expand_convert_si_to_sfdf): Ditto.
2095
2096         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2097         line.  Update the options set if power6 or power7 server/embedded
2098         type options are used.  If we give a warning for no vsx under
2099         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2100         (rs6000_allocate_stack_temp): New function to allocate a stack
2101         tempoary and adjust the address so it meets either REG+OFFSET or
2102         REG+REG addressing requirements.
2103         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2104         that they can be used with the LFIWAX/LFIWZX instrucitons.
2105         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2106         converting signed/unsigned SImode to either SFmode/DFmode.
2107
2108         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2109         whether certain instructions can be generated.
2110         (TARGET_FCTIDZ): Ditto.
2111         (TARGET_STFIWX): Ditto.
2112         (TARGET_LFIWAX): Ditto.
2113         (TARGET_LFIWZX): Ditto.
2114         (TARGET_FCFIDS): Ditto.
2115         (TARGET_FCFIDU): Ditto.
2116         (TARGET_FCFIDUS): Ditto.
2117         (TARGET_FCTIDUZ): Ditto.
2118         (TARGET_FCTIWUZ): Ditto.
2119
2120         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2121         (UNSPEC_FCTID): Ditto.
2122         (UNSPEC_LFIWAX): Ditto.
2123         (UNSPEC_LFIWZX): Ditto.
2124         (UNSPEC_FCTIWUZ): Ditto.
2125         (rreg): Use correct constraints.
2126         (SI_CONVERT_FP): New mode attribute for floating point conversion
2127         tests.
2128         (E500_CONVERT): Ditto.
2129         (lfiwax): New insns for converting from integer to floating point
2130         utilizing newer instructions.  Attempt to optimize conversions
2131         that come from memory so that we don't load the value into a GPR,
2132         spill it to the stack and reload it into a FPR.
2133         (floatsi<mode>2_lfiwax): Ditto.
2134         (floatsi<mode>2_lfiwax_mem): Ditto.
2135         (floatsi<mode>2_lfiwax_mem2): Ditto.
2136         (lfiwzx): Ditto.
2137         (floatunssi<mode>2_lfiwzx): Ditto.
2138         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2139         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2140         (floatdidf2_mem): Ditto.
2141         (floatunsdidf2_fcfidu): Ditto.
2142         (floatunsdidf2_mem): Ditto.
2143         (floatunsdisf2): Ditto.
2144         (floatunsdisf2_fcfidus): Ditto.
2145         (floatunsdisf2_mem): Ditto.
2146         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2147         Use FCFID on 32-bit hosts that support it.
2148         (floatsidf2_internal): Ditto.
2149         (floatunssisf2): Ditto.
2150         (floatunssidf2): Ditto.
2151         (floatunssidf2_internal): Ditto.
2152         (floatsisf2): Ditto.
2153         (floatdidf2): Ditto.
2154         (floatdidf2_fpr): Ditto.
2155         (floatunsdidf2): Ditto.
2156         (floatdisf2): Ditto.
2157         (floatdisf2_fcfids): Ditto.
2158         (floatdisf2_internal1): Ditto.
2159         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2160         SF/DF.  Add power7 support.
2161         (fix_truncsfsi2): Ditto.
2162         (fixuns_truncdfsi2): Ditto.
2163         (fixuns_truncdfdi2): Ditto.
2164         (fix_truncdfsi2): Ditto.
2165         (fix_truncdfsi2_internal): Ditto.
2166         (fix_truncdfsi2_internal_gfxopt): Ditto.
2167         (fix_truncdfsi2_mfpgpr): Ditto.
2168         (fctiwz): Ditto.
2169         (btruncdf2): Ditto.
2170         (btruncdf2_fpr): Ditto.
2171         (btructsf2): Ditto.
2172         (ceildf2): Ditto.
2173         (ceildf2_fpr): Ditto.
2174         (ceilsf2): Ditto.
2175         (floordf2): Ditto.
2176         (floordf2_fpr): Ditto.
2177         (floorsf2): Ditto.
2178         (rounddf2): Ditto.
2179         (rounddf2_fpr): Ditto.
2180         (roundsf2): Ditto.
2181         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2182         (fix_trunc<mode>di2): Ditto.
2183         (fixuns_trunc<mode>si2): Ditto.
2184         (fixuns_trunc<mode>di2): Ditto.
2185         (fctiwz_<mode>): Ditto.
2186         (btrunc<mode>2): Ditto.
2187         (btrunc<mode>2_fpr): Ditto.
2188         (ceil<mode>2): Ditto.
2189         (ceil<mode>2_fpr): Ditto.
2190         (floor<mode>2): Ditto.
2191         (float<mode>2_fpr): Ditto.
2192         (round<mode>2): Ditto.
2193         (round<mode>2_fpr): Ditto.
2194         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2195         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2196         (fix_truncdfsi2_internal): Ditto.
2197         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2198         converted value on stack, loaded into GPR, and then stored into
2199         the final destination.
2200         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2201         FCTIDZ.
2202         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2203         (ftruncdf2): Delete, unused.
2204         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2205
2206         * config/rs6000/vsx.md (toplevel): Update copyright year.
2207         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2208         (VSr3): Ditto.
2209
2210 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2211             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2212
2213         * gengtype.c (output_type_enum): Test the right union member.
2214
2215 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2216
2217         PR target/41484
2218         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2219         operands for operand 1.
2220         (sse4_1_extendv4qiv4si2): Ditto.
2221         (sse4_1_extendv2qiv2di2): Ditto.
2222         (sse4_1_extendv4hiv4si2): Ditto.
2223         (sse4_1_extendv2hiv2di2): Ditto.
2224         (sse4_1_extendv2siv2di2): Ditto.
2225         (sse4_1_zero_extendv8qiv8hi2): Ditto.
2226         (sse4_1_zero_extendv4qiv4si2): Ditto.
2227         (sse4_1_zero_extendv2qiv2di2): Ditto.
2228         (sse4_1_zero_extendv4hiv4si2): Ditto.
2229         (sse4_1_zero_extendv2hiv2di2): Ditto.
2230         (sse4_1_zero_extendv2siv2di2): Ditto.
2231         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
2232         (*sse4_1_extendv4qiv4si2): Ditto.
2233         (*sse4_1_extendv2qiv2di2): Ditto.
2234         (*sse4_1_extendv4hiv4si2): Ditto.
2235         (*sse4_1_extendv2hiv2di2): Ditto.
2236         (*sse4_1_extendv2siv2di2): Ditto.
2237         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
2238         (*sse4_1_zero_extendv4qiv4si2): Ditto.
2239         (*sse4_1_zero_extendv2qiv2di2): Ditto.
2240         (*sse4_1_zero_extendv4hiv4si2): Ditto.
2241         (*sse4_1_zero_extendv2hiv2di2): Ditto.
2242         (*sse4_1_zero_extendv2siv2di2): Ditto.
2243
2244 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2245
2246         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
2247         (mips_function_arg): Delete.
2248         (mips_function_arg_boundary): Take a const_tree.
2249         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
2250         (mips_arg_info): Likewise.
2251         (mips_setup_incoming_varargs): Call mips_function_arg_advance
2252         instead of FUNCTION_ARG_ADVANCE.
2253         (mips_function_arg_advance): Adjust prototype.  Make static.
2254         (mips_function_arg): Likewise.
2255         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2256         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2257
2258 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2259
2260         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2261         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
2262         (function_arg): Delete.
2263         (function_arg_boundary): Take a const_tree.
2264         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
2265         (rs6000_spe_function_arg): Likewise.
2266         (rs6000_parm_start): Likewise.
2267         (rs6000_arg_size): Likewise.
2268         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
2269         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
2270         (rs6000_mixed_function_arg): Likewise.
2271         (function_arg): Rename to...
2272         (rs6000_function_arg): ...this.
2273         (function_arg_advance): Rename to...
2274         (rs6000_function_arg_advance_1): ...this
2275         (rs6000_function_arg_advance): New function.  Call it.
2276         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
2277         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
2278         (rs6000_function_value): Likewise.
2279         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2280
2281 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2282
2283         * config/arm/arm.md (enabled): Test the value of arch_enabled
2284         rather than just using it.
2285
2286 2010-08-27  Olivier Hainque  <hainque@adacore.com>
2287             Eric Botcazou  <ebotcazou@adacore.com>
2288
2289         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
2290         cover all the possible offsets from this base.
2291         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
2292
2293 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
2294
2295         PR tree-optimization/44485
2296         * calls.c (flags_from_decl_or_type): For const or pure
2297         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
2298         together with ECF_CONST resp. ECF_PURE.
2299         * builtins.c (expand_builtin): Use flags_from_decl_or_type
2300         instead of querying flags directly.
2301         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
2302         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
2303
2304 2010-08-26  Richard Guenther  <rguenther@suse.de>
2305
2306         PR tree-optimization/45255
2307         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
2308         and externals are also invariant.
2309
2310 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2311
2312         PR rtl-optimization/44858
2313         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
2314         newi2pat, make sure they don't affect newpat.
2315
2316         PR rtl-optimization/45400
2317         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
2318         SUBREG_REG if both modes are of MODE_INT class.
2319
2320 2010-08-25  Julian Brown  <julian@codesourcery.com>
2321
2322         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
2323         * config/arm/arm.md (generic_sched): No for Cortex-A5.
2324         (generic_vfp): Likewise.
2325         (cortex-a5.md): Include.
2326         * config/arm/cortex-a5.md: New.
2327
2328 2010-08-25  Richard Guenther  <rguenther@suse.de>
2329
2330         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
2331         * gimple.c (gimple_get_alias_set): Remove special handling
2332         for pointers.
2333
2334 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2335
2336         PR middle-end/45355
2337         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
2338         dead_or_set_p when computing i0_feeds_i2_n.
2339
2340         * combine.c (find_split_point): Undo canonicalization of multiply-add
2341         to (minus x (mult)) when it seems likely that this will increase the
2342         chances of a split.
2343
2344 2010-08-25  Richard Guenther  <rguenther@suse.de>
2345
2346         PR lto/44562
2347         * lto-streamer.c (lto_record_common_node): Do not mess with
2348         TYPE_CANONICAL when not in lto.
2349         * gimple.c (gimple_register_type): Likewise.
2350
2351 2010-08-25  Richard Guenther  <rguenther@suse.de>
2352
2353         PR tree-optimization/45316
2354         * tree-ssa-pre.c (eliminate): Properly clean EH info.
2355
2356 2010-08-25  Richard Guenther  <rguenther@suse.de>
2357
2358         PR tree-optimization/45393
2359         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
2360         and clean EH info.  Avoid SSA update.
2361         (execute_cse_sincos): Cleanup the CFG if it has changed.
2362
2363 2010-08-25  Richard Guenther  <rguenther@suse.de>
2364
2365         PR middle-end/45379
2366         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
2367         TARGET_MEM_REF in alignment computation.
2368
2369 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2370
2371         PR tree-optimization/45059
2372         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
2373         type conversions from newop{1,2}.  Assert t is a comparison and
2374         newop{1,2} after the stripping are gimple vals.
2375
2376 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
2377
2378         * config/arm/iterators.md (VU, SE, V_widen_l): New.
2379         (V_unpack, US): New.
2380         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
2381         (vec_unpack<US>_lo_<mode>): Likewise.
2382         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
2383         (neon_vec_unpack<US>_lo_<mode>): Likewise.
2384         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
2385         (vec_widen_<US>mult_hi_<mode>): Likewise.
2386         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
2387         (neon_vec_<US>mult_hi_<mode>"): Likewise.
2388         (neon_unpack<US>_<mode>): Widening move intermediate step for
2389         vectorizing without -mvectorize-with-neon-quad.
2390         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
2391         for vectorizing without -mvectorize-with-neon-quad.
2392         * config/arm/predicates.md (vect_par_constant_high): Check for
2393         high-half lanes of a vector.
2394         (vect_par_constant_low): Check for low-half lanes of a vector.
2395
2396 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2397
2398         * tree-if-conv.c (struct ifc_dr): New.
2399         (IFC_DR): New.
2400         (DR_WRITTEN_AT_LEAST_ONCE): New.
2401         (DR_RW_UNCONDITIONALLY): New.
2402         (memref_read_or_written_unconditionally): Use the cached values
2403         when possible.
2404         (write_memref_written_at_least_once): Same.
2405         (if_convertible_loop_p): Initialize and free DR->aux fields.
2406
2407 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2408
2409         * gimple.c (gimple_could_trap_p_1): Not static anymore.
2410         Pass an extra bool parameter include_mem.
2411         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
2412         (gimple_assign_rhs_could_trap_p): Same.
2413         * gimple.h (gimple_could_trap_p_1): Declared.
2414         * tree-data-ref.h (same_data_refs_base_objects): New.
2415         (same_data_refs): New.
2416         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
2417         (write_memrefs_written_at_least_once): New.
2418         (ifcvt_memrefs_wont_trap): New.
2419         (operations_could_trap): New.
2420         (ifcvt_could_trap_p): New.
2421         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
2422         Gets a vector of data refs.
2423         (if_convertible_stmt_p): Same.
2424         (if_convertible_loop_p_1): New.
2425         (if_convertible_loop_p): Call if_convertible_loop_p_1.
2426
2427 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2428
2429         * common.opt (ftree-loop-if-convert-stores): New flag.
2430         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
2431         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
2432         the created statement before GSI.
2433         (if_convertible_phi_p): Allow virtual phi nodes when
2434         flag_loop_if_convert_stores is set.
2435         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
2436         Do not handle types that do not match is_gimple_reg_type.
2437         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
2438         when flag_loop_if_convert_stores is set, as LHS can contain
2439         memory refs.
2440         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
2441         to if_convertible_gimple_assign_stmt_p.
2442         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
2443         (replace_phi_with_cond_gimple_assign_stmt): Renamed
2444         predicate_scalar_phi.  Do not handle virtual phi nodes.
2445         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
2446         Call predicate_scalar_phi.
2447         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
2448         just after the labels for flag_loop_if_convert_stores, otherwise
2449         insert the predicate in the end of the BB.
2450         (predicate_mem_writes): New.
2451         (combine_blocks): Call predicate_all_scalar_phis.  When
2452         flag_loop_if_convert_stores is set, call predicate_mem_writes.
2453         (tree_if_conversion): Call mark_sym_for_renaming when
2454         flag_loop_if_convert_stores is set.
2455         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
2456         flag_loop_if_convert_stores is set.
2457
2458 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
2459
2460         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
2461         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
2462         (pa_function_value): Make static.
2463         (override_options): Rename to...
2464         (pa_option_override): ...this. Make static.
2465         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
2466         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
2467         TARGET_OPTION_OVERRIDE): Define.
2468         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
2469         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
2470         Remove.
2471         * config/pa/pa-protos.h (override_options): Remove.
2472
2473 2010-08-24  Richard Guenther  <rguenther@suse.de>
2474
2475         PR middle-end/45379
2476         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
2477         if addr->index is NULL or zero.
2478         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
2479         TARGET_MEM_REF more properly.
2480         (indirect_ref_may_alias_decl_p): Likewise.
2481         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
2482         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
2483
2484 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
2485
2486         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
2487         (m32c_override_options): Rename to...
2488         (m32c_option_override): ...this. Make static.
2489         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
2490         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
2491         Remove.
2492         * config/m32c/m32c-protos.h (m32c_override_options,
2493         m32c_function_value_regno_p): Remove.
2494
2495 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2496
2497         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
2498         Fix a typo in a previous commit.
2499
2500 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
2501
2502         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
2503         Pre-initialize innerloop_iters to one.
2504
2505 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2506
2507         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
2508         existing static function global.
2509
2510         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
2511         is changed to global.
2512
2513         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
2514         may_be_nonaddressable_p on base, and don't collect this reference
2515         if the address of the base could not be taken.
2516
2517 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2518
2519         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
2520         enable the compiler to autovectorize mathmetical functions for
2521         power7 using the Mathematical Acceleration Subsystem library.
2522
2523         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
2524         handle which vector math library we have.
2525         (rs6000_override_options): Add -mveclibabi=mass support.
2526         (rs6000_builtin_vectorized_libmass): New function to handle auto
2527         vectorizing math functions that are in the MASS library.
2528         (rs6000_builtin_vectorized_function): Call it.
2529
2530         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2531         -mveclibabi=mass.
2532
2533 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2534
2535         PR boehm-gc/34544
2536         * gthr-posix.h (__gthread_active_init): Delete.
2537         (__gthread_active_p): Do activity check here.
2538         Don't include errno.h on hppa-hpux.  Update comment.
2539         * gthr-posix95.h (__gthread_active_init): Delete.
2540         (__gthread_active_p): Do activity check here.
2541         Don't include errno.h on hppa-hpux.  Update comment.
2542         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
2543         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
2544         add -lpthread when -mt or -pthread is specified.
2545         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
2546         (LINK_GCC_C_SEQUENCE_SPEC): Define.
2547         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
2548         (stublib.c, pthread_default_stacksize_np-stub.o,
2549         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
2550         $(T)libgcc_stub.a): Add methods.
2551         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
2552         (stublib.c, pthread_default_stacksize_np-stub.o,
2553         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
2554         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
2555         pthread_mutex_unlock): New stubs.
2556
2557 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
2558
2559         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
2560         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
2561         options.
2562         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
2563         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
2564         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
2565         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
2566         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
2567         "-l".
2568         * cppspec.c: Include opts.h.
2569         (lang_specific_driver): Use cl_decoded_option structures.
2570         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
2571         * doc/tm.texi: Regenerate.
2572         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
2573         (driver_handle_option): Allow driver options needing no special
2574         processing.
2575         (process_command): Decode options before call to
2576         lang_specific_driver.  Pass decoded options to
2577         lang_specific_driver.
2578         * gcc.h (lang_specific_driver): Update prototype.
2579         * gccspec.c: Include opts.h.
2580         (lang_specific_driver): Use cl_decoded_option structures.
2581         * opts-common.c (option_ok_for_language, generate_option,
2582         generate_option_input_file): New.
2583         (decode_cmdline_option): Use option_ok_for_language.
2584         (decode_cmdline_options_to_array): Use generate_option_input_file.
2585         (handle_generated_option): Use generate_option.
2586         * opts.h (generate_option, generate_option_input_file): Declare.
2587
2588 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
2589
2590         * config/mips/mips.c (mips_override_options): Rename to...
2591         (mips_option_override): ...this. Make static.
2592         (TARGET_OPTION_OVERRIDE): Define.
2593         (mips_in_small_data_p): Update comment.
2594         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
2595         (FIXED_REGISTERS): Update comment.
2596         * config/mips/mips-protos.h (mips_override_options): Remove.
2597
2598 2010-08-21  Olivier Hainque  <hainque@adacore.com>
2599
2600         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
2601
2602 2010-08-21  Olivier Hainque  <hainque@adacore.com>
2603
2604         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
2605         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
2606
2607 2010-08-20  Jan Hubicka  <jh@suse.cz>
2608
2609         * tree-pass.h (pass_ipa_cdtor_merge): New function.
2610         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
2611         heap allocated.
2612         (record_cdtor_fn): Move to ipa.c; do not test for
2613         have_ctors_dtors.
2614         (build_cdtor): Move to ipa.c; add code avoiding construction
2615         when target have ctors/dtors and there is only one ctor/dtor at given
2616         priority.
2617         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
2618         sort; reverse order of constructors.
2619         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
2620         (cgraph_finalize_function): Do not call record_cdtor_fn.
2621         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
2622         (cgraph_build_static_cdtor): Move to ipa.c.
2623         * ipa.c: Include target.h and tree-iterator.h.
2624         (cgraph_build_static_cdtor, static_ctors, static_dtors,
2625         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
2626         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
2627         pass_ipa_cdtor_merge): New.
2628         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
2629         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
2630         bounds access.
2631
2632 2010-08-20  Jan Hubicka  <jh@suse.cz>
2633
2634         PR c++/45307
2635         PR c++/17736
2636         * cgraph.h (cgraph_only_called_directly_p,
2637         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
2638         static cdtors.
2639         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
2640         are not needed.
2641         (cgraph_finalize_function): Static cdtors are reachable.
2642         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
2643
2644 2010-08-20  Jan Hubicka  <jh@suse.cz>
2645
2646         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
2647         flag_wpa.
2648         * lto-streamer-out.c (lto_output): Likewise.
2649         * passes.c (ipa_write_optimization_summaries): Initialize statement
2650         uids.
2651
2652 2010-08-20  Olivier Hainque  <hainque@adacore.com>
2653
2654         * tree.h (alias_diag_flags): New enum.
2655         (alias_pair): Add an 'emitted_diags' field.
2656         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
2657         (assemble_alias): Initialize emitted_diags of new pairs.
2658
2659 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
2660
2661         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
2662         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2663         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2664         (STACK_CHECK_PROTECT): Define.
2665         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
2666         (output_probe_stack_range): Likewise.
2667         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
2668         builtin stack checking is enabled.
2669         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
2670         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
2671         (probe_stack_range): New insn.
2672
2673 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
2674
2675         PR target/45336
2676         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
2677         short first.
2678
2679         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
2680         char first.
2681
2682 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2683
2684         PR target/45336
2685         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
2686         to cover zero extension into 64-bit register.
2687         (*sse2_pextrw): Likewise.
2688         (*sse4_1_pextrd_zext): New insn.
2689
2690 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
2691
2692         revert r163410, partially revert r163267.
2693         * config/rs6000/darwin.h (LIB_SPEC): Remove.
2694         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
2695         Darwin versions.
2696
2697 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2698
2699         PR middle-end/44974
2700         * builtins.c (expand_builtin): Don't optimize away
2701         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
2702
2703 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
2704
2705         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
2706         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
2707         alternative 1 of operand 2.
2708
2709 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2710             Paolo Bonzini  <bonzini@gnu.org>
2711
2712         * simplify-rtx.c (simplify_unary_operation_1): Optimize
2713         (sign_extend (zero_extend (...)) and
2714         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
2715
2716 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2717
2718         PR rtl-optimization/45353
2719         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
2720         after bb_note is a BARRIER.
2721
2722 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
2723
2724         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
2725         linking libgcc.a.
2726
2727 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
2728             Michael Matz  <matz@suse.de>
2729
2730         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
2731
2732 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
2733
2734         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
2735         (ggc_mark_roots): ...here.
2736
2737 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
2738
2739         * vec.h (FOR_EACH_VEC_ELT): Define.
2740         * c-decl.c: Use it.
2741         * cfgloop.c: Likewise.
2742         * cfgloopmanip.c: Likewise.
2743         * cgraph.c: Likewise.
2744         * cgraphunit.c: Likewise.
2745         * combine.c: Likewise.
2746         * config/bfin/bfin.c: Likewise.
2747         * config/mips/mips.c: Likewise.
2748         * config/rs6000/rs6000.c: Likewise.
2749         * dbxout.c: Likewise.
2750         * df-scan.c: Likewise.
2751         * dominance.c: Likewise.
2752         * dse.c: Likewise.
2753         * dwarf2out.c: Likewise.
2754         * except.c: Likewise.
2755         * expr.c: Likewise.
2756         * function.c: Likewise.
2757         * gcse.c: Likewise.
2758         * genattr.c: Likewise.
2759         * ggc-common.c: Likewise.
2760         * gimplify.c: Likewise.
2761         * graphite-blocking.c: Likewise.
2762         * graphite-clast-to-gimple.c: Likewise.
2763         * graphite-dependences.c: Likewise.
2764         * graphite-interchange.c: Likewise.
2765         * graphite-poly.c: Likewise.
2766         * graphite-scop-detection.c: Likewise.
2767         * graphite-sese-to-poly.c: Likewise.
2768         * graphite.c: Likewise.
2769         * haifa-sched.c: Likewise.
2770         * ifcvt.c: Likewise.
2771         * implicit-zee.c: Likewise.
2772         * ipa-prop.c: Likewise.
2773         * ipa-struct-reorg.c: Likewise.
2774         * ipa.c: Likewise.
2775         * ira-build.c: Likewise.
2776         * ira-color.c: Likewise.
2777         * ira-emit.c: Likewise.
2778         * lambda-code.c: Likewise.
2779         * loop-invariant.c: Likewise.
2780         * loop-unroll.c: Likewise.
2781         * lower-subreg.c: Likewise.
2782         * lto-cgraph.c: Likewise.
2783         * lto-opts.c: Likewise.
2784         * lto-streamer-in.c: Likewise.
2785         * lto-streamer-out.c: Likewise.
2786         * lto-streamer.c: Likewise.
2787         * lto-symtab.c: Likewise.
2788         * matrix-reorg.c: Likewise.
2789         * opts.c: Likewise.
2790         * predict.c: Likewise.
2791         * print-tree.c: Likewise.
2792         * sdbout.c: Likewise.
2793         * sel-sched-dump.c: Likewise.
2794         * sel-sched-ir.c: Likewise.
2795         * sel-sched.c: Likewise.
2796         * sese.c: Likewise.
2797         * stor-layout.c: Likewise.
2798         * tree-cfg.c: Likewise.
2799         * tree-cfgcleanup.c: Likewise.
2800         * tree-chrec.c: Likewise.
2801         * tree-data-ref.c: Likewise.
2802         * tree-emutls.c: Likewise.
2803         * tree-inline.c: Likewise.
2804         * tree-into-ssa.c: Likewise.
2805         * tree-loop-distribution.c: Likewise.
2806         * tree-loop-linear.c: Likewise.
2807         * tree-mudflap.c: Likewise.
2808         * tree-outof-ssa.c: Likewise.
2809         * tree-parloops.c: Likewise.
2810         * tree-predcom.c: Likewise.
2811         * tree-pretty-print.c: Likewise.
2812         * tree-scalar-evolution.c: Likewise.
2813         * tree-ssa-live.c: Likewise.
2814         * tree-ssa-loop-im.c: Likewise.
2815         * tree-ssa-loop-ivcanon.c: Likewise.
2816         * tree-ssa-loop-ivopts.c: Likewise.
2817         * tree-ssa-loop-manip.c: Likewise.
2818         * tree-ssa-loop-niter.c: Likewise.
2819         * tree-ssa-loop-prefetch.c: Likewise.
2820         * tree-ssa-phiprop.c: Likewise.
2821         * tree-ssa-pre.c: Likewise.
2822         * tree-ssa-reassoc.c: Likewise.
2823         * tree-ssa-sccvn.c: Likewise.
2824         * tree-ssa-structalias.c: Likewise.
2825         * tree-ssa.c: Likewise.
2826         * tree-vect-data-refs.c: Likewise.
2827         * tree-vect-loop-manip.c: Likewise.
2828         * tree-vect-loop.c: Likewise.
2829         * tree-vect-patterns.c: Likewise.
2830         * tree-vect-slp.c: Likewise.
2831         * tree-vect-stmts.c: Likewise.
2832         * tree-vrp.c: Likewise.
2833         * tree.c: Likewise.
2834         * value-prof.c: Likewise.
2835         * var-tracking.c: Likewise.
2836         * varasm.c: Likewise.
2837         * vmsdbgout.c: Likewise.
2838
2839 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2840             Richard Guenther  <richard.guenther@gmail.com>
2841
2842         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
2843         copy the src value and return a copy.
2844         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
2845         (C++ Volatiles): Adjust to describe C++ semantics only.
2846
2847 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
2848
2849         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
2850         be zero or nonzero.
2851         * doc/tm.texi: Regenerate.
2852         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
2853         * df-scan.c (df_get_exit_block_use_set), reginfo.c
2854         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
2855         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
2856         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
2857         to 1.
2858
2859 2010-08-20  Olivier Hainque  <hainque@adacore.com>
2860
2861         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
2862         an extra nop past a sibling call at the very end.
2863
2864 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2865
2866         PR bootstrap/45350
2867         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
2868         a comment.
2869
2870 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2871
2872         * target.def (function_arg, function_incoming_arg): Remove const
2873         qualifier on CUMULATIVE_ARGS parameter.
2874         * targhooks.h (default_function_arg, default_function_incoming_arg):
2875         Likewise.
2876         * targhooks.c (default_function_arg, default_function_incoming_arg):
2877         Likewise.
2878         * config/i386/i386.c (ix86_function_arg): Likewise.
2879
2880 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
2881
2882         PR target/45336
2883         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
2884         SIGN_EXTENDs or ZERO_EXTENDs.
2885
2886 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2887
2888         PR target/42172
2889         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
2890         Take its cost into account if nonnull.
2891         (insn_a_feeds_b): New static function.
2892         (combine_instructions): Look for four-insn combinations.
2893         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
2894         them into account when computing all_adjacent and looking for other
2895         uses.
2896         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
2897         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
2898         (try_combine): New arg I0.  Handle four-insn combinations.
2899         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
2900         like ELIM_I1.
2901
2902 2010-08-19  Jason Merrill  <jason@redhat.com>
2903
2904         PR c++/45307
2905         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
2906         if ctor is empty.
2907         (gimplify_modify_expr_rhs): Adjust.
2908
2909 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2910
2911         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
2912         bitmap_bit_p.
2913         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
2914         * dominance.c (iterate_fix_dominators): Likewise.
2915         * dse.c (set_usage_bits): Likewise.
2916         (set_position_unneeded, record_store): Likewise.
2917         * gimple-fold.c (get_maxval_strlen): Likewise.
2918         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
2919         * ipa-inline.c (update_caller_keys): Likewise.
2920         * ipa-split.c (verify_non_ssa_vars): Likewise.
2921         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
2922         (close_type_exposed_parameter, close_type_full_escape): Likewise.
2923         (close_addressof_down): Likewise.
2924         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
2925         (setup_allocno_left_conflicts_size): Likewise.
2926         (ira_reassign_conflict_allocnos): Likewise.
2927         (ira_reassign_pseudos): Likewise.
2928         * ira-emit.c (change_loop): Likewise.
2929         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
2930         * lto-streamer-out.c (write_symbol): Likewise.
2931         * predict.c (expr_expected_value_1): Likewise.
2932         * regstat.c (regstat_bb_compute_ri): Likewise.
2933         * sel-sched.c (create_block_for_bookkeeping): Likewise.
2934         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
2935         * stmt.c (expand_case): Likewise.
2936         * tree-eh.c (emit_eh_dispatch): Likewise.
2937         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
2938         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
2939         Likewise.
2940         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
2941         (rdg_build_components): Likewise.
2942         * tree-object-size.c (collect_object_sizes_for): Likewise.
2943         * tree-sra.c (convert_callers): Likewise.
2944         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
2945         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
2946         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
2947
2948 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2949
2950         * config/i386/i386.md (*lea_1): Use P mode iterator.
2951         (lea add splitter): Also handle DImode operands.
2952         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
2953         predicate.  Do not use ix86_lea_for_add_ok.
2954         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2955         (lea ashift splitter): Also handle DImode operands.
2956         (DImode lea ashift splitter): Remove splitter.
2957
2958 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2959
2960         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2961         ix86_binary_operator_ok.
2962
2963 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2964
2965         PR rtl-optimization/44691
2966         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2967         is not a register.
2968
2969 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2970
2971         PR target/45070
2972         * config/arm/arm.c (arm_output_epilogue): Ensure that return
2973          value of size 1-3 is handled correctly.
2974
2975 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2976
2977         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
2978         type for the conditional has wide enough range.
2979
2980 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2981
2982         PR target/45327
2983         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
2984         ix86_binary_operator_ok.
2985
2986 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2987
2988         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
2989         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
2990         code to output insn mnemonic.  Fix comment.
2991         (*addsi_1_zext): Add r-r-0 alternative 1.
2992         <TYPE_LEA>: Split insn to lea.
2993         <default>: Handle alternative 1.
2994         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
2995         multi-level if_then_else RTX to set "type" attribute.
2996         <default>: Handle alternative 2.
2997         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
2998         Use cond RTX instead of multi-level if_then_else RTX to set
2999         "type" attribute.
3000         <default>: Handle alternatives 2 and 4.
3001         (lea splitters): Update calls to ix86_lea_for_add_ok.
3002
3003         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3004         argument.
3005         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3006
3007 2010-08-18  Richard Guenther  <rguenther@suse.de>
3008
3009         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3010         use operand helpers.
3011
3012 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3013
3014         PR middle-end/45292
3015         * optabs.c (expand_bool_compare_and_swap): Expand pending
3016         pops before trying the optab.
3017
3018 2010-08-18  Yao Qi  <yao@codesourcery.com>
3019
3020         PR target/45094
3021         * config/arm/arm.c (output_move_double): Fix typo generating
3022         instructions ('ldr'->'str').
3023
3024 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3025
3026         PR rtl-optimization/42575
3027         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3028         live ranges.
3029
3030 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3031
3032         * config/arm/arm-protos.h (arm_expand_sync): New.
3033         (arm_output_memory_barrier, arm_output_sync_insn): New.
3034         (arm_sync_loop_insns): New.
3035         * config/arm/arm.c (FL_ARCH7): New.
3036         (FL_FOR_ARCH7): Include FL_ARCH7.
3037         (arm_arch7): New.
3038         (arm_print_operand): Support %C markup.
3039         (arm_legitimize_sync_memory): New.
3040         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3041         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3042         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3043         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3044         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3045         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3046         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3047         * config/arm/arm.h (struct arm_sync_generator): New.
3048         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3049         (TARGET_HAVE_MEMORY_BARRIER): New.
3050         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3051         * config/arm/arm.md: Include sync.md.
3052         (UNSPEC_MEMORY_BARRIER): New.
3053         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3054         (VUNSPEC_SYNC_OP):New.
3055         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3056         (sync_result, sync_memory, sync_required_value): New attributes.
3057         (sync_new_value, sync_t1, sync_t2): Likewise.
3058         (sync_release_barrier, sync_op): Likewise.
3059         (length): Add logic to length attribute defintion to call
3060         arm_sync_loop_insns when appropriate.
3061         * config/arm/sync.md: New file.
3062
3063 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3064
3065         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3066         ENABLE_TREE_CHECKING.
3067         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3068         and GCC >= 4.3.
3069
3070 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3071
3072         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3073         or optimizing for size, always avoid lea if possible.
3074
3075         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3076
3077 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3078
3079         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3080         Dunmmy function with NULL return unless the target is
3081         OSX >= 10.6 (Darwin10).
3082
3083 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3084
3085         * gcc.c (spec_function): Add remove-outfile.
3086         (remove_outfile_spec_function): New function.
3087         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3088         * invoke.texi (replace-outfile): Document.
3089
3090 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3091
3092         PR target/45296
3093         * reginfo.c (globalize_reg): Reject stack registers.
3094
3095 2010-08-17  Richard Guenther  <rguenther@suse.de>
3096
3097         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3098         list of conditional equivalences.
3099         (free_all_edge_infos): Adjust.
3100         (record_equivalences_from_incoming_edge): Likewise.
3101         (record_cond): Likewise.
3102         (build_and_record_new_cond): Likewise.
3103         (record_conditions): Likewise.
3104         (dom_opt_leave_block): Likewise.
3105
3106 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3107
3108         * doc/invoke.texi (ms-extension): Add documentation.
3109
3110 2010-08-17  Richard Guenther  <rguenther@suse.de>
3111
3112         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3113
3114 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3115
3116         PR c/40563
3117         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3118         (finish_decl): Use it to issue a -Wc++-compat warning about
3119         uninitialized const field in struct or union.
3120
3121         (finish_struct): Use strip_array_types.
3122
3123 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3124
3125         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3126         functions.
3127         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3128         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3129         call block_nreverse here.
3130         (blocks_nreverse): Rename decl temporary to block.
3131
3132 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3133
3134         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3135         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3136         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3137         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3138         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3139         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3140         thumb2_iorsi3): Delete.
3141         (orsi_notsi_si): No longer a named pattern.
3142         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3143         * config/arm/predicates.md (shift_amount_operand): New.
3144         (mult_operator): New.
3145         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3146         attr enabled): New.
3147         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3148         arch matches t2.
3149         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3150         (not_shiftsi_compare0): Likewise, renamed from
3151         arm_notsi_shiftsi_compare0.
3152         (not_shiftsi_compare0_scratch): Likweise, renamed from
3153         arm_notsi_shiftsi_compare0_scratch.
3154         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3155         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3156         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3157         so that the register alternative is disabled when the shift_operator
3158         is MULT.  Use "M" as the constraint for constants.
3159         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3160         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3161         constraint for constants.
3162         (arith_shiftsi_compare0_scratch): Likewise.
3163         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3164         Handle Thumb2 alternative.
3165
3166 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3167
3168         * doc/options.texi (NoDriverArg): Document.
3169         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
3170         -MDX and -MMDX.
3171         * opt-functions.awk (switch_flags): Handle NoDriverArg.
3172         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
3173         marking for CL_NO_DRIVER_ARG options when in the driver.
3174         * opts.h (CL_NO_DRIVER_ARG): Define.
3175         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3176         CL_COMMON): Update values.
3177
3178 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3179
3180         * common.opt: Add driver options.
3181         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
3182         * doc/options.texi (Driver, RejectDriver): Document.
3183         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
3184         print_prog_name, print_multi_directory, print_sysroot,
3185         print_multi_os_directory, print_multi_lib,
3186         print_sysroot_headers_suffix, report_times, combine_flag,
3187         use_pipes, wrapper_string): Remove.
3188         (save_switch, driver_unknown_option_callback,
3189         driver_wrong_lang_callback, driver_post_handling_callback,
3190         driver_handle_option): New.
3191         (spec_lang, last_language_n_infiles): Make file-scope static
3192         instead of local to process_command.
3193         (process_command): Use decode_cmdline_options_to_array and
3194         read_cmdline_option for option processing.  Compute have_c in
3195         prescan of decoded options.
3196         * opt-functions.awk (switch_flags): Handle Driver and
3197         RejectDriver.
3198         (var_type, var_type_struct): Handle Separate options as generating
3199         const char * variables.
3200         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
3201         CL_TARGET to be passed by caller if required.
3202         (decode_cmdline_options_to_array): Update comment.
3203         * opts.c (complain_wrong_lang): Handle options only valid for the
3204         driver.
3205         (decode_options): Update call to decode_cmdline_options_to_array.
3206         (print_filtered_help): Ignore driver-only options.
3207         (print_specific_help): Ignore CL_DRIVER.
3208         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
3209         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
3210         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
3211         Update values.
3212
3213 2010-08-16  Richard Guenther  <rguenther@suse.de>
3214
3215         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3216         TARGET_MEM_REF a bit.
3217         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
3218         (create_mem_ref_raw): Always create TMR_OFFSET, store the
3219         alias pointer type via it.
3220         (copy_mem_ref_info): Adjust.
3221         (maybe_fold_tmr): Likewise.
3222         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
3223         (reference_alias_ptr_type): Likewise.
3224         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
3225         adjust documentation of TMR_OFFSET operand.
3226         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
3227         use the alias pointer type.
3228         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
3229         initialize mem attrs but the TMR itself.
3230         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
3231         similar to MEM_REF.
3232         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
3233         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
3234         (unshare_and_remove_ssa_names): Likewise.
3235         (copy_ref_info): Adjust.
3236         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
3237         TARGET_MEM_REF case.
3238         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
3239         at TMR_ORIGINAL.
3240         * tree.h (TMR_ORIGINAL): Remove.
3241         * gimple.c (get_base_address): For TARGET_MEM_REF with a
3242         symbol return that.
3243         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
3244         with a symbol.
3245         (get_addr_base_and_unit_offset): Likewise.
3246         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
3247         TARGET_MEM_REFs.
3248         (indirect_ref_may_alias_decl_p): Likewise.
3249         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
3250
3251 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
3252
3253         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
3254         with GCC version 4.6, the default setting (when not optimizing
3255         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
3256         been changed to -fomit-frame-pointer.
3257
3258 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
3259
3260         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
3261         Darwin10.  Do not link libgcc.a for Darwin >= 9.
3262
3263 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
3264
3265         * doc/invoke.texi (Warning Options): Fix terminology and markup
3266         in the description of how unknown warning options are handled.
3267
3268 2010-08-15  Ira Rosen  <irar@il.ibm.com>
3269
3270         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
3271         in basic blocks.
3272         (vect_supportable_dr_alignment): Check alignment for basic blocks.
3273         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
3274         data references.
3275         (vect_bb_vectorization_profitable_p): New function.
3276         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
3277         check if it's worthwhile to vectorize the basic block.
3278
3279 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
3280
3281         * reload.h (register_move_cost, memory_move_secondary_cost,
3282         secondary_reload_class): Adjust prototype.
3283         * rtl.h (reg_class_subset_p): Adjust prototype.
3284         * reload.c (secondary_reload_class): Change arguments type from
3285         enum reg_class to reg_class_t. Change result type to reg_class_t.
3286         * reginfo.c (register_move_cost, reg_class_subset_p): Change
3287         arguments type from enum reg_class to reg_class_t.
3288         (memory_move_secondary_cost): Change arguments type from
3289         enum reg_class to reg_class_t. Change type of saved_flags to
3290         reg_class_t.
3291
3292         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3293         Remove macros.
3294         (mips_cost): Remove.
3295         (struct mips_rtx_cost_data): Moved to mips.c.
3296         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
3297         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
3298         (mips_cost): Make static.
3299         (mips_canonicalize_move_class): Change argument type to reg_class_t.
3300         Change result type to reg_class_t.
3301         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
3302         type from enum reg_class to reg_class_t.
3303         (mips_register_move_cost): Make static. Change arguments
3304         type from enum reg_class to reg_class_t.
3305         (mips_memory_move_cost): New function.
3306         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3307
3308 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
3309
3310         PR rtl-optimization/43358
3311         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
3312         of a single hard register, using simplify_subreg_regno to decide
3313         what that register should be.
3314
3315 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
3316
3317         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
3318         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
3319         (loongson_pmull<V_suffix>): Rename to...
3320         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
3321
3322 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
3323
3324         * configure.ac: Enable -fomit-frame-pointer on darwin
3325         which support dwarf2.
3326         * config/i386/i386.c (override_options): Same.
3327
3328 2010-08-13  Jie Zhang  <jie@codesourcery.com>
3329
3330         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
3331
3332 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
3333
3334         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
3335         -MMD.
3336
3337 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
3338
3339         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
3340         up dot_prod pattern searching if a stmt is outside the loop.
3341
3342 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
3343             Uros Bizjak  <ubizjak@gmail.com>
3344
3345         * config.gcc: Handle --enable-frame-pointer.
3346
3347         * configure.ac: Add --enable-frame-pointer.
3348         * configure: Regenerated.
3349
3350         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
3351         (override_options): If not configured with --enable-frame-pointer,
3352         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
3353         optimizing for size), -fasynchronous-unwind-tables and
3354         -maccumulate-outgoing-args by default.
3355
3356 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3357
3358         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
3359
3360         PR middle-end/45262
3361         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
3362         -a overflows.  Normalize the range.
3363
3364 2010-08-12  Richard Guenther  <rguenther@suse.de>
3365
3366         PR tree-optimization/45232
3367         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
3368         for types with undefined overflow.
3369         (reassociate_bb): Allow re-associating of bit and min/max
3370         operations for types with undefined overflow.
3371         * tree-ssa-forwprop.c (associate_plusminus): New function.
3372         (tree_ssa_forward_propagate_single_use_vars): Call it.
3373
3374 2010-08-12  Richard Guenther  <rguenther@suse.de>
3375
3376         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
3377         * tree-ssa-alias.c (get_ptr_info): Move ...
3378         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
3379         align and misalign fields conservatively.
3380         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
3381         derive alignment information.
3382         (evaluate_stmt): Derive alignment information from memory
3383         allocation functions.
3384         * tree.h (get_pointer_alignment): Make unsigned.
3385         * builtins.c (get_object_alignment): Use alignment information we
3386         have computed for pointers.
3387         (get_pointer_alignment): Likewise.  Make conservative, return
3388         and unsigned value.
3389         (expand_builtin_strlen): Adjust.
3390         (expand_builtin_memcmp): Likewise.
3391         (expand_builtin_strcmp): Likewise.
3392         (expand_builtin_strncmp): Likewise.
3393         (get_builtin_sync_mem): Use at least mode alignment.
3394         (fold_builtin_memset): Adjust.
3395         (fold_builtin_memory_op): Likewise.
3396         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
3397         information also dump pointer alignment knowledge.
3398         (dump_gimple_stmt): Likewise.
3399
3400 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
3401
3402         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
3403         (EMPTY_FIELD_BOUNDARY): Remove.
3404         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
3405
3406 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3407
3408         PR debug/45259
3409         * caller-save.c (save_call_clobbered_regs): Only swap notes with
3410         DEBUG_INSNs if n_regs_saved.
3411
3412 2010-08-12  Wei Guozhi  <carrot@google.com>
3413
3414         PR target/44999
3415         * config/arm/arm.md (andsi3): Change to zero extension if possible.
3416         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
3417
3418 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
3419
3420         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
3421
3422         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
3423
3424 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3425
3426         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
3427         the case removed in the previous patch, when the only phi argument
3428         is defined in the same loop as the phi node itself.  Handle it
3429         separately from the invariant case by both propagating it outside
3430         the region and replacing the phi node with an assign.
3431
3432 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3433
3434         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
3435         constant phi nodes with one argument are is_gimple_min_invariant
3436         and SSA_NAME_IS_DEFAULT_DEF.
3437
3438 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3439
3440         * graphite-cloog-util.c (oppose_constraint):
3441         Extend loop counter's value range (CLOOG_ORG).
3442         (cloog_matrix_to_ppl_constraint): Same.
3443         (new_Constraint_System_from_Cloog_matrix): Same.
3444         * graphite-cloog-compat.h (matrix_num_type): New.
3445
3446 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3447
3448         * graphite.c (graphite_initialize): Do not initialize
3449         CLooG and initialize the Parma Polyhedra Library
3450         manually when using CLOOG_ORG.
3451         (graphite_finalize): Do not finalize CLooG and finalize
3452         the Parma Polyhedra Library manually when using CLOOG_ORG.
3453         * graphite-cloog-compat.h (cloog_initialize): Hide function
3454         when using CLOOG_ORG.
3455         (cloog_finalize): Same.
3456
3457 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3458
3459         * graphite-clast-to-gimple.c (free_scattering): Change
3460         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
3461         (CLOOG_ORG).
3462         (build_cloog_prog): Same.
3463         * graphite-cloog-compat.h (cloog_domain): Removed.
3464         (cloog_scattering): New.
3465         (cloog_set_domain): Removed.
3466         (cloog_set_scattering): New.
3467         (cloog_next_domain): Removed.
3468         (cloog_next_scattering): New.
3469         (cloog_set_next_domain): Removed.
3470         (cloog_set_next_scattering): New.
3471         (CloogScatteringList): New.
3472         (CloogScattering): New.
3473         (cloog_scattering_free): New.
3474         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
3475         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
3476         New.
3477
3478 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3479
3480         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
3481         CloogState.
3482         (set_cloog_options): Same.
3483         (print_clast_stmt): Same.
3484         (scop_to_clast): Same.
3485         (print_generated_program): Same.
3486         (gloog): Same.
3487         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
3488         (scop_to_clast): Extend with CloogState.
3489         * graphite-cloog-util.c: Include graphite-cloog-compat.h
3490         (new_Cloog_Domain_from_ppl_Polyhedron):
3491         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
3492         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
3493         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3494         * graphite-cloog-util.h (build_cloog_prog): Same.
3495         * graphite-cloog-copat.h (build_cloog_prog): New.
3496         (CloogState): New.
3497         (cloog_state_malloc): New.
3498         (cloog_state_free): New.
3499         (cloog_loop_malloc): New.
3500         (cloog_options_malloc): New.
3501         (cloog_statement_alloc): New.
3502         (cloog_domain_from_cloog_matrix): New.
3503         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
3504         (new_Cloog_Domain_from_ppl_Polyhedron): New.
3505
3506 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3507
3508         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
3509         type of NAME now depends on used CLooG version.
3510         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
3511         (gcc_type_for_clast_expr): Same.
3512         (print_clast_stmt): Replace pprint with clast_pprint.
3513         * graphite-cloog-compat.h: Provide compatibility macros for
3514         CLooG Legacy.
3515         (clast_name_p): New.
3516         (clast_expr_term): New.
3517         (clast_expr_red): New.
3518         (clast_expr_bin): New.
3519         (clast_pprint): New.
3520
3521 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3522
3523         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
3524         compatible to newer CLooG releases (CLOOG_ORG).
3525         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
3526         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
3527         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
3528         (build_cloog_prog) : New.
3529         (cloog_program_extract_scalars): New.
3530         (cloog_program_scatter): New.
3531
3532 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3533
3534         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
3535         conditionally (CLOOG_ORG).
3536         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
3537         (cloog_statement_usr): New.
3538         (cloog_domain): Same.
3539         (cloog_set_domain): Same.
3540         (cloog_next_domain): Same.
3541         (cloog_set_next_domain): Same.
3542         (cloog_program_nb_scattdims): Same.
3543         (cloog_program_set_nb_scattdims): Same.
3544         (cloog_program_names): Same.
3545         (cloog_program_set_names): Same.
3546         (cloog_program_set_context): Same.
3547         (cloog_program_set_loop): Same.
3548         (cloog_program_blocklist): Same.
3549         (cloog_program_set_blocklist): Same.
3550         (cloog_program_scaldims): Same.
3551         (cloog_program_set_scaldims): Same.
3552         (cloog_names_nb_parameters): Same.
3553         (cloog_names_set_nb_parameters): Same.
3554         (cloog_names_parameters): Same.
3555         (cloog_names_set_parameters): Same.
3556         (cloog_names_set_nb_iterators): Same.
3557         (cloog_names_set_iterators): Same.
3558         (cloog_names_set_nb_scattering): Same.
3559         (cloog_names_set_scattering): Same.
3560         (cloog_statement_set_usr): Same.
3561         (cloog_loop_set_next): Same.
3562         (cloog_loop_set_domain): Same.
3563         (cloog_loop_set_block): Same.
3564         (cloog_block_list_next): Same.
3565         (cloog_block_list_set_next):
3566         (cloog_block_list_set_block): Same.
3567
3568 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3569
3570         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
3571         a bool.
3572         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
3573         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
3574         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
3575         when something has been changed.
3576         (rewrite_commutative_reductions_out_of_ssa): Same.
3577
3578 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3579
3580         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
3581         handle the case when def is in the sese region.
3582         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
3583         for invariant expressions.
3584         (rewrite_cross_bb_phi_deps): Removed.
3585         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
3586         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
3587         rewrite_cross_bb_phi_deps.
3588
3589 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3590
3591         * graphite-sese-to-poly.c
3592         (rewrite_commutative_reductions_out_of_ssa_loop): Call
3593         scev_analyzable_p only on is_gimple_reg
3594
3595 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3596
3597         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
3598         (rewrite_close_phi_out_of_ssa): Propagate constant values or
3599         parametric expressions outside the scop region.
3600         (rewrite_cross_bb_scalar_deps): Same.
3601         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
3602
3603 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3604
3605         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
3606         SSA_NAME_DEF_STMT only on SSA_NAMEs.
3607
3608 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3609
3610         * tree-scalar-evolution.c (instantiate_scev_name): Do not
3611         instantiate default definitions.
3612
3613 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
3614             Sebastian Pop  <sebastian.pop@amd.com>
3615
3616         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
3617         (loop_exits_from_bb_p): New.
3618         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
3619         (loop_exits_from_bb_p): Declared.
3620         * graphite-scop-detection.c (scopdet_basic_block_info): Call
3621         loop_exits_to_bb_p.
3622
3623 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3624
3625         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
3626         extra parameter for the region.  Call scev_analyzable_p.
3627         (rewrite_reductions_out_of_ssa): Update call to
3628         rewrite_close_phi_out_of_ssa.
3629         (rewrite_cross_bb_phi_deps): Same.
3630         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
3631         parameter for the region.  Call scev_analyzable_p.
3632         (rewrite_commutative_reductions_out_of_ssa): Update call to
3633         rewrite_commutative_reductions_out_of_ssa_loop.
3634
3635 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3636
3637         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
3638
3639 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3640
3641         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
3642         SSA scalar phi nodes that can be scev_analyzable_p.
3643
3644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3645
3646         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
3647         handle SSA_NAME_IS_DEFAULT_DEF.
3648
3649 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3650
3651         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
3652
3653 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3654
3655         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
3656         case non close-phi nodes with one argument.
3657
3658 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3659
3660         * sese.h (scev_analyzable_p): Scevs could be expressions without
3661         chrecs and still be scev_analyzable_p.
3662
3663 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3664
3665         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
3666
3667 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3668
3669         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
3670         * cfgloop.h (struct loop): Remove single_iv field.
3671         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
3672         (scop_canonicalize_loops): Removed.
3673         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
3674         over all the loop phi nodes in loop->header.
3675         (build_poly_scop): Remove use of scop_canonicalize_loops.
3676
3677 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3678
3679         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
3680         handle GIMPLE_CALL.
3681
3682 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3683
3684         * tree-chrec.c (chrec_apply): Should only apply to the specified
3685         variable.  Also handle multivariate chains of recurrences that
3686         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
3687
3688 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3689
3690         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
3691         (debug_clast_name_indexes_1): Removed.
3692         (debug_clast_name_indexes): Removed.
3693         (pbb_to_depth_to_oldiv): Removed.
3694         (build_iv_mapping): Replace the use of rename_map with iv_map.
3695         (translate_clast_user): Remove uses of rename_map.  Allocate and
3696         free iv_map.
3697         (translate_clast_for_loop): Remove uses of rename_map.
3698         (translate_clast_for): Same.
3699         (translate_clast_guard): Same.
3700         (translate_clast): Same.
3701         (gloog): Same.
3702         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
3703         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
3704         * sese.c (set_rename): Now static.
3705         (rename_variables_in_stmt): Removed.
3706         (rename_uses): New.
3707         (is_parameter): Removed.
3708         (is_iv): Removed.
3709         (expand_scalar_variables_call): Removed.
3710         (expand_scalar_variables_ssa_name): Removed.
3711         (expand_scalar_variables_expr): Removed.
3712         (expand_scalar_variables_stmt): Removed.
3713         (expand_scalar_variables): Removed.
3714         (rename_variables): Removed.
3715         (remove_condition): Removed.
3716         (get_true_edge_from_guard_bb): Removed.
3717         (get_false_edge_from_guard_bb): Removed.
3718         (struct igp): Removed.
3719         (default_before_guard): Removed.
3720         (convert_for_phi_arg): Removed.
3721         (add_guard_exit_phis): Removed.
3722         (insert_guard_phis): Removed.
3723         (graphite_copy_stmts_from_block): Now also uses iv_map and a
3724         region.  Do not copy conditions.  Do not copy induction variables.
3725         Call rename_uses.
3726         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
3727         the translated statement.  Use the iv_map for the induction
3728         variable renaming.
3729         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
3730         (set_rename): Removed declaration.
3731         (scev_analyzable_p): ...here.
3732         * tree-chrec.c (chrec_apply_map): New.
3733         * tree-chrec.h (chrec_apply_map): Declared.
3734
3735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3736
3737         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
3738         insert_loop_close_phis.
3739         * sese.c (name_defined_in_loop_p): Removed.
3740         (expr_defined_in_loop_p): Removed.
3741         (alive_after_loop): Removed.
3742         (close_phi_not_yet_inserted_p): Removed.
3743         (struct alep): Removed.
3744         (add_loop_exit_phis): Removed.
3745         (insert_loop_close_phis): Removed.
3746
3747 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3748
3749         * graphite-cloog-util.c
3750         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
3751         * graphite-poly.c
3752         (psct_scattering_dim_for_loop_depth): Same.
3753
3754 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3755
3756         * graphite-cloog-util.h: Added cloog.h.
3757         * graphite-blocking.c: Removed cloog.h.
3758         * graphite-dependences.c: Same.
3759         * graphite-interchange.c: Same.
3760         * graphite-poly.c: Same.
3761         * graphite-ppl.c: Same.
3762         * graphite-scop-detection.c: Same.
3763         * graphite-sese-to-poly.c:
3764         Removed cloog.h.
3765         Removed graphite-clast-to-gimple.h.
3766         (check_poly_representation): Removed (unused).
3767         * graphite-sese-to-poly.h
3768         (check_poly_representation): Removed (unused).
3769
3770 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3771
3772         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
3773         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
3774         (graphite-cloog-util.o): New.
3775         (graphite-ppl.o): Added graphite-cloog-util.h.
3776         * graphite-clast-to-gimple.c:
3777         Added graphite-cloog-util.h to include statements.
3778         * graphite-cloog-util.c: New.
3779         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
3780         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3781         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3782         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3783         (insert_constraint_into_matrix): Same.
3784         (ppl_Constrain_System_number_of_constraints): Same.
3785         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3786         (oppose_constraint): Same.
3787         (cloog_matrix_to_ppl_constraint): Same.
3788         (new_Constraint_System_from_Cloog_Matrix): Same.
3789         * graphite-cloog-util.h: New.
3790         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
3791         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3792         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3793         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3794         (insert_constraint_into_matrix): Same.
3795         * graphite-ppl.c:
3796         Added graphite-cloog-util.h to include statements.
3797         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
3798         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3799         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3800         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3801         (insert_constraint_into_matrix): Same.
3802         (ppl_Constrain_System_number_of_constraints): Same.
3803         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3804         (oppose_constraint): Same.
3805         (cloog_matrix_to_ppl_constraint): Same.
3806         (new_Constraint_System_from_Cloog_Matrix): Same.
3807         * graphite-ppl.h:
3808         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
3809         graphite-cloog-util.h.
3810         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3811         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3812         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3813         (insert_constraint_into_matrix): Same.
3814
3815 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3816
3817         * graphite-clast-to-gimple.c
3818         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
3819         (precision_for_interval): Same.
3820         (gcc_type_for_interval): Same.
3821         (compute_type_for_level): Same.
3822         * graphite-interchange.c
3823         (lst_interchange_profitable_p): Same.
3824         * graphite-poly.c
3825         (psct_scattering_dim_for_loop_depth): Same.
3826         * graphite-ppl.c
3827         (ppl_max_for_le_pointset): Same.
3828         (ppl_min_for_le_pointset): Same.
3829
3830 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3831
3832         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
3833         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
3834
3835 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3836
3837         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
3838         rewrite_close_phi_out_of_ssa.
3839
3840 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3841
3842         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
3843
3844 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3845
3846         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
3847         rename_map.
3848         * sese.c (debug_rename_map): Same.
3849         (get_rename): Same.
3850         (set_rename): Same.
3851         (rename_variables_in_stmt): Same.
3852         (expand_scalar_variables_call): Same.
3853         (expand_scalar_variables_ssa_name): Same.
3854         (expand_scalar_variables_expr): Same.
3855         (expand_scalar_variables_stmt): Same.
3856         (expand_scalar_variables): Same.
3857         (rename_variables): Same.
3858         (graphite_copy_stmts_from_block): Same.
3859         (copy_bb_and_scalar_dependences): Same.
3860
3861 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3862
3863         * graphite-clast-to-gimple.c (copy_renames): Removed.
3864         (translate_clast_for): Do not call copy_renames.
3865         (translate_clast_guard): Same.
3866
3867 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3868
3869         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
3870         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
3871         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
3872         before rewrite_cross_bb_scalar_deps.
3873
3874 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3875
3876         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
3877         Early return in when flag_associative_math is not set.
3878
3879 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3880
3881         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
3882         of SSA copies on edges except for loop->latch.
3883
3884 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3885
3886         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
3887         Split out of rewrite_reductions_out_of_ssa.
3888         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
3889         Declared.
3890         * graphite.c (graphite_transform_loops): Call it.
3891
3892 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3893
3894         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
3895
3896 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
3897
3898         * dbgcnt.def (graphite_scop): New counter.
3899         * graphite.c: Include dbgcnt.h.
3900         (graphite_transform_loops): Use new counter to limit transformations.
3901         * Makefile.in (graphite.o): Depend on DBGCNT_H.
3902
3903 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3904
3905         * passes.c (init_optimization_passes): Add pass_graphite.
3906         Schedule a pass_copy_prop before pass_graphite_transforms.
3907         * timevar.def (TV_GRAPHITE): Declared.
3908         * tree-pass.h (pass_graphite): Declared.
3909         * tree-ssa-loop.c (pass_graphite): New.
3910
3911 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3912
3913         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
3914         Remove calls to rename_nb_iterations and rename_sese_parameters.
3915         * graphite-clast-to-gimple.h (gloog): Update declaration.
3916         * graphite.c (graphite_transform_loops): Update call to gloog.
3917         * sese.c (rename_variables_in_expr): Removed.
3918         (rename_nb_iterations): Removed.
3919         (rename_sese_parameters): Removed.
3920         * sese.h (rename_nb_iterations): Removed.
3921         (rename_sese_parameters): Removed.
3922
3923 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3924
3925         * graphite-clast-to-gimple.c (gloog): Remove call to
3926         sese_adjust_liveout_phis.
3927         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
3928         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
3929         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
3930         rewrite_phi_out_of_ssa.
3931         * sese.c (get_vdef_before_sese): Removed.
3932         (sese_adjust_vphi): Removed.
3933         (sese_adjust_liveout_phis): Removed.
3934         * sese.h (sese_adjust_liveout_phis): Removed.
3935
3936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3937
3938         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
3939         argument for the place after which to insert the out of SSA copy.
3940         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
3941         (rewrite_phi_out_of_ssa): Same.
3942         (rewrite_cross_bb_scalar_deps): Same.
3943         (insert_copyout): Removed.
3944         (insert_copyin): Removed.
3945         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
3946         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
3947         insert_copyin.
3948
3949 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3950
3951         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
3952         (rewrite_reductions_out_of_ssa): Same.
3953         (rewrite_commutative_reductions_out_of_ssa): Same.
3954         (build_poly_scop): Do not call these functions.
3955         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3956         (rewrite_reductions_out_of_ssa): Declared.
3957         (rewrite_commutative_reductions_out_of_ssa): Declared.
3958         * graphite.c (graphite_transform_loops): Call on every scop
3959         rewrite_commutative_reductions_out_of_ssa before calling
3960         rewrite_reductions_out_of_ssa and build_scop_bbs.
3961
3962 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3963
3964         * graphite-dependences.c (dot_deps): Make system call to dotty run
3965         in background.
3966         (dot_deps_stmt): Same.
3967         * graphite-poly.c (dot_lst): Same.
3968
3969 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3970
3971         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
3972         phi_arg_in_outermost_loop.
3973         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
3974         (remove_invariant_phi): Same.
3975
3976 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
3977
3978         * target.def (output_addr_const_extra): New hook.
3979         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
3980         * doc/tm.texi: Regenerate.
3981         * targhooks.c (default_asm_output_addr_const_extra): New function.
3982         * targhooks.h (default_asm_output_addr_const_extra): Declare.
3983         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
3984         target hook.
3985
3986         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3987         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
3988         * config/i386/i386.h (output_addr_const_extra): Rename to...
3989         (i386_asm_output_addr_const_extra): ...this. Make static.
3990         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3991
3992 2010-08-11  Richard Henderson  <rth@redhat.com>
3993
3994         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
3995
3996 2010-08-11  Nick Clifton  <nickc@redhat.com>
3997
3998         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
3999         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
4000         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4001         stormy16-lib2-cmpsi.c.
4002
4003         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
4004         -O2.
4005
4006 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
4007
4008         * opts.h (struct cl_option_handler_func): Make handler take
4009         cl_decoded_option structure as parameter, not individual elements.
4010         (struct cl_option_handlers): Make callbacks take cl_decoded_option
4011         structure as parameter, not individual elements.
4012         (handle_option): Take cl_decoded_option structure as parameter,
4013         not individual elements.
4014         (handle_generated_option): Declare.
4015         * opts-common.c (handle_option): Take cl_decoded_option structure
4016         as parameter, not individual elements.  Update calls to callback
4017         and handler functions.
4018         (handle_generated_option): New.
4019         (read_cmdline_option): Update calls to callback functions and
4020         handle_option.
4021         * opts.c (common_handle_option, complain_wrong_lang,
4022         unknown_option_callback, post_handling_callback,
4023         lang_handle_option, target_handle_option): Take cl_decoded_option
4024         structure as parameter, not individual elements.
4025         (lang_handle_option, target_handle_option, common_handle_option):
4026         Assert option has at most one argument.
4027         (enable_warning_as_error): Call handle_generated_option instead of
4028         handle_option.  Do not pass -Werror argument as argument of
4029         generated option.
4030
4031 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4032
4033         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4034         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4035         (SUBWORD_BOOL_CAS): Likewise.
4036         (SUBWORD_SYNC_OP): Likewise.
4037         (SUBWORD_TEST_AND_SET): Likewise.
4038         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4039         (SUBWORD_SYNC_OP): Likewise.
4040         (OP_AND_FETCH_WORD): Likewise.
4041
4042 2010-08-10  Xinliang David Li  <davidxl@google.com>
4043
4044         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
4045         compute max/min offset in address.
4046
4047 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
4048
4049         * ira-live.c: Include sbitmap.h.
4050         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
4051         Compress live ranges even more.
4052
4053 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4054
4055         * coverage.c (ctr_labels): Delete.
4056
4057 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4058
4059         PR bootstrap/45177
4060         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
4061         test here from arm_gen_load_multiple_1.
4062         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
4063         multiple_operation_profitable_p.
4064
4065 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4066
4067         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
4068         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
4069
4070 2010-08-10  Richard Henderson  <rth@redhat.com>
4071
4072         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
4073         after saving registers.  Assert that SSE registers are only saved
4074         with a sufficiently aligned frame.
4075         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
4076         remove stack_realign_fp handling.
4077         (ix86_expand_prologue): Save int registers before stack_realign_fp,
4078         and do not mark the stack alignment as frame related.
4079         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
4080
4081         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
4082         saves when re-aligning the stack.
4083
4084 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4085
4086         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
4087         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
4088         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
4089
4090 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4091
4092         * dwarf2out.c (struct die_struct): Move die_tag to the end.
4093
4094 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
4095
4096         * config/arm/iterators.md: New file.
4097         * config/arm/arm.md: Include iterators.md.
4098         (QHSI): Move to new file.
4099         (LTUGEU, cnb, optab, ior_xor): Likewise.
4100         * config/arm/iwmmxt.md (VMMX): Move to new file.
4101         (VSHFT, MMX_char): Likewise.
4102         * config/arm/neon.md (VD): Move to new file.
4103         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
4104         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
4105         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
4106         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
4107         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
4108         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
4109         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
4110         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
4111         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
4112         (Is_d_reg, V_mode_nunits): Likewise.
4113         * config/arm/vec-common.md (VALL): Move to new file.
4114         (VALLW, VINT, VINTW): Likewise.
4115
4116 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4117
4118         PR middle-end/45182
4119         * combine.c (make_compound_operation): Don't try to convert
4120         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
4121
4122 2010-08-10  Richard Guenther  <rguenther@suse.de>
4123
4124         * tree.h (get_object_alignment): Adjust prototype.
4125         * builtins.c (get_object_alignment): Return unsigned int,
4126         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
4127         and TARGET_MEM_REF properly.
4128         (get_pointer_alignment): Adjust.
4129         * emit-rtl.c (get_mem_align_offset): Adjust comment.
4130         (set_mem_attributes_minus_bitpos): Adjust.
4131         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
4132
4133 2010-08-10  Richard Guenther  <rguenther@suse.de>
4134
4135         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
4136         (copy_prop_visit_assignment): Simplify.
4137         (copy_prop_visit_stmt): Also visit assignments from
4138         constants.
4139         (copy_prop_visit_phi_node): Use operand_equal_p.
4140
4141 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4142
4143         * ipa-split.c (find_split_points): Free stack.
4144
4145 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4146
4147         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
4148         * tree.c (tree_node_kind): Delete corresponding entries.
4149
4150 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4151
4152         * alias.c (may_alias_p): Remove unused ret.
4153
4154 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
4155
4156         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
4157         alias_sets_conflict_p.
4158         (walk_mems_1): Moved from alias.c.
4159         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
4160         in alias.c.
4161         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
4162         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
4163         * alias.c (walk_mems_2): Moved to ddg.c.
4164         (walk_mems_1): Ditto.
4165         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
4166         to ddg.c.
4167         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
4168         disambiguation.
4169         *(may_alias_p): New function to check whether two memory expression
4170         may alias or not. Currently used in buidling inter-iteration memory
4171         dependence.
4172         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
4173         (insn_alias_sets_conflict_p): Removed
4174         *rtl.h (may_alias_p): New function prototype.
4175
4176 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4177
4178         * tree.c (nreverse): Assert that we don't have a BLOCK.
4179
4180 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4181
4182         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
4183         * config/arm/arm.c (arm_get_pcs_model): Likewise.
4184         * config/avr/avr.c (init_cumulative_args): Likewise.
4185         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4186         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4187         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
4188         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
4189         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
4190         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4191         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
4192         * dwarf2out.c (gen_subprogram_die): Likewise.
4193         * function.c (allocate_struct_function): Likewise.
4194         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
4195         (deserves_ellipsis): Delete.
4196
4197 2010-08-09  Richard Guenther  <rguenther@suse.de>
4198
4199         * tree-ssa-copy.c (cached_last_copy_of): Remove.
4200         (valueize_val): New function.
4201         (get_last_copy_of): Remove.
4202         (set_copy_of_val): Simplify.
4203         (dump_copy_of): Likewise.
4204         (copy_prop_visit_cond_stmt): Use valueize_val.
4205         (copy_prop_visit_phi_node): Properly handle unvisited names.
4206         Drop code managing copy-of chains.
4207         (init_copy_prop): Adjust.
4208         (fini_copy_prop): Likewise.
4209         (execute_copy_prop): Remove obsolete comment.
4210
4211 2010-08-09  Richard Guenther  <rguenther@suse.de>
4212
4213         PR middle-end/44632
4214         * function.c (gimplify_parameters): Do not clear addressable
4215         bit of the original parameter.
4216
4217 2010-08-09  Richard Guenther  <rguenther@suse.de>
4218
4219         PR middle-end/45212
4220         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
4221         alignment from MEM_REF offset only if we took it from the
4222         base object.
4223
4224 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
4225
4226         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
4227
4228 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4229
4230         * c-tree.h (build_arg_info): Declare.
4231         * c-decl.c (build_arg_info): Define.
4232         (get_parm_info): Call it.  Delete initialization code.
4233         * c-parser.c (c_parser_parms_declarator): Likewise.
4234         (c_parser_parms_list_declaractor): Likewise.
4235
4236 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4237
4238         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
4239         (struct c_arg_info): Change type of tags field.
4240         * c-decl.c (grokdeclarator): Update for changed type of tags field.
4241         (get_parm_info): Likewise.
4242         (store_parm_decls_newstyle): Likewise.
4243
4244 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4245
4246         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
4247         (branch_island_list): Delete.
4248         (branch_islands): Declare.
4249         (add_compiler_branch_island): Adjust for branch_islands instead of
4250         branch_island_list.
4251         (macho_branch_islands): Likewise.
4252         (no_previous_def): Likewise.
4253         (get_prev_label): Likewise.
4254
4255 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4256
4257         PR boehm-gc/34544
4258         * gthr-posix.h (__gthread_start): Delete.
4259         (__gthread_active_init): Use pthread_default_stacksize_np instead of
4260         pthread_create to determine if hpux pthreads are active.
4261         * gthr-posix95.h (__gthread_start): Delete.
4262         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
4263
4264 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
4265
4266         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
4267         _WIN64 not expanded.
4268
4269 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
4270             H.J. Lu  <hongjiu.lu@intel.com>
4271
4272         PR target/45213
4273         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
4274         to output 32bit SFmode immediate as 8 byte sign extended value.
4275
4276 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4277
4278         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4279         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4280         (SUBWORD_BOOL_CAS): Likewise.
4281         (SUBWORD_SYNC_OP): Likewise.
4282         (SUBWORD_TEST_AND_SET): Likewise.
4283         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4284         (SUBWORD_SYNC_OP): Likewise.
4285         (OP_AND_FETCH_WORD): Likewise.
4286
4287 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4288
4289         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
4290         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
4291         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
4292         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
4293         generic part.
4294         (cortex_a9_sched_adjust_cost): New function.
4295         (xscale_sched_adjust_cost): New function.
4296         * config/arm/arm-protos.h (struct tune_params): New field
4297         sched_adjust_cost.
4298         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
4299
4300 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
4301
4302         PR target/44942
4303         * config/sparc/sparc.c (function_arg_advance): Always take into account
4304         the padding, if any.
4305
4306 2010-08-06  Richard Guenther  <rguenther@suse.de>
4307
4308         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
4309         (dump_lattice_value): Dump it.
4310         (get_default_value): Adjust.
4311         (get_constant_value): Likewise.
4312         (set_value_varying): Likewise.
4313         (set_lattice_value): Make sure to not go up the lattice
4314         with bitwise constant values.
4315         (get_value_for_expr): Handle ADDR_EXPRs.
4316         (value_to_double_int): New function.
4317         (get_value_from_alignment): Likewise.
4318         (do_dbg_cnt): Adjust.
4319         (ccp_lattice_meet): Handle partially constant values.
4320         (bit_value_unop_1): New function.
4321         (bit_value_binop_1): Likewise.
4322         (bit_value_unop): Likewise.
4323         (bit_value_binop): Likewise.
4324         (evaluate_stmt): Track partially constant values if
4325         flag_tree_bit_ccp is set.
4326         (ccp_fold_stmt): Dump if we folded a predicate.
4327         (ccp_visit_stmt): Adjust.
4328         * common.opt (ftree-bit-ccp): New flag.
4329         * doc/invoke.texi (ftree-bit-ccp): Document.
4330         * opts.c (decode_options): Enable bit-CCP at -O1.
4331
4332 2010-08-06  Alan Modra  <amodra@gmail.com>
4333
4334         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
4335         and -mrelocatable-lib description.
4336
4337 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
4338
4339         From Martin Thuresson  <martint@google.com>
4340         * postreload.c (reload_cse_simplify_operands): Use
4341         SET_REGNO_RAW instead of SET_REGNO.
4342         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
4343         SET_REGNO.
4344         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
4345         instead of SET_REGNO.
4346         * rtl.h (SET_REGNO_RAW): New macro.
4347
4348 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
4349
4350         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
4351         computations.  Fix formatting issues.
4352         (num_sign_bit_copies1): Likewise.
4353         (canonicalize_condition): Likewise.
4354
4355 2010-08-05  Richard Henderson  <rth@redhat.com>
4356
4357         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
4358         (floor_log2): Use clz_hwi.
4359         (exact_log2): Use ctz_hwi.
4360         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
4361         * builtins.c (fold_builtin_bitop): Use them.
4362         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4363         * combine.c (get_pos_from_mask): Use ctz_hwi.
4364         * double-int.c (double_int_ctz): Likewise.
4365         * explow.c (force_reg): Likewise.
4366         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
4367
4368 2010-08-05  Richard Henderson  <rth@redhat.com>
4369
4370         PR target/45189
4371         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
4372         the alignment constant is properly sign-extended.
4373
4374 2010-08-05  Richard Guenther  <rguenther@suse.de>
4375
4376         * expr.c (store_expr): Use emit_block_move only if both
4377         source and target are MEMs.  Use store_bit_field if only
4378         the target is a MEM.
4379
4380 2010-08-05  Richard Henderson  <rth@redhat.com>
4381
4382         PR debug/45188
4383         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
4384         (INCOMING_RETURN_ADDR_RTX): Likewise.
4385         (dwarf2out_do_frame): Remove conditional compilation.
4386         (dwarf2out_frame_init): Likewise.
4387
4388 2010-08-05  Nicolas Setton  <setton@adacore.com>
4389
4390         * gcov.c (flag_display_progress): New static variable.
4391         (main): Display progress info on standard output if requested.
4392         (options): Add -d/--display-progress.
4393         (print_usage): Print them.
4394         (process_args): Handle them.
4395         * doc/gcov.texi: Document them.
4396
4397 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4398
4399         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
4400         (ipcp_insert_stage): Redirect only edges not flagged with
4401         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
4402         discovered constants.
4403
4404 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4405
4406         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
4407         (struct ipa_param_descriptor): New fields types and
4408         cannot_devirtualize.
4409         (ipa_param_cannot_devirtualize_p): New function.
4410         (ipa_param_types_vec_empty): Likewise.
4411         (ipa_make_edge_direct_to_target): Declare.
4412         * ipa-cp.c: Fixed first stage driver name in initial comment,
4413         described devirtualization there too.
4414         (ipcp_analyze_node): Call ipa_analyze_params_uses.
4415         (ipcp_print_all_lattices): Print devirtualization info.
4416         (ipa_set_param_cannot_devirtualize): New function.
4417         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
4418         lattice to BOTTOM.
4419         (ipcp_init_stage): Merged into...
4420         (ipcp_generate_summary): ...its caller.
4421         (ipcp_change_tops_to_bottom): Also process type lists.
4422         (ipcp_add_param_type): New function.
4423         (ipcp_copy_types): Likewise.
4424         (ipcp_propagate_types): Likewise.
4425         (ipcp_propagate_stage): Also propagate types.
4426         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
4427         Also return true if propagated types require it.
4428         (ipcp_update_callgraph): Dump redirection info.
4429         (ipcp_process_devirtualization_opportunities): New function.
4430         (ipcp_const_param_count): Include known type information.
4431         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
4432         on new node.  Fixed formatting.
4433         * ipa-prop.c (make_edge_direct_to_target): Renamed to
4434         ipa_make_edge_direct_to_target and changed all callers.  Made
4435         externally visible.
4436         (ipa_node_duplication_hook): Duplicate types vector.
4437         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
4438         redirect outgoing calls for which we can't get a decl from the
4439         statement.  Check that we can get a decl from the call statement.
4440         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4441         ipa_analyze_params_uses only when ipa-cp is disabled.
4442         * tree-inline.c (get_indirect_callee_fndecl): Removed.
4443         (expand_call_inline): Do not call get_indirect_callee_fndecl.
4444         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
4445         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
4446
4447 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4448
4449         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
4450         temporary. Emit move from temporary to accum, so REG_EQUAL note will
4451         be attached to this insn in correct mode.
4452
4453 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4454
4455         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
4456         using REGNO of base_reg directly.
4457
4458 2010-08-05  Jie Zhang  <jie@codesourcery.com>
4459
4460         PR tree-optimization/45144
4461         * tree-sra.c (type_consists_of_records_p): Return false
4462         if the record contains bit-field.
4463
4464 2010-08-04  Richard Henderson  <rth@redhat.com>
4465
4466         * config/i386/i386.c (struct ix86_frame): Remove padding and
4467         to_allocate members.
4468         (ix86_compute_frame_layout): Don't store them.
4469         (ix86_can_use_return_insn_p): Use a more direct and more obviously
4470         correct condition for the position of the stack pointer.
4471         (ix86_expand_prologue): Compute remaining stack allocation based
4472         on the ultimate stack pointer offset.
4473         (ix86_expand_epilogue): Use more obvious expressions testing for
4474         the stack pointer already pointing to the saved registers.
4475
4476         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
4477         duplication deconstructing the frame pointer.  Simplify
4478         deallocation of the local stack frame.
4479
4480         * reg-notes.def (CFA_EXPRESSION): New.
4481         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4482         (dwarf2out_frame_debug_cfa_expression): New.
4483         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
4484
4485         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
4486         * config/i386/i386.c (ix86_expand_prologue): Set it.
4487         (ix86_expand_epilogue): Clear it.
4488         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
4489         context, add REG_CFA_EXPRESSION notes.
4490
4491         * config/i386/i386.h (struct machine_frame_state): Rename from
4492         machine_cfa_state.  Add members tracking SP and FP regardless
4493         of the current CFA register.
4494         (ix86_cfa_state): Remove.
4495         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
4496         and sse_reg_save_offset members.
4497         (ix86_compute_frame_layout): Set them.
4498         (gen_push): Increment sp_offset too.
4499         (choose_baseaddr_len, choose_baseaddr): New.
4500         (ix86_emit_save_reg_using_mov): New.
4501         (ix86_emit_save_regs_using_mov): Use it.
4502         (ix86_emit_save_sse_regs_using_mov): Likewise.
4503         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
4504         compare vs the saved red_zone_offset.
4505         (pro_epilogue_adjust_stack): Adjust sp_offset.
4506         (ix86_adjust_stack_and_probe): Likewise.
4507         (ix86_expand_prologue): Set up, use, and validate the new
4508         frame_state_info members.  Use gen_frame_mem.
4509         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
4510         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
4511         new frame_state_info members.
4512         (ix86_emit_leave): Likewise.
4513         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
4514         out-of-range stack pointer offsets here.
4515         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4516         (ix86_expand_epilogue): Use and validate the new frame_state_info
4517         members.  Break up and simplify the logic selecting the
4518         restore_regs_via_mov code path.  Ensure that there will be no
4519         out-of-range stack pointer offsets.
4520
4521         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
4522
4523         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
4524         argument name to reflect the expected tree; fix indentation.
4525         (ix86_asm_output_function_label): Output the entire 32-bit
4526         ms_hook here as bytes ...
4527         (ix86_expand_prologue): ... not here as insns.  Attach the
4528         unwind info for the ms_hook to a blockage insn.
4529         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
4530         (ix86_ms_bitfield_layout_p): Fix indentation.
4531         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
4532
4533         * config/i386/i386.c (ix86_using_red_zone): New.
4534         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
4535         ix86_expand_prologue, ix86_force_to_memory): Use it.
4536
4537         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
4538         saving the int registers.
4539
4540         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
4541         and DWARF2_UNWIND_INFO conditional compilation.
4542
4543 2010-08-04  Richard Henderson  <rth@redhat.com>
4544
4545         PR debug/45171
4546         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
4547         an is_naming_typedef_decl.
4548
4549 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
4550
4551         PR rtl-optimization/45162
4552         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
4553         * dce.c (word_dce_process_block): Likewise.
4554
4555 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
4556
4557         PR target/44583
4558         * config/ia64/constraints.md (Z): New.
4559         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
4560         (xfreg_or_signed_fp01_operand): New.
4561         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
4562         with fr_reg_or_signed_fp01_operand and constraint G with Z.
4563         (subsf3): Ditto.
4564         (*maddsf4): Ditto.
4565         (*msubsf4): Ditto.
4566         (adddf3): Ditto.
4567         (adddf3_trunc): Ditto.
4568         (subdf3): Ditto.
4569         (*subdf3_trunc): Ditto.
4570         (*madddf4): Ditto.
4571         (*madddf4_trunc): Ditto.
4572         (*msubdf4): Ditto.
4573         (*msubdf4_trunc): Ditto.
4574         (addxf3): Replace xfreg_or_fp01_operand with
4575         xfreg_or_signed_fp01_operand and constraint G with Z.
4576         (*addxf3_truncsf): Ditto.
4577         (*addxf3_truncdf): Ditto.
4578         (subxf3): Ditto.
4579         (*subxf3_truncsf): Ditto.
4580         (*subxf3_truncdf): Ditto.
4581         (*maddxf4): Ditto.
4582         (*maddxf4_truncsf): Ditto.
4583         (*maddxf4_truncdf): Ditto.
4584         (*msubxf4): Ditto.
4585         (*msubxf4_truncsf): Ditto.
4586         (*msubxf4_truncdf): Ditto.
4587
4588 2010-08-04  Richard Guenther  <rguenther@suse.de>
4589
4590         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
4591         if either alias-set is zero.
4592
4593 2010-08-04  Richard Guenther  <rguenther@suse.de>
4594
4595         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
4596         * tree-ssa-ccp.c: ... here.
4597         * tree-ssa-copy.c: ... and here.
4598         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
4599         value_range_t): Move ...
4600         * tree-vrp.c: ... here.
4601         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
4602         (substitute_and_fold): Adjust prototype.
4603         * tree-ssa-propagate.c (replace_uses_in): Adjust.
4604         (replace_phi_args_in): Likewise.
4605         (substitute_and_fold): Take callback to query lattice instead
4606         of pointer to lattice.  Replace SSA name defs with lattice
4607         values first.
4608         * tree-ssa-ccp.c (ccp_finalize): Adjust.
4609         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
4610         (get_value): New function.
4611         (fini_copy_prop): Adjust.
4612         * tree-vrp.c (vrp_finalize): Adjust.
4613
4614 2010-08-04  Richard Guenther  <rguenther@suse.de>
4615
4616         PR middle-end/45176
4617         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
4618         points-to set for original MEM_REF.
4619
4620 2010-08-04  Richard Guenther  <rguenther@suse.de>
4621
4622         * tree-ssa-ccp.c (get_constant_value): New function.
4623         (get_rhs_assign_op_for_ccp): Remove.
4624         (valueize_op): New function.
4625         (ccp_fold): Use get_constant_value and valueize_op.
4626         (fold_const_aggregate_ref): Likewise.
4627         (ccp_fold_stmt): Likewise.
4628         (visit_assignment): Simplify.
4629
4630 2010-08-04  Richard Guenther  <rguenther@suse.de>
4631
4632         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
4633         * double-int.h (double_int_ctz): Declare.
4634         * double-int.c (double_int_ctz): New function.
4635
4636 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
4637
4638         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
4639         Define.
4640         picochip_expand_movmemhi : Expand movmem pattern.
4641         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
4642         Declare.
4643         * config/picochip/picochip.md (movmemhi) : New pattern.
4644
4645 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
4646
4647         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
4648
4649 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
4650
4651         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
4652         NEG as operand of a MULT by merging it with the other operand.
4653         * combine.c (make_compound_operation): Use trunc_int_for_mode when
4654         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
4655         MULT.
4656         * config/arm/constraints.md (M): Examine only 32 bits of a
4657         HOST_WIDE_INT.
4658         * config/arm/predicates.md (power_of_two_operand): Likewise.
4659
4660 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4661
4662         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
4663         non-NOTE insns.
4664
4665 2010-08-03  Jan Hubicka  <jh@suse.cz>
4666
4667         * ipa-split.c (struct split_point): Add split_part_set_retval.
4668         (find_retval): Forward declare.
4669         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
4670         (consider_split): Compute current->split_part_set_retval.
4671         (visit_bb): Do not look into return value.
4672         (split_function): Handle !split_part_set_retval
4673
4674 2010-08-03  Martin Jambor  <mjambor@suse.cz>
4675
4676         * tree-sra.c (completely_scalarize_record): New parameter REF, create
4677         its own access->expr intead of using build_ref_for_offset.
4678
4679 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
4680
4681         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
4682         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
4683         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
4684         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
4685         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
4686         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
4687         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
4688         DEFAULT_SWITCH_TAKES_ARG.
4689         * config/rx/rx.opt (-patch=): Remove option.
4690         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
4691         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
4692         * doc/invoke.texi (RX Options): Remove -patch=.
4693         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
4694         (option_map): Remove --profile-blocks, --quiet and --silent.
4695
4696 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
4697
4698         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
4699         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
4700         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
4701         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
4702         Update calls to ix86_expand_compare and ix86_expand_branch.
4703         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
4704         ix86_expand_compare.
4705         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
4706         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
4707         Make static.
4708         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
4709         and ix86_compare_op1.  Update calls to ix86_expand_compare.
4710         (ix86_expand_int_movcc): Ditto.
4711         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
4712         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
4713         (ix86_expand_setcc): Ditto.
4714         (ix86_expand_compare): Remove prototype.
4715         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
4716         ix86_compare_op0 and ix86_compare_op1.  Update calls
4717         to ix86_expand_branch to directly pass operands[1] and operands[2].
4718         (cbranchxf4): Ditto.
4719         (cbranch<MODEF:mode>4): Ditto.
4720         (cbranchcc4): Ditto.
4721         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
4722         Update calls to ix86_expand_setcc to directly pass operands[2] and
4723         operands[3].
4724         (cstorexf4): Ditto.
4725         (cstore<MODEF:mode>4): Ditto.
4726         (cstorecc4): Ditto.
4727
4728 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
4729
4730         PR target/45063
4731         * caller-save.c (save_call_clobbered_regs): Remove regs from
4732         hard_regs_saved when they are set.
4733
4734 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
4735
4736         PR target/41089
4737         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
4738         as volatile.
4739
4740 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
4741
4742         * common.opt (ftree-loop-distribute-patterns): New.
4743         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
4744         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
4745         at -O3.
4746         * tree-data-ref.c (stores_zero_from_loop): New.
4747         * tree-data-ref.h (stores_zero_from_loop): Declared.
4748         * tree-loop-distribution.c (tree_loop_distribution): Call
4749         stores_zero_from_loop.
4750         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
4751
4752 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
4753
4754         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
4755         into account.
4756
4757         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
4758         * config/arm/arm.c (thumb1_code): New variable.
4759         (arm_override_options): Set it.
4760         (thumb1_final_prescan_insn): Keep track of condition code status.
4761         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
4762         jumps that depend on them.
4763         * config/arm/arm.h (thumb1_code): Declare variable.
4764         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
4765         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
4766         thumb1_cc_mode.
4767         (CC_STATUS_INIT): New macro.
4768         * config/arm/constraints.md (Pd): New constraint.
4769         * config/arm/predicates.md (noov_comparison_operator): New predicate.
4770         * config/arm/arm.md (is_thumb1): New define_attr.
4771         (conds): Set default to "clob" when generating Thumb1 code.
4772         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
4773         code are set.  Use two-operand assembly syntax.
4774         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
4775         pattern.
4776         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
4777         codes are set.  Use two-operand assembly syntax.
4778         (zero_extendhisi splitter): Remove constraints.
4779         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
4780         thumb1_movsf_insn): Set conds attribute as appropriate.
4781         (cbranchsi4_insn): Use condition code status from struct
4782         machine_function to determine whether the comparison can be eliminated.
4783         Discourage the alternative using high registers.
4784         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
4785         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
4786         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
4787         subsi3_cbranch): Delete.
4788         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
4789         one subtract and one cbranch insn.
4790
4791         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
4792         thumb2_movdf_soft_insn): Delete patterns.
4793         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
4794         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
4795         (pool_range, neg_pool_range): Use them to define defaults.
4796         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
4797         and allow for TARGET_32BIT.
4798
4799         PR target/40457
4800         * config/arm/arm.h (arm_regs_in_sequence): Declare.
4801         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
4802         load_multiple_sequence, store_multiple_sequence): Delete
4803         declarations.
4804         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
4805         declarations.
4806         * config/arm/ldmstm.md: New file.
4807         * config/arm/arm.c (arm_regs_in_sequence): New array.
4808         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
4809         CHECK_REGS.  All callers changed.
4810         If SAVED_ORDER is nonnull, copy the computed order into it.
4811         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
4812         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
4813         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
4814         If SAVED_ORDER is nonnull, copy the computed order into it.
4815         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
4816         like REGS.  Handle Thumb mode.
4817         (arm_gen_load_multiple_1): New function, broken out of
4818         arm_gen_load_multiple.
4819         (arm_gen_store_multiple_1): New function, broken out of
4820         arm_gen_store_multiple.
4821         (arm_gen_multiple_op): New function, with code from
4822         arm_gen_load_multiple and arm_gen_store_multiple moved here.
4823         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
4824         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
4825         changed.
4826         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
4827         * config/arm/predicates.md (commutative_binary_operator): New.
4828         (load_multiple_operation, store_multiple_operation): Handle more
4829         variants of these patterns with different starting offsets.  Handle
4830         Thumb-1.
4831         * config/arm/arm.md: Include "ldmstm.md".
4832         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
4833         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
4834         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
4835         peepholes): Delete.
4836         * config/arm/ldmstm.md: New file.
4837         * config/arm/arm-ldmstm.ml: New file.
4838
4839         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
4840         if statement which adds extra costs to frame-related expressions.
4841
4842 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4843
4844         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
4845
4846 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
4847
4848         PR target/45142
4849         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
4850         alternative 2.
4851         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
4852         split V4SI operands.
4853
4854 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
4855
4856         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4857         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
4858         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
4859         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
4860
4861 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
4862
4863         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
4864         LOCAL_INCLUDE_DIR.
4865
4866 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
4867
4868         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
4869         used in the call to optab_for_tree_code.  Fix the second
4870         is_widening_mult_p call.  Check that both unwidened operands
4871         have the same sign.
4872
4873 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
4874
4875         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
4876
4877 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
4878
4879         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
4880
4881 2010-07-30  DJ Delorie  <dj@redhat.com>
4882
4883         * config/rx/predicates.md (rx_constshift_operand): New.
4884         * config/rx/rx.md (zs_cond): New.
4885         (cbranchsi4): Remove mode.
4886         (*cbranchsi4_<code>): Likewise.
4887         (*tstbranchsi4_<code>): New.
4888         (*tstbranchsi4r_<code>): New.
4889         (*tstbranchsi4m_eq): New.
4890         (*tstbranchsi4m_ne): New.
4891         (cbranchsf4): Remove mode.
4892         (*cbranchsf4_<code>): Likewise.
4893
4894 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
4895
4896         * rtlanal.c (simplify_subreg_regno): Don't treat
4897         HARD_FRAME_POINTER_REGNUM specially.
4898
4899 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
4900
4901         * common.opt (-G): Don't define option here.
4902         * config/g.opt: New.
4903         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
4904         rs6000/powerpc and score targets.
4905         * opts.c (common_handle_option): Don't handle -G here.
4906         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
4907         * config/frv/frv.c (frv_handle_option): Handle -G.
4908         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
4909         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
4910         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
4911         * config/mips/mips.c (mips_handle_option): Handle -G.
4912         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
4913         * config/score/score.c (score_handle_option): Handle -G.
4914
4915 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
4916
4917         * config/mmix/mmix.c: Include basic-block.h.
4918
4919 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
4920
4921         PR debug/45055
4922         PR rtl-optimization/45137
4923         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
4924         prototypes.
4925         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
4926         New functions.
4927         * combine.c (next_nonnote_nondebug_insn): Removed.
4928         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
4929         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
4930         * sched-deps.c (sched_analyze_insn): Likewise.
4931         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
4932         * rtlanal.c (canonicalize_condition): Likewise.
4933         * postreload.c (reload_combine_recognize_pattern): Likewise.
4934         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
4935
4936 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
4937
4938         * config/i386/i386.md (int_cond): Remove code iterator.
4939         (fp_cond): Ditto.
4940         (cbranch<mode>4): Use ordered_comparison_operator predicate
4941         for operator0.
4942         (cstore<mode>4): Ditto for operator1.
4943         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
4944         (add<mode>cc): ditto.
4945
4946 2010-07-30  Richard Guenther  <rguenther@suse.de>
4947
4948         PR middle-end/45141
4949         * expr.c (expand_expr_real_1): Check for not handled base address.
4950
4951 2010-07-30  Richard Guenther  <rguenther@suse.de>
4952
4953         * ipa-prop.c (ipa_modify_formal_parameters): Use
4954         build_distinct_type_copy.
4955
4956 2010-07-30  Anthony Green  <green@moxielogic.com>
4957
4958         * config/moxie/rtems.h: New file.
4959         * config.gcc: Add moxie-rtems support.
4960
4961 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4962
4963         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
4964         df flags as in run_fast_df_dce.
4965
4966 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4967
4968         Revert:
4969         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
4970
4971         * rtl.def (NOTE): Swap operands 4 and 5.
4972         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
4973         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
4974         Adjust accordingly.
4975         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
4976
4977 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
4978
4979         PR debug/45110
4980         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
4981         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
4982         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
4983         formal parameters.
4984         (gen_decl_die): Change return type to dw_die_ref, return what
4985         gen_formal_parameter_die returned.
4986
4987 2010-07-29  Martin Jambor  <mjambor@suse.cz>
4988
4989         * dbgcnt.def (eipa_sra): New counter.
4990         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
4991
4992 2010-07-29  Xinliang David Li  <davidxl@google.com>
4993
4994         PR bootstrap/45119
4995         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
4996         in revision 162652.
4997
4998 2010-07-29  Richard Guenther  <rguenther@suse.de>
4999
5000         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
5001         (TV_TREE_STORE_CCP): Likewise.
5002         (TV_TREE_REDPHI): Likewise.
5003
5004 2010-07-29  Richard Guenther  <rguenther@suse.de>
5005
5006         * double-int.h (double_int_and_not): New function.
5007         * combine.c (try_combine): Use it.
5008         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
5009
5010 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5011
5012         PR rtl-optimization/42575
5013         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
5014         Argument AU removed.  All callers changed.  Ignore artificial refs.
5015         Use return value of df_word_lr_simulate_defs to decide whether an insn
5016         is necessary.
5017         (fast_dce): Rename arg to WORD_LEVEL.
5018         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
5019         static.
5020         (pass_fast_rtl_byte_dce): Delete.
5021         * dce.h (run_word_dce): Declare.
5022         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
5023         All callers changed.  Simplify code to only deal with two-word regs.
5024         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
5025         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
5026         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
5027         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
5028         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
5029         (df_word_lr_mark_ref): Declare.
5030         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
5031         df_word_lr_simulate_uses): Declare or rename from byte variants.
5032         (df_byte_lr_simulate_artificial_refs_at_top,
5033         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5034         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
5035         declarations.
5036         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
5037         (enum df_mm): Delete.
5038         * df-byte-scan.c: Delete file.
5039         * df-problems.c (df_word_lr_problem_data): Renamed from
5040         df_byte_lr_problem_data, all members deleted except for
5041         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
5042         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
5043         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5044         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
5045         df_byte_lr_confluence_0): Delete functions.
5046         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
5047         callers changed.
5048         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
5049         Don't initialize members that were deleted, don't try to discover data
5050         about registers.  Ignore hard regs.
5051         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
5052         (df_word_lr_mark_ref): New function.
5053         (df_word_lr_bb_local_compute): Renamed from
5054         df_byte_bb_lr_local_compute; all callers changed.  Use
5055         df_word_lr_mark_ref.  Assert that artificial refs don't include
5056         pseudos.  Ignore hard registers.
5057         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
5058         Assert that exit block uses don't contain pseudos.
5059         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
5060         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
5061         callers changed.  Ignore hard regs.
5062         (df_word_lr_transfer_function): Renamed from
5063         df_byte_lr_transfer_function; all callers changed.
5064         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
5065         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
5066         changed.
5067         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
5068         callers changed.
5069         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
5070         confluence operator 0 set to NULL.
5071         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
5072         callers changed.
5073         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
5074         Return bool, true if bitmap changed or insn otherwise necessary.
5075         All callers changed.  Simplify using df_word_lr_mark_ref.
5076         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
5077         all callers changed.  Simplify using df_word_lr_mark_ref.
5078         * lower-subreg.c: Include "dce.h"
5079         (decompose_multiword_subregs): Call run_word_dce if df available.
5080         * Makefile.in (lower-subreg.o): Adjust dependencies.
5081         (df-byte-scan.o): Delete.
5082         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
5083
5084 2010-07-29  Richard Guenther  <rguenther@suse.de>
5085
5086         * tree.c (build_vector): Assert that the vector constant
5087         has enough elements.
5088         (build_vector_from_ctor): Pad with trailing zeros.
5089
5090 2010-07-29  Richard Guenther  <rguenther@suse.de>
5091
5092         PR tree-optimization/45120
5093         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5094         Handle offset in DEREFs properly.
5095         (get_constraint_for_1): Handle MEM_REF offset properly.
5096
5097 2010-07-29  Richard Guenther  <rguenther@suse.de>
5098
5099         PR middle-end/45034
5100         * convert.c (convert_to_integer): Always use an unsigned
5101         type for narrowed negate and bitwise not.
5102
5103 2010-07-29  Ira Rosen  <irar@il.ibm.com>
5104
5105         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
5106         to outer loop when creating reduction epilogue for double reduction,
5107         and switch back to the inner loop when updating the phi nodes.
5108         Update uses of outer loop exit phi nodes in double reduction (instead
5109         of uses of reduction).
5110
5111 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5112
5113         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
5114         popcount on power7 and parity on power6 systems.
5115         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
5116         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
5117         instructions.
5118
5119         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
5120         (UNSPEC_PARITY): Ditto.
5121         (SFDF): New iterator for SF/DF.
5122         (rreg2): New mode attribute for floating register constraint.
5123         (TARGET_FLOAT): New mode attribute for whether single/double float
5124         is supported.
5125         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
5126         pattern.
5127         (parity<mode>2_cmpb): New insn for parity on power6 and newer
5128         machines.
5129         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
5130         pattern.  Add support for fcpsgn instruction added in power6.
5131         (copysignsf3): Delete.
5132         (copysigndf3): Delete.
5133         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
5134         instead of if_then_else in RTL to avoid problems with -0.
5135
5136         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
5137         of if_then_else to mirror scalar code.
5138         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
5139         rs6000.md.
5140
5141         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
5142         instead of if_then_else.
5143
5144 2010-07-28  Xinliang David Li  <davidxl@google.com>
5145
5146         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
5147         (dump_cand): Dump var_before/after.
5148         (htab_inv_expr_eq): New function.
5149         (htab_inv_expr_hash): New function.
5150         (tree_ssa_iv_optimize_init): Support pseudo invariants.
5151         (add_candidate_1): consider base type precision.
5152         (set_use_iv_cost): New parameter.
5153         (adjust_setup_cost): Use profile information.
5154         (get_address_cost): Do not hard code width in computing address
5155         offset limits.
5156         (compare_aff_trees): New function.
5157         (get_loop_invariant_expr_id): New function.
5158         (get_computation_cost_at): New parameter and use profile information.
5159         (get_computation_cost): New parameter.
5160         (determine_use_iv_cost_generic): Pass new parameter.
5161         (determine_use_iv_cost_address): Ditto.
5162         (determine_use_iv_cost_condition): Ditto.
5163         (autoinc_possible_for_pair): Ditto.
5164         (determine_use_iv_costs): More dumps.
5165         (iv_ca_get_num_inv_exprs): New function.
5166         (iv_ca_recount_cost): Consider loop invariants in register pressure
5167         cost.
5168         (iv_ca_add_use): New parameter.
5169         (iv_ca_dump): Better dumping.
5170         (iv_ca_extend): New parameter.
5171         (try_add_cand_for): Attempt to get better partial solution.
5172         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
5173         (create_new-ivs): More dumps.
5174         (rewrite_use_compare): Ditto.
5175         (free_loop_data): More cleanup.
5176         (treee_ssa_iv_optimize_finalize): Ditto.
5177
5178 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
5179
5180         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
5181         * config/i386/i386.c (ix86_profile_before_prologue): New.
5182         (override_options): Add special handling for -mfentry.
5183         (ix86_function_regparm): Likewise.
5184         (ix86_function_sseregparm): Likewise.
5185         (ix86_frame_pointer_required): Likewise.
5186         (ix86_expand_prologue): Check for ms_hook_prologue.
5187         (x86_function_profiler): Adjust mcount output.
5188         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
5189         * config/i386/i386.opt (mfentry): New.
5190         * doc/invoke.texi (mfentry): Add documentation.
5191         * doc/tm.texi: Regenerated..
5192         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
5193         * final.c (final_start_function): Replace macro
5194         PROFILE_BEFORE_PROLOGUE by target hook.
5195         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5196         * target.def (profile_before_prologue): New hook.
5197         * targhooks.c (default_profile_before_prologue): New.
5198         * targhooks.h (default_profile_before_prologue): New.
5199
5200 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
5201
5202         PR debug/45105
5203         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
5204
5205         PR debug/45103
5206         * dwarf2out.c (dwarf2out_var_location): Always consider
5207         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
5208
5209 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5210
5211         PR rtl-optimization/45107
5212         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
5213
5214 2010-07-28  Richard Guenther  <rguenther@suse.de>
5215
5216         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
5217         (set_lattice_value): Do not query an old default value.
5218         (get_value_for_expr): New function.  Properly canonicalize
5219         float values.
5220         (ccp_visit_phi_node): Use it.
5221
5222 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
5223
5224         * config/arm/arm.c (arm_pcs_default): Remove static.
5225         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
5226         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
5227         (arm_pcs_default): Declare.
5228
5229 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
5230
5231         * config/rs6000/rs6000.c (rs6000_override_options):
5232         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
5233         ... to darwin_rs6000_override_options.
5234         (rs6000_return_in_memory): Update preceding comment for darwin
5235         64 bit ABI.  Use TARGET_MACHO inline.
5236         (rs6000_darwin64_struct_check_p): New.
5237         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
5238         (function_arg): Likewise.
5239         (rs6000_arg_partial_bytes): Likewise.
5240         (rs6000_function_value): Likewise.
5241
5242 2010-07-28  Andi Kleen <ak@linux.intel.com>
5243
5244         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
5245
5246 2010-07-28  Richard Guenther  <rguenther@suse.de>
5247
5248         PR middle-end/44903
5249         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
5250         targets try harder to not generate unaligned accesses.
5251
5252 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5253
5254         PR rtl-optimization/45101
5255         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
5256         for gcse-las.
5257
5258 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5259
5260         PR tree-optimization/44885
5261         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
5262         with non-aliased component.
5263
5264 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
5265
5266         * config/darwin-driver.c (SWITCH_TAKES_ARG,
5267         WORD_SWITCH_TAKES_ARG): Remove.
5268         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5269         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
5270         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
5271         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
5272         definitions from gcc.c.
5273         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
5274         defaults.h.
5275         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
5276         Move to defaults.h.
5277         * opts-common.c: Include tm.h.
5278         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
5279         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
5280         Handle more than one argument.  Set canonical_option_num_elements.
5281         (decode_cmdline_options_to_array): Set
5282         canonical_option_num_elements and trailing elements of
5283         canonical_option.
5284         * opts.h (struct cl_decoded_option): Allow four elements in
5285         canonical_option.  Add field canonical_option_num_elements.
5286         * Makefile.in (opts-common.o): Update dependencies.
5287
5288 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5289
5290         PR middle-end/44790
5291         PR middle-end/44993
5292         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
5293         sure the base has address_mode before adding the offset.
5294
5295 2010-07-27  Xinliang David Li <davidxl@google.com>
5296
5297         * tree-flow.h (create_mem_ref): Add one new parameter.
5298         * tree-ssa-address.c (create_mem_ref): New parameter.
5299         (addr_to_parts): Ditto.
5300         (move_variant_to_index): New function.
5301         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
5302
5303 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5304
5305         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
5306         4 and 5.
5307         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
5308         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
5309         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
5310         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
5311         CODE_LABELs and NOTEs.
5312         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
5313         * combine.c (try_combine): Likewise.
5314         * ira.c (setup_prohibited_mode_move_regs): Likewise.
5315         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
5316
5317 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5318
5319         * coretypes.h (struct cl_option_handlers): Declare.
5320         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
5321         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
5322         * langhooks-def.h (lhd_handle_option): Declare.
5323         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
5324         * langhooks.c (lhd_handle_option): New.
5325         * langhooks.h (struct lang_hooks): Update prototype and return
5326         value type of handle_option hook.
5327         * optc-gen.awk: Generate target_flags_explicit definition for the
5328         driver.
5329         * opts-common.c: Include diagnostic.h.
5330         (handle_option): Move from opts.c.  Update prototype and return
5331         value type.  Use handlers structure.
5332         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
5333         handlers structure.
5334         (set_option): Move from opts.c.
5335         * opts.c (common_handle_option): Update prototype and return value
5336         type.  Update calls to handle_option and enable_warning_as_error.
5337         (unknown_option_callback, post_handling_callback,
5338         lang_handle_option, target_handle_option): New.
5339         (handle_option, read_cmdline_option): Move to opts-common.c.
5340         (read_cmdline_options): Update prototype.  Update call to
5341         read_cmdline_option.
5342         (decode_options): Initialize and use handlers structure.
5343         (set_option): Move to opts-common.c.
5344         (enable_warning_as_error): Update prototype.  Update call to
5345         handle_option.
5346         * opts.h (struct cl_option_handler_func, struct
5347         cl_option_handlers): New.
5348         (handle_option, enable_warning_as_error): Update prototypes.
5349         (read_cmdline_option): Declare.
5350         * Makefile.in (opts-common.o): Update dependencies.
5351
5352 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5353
5354         * config/arm/arm.c (params.h): Include.
5355         (arm_override_options): Tune gcse-unrestricted-cost.
5356         * config/arm/t-arm (arm.o): Define dependencies.
5357
5358 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5359
5360         PR target/42495
5361         PR middle-end/42574
5362         * basic-block.h (get_dominated_to_depth): Declare.
5363         * dominance.c (get_dominated_to_depth): New function, use
5364         get_all_dominated_blocks as a base.
5365         (get_all_dominated_blocks): Use get_dominated_to_depth.
5366
5367         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
5368         (hoist_exprs): Remove.
5369         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
5370         (compute_code_hoist_vbeinout): Add debug print outs.
5371         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
5372
5373         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
5374         quadratic behavior.
5375         * params.h (MAX_HOIST_DEPTH): New macro.
5376         * doc/invoke.texi (max-hoist-depth): Document.
5377
5378 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5379
5380         PR rtl-optimization/40956
5381         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
5382         constants.
5383
5384 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5385
5386         PR target/42495
5387         PR middle-end/42574
5388         * config/arm/arm.c (legitimize_pic_address): Use
5389         gen_calculate_pic_address pattern to emit calculation of PIC address.
5390         (will_be_in_index_register): New function.
5391         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
5392         (thumb1_legitimate_address_p): Use it provided !strict_p.
5393         * config/arm/arm.md (calculate_pic_address): New expand and split.
5394
5395 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5396
5397         PR target/42495
5398         PR middle-end/42574
5399         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
5400         * config/arm/arm.md (define_split "J", define_split "K"): Make
5401         IRA/reload friendly.
5402
5403 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5404
5405         * gcse.c (insert_insn_end_basic_block): Update signature, remove
5406         unused checks.
5407         (pre_edge_insert, hoist_code): Update.
5408
5409 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5410
5411         PR target/42495
5412         PR middle-end/42574
5413         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
5414
5415 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5416
5417         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
5418
5419 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5420
5421         PR rtl-optimization/40956
5422         PR target/42495
5423         PR middle-end/42574
5424         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
5425         for hoisting.
5426         (hoist_code): Count occurences in current block too.
5427
5428 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5429
5430         * gcse.c (struct expr:max_distance): New field.
5431         (doing_code_hoisting_p): New static variable.
5432         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
5433         simple expressions, don't change behavior for PRE.  Set max_distance.
5434         (insert_expr_in_table): Set new max_distance field.
5435         (hash_scan_set): Update.
5436         (hoist_expr_reaches_here_p): Stop search after max_distance
5437         instructions.
5438         (find_occr_in_bb): New static function.  Use it in ...
5439         (hoist_code): Calculate sizes of basic block before any changes are
5440         done.  Pass max_distance to hoist_expr_reaches_here_p.
5441         (one_code_hoisting_pass): Set doing_code_hoisting_p.
5442
5443         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
5444         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
5445         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
5446         macros.
5447         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
5448         Document.
5449
5450 2010-07-27  Jeff Law  <law@redhat.com>
5451             Maxim Kuvyrkov  <maxim@codesourcery.com>
5452
5453         * gcse.c (compute_transpout, transpout): Remove, move logic
5454         to prune_expressions.
5455         (compute_pre_data): Move pruning of trapping expressions ...
5456         (prune_expressions): ... here.  New static function.
5457         (compute_code_hoist_data): Use it.
5458         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
5459
5460 2010-07-27  Xinliang David Li  <davidxl@google.com>
5461
5462         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
5463         (rewrite_use_address): Adjust iv update position when needed.
5464
5465 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5466
5467         * dbgcnt.def (hoist_insn): New debug counter.
5468         * gcse.c (hoist_code): Use it.
5469
5470 2010-07-27  Xinliang David Li  <davidxl@google.com>
5471
5472         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
5473         (niter_for_single_dom_exit): Passes additional parameter.
5474         (iv_period): Fix comments.
5475         (may_eliminate_iv): Handles multiple exit loops properly.
5476         (free_tree_niter_desc): New function.
5477         (free_loop_data): Frees up loop iteration descriptors.
5478
5479 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5480
5481         PR target/44542
5482         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
5483         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
5484         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
5485         (expand_one_var): Don't consider DECL_ALIGN for variables for
5486         which expand_one_stack_var_at has been already called.
5487
5488         PR testsuite/44701
5489         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
5490         constraints on IA-64.
5491
5492 2010-07-27  Jie Zhang  <jie@codesourcery.com>
5493
5494         PR target/44290
5495         Revert:
5496         2010-07-23  Jie Zhang  <jie@codesourcery.com>
5497
5498         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5499         false if ! tree_versionable_function_p.
5500
5501 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5502
5503         * dwarf2out.c (add_data_member_location_attribute): Use
5504         add_AT_unsigned instead of add_AT_int if offset is non-negative.
5505
5506 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5507
5508         * postreload.c (try_replace_in_use): New static function.
5509         (reload_combine_recognize_const_pattern): Use it here.  Allow
5510         substituting into a final add insn, and substituting into a memory
5511         reference in an insn that sets the reg.
5512
5513 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5514
5515         * common.opt (o): Add MissingArgError.
5516         * doc/options.texi (MissingArgError): Document.
5517         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
5518         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
5519         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
5520         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
5521         * langhooks.h (struct lang_hooks): Remove missing_argument.
5522         * optc-gen.awk: Handle MissingArgError and output new structure
5523         field initializers.
5524         * opts.c (read_cmdline_option): Use missing_argument_error field
5525         instead of missing_argument langhook.
5526         * opts.h (struct cl_option): Add missing_argument_error field.
5527         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
5528
5529 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5530
5531         PR target/29090
5532         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
5533         Darwin64 ABI, for zero-sized objects.
5534
5535 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5536
5537         PR target/35491
5538         PR target/29090
5539
5540         Merge from Apple local 4.2.1.
5541         2005-05-11  Stan Shebs  <shebs@apple.com>
5542         Fix 64-bit varargs for Darwin (Radar 4028089).
5543         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
5544         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
5545         Add argument, add case for 8-byte register half-filled with a float.
5546         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
5547         single-precision floats specially.
5548
5549 2010-07-27  Ira Rosen  <irar@il.ibm.com>
5550
5551         PR tree-optimization/44152
5552         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
5553         complex numbers for further check.
5554         (vect_supported_load_permutation_p): Check nodes with
5555         complex numbers.
5556
5557 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5558
5559         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
5560         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
5561         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
5562         (LANG_HOOKS_INITIALIZER): Add new hooks.
5563         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
5564         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
5565         and complain_wrong_lang_p.  Update init_options prototype.
5566         * c-objc-common.c (c_initialize_diagnostics): First call
5567         c_common_initialize_diagnostics.
5568         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
5569         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
5570         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
5571         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
5572         (hook_uint_void_0): New.
5573         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
5574         (hook_uint_void_0): New.
5575         * opts-common.c (decode_cmdline_option,
5576         decode_cmdline_options_to_array): Also fill in canonical_option field.
5577         * opts.c (complain_wrong_lang): Use langhook to determine whether
5578         to complain instead of special-casing LTO.
5579         (decode_options): Separate lang_mask determination with
5580         option_lang_mask hook from call of init_options hook.
5581         * opts.h (struct cl_decoded_option): Add canonical_option.
5582
5583 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5584
5585         PR tree-optimization/45083
5586         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
5587
5588 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5589
5590         * postreload.c (reload_combine_recognize_const_pattern): Move test
5591         for limiting the insn movement to the right scope.
5592
5593         PR rtl-optimization/45051
5594         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
5595         than reg_mentioned_p.
5596
5597 2010-07-26  Richard Henderson  <rth@redhat.com>
5598
5599         PR target/44132
5600         * tree-emutls.c: New file.
5601         * Makefile.in (OBJS-common): Add it.
5602         * tree-pass.h (pass_ipa_lower_emutls): Declare.
5603         * passes.c (init_optimization_passes): Add it.
5604
5605         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
5606         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
5607         * expr.c (emutls_var_address): Delete.
5608         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
5609         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
5610         (emutls_finish): Delete.
5611         * toplev.c (compile_file): Don't call it.
5612         * tree.h (emutls_decl): Delete.
5613         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
5614         (emutls_finish, emutls_finalize_control_var): Delete.
5615         (emutls_object_type): Move to tree-emutls.c.
5616         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
5617         default_emutls_var_fields, get_emutls_object_type,
5618         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
5619         default_emutls_var_init): Likewise.
5620         (get_variable_section): Don't special case emutls.
5621         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
5622         default_elf_select_section, default_unique_section,
5623         default_encode_section_info): Likewise.
5624         * varpool.c (decide_is_variable_needed): Likewise.
5625         * gimple-iterator.c (update_call_edge_frequencies): New
5626         (gsi_insert_on_edge_immediate): Use it.
5627         (gsi_insert_seq_on_edge_immediate): Likewise.
5628         (gsi_commit_one_edge_insert): Likewise.
5629
5630         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
5631         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
5632         (x86_64_elf_unique_section): Likewise.
5633
5634 2010-07-26  Jan Hubicka  <jh@suse.cz>
5635
5636         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
5637         GTY((skip)).
5638
5639 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
5640
5641         * target.def (output_source_filename): New hook.
5642         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
5643         * doc/tm.texi: Regenerate.
5644         * toplev.c (output_file_directive) Remove function.
5645         * toplev.h (output_file_directive) Remove.
5646         * output.h (default_asm_output_source_filename,
5647         output_file_directive): Declare.
5648         * varasm.h (default_asm_output_source_filename,
5649         output_file_directive): New functions.
5650
5651         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5652         * config/mips/mips-protos.h (mips_output_filename): Remove.
5653         * config/mips/mips.c (mips_output_filename): Make Static.
5654         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5655
5656 2010-07-26  Richard Guenther  <rguenther@suse.de>
5657
5658         PR tree-optimization/43784
5659         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
5660         if the destination is used by the call.
5661
5662 2010-07-26  Richard Guenther  <rguenther@suse.de>
5663
5664         PR middle-end/45073
5665         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
5666         SSA updating on being in SSA form.
5667
5668 2010-07-26  Richard Guenther  <rguenther@suse.de>
5669
5670         PR middle-end/45056
5671         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
5672
5673 2010-07-26  Richard Guenther  <rguenther@suse.de>
5674
5675         PR tree-optimization/45071
5676         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
5677         adjust op->opcode.
5678
5679 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
5680
5681         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
5682         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
5683         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
5684         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
5685         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
5686         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
5687         save_r31, return_r31, save_interrupt, return_interrupt,
5688         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
5689         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
5690         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
5691         new ABI requirements.
5692         (save_r6_r9, L_callt_save_r6_r9): Remove.
5693         * config/v850/predicates.md (even_reg_operand, disp23_operand,
5694         const_float_1_operand const_float_0_operand): New Predicates.
5695         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
5696         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
5697         * config/v850/t-v850: Update multilibs for new target variants.
5698         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
5699         * config/v850/t-v850e: Likewise.
5700         * config/v850/v850.c (v850_issue_rate): New.
5701         (v850_strict_argument_naming): New.
5702         (function_arg): Modify to generate a different ABI.
5703         (print_operand): Update case 'z' to support float modes.
5704         (output_move_single): Modify to generate appropriate and better
5705         assembly.
5706         (v850_float_z_comparison_operator, v850_select_cc_mode,
5707         v850_float_nz_comparison_operator,  v850_gen_float_compare,
5708         v850_gen_compare): New functions to support comparison of float values.
5709         (ep_memory_offset): Add support for V850E2 targets.
5710         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
5711         (INTERRUPT_REGPARM_NUM): Remove.
5712         (compute_register_save_size): Add extra case to save/restore long call.
5713         (use_prolog_function): New function to support prologue.
5714         (expand_prologue): Add support for V850E2 targets and modified
5715         as per the current ABI requirements.
5716         (expand_epilogue): Likewise.
5717         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
5718         (construct_save_jarl): Likewise.
5719         (construct_dispose_instruction): Update as per the current ABI
5720         requirements.
5721         (construct_prepare_instruction): Likewise.
5722         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
5723         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
5724         (CPP_SPEC): Updated to support v850e2 targets.
5725         (STRICT_ALIGNMENT): Modified.
5726         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
5727         (FIXED_REGISTERS): Likewise.
5728         (CALL_USED_REGISTERS): Likewise.
5729         (CONDITIONAL_REGISTER_USAGE): Updated.
5730         (HARD_REGNO_MODE_OK): Updated.
5731         (reg_class): Updated to add even registers.
5732         (REG_CLASS_NAMES): Likewise.
5733         (REG_CLASS_CONTENTS): Likewise.
5734         (REGNO_REG_CLASS): Updated for CC registers.
5735         (REG_CLASS_FROM_LETTER): Added support for even registers.
5736         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
5737         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
5738         ARG_POINTER_REGNUM): Updated.
5739         (FUNCTION_ARG_ADVANCE): Define.
5740         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
5741         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
5742         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
5743         (GO_IF_LEGITIMATE_ADDRESS): Updated.
5744         (SELECT_CC_MODE): Define.
5745         (REGISTER_NAMES): Updated to add psw and fcc registers.
5746         (ADDITIONAL_REGISTER_NAMES): Updated.
5747         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
5748         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
5749         * config/v850/v850.md (define_constants): Define new constants.
5750         (type): Update store,bit1,macc,div,fpu and single attributes.
5751         (cpu): New attribute.
5752         (cc): Add set_z attribute.
5753         (unsign23byte_load, sign23byte_load, unsign23hword_load,
5754         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
5755         23word_store): New instructions for 23-bit displacement load and store.
5756         (movqi_internal, movhi_internal): Update the attributes.
5757         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
5758         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
5759         the attributes.
5760         (v850_tst1): Modified using CC_REGNUM.
5761         (tstsi): Remove.
5762         (cmpsi): Modified as define_expand from define_insn.
5763         (cmpsi_insn, cmpsf, cmpdf): New instructions.
5764         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
5765         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
5766         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
5767         one_cmplsi2): Clobber the CC_REGNUM register.
5768         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
5769         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
5770         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
5771         (setf_insn, set_z_insn, set_nz_insn): New instructions for
5772         v850e2v3 target.
5773         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
5774         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
5775         targets.
5776         (sasf_1, sasf_2): Remove.
5777         (sasf): New instruction.
5778         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
5779         targets. CC_REGNUM register is clobbered and attributes are
5780         updated.
5781         (branch_z_normal, branch_z_invert, branch_nz_normal,
5782         branch_nz_invert): New branch related instructions.
5783         (jump): Updated the attributes.
5784         (switch): Update to support new targets. CC_REGNUM register is
5785         clobbered and attributes are updated.
5786         (call_internal_short, call_internal_long, call_value_internal_short,
5787         call_value_internal_long): Updated the attributes.
5788         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
5789         clobbered and attributes are updated.
5790         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
5791         Update to support new targets. CC_REGNUM register is clobbered.
5792         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
5793         instructions.
5794         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
5795         are updated.
5796         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
5797         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
5798         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
5799         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
5800         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
5801         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
5802         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
5803         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
5804         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
5805         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
5806         point instructions defined for V850e2v3 target.
5807         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
5808         Add support for V850E2 targets and CC_REGNUM register is clobbered.
5809         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
5810         support for new targets.
5811         * config/v850/v850-modes.def: New file.
5812         * config/v850/v850.opt(mstrict-align): Remove.
5813         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
5814         mv850e2v3): New command line options for V850.
5815         * config.gcc: Update the newly added files.
5816         * doc/invoke.texi: Update the newly added command line options for
5817         V850 target.
5818
5819 2010-07-26  Richard Guenther  <rguenther@suse.de>
5820
5821         PR tree-optimization/45052
5822         * ipa-pure-const.c (check_stmt): Check volatileness.
5823
5824 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
5825
5826         PR target/44707
5827         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
5828         * config/sparc/sparc.c: Include reload.h.
5829         (legitimize_tls_address): Rename into...
5830         (sparc_legitimize_tls_address): ...this.
5831         (legitimize_pic_address): Rename into...
5832         (sparc_legitimize_pic_address): ...this.
5833         (sparc_expand_move): Adjust to above renaming.
5834         (sparc_tls_referenced_p): Likewise.
5835         (sparc_legitimize_tls_address): Likewise.
5836         (sparc_legitimize_pic_address): Likewise.
5837         (sparc_legitimize_address): Likewise.
5838         (sparc_output_mi_thunk): Likewise.
5839         (sparc_legitimize_reload_address): New global function.  Recognize
5840         (lo_sum (high ...) ...) patterns generated by earlier passes.
5841         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
5842
5843 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
5844
5845         PR target/44484
5846         * config/sparc/predicates.md (memory_reg_operand): Delete.
5847         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
5848         (*sync_compare_and_swap): Encode the address form in the pattern.
5849         (*sync_compare_and_swapdi_v8plus): Likewise.
5850
5851 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
5852
5853         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
5854         Streamline paragraph on compatibility with the system compiler.
5855
5856 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
5857
5858         PR middle-end/45035
5859         * alias.c (true_dependence_1): Fix thinko in merge of old
5860         true_dependence and canon_true_dependence.
5861
5862 2010-07-23  Jan Hubicka  <jh@suse.cz>
5863
5864         * lto-streamer-out.c (write_symbol): Fix visibilities of external
5865         references.
5866
5867 2010-07-23  Le-Chun Wu  <lcwu@google.com>
5868
5869         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
5870         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
5871         and an unnecessary assignment.
5872         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
5873         self-assign warning.
5874         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
5875         unnecessary self-init.
5876
5877 2010-07-23  Richard Guenther  <rguenther@suse.de>
5878
5879         PR lto/43071
5880         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
5881         for -flto and -fwhopr.
5882
5883 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
5884
5885         PR target/41943
5886         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
5887         (stmp-int-hdrs): Prefix/postfix headers by include_next.
5888         * config.gcc (user_headers_inc_next_pre): New.
5889         (user_headers_inc_next_post): Likewise.
5890         (*-w64-mingw*): Use for float.h post-fixing, and for
5891         stddef.h/stdarg.h pre-fixing by include_next.
5892         * configure.ac (user_headers_inc_next_post): New.
5893         (user_headers_inc_next_pre): New.
5894         * configure: Regenerated.
5895
5896 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5897
5898         * configure.ac: Don't disable TLS on Solaris 8/9 by default
5899         Set tga_func for Solaris 2/x86 resp. SPARC.
5900         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
5901         (LIB_THREAD_LDFLAGS_SPEC): Define.
5902         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
5903         * configure: Regenerate.
5904         * config.in: Regenerate.
5905         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
5906         -pthread, -threads, LIB_TLS_SPEC with -pthread.
5907         * doc/install.texi (Specific, *-*-solaris2*): Document use of
5908         alternate thread libraries on Solaris 8.
5909         Document TLS patch requirements.
5910         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
5911         Document tls.
5912
5913         PR target/18788
5914         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
5915         -shared.
5916
5917 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
5918
5919         * tree.h (struct tree_base): Add nameless_flag bitfield.
5920         (TYPE_NAMELESS, DECL_NAMELESS): Define.
5921         * omp-low.c (create_omp_child_function, scan_omp_parallel,
5922         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
5923         DECL_ARTIFICIAL where needed.
5924         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
5925         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
5926         has DECL_NAMELESS set.
5927
5928 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5929
5930         PR tree-optimization/44915
5931         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
5932         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
5933         (analyze_function): Likewise.
5934
5935 2010-07-23  Martin Jambor  <mjambor@suse.cz>
5936
5937         PR tree-optimization/44914
5938         * tree-sra.c (sra_modify_function_body): Return true if CFG was
5939         changed, add purging dead eh edges.
5940         (ipa_sra_modify_function_body): Return true if CFG was changed,
5941         simplify purging dead eh edges.
5942         (modify_function): Return true if CFG was changed.
5943         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
5944         was changed.
5945         (ipa_early_sra): Likewise.
5946
5947 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5948
5949         PR target/44290
5950         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
5951         if "naked".
5952         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5953         false if ! tree_versionable_function_p.
5954
5955 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
5956
5957         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
5958         * ipa-pure-const.c (special_builtlin_state): Remove
5959         BUILT_IN_ARGS_INFO case.
5960         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5961         * builtins.c (expand_builtin): Likewise.
5962         (expand_builtin_args_info): Remove.
5963         * doc/tm.texi (__builtin_args_info): Remove.
5964         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
5965         * doc/tm.text.in: Likewise.
5966
5967 2010-07-23  Richard Guenther  <rguenther@suse.de>
5968
5969         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
5970         (lto_symtab_merge_decls_2): Likewise.
5971         * tree-ssa.c (useless_type_conversion_p): Likewise.
5972         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5973         * gimple.c (gtc_visited2, gtc_ob2): Remove.
5974         (struct type_pair_d): Make same_p an array indexed by mode.
5975         Update comment.
5976         (lookup_type_pair): Update initialization.
5977         (struct sccs): Adjust same_p type.
5978         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
5979         Adjust.
5980         (print_gimple_types_stats): Likewise.
5981         * gimple.h (enum gtc_mode): New.
5982         (gimple_types_compatible_p): Adjust prototype.
5983
5984 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
5985
5986         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
5987         again after processing insn.
5988
5989 2010-07-23  Jie Zhang  <jie@codesourcery.com>
5990
5991         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
5992         proper words when !tree_versionable_function_p.
5993
5994 2010-07-23  Richard Guenther  <rguenther@suse.de>
5995
5996         PR tree-optimization/45037
5997         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
5998
5999 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6000
6001         * doc/extend.texi: Remove IP2K from the description of naked attribute.
6002         Add MCORE instead.
6003
6004 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6005
6006         PR lto/44992
6007         * lto-opts.c (lto_write_options): Add NULL file_data argument to
6008         lto_get_section_name.
6009         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
6010         * lto-streamer-out.c (produce_asm): Likewise.
6011         (copy_function): Likewise.
6012         (produce_symtab): Likewise.
6013         (produce_asm_for_decls): Likewise.
6014         * lto-streamer.c (lto_get_section_name): Add file_data argument.
6015         Rewrite to add random postfix to LTO sections.
6016         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
6017         (lto_get_section_name): Add file_data argument to prototype.
6018
6019 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6020
6021         * lto-section-in.c (lto_section_name): Synchronize names
6022         with lto_get_section_name.
6023
6024 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6025
6026         * lto-opts.c (lto_read_file_options): Check for missing section.
6027
6028 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6029
6030         * ira.c (check_allocation): Correctly handle the case where an allocno
6031         with two objects was allocated to a single reg.
6032
6033 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
6034
6035         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
6036         (is_widening_mult_p): Likewise.
6037         (convert_to_widen): Use them.
6038         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
6039         well as integer ones.
6040
6041 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
6042
6043         * alias.c (true_dependence_1): New function, merged version of
6044         true_dependence and canon_true_dependence.
6045         (true_dependence): Simplify.
6046         (canon_true_dependence): Simplify.
6047
6048 2010-07-22  Richard Henderson  <rth@redhat.com>
6049
6050         PR target/45027
6051         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
6052         of V4SFmode for the SSE saves; increase stack alignment if needed.
6053         (ix86_gimplify_va_arg): Don't increase stack alignment here.
6054
6055 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
6056
6057         PR bootstrap/45028
6058         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
6059         call cprop_find_used_regs again via note_uses.
6060
6061 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6062
6063         * alias.c (get_alias_set): Fix formatting issues.
6064
6065 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
6066
6067         PR middle-end/44878
6068         * stmt.c (expand_value_return):  Call promote_function_mode with
6069         a for_return argument of 2 when returning by reference.
6070
6071 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
6072
6073         PR debug/45024
6074         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
6075         unit DIE if we can find the scope DIE.
6076
6077 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6078
6079         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
6080         changed.  Initialize OBJECT_SUBWORD.
6081         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6082         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
6083         all callers changed.
6084         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
6085         (finish_allocno): Likewise.
6086         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
6087         (remove_low_level_allocnos): Likewise.
6088         (update_bad_spill_attribute): Likewise.
6089         (setup_min_max_allocno_live_range_point): Likewise.
6090         (sort_conflict_id_map): Likewise.
6091         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
6092         (ior_hard_reg_conflicts): New function.
6093         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
6094         (compress_conflict_vecs): Iterate over objects, not allocnos.
6095         (ira_add_live_range_to_object): New function.
6096         (object_range_compare_func): Renamed from allocno_range_compare_func.
6097         All callers changed.
6098         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
6099         subobjects, widen the min/max range of the lowest-order object to
6100         potentially include all other such low-order objects.
6101         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
6102         (check_allocation): Likewise.  Use more fine-grained tests for register
6103         conflicts.
6104         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
6105         allocno subobjects.
6106         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
6107         choices about which bits to set in each set.  Don't use
6108         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
6109         using the multiple sets we computed.
6110         (push_allocno_to_stack): Iterate over allocno subobjects.
6111         (all_conflicting_hard_regs_coalesced): New static function.
6112         (setup_allocno_available_regs_num): Use it.
6113         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
6114         subobjects.
6115         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
6116         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6117         by ALLOCNO_NUM_OBJECTS.
6118         (calculate_spill_cost): Likewise.
6119         (color_pass): Express if statement in a more normal way.
6120         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
6121         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
6122         (setup_slot_coalesced_allocno_live_ranges): Likewise.
6123         (allocno_reload_assign): Likewise.
6124         (ira_reassign_pseudos): Likewise.
6125         (fast_allocation): Likewise.
6126         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6127         (print_allocno_conflicts): Likewise.
6128         (ira_build_conflicts): Likewise.
6129         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
6130         callers changed.  Test subword 0 of each allocno for conflicts.
6131         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
6132         callers changed.  Iterate over allocno subobjects.
6133         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
6134         * ira-int.h (struct ira_allocno): New member: num_objects.
6135         Rename object to objects and change it into an array.
6136         (ALLOCNO_OBJECT): Add new argument N.
6137         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
6138         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
6139         (ior_hard_reg_conflicts): Declare.
6140         (ira_add_live_range_to_object): Declare.
6141         (ira_allocno_object_iterator): New.
6142         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
6143         (FOR_EACH_ALLOCNO_OBJECT): New macro.
6144         * ira-lives.c (objects_live): Renamed from allocnos_live; all
6145         uses changed.
6146         (allocnos_processed): New sparseset.
6147         (make_object_born): Renamed from make_allocno_born; take an
6148         ira_object_t argument.  All callers changed.
6149         (make_object_dead): Renamed from make_allocno_dead; take an
6150         ira_object_t argument.  All callers changed.
6151         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
6152         All callers changed.
6153         (mark_pseudo_regno_live): Iterate over allocno subobjects.
6154         (mark_pseudo_regno_dead): Likewise.
6155         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
6156         functions.
6157         (mark_ref_live): Detect subword accesses and call
6158         mark_pseudo_regno_subword_live as appropriate.
6159         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
6160         (process_bb_nodes_live): Deal with object-related updates first; set
6161         and test bits in allocnos_processed to avoid computing allocno
6162         statistics more than once.
6163         (create_start_finish_chains): Iterate over objects, not allocnos.
6164         (print_object_live_ranges): New function.
6165         (print_allocno_live_ranges): Use it.
6166         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
6167         and objects_live.
6168
6169 2010-07-22  Richard Guenther  <rguenther@suse.de>
6170
6171         PR lto/42451
6172         * gimple.c (gtc_next_dfs_num): New global.
6173         (struct sccs): Make value a union, add integer same_p member.
6174         (gtc_visit): New function.
6175         (gimple_types_compatible_p_1): New function, split out from ...
6176         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
6177         (iterative_hash_gimple_type): Adjust for sccs change.
6178
6179 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6180
6181         PR tree-optimization/44891
6182         * tree-sra.c: Include gimple-pretty-print.h.
6183         (replace_uses_with_default_def_ssa_name): Renamed to
6184         get_repl_default_def_ssa_name, return the new SSA name instead of
6185         replacing the old one.
6186         (sra_modify_assign): Dump a message when removing a load, if the LHS
6187         is an SSA_NAME, do not do any propagation, just set the RHS to a
6188         default definition SSA NAME, type convert if necessary.
6189         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
6190
6191 2010-07-22  Richard Guenther  <rguenther@suse.de>
6192
6193         PR tree-optimization/45017
6194         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
6195         TYPE_PRECISION of integral types in addition to size.
6196
6197 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6198
6199         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
6200         when no C library is specified.
6201
6202 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6203
6204         * ipa-prop.h (struct ipa_node_params): Updated comment.
6205         (struct ipa_edge_args): Likewise.
6206         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
6207
6208 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6209
6210         * cgraphunit.c (verify_edge_count_and_frequency): New function.
6211         (verify_cgraph_node): Verify frequencies of indirect edges.
6212         * tree-inline.c (tree_function_versioning): Update frequencies of
6213         indirect edges.
6214
6215 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6216
6217         PR target/43698
6218         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
6219         Set *arm_rev to be predicable.
6220
6221 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6222
6223         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
6224         (LINK_COMMAND_SPEC_A): New.
6225         (DSYMUTIL): New.
6226         (DSYMUTIL_SPEC): New.
6227         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
6228         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
6229
6230 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6231
6232         * calls.c (load_register_parameters): Move check for zero
6233         sized items so that only the call to
6234         mem_overlaps_already_clobbered_arg_p () is protected.
6235
6236 2010-07-22  Jan Hubicka  <jh@suse.cz>
6237
6238         * ipa-pure-const.c (varying_state): Break out from ...
6239         (get_function_state): ... here; always return varying_state
6240         when state would be NULL otherwise.
6241         (remove_node_data): Do not free varying state.
6242
6243 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6244
6245         PR bootstrap/44970
6246         PR middle-end/45009
6247         * postreload.c: Include "target.h".
6248         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
6249         into account.
6250         (fixup_debug_insns): Don't copy the rtx.
6251         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
6252         Don't copy when replacing.  Call fixup_debug_insns in the case where
6253         we merged one add with another.
6254         (reload_combine_recognize_pattern): Fail if there aren't any uses.
6255         Try harder to determine whether we're picking a valid index register.
6256         Don't set store_ruid for an insn we're going to scan in the
6257         next iteration.
6258         (reload_combine): Remove unused code.
6259         (reload_combine_note_use): When updating use information for
6260         an old insn, ignore a use that occurs after store_ruid.
6261         * Makefile.in (postreload.o): Update dependencies.
6262
6263         * function.c (record_hard_reg_sets): Restrict the previous change
6264         to cases where the incoming nominal mode is the same as the
6265         incoming promoted mode and everything happens in MODE_INT.
6266
6267 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6268
6269         PR debug/45015
6270         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
6271         ASM_OPERANDS_OUTPUT_IDX.
6272         (adjust_insn): For inline asm with multiple sets ensure first
6273         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
6274         the insn.
6275
6276 2010-07-21  Richard Henderson  <rth@redhat.com>
6277
6278         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
6279         comparison for avoiding xmm register saves.  Emit the xmm register
6280         saves explicitly.
6281         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
6282         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
6283         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
6284         Remove patterns and the associated splitters.
6285
6286 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
6287
6288         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
6289         and imagine parts of a complex, so that they can have the same
6290         base and fall into the same group.
6291
6292 2010-07-21  Richard Guenther  <rguenther@suse.de>
6293
6294         PR lto/45018
6295         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
6296         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
6297         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
6298
6299 2010-07-21  Martin Jambor  <mjambor@suse.cz>
6300
6301         PR tree-optimization/44900
6302         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
6303         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
6304
6305 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
6306
6307         PR middle-end/44738
6308         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
6309
6310 2010-07-21  Richard Guenther  <rguenther@suse.de>
6311
6312         PR middle-end/45013
6313         * tree-ssa.c (useless_type_conversion_p): Dispatch to
6314         gimple_types_compatible_p only when in lto.
6315         * gimple.c (gimple_types_compatible_p): Use canonical types
6316         to speed up comparison.
6317
6318 2010-07-21  Richard Guenther  <rguenther@suse.de>
6319
6320         * tree-flow.h (referenced_var): Move define ...
6321         * tree-flow-inline.h (referenced_var): ... here as an inline
6322         function.  Assert here ...
6323         * tree-dfa.c (referenced_var_lookup): ... instead of here.
6324         * tree-ssa.c (maybe_optimize_var): Check if the variable
6325         is in referenced vars.
6326         (execute_update_addresses_taken): Remove old broken check.
6327         * gimple-pretty-print.c (pp_points_to_solution): Use
6328         referenced_var_lookup.
6329         * tree-into-ssa.c (dump_decl_set): Likewise.
6330
6331 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR debug/45003
6334         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
6335         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
6336         ZERO_EXTEND here.
6337
6338 2010-07-20  Richard Henderson  <rth@redhat.com>
6339
6340         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
6341
6342 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6343
6344         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
6345         computing the sum of the stack pointer and a large constant.
6346         * config/arm/constraints.md (M): Remove superfluous parentheses.
6347         (Pc): New constraint.
6348
6349 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6350
6351         PR debug/45006
6352         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
6353         operand's type if exp is tcc_unary class tree.
6354
6355 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6356
6357         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
6358         Reverse sense of if_then_else condition.
6359
6360 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6361
6362         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
6363         * config/rs6000/rs6000.c (rs6000_override_options): Set
6364         rs6000_block_move_inline_limit appropriately.
6365         (expand_block_move): Use rs6000_block_move_inline_limit.
6366         * doc/invoke.texi (mblock-move-inline-limit): Document.
6367
6368 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6369
6370         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
6371         FROM and TO.  All callers changed.  Don't look for tracked uses,
6372         just scan the RTL for DEBUG_INSNs and substitute.
6373         (reload_combine_recognize_pattern): Call fixup_debug_insns.
6374         (reload_combine): Ignore DEBUG_INSNs.
6375
6376 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6377
6378         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
6379         depth to 8 from 5.
6380
6381         PR debug/45003
6382         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
6383         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
6384         instead of the result's type.
6385
6386 2010-07-20  Richard Guenther  <rguenther@suse.de>
6387
6388         PR tree-optimization/44977
6389         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
6390         SSA form.
6391
6392 2010-07-20  Richard Guenther  <rguenther@suse.de>
6393
6394         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
6395         (lto_symtab_merge_decls_2): Likewise.
6396         * gimple.h (gimple_types_compatible_p): Declare.
6397         * gimple.c (gimple_queue_type_fixup): Remove.
6398         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
6399         (gimple_compatible_complete_and_incomplete_type_p): New function.
6400         (gimple_types_compatible_p): Adjust.
6401         (gimple_register_type): Remove type fixup code.
6402         (print_gimple_types_stats): Adjust.
6403         (free_gimple_type_tables): Likewise.
6404         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
6405         * tree-ssa.c (useless_type_conversion_p): Likewise.
6406
6407 2010-07-20  Richard Guenther  <rguenther@suse.de>
6408
6409         PR middle-end/44971
6410         PR middle-end/44988
6411         * tree-ssa.c (maybe_optimize_var): New function split out from ...
6412         (execute_update_addresses_taken): ... here.
6413         (non_rewritable_mem_ref_base): Likewise.
6414         (execute_update_addresses_taken): Do not iterate over all referenced
6415         vars but just all local decls and parms.
6416         Properly check call and asm arguments and rewrite call arguments.
6417
6418 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
6419
6420         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
6421         to top level.
6422         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
6423         definitions ...
6424         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
6425         New macro.
6426         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
6427
6428 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6429
6430         * gengtype.c (start_root_entry): New function, split out from
6431         write_root.  Check whether V is null and raise an error if so.
6432         (write_field_root): Check for V being null.  Don't raise an error here;
6433         set V to null instead.
6434         (write_root): Update comment above function.  Use start_root_entry.
6435
6436 2010-07-19  Xinliang David Li  <davidxl@google.com>
6437
6438         PR testsuite/44932
6439         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
6440         def edges.
6441         (find_uninit_use): Add dump.
6442         (is_use_properly_guarded): Ditto.
6443         (warn_uninitialized_phi): Ditto.
6444         (execute_late_warn_uninitialized): Ditto.
6445
6446 2010-07-19  Richard Guenther  <rguenther@suse.de>
6447
6448         PR middle-end/44941
6449         * expr.c (emit_block_move_hints): Move zero size check first.
6450         Move asserts to more useful places.
6451         * calls.c (load_register_parameters): Check for zero size.
6452
6453 2010-07-19  Richard Henderson  <rth@redhat.com>
6454
6455         * tree-optimize.c (execute_all_early_local_passes): New.  Change
6456         cgraph_state here ...
6457         (execute_early_local_optimizations): ... not here.  Remove.
6458         (pass_early_local_passes, pass_all_early_optimizations): Update.
6459
6460 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
6461
6462         * postreload.c (reload_combine_closest_single_use): Ignore the
6463         number of uses for DEBUG_INSNs.
6464         (fixup_debug_insns): New static function.
6465         (reload_combine_recognize_const_pattern): Use it.  Don't let the
6466         main loop be affected by DEBUG_INSNs.
6467         Really disallow moving adds past a jump insn.
6468         (reload_combine_recognize_pattern): Don't update use_ruid here.
6469         (reload_combine_note_use): Do it here.
6470         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
6471
6472 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
6473
6474         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
6475         of a loop.
6476         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
6477
6478 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
6479
6480         * config/i386/darwin.h: Define darwin_emit_branch_islands.
6481         (TARGET_MACHO_BRANCH_ISLANDS): New.
6482         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
6483         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
6484         default value.
6485         * config/i386/i386.c (output_pic_addr_const): Do not emit
6486         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
6487         (x86_output_mi_thunk): Adjust symbol creation.
6488         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
6489         Remove out of date comment.
6490         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
6491         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6492         (DARWIN_GENERATE_ISLANDS): Ditto.
6493         (output_call):  Do not emit branch islands unless
6494         darwin_emit_branch_islands is set.
6495         * config/darwin.c: Declare darwin_emit_branch_islands.
6496         (machopic_indirect_data_reference): Do not emit unless
6497         darwin_emit_branch_islands is set.
6498         (darwin_override_options): Set darwin_emit_branch_islands
6499         where it is needed.
6500         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6501
6502 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6503
6504         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6505         sse_runtime, sse2_runtime.
6506
6507 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
6508
6509         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
6510         low half of a single-register SCmode return value before ORing
6511         it with the high half.
6512         * config/mips/mips16.S (MERGE_GPRf): Likewise.
6513
6514 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6515
6516         PR target/44805
6517         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
6518         on all targets.
6519
6520 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
6521
6522         PR target/42235
6523         * postreload.c (reload_cse_move2add): Return bool, true if anything.
6524         changed.  All callers changed.
6525         (move2add_use_add2_insn): Likewise.
6526         (move2add_use_add3_insn): Likewise.
6527         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
6528         reload_combine.
6529         (RELOAD_COMBINE_MAX_USES): Bump to 16.
6530         (last_jump_ruid): New static variable.
6531         (struct reg_use): New members CONTAINING_MEM and RUID.
6532         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
6533         (reload_combine_split_one_ruid, reload_combine_split_ruids,
6534         reload_combine_purge_insn_uses, reload_combine_closest_single_use
6535         reload_combine_purge_reg_uses_after_ruid,
6536         reload_combine_recognize_const_pattern): New static functions.
6537         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
6538         is true for our reg and that we have available index regs.
6539         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
6540         callers changed.  Use them to initialize fields in struct reg_use.
6541         (reload_combine): Initialize last_jump_ruid.  Be careful when to
6542         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
6543         Call reload_combine_recognize_const_pattern.
6544         (reload_combine_note_store): Update REAL_STORE_RUID field.
6545
6546 2010-07-16  Jason Merrill  <jason@redhat.com>
6547
6548         * Makefile.in (opts-common.o): Depend on options.h.
6549
6550 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
6551
6552         * tree.c (build_common_builtin_nodes): Use build_function_type_list
6553         instead of build_function_type.
6554         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
6555         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6556
6557 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
6558
6559         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
6560         do all the work.
6561         (rs6000_emit_int_cmove): Use function pointers for insn generation.
6562         Don't force values into registers unnecessarily.
6563         (output_isel): Assert that we're not given conditions we can't handle.
6564         Delete corresponding code.
6565         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
6566         scc_comparison_operator constraint.  Permit 0 for the consequent
6567         operand.  Permit any GPR for the alternative operand.
6568         (isel_unsigned_<mode>): Likewise.
6569
6570 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
6571
6572         PR target/44942
6573         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
6574         argument to const_tree.
6575         * config/i386/i386.c (function_arg_advance): If padding needs to be
6576         inserted before argument, increment cum->words by number of padding
6577         words as well.
6578         (contains_aligned_value_p): Change argument to const_tree.
6579         (ix86_function_arg_boundary): Change second argument to const_tree.
6580
6581 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
6582
6583         PR target/42235
6584         * function.c (record_hard_reg_sets): New static function.
6585         (assign_parm_setup_reg): If an optab for extending exists and the
6586         generated code clobbbers no hard regs, emit the insn directly and
6587         create a REG_EQUIV note.
6588
6589 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6590
6591         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
6592         TREE_CHAIN.
6593         * c-typeck.c (push_init_level): Likewise.
6594         (process_init_element): Likewise.
6595
6596 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
6597
6598         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
6599         (integer_three_node): Add.
6600         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
6601         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
6602         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
6603         of call build_int_cst.
6604         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
6605         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
6606         (find_interesting_uses_address): Ditto.
6607         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
6608         * tree-eh.c (lower_eh_constructs_2): Ditto.
6609         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
6610         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
6611         * expmed.c (expand_divmod): Ditto.
6612         * tree-mudflap.c (mx_register_decls): Ditto.
6613         * varasm.c (array_size_for_constructor): Ditto.
6614         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
6615         * c-parser.c (c_parser_postfix_expression): Ditto.
6616
6617 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
6618
6619         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
6620         New static variables.
6621         (reload_combine_recognize_pattern): New static function, broken out
6622         of reload_combine.
6623         (reload_combine): Use it.  Only initialize first_index_reg and
6624         last_index_reg once.
6625
6626 2010-07-15  Richard Henderson  <rth@redhat.com>
6627
6628         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
6629         when done.
6630
6631 2010-07-15  Jan Hubicka  <jh@suse.cz>
6632
6633         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
6634         comdats for broken gold.
6635         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
6636
6637 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6638
6639         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
6640
6641 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
6642
6643         * tree.h (DECL_CHAIN): Define.
6644         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
6645         * c-decl.c: Likewise.
6646         * c-parser.c: Likewise.
6647         * c-typeck.c: Likewise.
6648         * cfgexpand.c: Likewise.
6649         * cgraph.c: Likewise.
6650         * cgraphunit.c: Likewise.
6651         * combine.c: Likewise.
6652         * config/alpha/alpha.c: Likewise.
6653         * config/arm/arm.c: Likewise.
6654         * config/frv/frv.c: Likewise.
6655         * config/i386/i386.c: Likewise.
6656         * config/i386/winnt-cxx.c: Likewise.
6657         * config/ia64/ia64.c: Likewise.
6658         * config/iq2000/iq2000.c: Likewise.
6659         * config/mep/mep.c: Likewise.
6660         * config/mips/mips.c: Likewise.
6661         * config/pa/som.h: Likewise.
6662         * config/rs6000/rs6000.c: Likewise.
6663         * config/s390/s390.c: Likewise.
6664         * config/sh/sh.c: Likewise.
6665         * config/sh/symbian-cxx.c: Likewise.
6666         * config/sparc/sparc.c: Likewise.
6667         * config/spu/spu.c: Likewise.
6668         * config/stormy16/stormy16.c: Likewise.
6669         * config/vxworks.c: Likewise.
6670         * config/xtensa/xtensa.c: Likewise.
6671         * coverage.c: Likewise.
6672         * dbxout.c: Likewise.
6673         * dwarf2out.c: Likewise.
6674         * emit-rtl.c: Likewise.
6675         * expr.c: Likewise.
6676         * function.c: Likewise.
6677         * gimple-low.c: Likewise.
6678         * gimple-pretty-print.c: Likewise.
6679         * gimplify.c: Likewise.
6680         * integrate.c: Likewise.
6681         * ipa-inline.c: Likewise.
6682         * ipa-prop.c: Likewise.
6683         * ipa-split.c: Likewise.
6684         * ipa-struct-reorg.c: Likewise.
6685         * ipa-type-escape.c: Likewise.
6686         * langhooks.c: Likewise.
6687         * lto-cgraph.c: Likewise.
6688         * omp-low.c: Likewise.
6689         * stor-layout.c: Likewise.
6690         * tree-cfg.c: Likewise.
6691         * tree-complex.c: Likewise.
6692         * tree-dfa.c: Likewise.
6693         * tree-dump.c: Likewise.
6694         * tree-inline.c: Likewise.
6695         * tree-mudflap.c: Likewise.
6696         * tree-nested.c: Likewise.
6697         * tree-object-size.c: Likewise.
6698         * tree-pretty-print.c: Likewise.
6699         * tree-sra.c: Likewise.
6700         * tree-ssa-live.c: Likewise.
6701         * tree-ssa-loop-niter.c: Likewise.
6702         * tree-ssa-math-opts.c: Likewise.
6703         * tree-ssa-reassoc.c: Likewise.
6704         * tree-ssa-sccvn.c: Likewise.
6705         * tree-ssa-structalias.c: Likewise.
6706         * tree-tailcall.c: Likewise.
6707         * tree-vrp.c: Likewise.
6708         * tree.c: Likewise.
6709         * var-tracking.c: Likewise.
6710         * varasm.c: Likewise.
6711
6712 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6713
6714         PR target/44877
6715         * config/spu/spu.c (spu_expand_builtin_1): Allow references
6716         (as well as pointers) as argument to mask_for_load builtins.
6717
6718 2010-07-15  Richard Guenther  <rguenther@suse.de>
6719
6720         PR tree-optimization/44946
6721         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
6722         with accessing only padding properly.
6723
6724 2010-07-15  Jan Hubicka  <jh@suse.cz>
6725
6726         * ipa.c (function_and_variable_visibility): Variables marked as used
6727         should not be localized.
6728
6729 2010-07-15  Jan Hubicka  <jh@suse.cz>
6730
6731         * cgraph.c: Include lto-streamer.h
6732         (change_decl_assembler_name): Work when assembler name hash is at place.
6733         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
6734         be sure to rename it to avoid name clash.
6735         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
6736         Localize hidden symbols only when locally defined.
6737
6738 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
6739
6740         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
6741
6742 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
6743             Kevin F. Quinn  <kevquinn@gentoo.org>
6744
6745         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
6746         * common.opt: Add -Wtrampolines.
6747         * doc/invoke.texi: Add -Wtrampolines.
6748
6749 2010-07-15  Jie Zhang  <jie@codesourcery.com>
6750
6751         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
6752         cortex_a8_issue_ls.
6753
6754 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
6755
6756         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
6757         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
6758
6759 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6760
6761         * config/spu/spu.c (reg_names): Remove prototype.
6762         (call_used_regs): Likewise.
6763
6764 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
6765
6766         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
6767         "unused" with attribute "used".
6768         (__JCR_END__): Likewise.
6769         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
6770         "used" attribute.
6771         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
6772
6773 2010-07-14  Richard Guenther  <rguenther@suse.de>
6774
6775         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
6776         (maybe_fixup_decls): Likewise.
6777         (input_gimple_stmt): Do not fixup anything.
6778         * lto-streamer-out.c (output_gimple_stmt): Make sure all
6779         non-automatic variable uses are wrapped inside a MEM_REF.
6780
6781 2010-07-14  Richard Henderson  <rth@redhat.com>
6782
6783         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
6784         for functions.
6785         * varasm.c (assemble_variable): Remove early exit for functions;
6786         assert that we're given a variable.
6787
6788 2010-07-14  Jie Zhang  <jie@codesourcery.com>
6789
6790         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
6791         cortex_a8_default when neon_type is not none.
6792
6793 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6794
6795         * lower-subreg.c (subreg_context): New static bitmap.
6796         (decompose_multiword_subregs): Allocate and free it.
6797         (find_decomposable_subregs): Set a bit in it for a register that
6798         occurs in a subreg that changes mode but not size.
6799         (can_decompose_p): Test it instead of non_decomposable_context.
6800
6801 2010-07-14  Richard Guenther  <rguenther@suse.de>
6802
6803         PR tree-optimization/44824
6804         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
6805         is_gimple_mem_ref_addr.
6806         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
6807         non-decl_address_invariant_p addresses.
6808
6809 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6810
6811         * reload.c (find_reloads): Revert code to penalize small register
6812         classes that was brought in with the IRA merge.
6813
6814 2010-07-14  Richard Guenther  <rguenther@suse.de>
6815
6816         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
6817         as base of ARRAY_REFs.
6818
6819 2010-07-14  Richard Guenther  <rguenther@suse.de>
6820
6821         PR middle-end/44930
6822         * tree-pretty-print.c (do_niy): Do not print a newline.
6823
6824 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6825
6826         * ira-int.h (struct ira_object): New.
6827         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
6828         (struct ira_allocno): Remove members min, max,
6829         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
6830         conflict_allocnos_num and conflict_vec_p.  Add new member object.
6831         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
6832         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
6833         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
6834         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
6835         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
6836         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
6837         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
6838         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
6839         an ira_object_t rather than ira_allocno_t.  All uses changed.
6840         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
6841         contains a vector of ira_object_t; all uses changed.
6842         (ira_objects_num): Declare variable.
6843         (ira_create_allocno_object): Declare function.
6844         (ira_conflict_vector_profitable_p): Adjust prototype.
6845         (ira_allocate_conflict_vec): Renamed from
6846         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
6847         (ira_allocate_object_conflicts): Renamed from
6848         ira_allocate_allocno_conflicts; first arg now ira_object_t.
6849         (struct ira_object_iterator): New.
6850         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
6851         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
6852         to conflict_vec_p.  All uses changed.
6853         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
6854         Changed to take into account that conflicts are now tracked for
6855         objects.
6856         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
6857         Args changed to accept ira_object_t.  All uses changed.
6858         (allocnos_conflict_p): New static function.
6859         (collected_conflict_objects): Renamed from collected_allocno_objects;
6860         now a vector of ira_object_t.  All uses changed.
6861         (build_conflict_bit_table): Changed to take into account that
6862         conflicts are now tracked for objects.
6863         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
6864         (print_allocno_conflicts, ira_build_conflicts): Likewise.
6865         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
6866         setup_allocno_left_conflicts_size, allocno_reload_assign,
6867         fast_allocation): Likewise.
6868         * ira-lives.c (make_hard_regno_born, make_allocno_born)
6869         process_single_reg_class_operands, process_bb_node_lives): Likewise.
6870         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
6871         Likewise.
6872         * ira-build.c (ira_objects_num): New variable.
6873         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
6874         contains a vector of ira_object_t; all uses changed.
6875         (ira_object_id_map_vec): Corresponding change.
6876         (object_pool): New static variable.
6877         (initiate_allocnos): Initialize it.
6878         (finish_allocnos): Free it.
6879         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
6880         New functions.
6881         (ira_create_allocno): Don't set members that were removed.
6882         (ira_set_allocno_cover_class): Don't change conflict hard regs.
6883         (merge_hard_reg_conflicts): Changed to take into account that
6884         conflicts are now tracked for objects.
6885         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
6886         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
6887         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
6888         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
6889         setup_min_max_conflict_allocno_ids, ):  Likewise.
6890         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
6891         to ira_object_t; all callers changed.
6892         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
6893         to ira_object_t, all callers changed.
6894         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
6895         to ira_object_t, all callers changed.
6896         (conflict_check, curr_conflict_check_tick): Renamed from
6897         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
6898         changed.
6899         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
6900         arg changed to ira_object_t, all callers changed.
6901         (create_cap_allocno): Call ira_create_allocno_object.
6902         (finish_allocno): Free the corresponding object.
6903         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
6904         callers changed.  Adjusted for dealing with objects.
6905         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
6906         dealing with objects.
6907         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
6908
6909         * ira-int.h (struct live_range): Rename allocno member to object
6910         and change type to ira_object_t.
6911         (struct ira_object): New member live_ranges.
6912         (struct ira_allocno): Remove member live_ranges.
6913         (ALLOCNO_LIVE_RANGES): Remove.
6914         (OBJECT_LIVE_RANGES): New macro.
6915         (ira_create_live_range, ira_copy_live_range_list,
6916         ira_merge_live_range_list, ira_live_ranges_intersect_p,
6917         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
6918         * ira-build.c (ira_create_object): Initialize live ranges here.
6919         (ira_create_allocno): Not here.
6920         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
6921         changed to ira_object_t, all callers changed.
6922         (copy_live_range): Rename from copy_allocno_live_range, all callers
6923         changed.
6924         (ira_copy_live_range_list): Rename from
6925         ira_copy_allocno_live_range_list, all callers changed.
6926         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
6927         all callers changed.
6928         (ira_live_ranges_intersect_p): Rename from
6929         ira_allocno_live_ranges_intersect_p, all callers changed.
6930         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
6931         callers changed.
6932         (ira_finish_live_range_list): Rename from
6933         ira_finish_allocno_live_range_list, all callers changed.
6934         (change_object_in_range_list): Rename from change_allocno_in_range_list,
6935         last arg changed to ira_object_t, all callers changed.
6936         (finish_allocno): Changed to expect live ranges in the allocno's object.
6937         (move_allocno_live_ranges, copy_allocno_live_ranges,
6938         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
6939         ira_flattening, ira_build): Likewise.
6940         * ira-color.c (allocnos_have_intersected_live_ranges_p,
6941         slot_coalesced_allocno_live_ranges_intersect,
6942         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
6943         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6944         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
6945         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
6946         make_allocno_dead, create_start_finish_chains,
6947         remove_some_program_points_and_update_live_ranges,
6948         ira_debug_live_range_list): Likewise.
6949
6950         * ira-int.h (ira_object_conflict_iterator): Rename from
6951         ira_allocno_conflict_iterator.
6952         (ira_object_conflict_iter_init): Rename from
6953         ira_allocno_conflict_iter_init, second arg changed to
6954         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
6955         FOR_EACH_ALLOCNO_CONFLICT.
6956         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
6957         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
6958         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
6959         * ira-conflicts.c (print_allocno_conflicts): Likewise.
6960
6961 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
6962
6963         PR other/44874
6964         * tree-dump.c (dump_options): Add enumerate_locals entry.
6965         Add TDF_NOID exclusion to all entry.
6966         * tree-dump.h (dump_enumerated_decls): Declare.
6967         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
6968         Don't display type uid.
6969         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
6970         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
6971         * tree-ssa-live.c: Include gimple.h.
6972         (numbered_tree_d): New struct.
6973         (numbered_tree): New typedef.
6974         (DEF_VEC_O (numbered_tree): New.
6975         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
6976         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
6977         (dump_enumerated_decls): Likewise.
6978         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
6979         debug info and flag_dump_final_insns, call dump_enumerated_decls.
6980         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
6981         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
6982
6983 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
6984
6985         * expmed.h (MAX_BITS_PER_WORD): Move to...
6986         * defaults.h (MAX_BITS_PER_WORD): ...here.
6987
6988 2010-07-13  DJ Delorie  <dj@redhat.com>
6989
6990         * config/h8300/h8300.c (h8300_init_once): Default to
6991         -fstrict_volatile_bitfields.
6992
6993         * config/sh/sh.c (sh_override_options): Default to
6994         -fstrict_volatile_bitfields.
6995
6996         * config/rx/rx.c (rx_option_override): New.
6997
6998         * config/m32c/m32c.c (m32c_override_options): Default to
6999         -fstrict_volatile_bitfields.
7000
7001 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
7002
7003         * tree.h (build_function_call_expr): Delete.
7004         (build_call_expr_loc_array): New function.
7005         (build_call_expr_loc_vec): New function.
7006         * tree-flow.h (struct omp_region): Change type of ws_args field
7007         to a VEC.
7008         * builtins.c (build_function_call_expr): Delete.
7009         (build_call_expr_loc_array): New function.
7010         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
7011         (build_call_expr): Likewise.
7012         (build_call_expr_loc_vec): New function.
7013         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
7014         build_function_call_expr.
7015         * expr.c (emutls_var_address): Likewise.
7016         * varasm.c (emutls_common_1): Likewise.
7017         * omp-low.c (expand_omp_atomic_mutex): Likewise.
7018         (expand_omp_taskreg): Adjust for new type of region->ws_args.
7019         (get_ws_args_for): Return a VEC instead of a tree.
7020         (expand_parallel_call): Call build_call_expr_loc_vec instead of
7021         build_function_call_expr.
7022         * stor-layout.c (self_referential_size): Likewise.
7023
7024 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7025
7026         PR testsuite/44701
7027         * recog.c (constrain_operands): Allow side-effects in memory
7028         operands if either < or > constraint is used, rather than if
7029         both < and > is used.
7030
7031 2010-07-13  Richard Guenther  <rguenther@suse.de>
7032
7033         PR middle-end/44911
7034         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
7035         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
7036         without name.
7037
7038 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7039
7040         PR target/44761
7041         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
7042         to variable emited.
7043         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
7044         * config/sh/sh.md (symGOT_load): Likewise.
7045         (symDTPOFF2reg): Likewise.
7046         (symTPOFF2reg): Likewise.
7047
7048 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7049
7050         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
7051         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
7052
7053 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7054
7055         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
7056         explanation.
7057         Find ucontext_t * on Solaris 11.
7058         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
7059         Handle new Solaris 11 __sighndlr patterns.
7060
7061 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7062
7063         PR debug/44901
7064         * vec.h (VEC_block_remove): Fix comment.
7065         * tree-ssa-live.c (remove_unused_locals): Don't use
7066         VEC_unordered_remove on local_decls, instead replace a single
7067         vector element in each iteration if at least one element had
7068         to be removed and VEC_truncate at the end.
7069         * omp-low.c (expand_omp_taskreg): Likewise.
7070
7071 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7072
7073         * c-decl.c (finish_function): Fix typo in comment.
7074
7075 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
7076
7077         PR bootstrap/44921
7078         * postreload.c (move2add_use_add3_insn): Silence gcc warning
7079         on min_regno.
7080
7081 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
7082
7083         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
7084         (simplify_stmt_using_ranges): Use it.
7085
7086 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7087
7088         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
7089         member.  Do not mark as GTY(()).
7090         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
7091         (spu_builtin_decls): New static variable.
7092         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
7093         (spu_init_builtins): Likewise.
7094         (spu_builtin_mul_widen_even): Likewise.
7095         (spu_builtin_mul_widen_odd): Likewise.
7096         (spu_builtin_mask_for_load): Likewise.
7097         (spu_builtin_vec_perm): Likewise.
7098         * config/spu/spu-c.c: Include "target.h".
7099         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
7100         of using spu_builtins[].fndecl.
7101
7102 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7103
7104         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
7105         imply -minterlink-mips16.
7106
7107 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7108
7109         * config/mips/mips.h (mips16_globals): Declare.
7110         (SWITCHABLE_TARGET): Define.
7111         * config/mips/mips.c: Include target-globals.h.
7112         (mips16_globals): New variable.
7113         (mips_set_mips16_mode): Use save_target_globals and
7114         restore_target_globals instead of target_reinit.
7115
7116 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7117
7118         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
7119         to say that the function can be called more than once.
7120         * target-globals.c (save_target_globals): Call init_reg_sets.
7121
7122 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7123
7124         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
7125         * bb-reorder.h: New file.
7126         * bb-reorder.c (default_target_bb_reorder): New variable.
7127         (this_target_bb_reorder): New conditional variable.
7128         (uncond_jump_length): Redefine as a macro.
7129         * target-globals.h (this_target_bb_reorder): Declare.
7130         (target_globals): Add a bb_reorder field.
7131         (restore_target_globals): Copy the bb_reorder field to
7132         this_target_bb-reorder.
7133         * target-globals.c: Include bb-reorder.h.
7134         (default_target_globals): Initialize the bb_reorder field.
7135         (save_target_globals): Likewise.
7136
7137 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7138
7139         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
7140         * gcse.h: New file.
7141         * gcse.c: Include gcse.h.
7142         (default_target_gcse): New variable.
7143         (this_target_gcse): New conditional variable.
7144         (can_copy): Redefine as a macro.
7145         (can_copy_init_p): New macro.
7146         (can_copy_p): Remove can_copy_init_p.
7147         * target-globals.h (this_target_gcse): Declare.
7148         (target_globals): Add a gcse field.
7149         (restore_target_globals): Copy the gcse field to this_target_gcse.
7150         * target-globals.c: Include gcse.h.
7151         (default_target_globals): Initialize the gcse field.
7152         (save_target_globals): Likewise.
7153
7154 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7155
7156         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
7157         and x_ira_prohibited_mode_move_regs_initialized_p.
7158         (ira_prohibited_mode_move_regs): Redefine as a macro.
7159         * ira.c (ira_prohibited_mode_move_regs): Delete.
7160         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
7161
7162 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7163
7164         * reload.h (target_reload): Add x_cached_reg_save_code and
7165         x_cached_reg_restore_code.
7166         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
7167         Redefine as macros.
7168
7169 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7170
7171         * Makefile.in (target-globals.o): Depend on builtins.h.
7172         * builtins.h: New file.
7173         * builtins.c: Include builtins.h.
7174         (default_target_builtins): New variable.
7175         (this_target_builtins): New conditional variable.
7176         (apply_args_mode, apply_result_mode): Redefine as macros.
7177         * target-globals.h (this_target_builtins): Declare.
7178         (target_globals): Add a builtins field.
7179         (restore_target_globals): Copy the builtins field to
7180         this_target_builtins.
7181         * target-globals.c: Include builtins.h.
7182         (default_target_globals): Initialize the builtins field.
7183         (save_target_globals): Likewise.
7184
7185 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7186
7187         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
7188         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
7189         from expmed.c.
7190         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
7191         (alg_hash, alg_hash_used_p): New macros.
7192         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
7193         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
7194         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
7195
7196 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7197
7198         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
7199         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
7200         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
7201         (this_op_costs, costs_classes): Redefine as macros.
7202         (record_reg_classes): Don't take op_costs as a parameter.
7203         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
7204         (scan_one_insn): Update call to record_operand_costs.
7205
7206 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7207
7208         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
7209         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
7210         (target_ira_int): New structure.
7211         (default_target_ira_int): Declare.
7212         (this_target_ira_int): Declare as a variable or define as a macro.
7213         (ira_reg_mode_hard_regset, ira_register_move_cost)
7214         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
7215         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
7216         (prohibited_class_mode_regs, ira_important_classes_num)
7217         (ira_important_classes, ira_reg_class_intersect)
7218         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
7219         (ira_reg_class_union): Redefine as macros.
7220         * ira.h (target_ira): New structure.
7221         (default_target_ira): Declare.
7222         (this_target_ira): Declare as a variable or define as a macro.
7223         (ira_available_class_regs, ira_hard_regno_cover_class)
7224         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
7225         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
7226         (ira_class_hard_regs_num): Redefine as macros.
7227         * ira.c (default_target_ira, default_target_ira_int): New variables.
7228         (this_target_ira, this_target_ira_int): New conditional variables.
7229         (ira_reg_mode_hard_regset, ira_memory_move_cost)
7230         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
7231         (ira_class_subset_p): Delete.
7232         (no_unit_alloc_regs): Redefine as a macro.
7233         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
7234         (ira_class_hard_regs_num, ira_class_hard_reg_index)
7235         (ira_available_class_regs): Delete.
7236         (alloc_reg_class_subclasses): Redefine as a macro.
7237         (ira_reg_class_cover_size, ira_reg_class_cover)
7238         (ira_important_classes_num, ira_important_classes)
7239         (ira_important_class_nums, ira_class_translate): Delete.
7240         (cover_class_order): Document the variable's lifetime.
7241         (reorder_important_classes): Don't set ira_important_class_nums.
7242         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
7243         (ira_reg_class_super_classes, ira_reg_class_union)
7244         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
7245         Delete.
7246         (setup_reg_class_nregs): Don't set ira_max_regs.
7247         (prohibited_class_mode_regs): Delete.
7248         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
7249         (target_globals): Add ira and ira_int fields.
7250         (restore_target_globals): Copy the ira field to this_target_ira
7251         and the ira_int field to this_target_ira_int.
7252         * target-globals.c: Include ira-int.h.
7253         (default_target_globals): Initialize the ira and ira_int fields.
7254         (save_target_globals): Likewise.
7255
7256 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7257
7258         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
7259         * cfgloop.h (target_cfgloop): New structure.
7260         (default_target_cfgloop): Declare.
7261         (this_target_cfgloop): Declare as a variable or define as a macro.
7262         (target_avail_regs, target_clobbered_regs, target_res_regs)
7263         (target_reg_cost, target_spill_cost): Redefine as macros.
7264         * cfgloopanal.c (default_target_cfgloop): New variable.
7265         (this_target_cfgloop): New conditional variable.
7266         (target_avail_regs, target_clobbered_regs, target_res_regs)
7267         (target_reg_cost, target_spill_cost): Delete.
7268         * target-globals.h (this_target_cfgloop): Declare.
7269         (target_globals): Add a cfgloop field.
7270         (restore_target_globals): Copy the cfgloop field to
7271         this_target_cfgloop.
7272         * target-globals.c: Include cfgloop.h.
7273         (default_target_globals): Initialize the cfgloop field.
7274         (save_target_globals): Likewise.
7275
7276 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7277
7278         * regs.h (target_regs): Add x_direct_load, x_direct_store and
7279         x_float_extend_from_mem.
7280         (direct_load, direct_store, float_extend_from_mem): New macros.
7281         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
7282
7283 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7284
7285         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
7286         (target-globals.o): Depend on $(LIBFUNCS_H).
7287         * libfuncs.h: Include hashtab.h.
7288         (libfunc_entry): Moved from optabs.c.
7289         (target_libfuncs): New structure.
7290         (default_target_libfuncs): Declare.
7291         (this_target_libfuncs): Declare as a variable or define as a macro.
7292         (libfunc_table): Redefine as a macro.
7293         * optabs.c (default_target_libfuncs): New variable.
7294         (this_target_libfuncs): New conditional variable.
7295         (libfunc_table): Delete.
7296         (libfunc_entry): Moved to optabs.h.
7297         (libfunc_hash): Redefine as a macro.
7298         (hash_libfunc, eq_libfunc): Fix comments.
7299         (init_optabs): Use libfunc_hash to detect cases where the function
7300         has already been called.  Clear the hash table instead of
7301         recreating it.
7302         * target-globals.h (this_target_libfuncs): Declare.
7303         (target_globals): Add a libfuncs field.
7304         (restore_target_globals): Copy the libfuncs field to
7305         this_target_libfuncs.
7306         * target-globals.c: Include libfuncs.h.
7307         (default_target_globals): Initialize the libfuncs field.
7308         (save_target_globals): Likewise.
7309
7310 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7311
7312         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
7313         in all dependency lists.
7314
7315 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7316
7317         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
7318         * optabs.h (target_optabs): New structure.
7319         (default_target_optabs): Declare.
7320         (this_target_optabs): Declare as a variable or define as a macro.
7321         (optab_table, convert_optab_table, direct_optab_table): Redefine
7322         as macros.
7323         * optabs.c (default_target_optabs): New variable.
7324         (this_target_optabs): New conditional variable.
7325         (optab_table, convert_optab_table, direct_optab_table): Delete.
7326         * target-globals.h (this_target_optabs): Declare.
7327         (target_globals): Add a optabs field.
7328         (restore_target_globals): Copy the optabs field to
7329         this_target_optabs.
7330         * target-globals.c: Include expr.h and optabs.h.
7331         (default_target_globals): Initialize the optabs field.
7332         (save_target_globals): Likewise.
7333
7334 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7335
7336         * flags.h (target_flagstate): Add x_flag_excess_precision.
7337         (flag_excess_precision): Redefine as a macro.
7338         * toplev.c (flag_excess_precision): Delete.
7339
7340 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7341
7342         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
7343         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
7344         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
7345         (no_caller_save_reg_set): Redefine as a macro.
7346         * reload.h (target_reload): Add x_caller_save_initialized_p and
7347         x_regno_save_mode.
7348         (caller_save_initialized_p): Redefine as a macro.
7349         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
7350         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
7351         (regno_save_mode): Redefine as a macro.
7352
7353 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7354
7355         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
7356         * expmed.h: New file.
7357         * expmed.c (default_target_costs): New variable.
7358         (this_target_costs): New conditional variable.
7359         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
7360         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
7361         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
7362         * target-globals.h (this_target_expmed): Declare.
7363         (target_globals): Add a expmed field.
7364         (restore_target_globals): Copy the expmed field to
7365         this_target_expmed.
7366         * target-globals.c: Include expmed.h.
7367         (default_target_globals): Initialize the expmed field.
7368         (save_target_globals): Likewise.
7369
7370 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7371
7372         * Makefile.in (target-globals.o): Depend on reload.h.
7373         * reload.h (target_reload): New structure.
7374         (default_target_reload): Declare.
7375         (this_target_reload): Declare as a variable or define as a macro.
7376         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
7377         * reload1.c (default_target_reload): New variable
7378         (this_target_reload): New conditional variable.
7379         (indirect_symref_ok, double_reg_address_ok): Delete.
7380         (spill_indirect_levels): Redefine as a macro.
7381         * target-globals.h (this_target_reload): Declare.
7382         (target_globals): Add a reload field.
7383         (restore_target_globals): Copy the reload field to
7384         this_target_reload.
7385         * target-globals.c: Include hard-reg-set.h.
7386         (default_target_globals): Initialize the reload field.
7387         (save_target_globals): Likewise.
7388
7389 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7390
7391         * rtl.h (target_rtl): Add x_static_reg_base_value.
7392         * alias.c (static_reg_base_value): Redefine as a macro.
7393
7394 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7395
7396         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
7397         (GTFILES): Remove reginfo.c.
7398         * rtl.h (target_rtl): Add x_top_of_stack.
7399         (top_of_stack): New macro.
7400         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
7401         (top_of_stack): Delete.
7402
7403 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7404
7405         * regs.h (target_regs): Add x_hard_regs_of_mode,
7406         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
7407         x_may_move_out_cost and x_last_mode_for_init_move_cost.
7408         (have_regs_of_mode, contains_reg_of_mode, move_cost)
7409         (may_move_in_cost, may_move_out_cost): Redefine as macros.
7410         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
7411         (may_move_in_cost, may_move_out_cost): Delete.
7412         (last_mode_for_init_move_cost): Redefine as a macro.
7413
7414 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7415
7416         * hard-reg-set.h (target_hard_regs): New structure.
7417         (default_target_hard_regs): Declare.
7418         (this_target_hard_regs): Declare as a variable or define as a macro.
7419         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
7420         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
7421         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
7422         (reg_class_size, reg_class_subclasses, reg_class_subunion)
7423         (reg_class_superunion, reg_names): Redefine as macros.
7424         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
7425         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
7426         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
7427         (reg_class_contents, reg_class_size, reg_class_subclasses)
7428         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
7429         (default_target_hard_regs): New variable
7430         (this_target_hard_regs, initial_call_really_used_regs)
7431         (initial_reg_alloc_order): New conditional variables.
7432         (initial_reg_names): New variable.
7433         (init_reg_sets): Assert that initial_call_really_used_regs,
7434         initial_reg_alloc_order and initial_reg_names
7435         are all the same size as their variable counterparts.  Use them to
7436         initialize those counterparts.
7437         * target-globals.h (this_target_hard_regs): Declare.
7438         (target_globals): Add a hard_regs field.
7439         (restore_target_globals): Copy the hard_regs field to
7440         this_target_hard_regs.
7441         * target-globals.c: Include hard-reg-set.h.
7442         (default_target_globals): Initialize the hard_regs field.
7443         (save_target_globals): Likewise.
7444
7445 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7446
7447         * Makefile.in (target-globals.o): Depend on $(RTL_H).
7448         * rtl.h (target_rtl): New structure.
7449         (default_target_rtl): Declare.
7450         (this_target_rtl): Declare as a variable or define as a macro.
7451         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
7452         Redefine as macros.
7453         * emit-rtl.c (default_target_rtl): New variable.
7454         (this_target_rtl): New conditional variable.
7455         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
7456         (return_address_pointer_rtx): Delete.
7457         (initial_regno_reg_rtx): New macro.
7458         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
7459         (init_emit_regs): Likewise.
7460         * target-globals.h (this_target_rtl): Declare.
7461         (target_globals): Add a rtl field.
7462         (restore_target_globals): Copy the rtl field to this_target_rtl.
7463         * target-globals.c: Include rtl.h.
7464         (default_target_globals): Initialize the rtl field.
7465         (save_target_globals): Likewise.
7466
7467 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7468
7469         * Makefile.in (target-globals.o): Depend on $(REGS_H).
7470         * regs.h (target_reg_modes): New structure.
7471         (default_target_reg_modes): Declare.
7472         (this_target_reg_modes): Declare as a variable or define as a macro.
7473         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
7474         * reginfo.c (default_target_reg_modes): New variable.
7475         (this_target_reg_modes): New conditional variable.
7476         (hard_regno_nregs, reg_raw_mode): Delete.
7477         * target-globals.h (this_target_regs): Declare.
7478         (target_globals): Add a regs field.
7479         (restore_target_globals): Copy the regs field to this_target_regs.
7480         * target-globals.c: Include regs.h.
7481         (default_target_globals): Initialize the regs field.
7482         (save_target_globals): Likewise.
7483
7484 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7485
7486         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
7487         * doc/tm.texi: Regenerate.
7488         * Makefile.in (OBJS-common): Add target-globals.o.
7489         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
7490         and target-globals.h.
7491         (target-globals.o): New rule.
7492         (GTFILES): Include $(srcdir)/target-globals.h.
7493         * defaults.h (SWITCHABLE_TARGET): Define.
7494         * gengtype.c (open_base_files): Add target-globals.h to the
7495         list of includes.
7496         * target-globals.h: New file.
7497         * target-globals.c: Likewise.
7498
7499         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
7500         * flags.h (target_flag_state): New structure.
7501         (default_target_flag_state): Declare.
7502         (this_target_flag_state): Declare as a variable or define as a macro.
7503         (align_loops_log): Redefine as a macro.
7504         (align_loops_max_skip, align_jumps_log): Likewise.
7505         (align_jumps_max_skip, align_labels_log): Likewise.
7506         (align_labels_max_skip, align_functions_log): Likewise.
7507         * toplev.c (default_target_flag_state): New variable.
7508         (this_target_flag_state): New conditional variable.
7509         (align_loops_log): Delete.
7510         (align_loops_max_skip, align_jumps_log): Likewise.
7511         (align_jumps_max_skip, align_labels_log): Likewise.
7512         (align_labels_max_skip, align_functions_log): Likewise.
7513         * target-globals.h (this_target_flag_state): Declare.
7514         (target_globals): Add a flag_state field.
7515         (restore_target_globals): Copy the flag_state field to
7516         this_target_flag_state.
7517         * target-globals.c: Include flags.h.
7518         (default_target_globals): Initialize the flag_state field.
7519         (save_target_globals): Likewise.
7520
7521 2010-07-12  Jie Zhang  <jie@codesourcery.com>
7522
7523         * postreload.c (reg_symbol_ref[]): New.
7524         (move2add_use_add2_insn): New.
7525         (move2add_use_add3_insn): New.
7526         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
7527         (move2add_note_store): Likewise.
7528
7529 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
7530
7531         PR rtl-optimization/44752
7532         * genautomata.c (main): Don't emit an empty file even if there
7533         is no automaton.
7534
7535 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7536
7537         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
7538         ix86_solaris_return_in_memory.
7539         * config/i386-protos.h: Reflect this.
7540         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
7541         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
7542         Move ...
7543         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
7544
7545 2010-07-12  Jie Zhang  <jie@codesourcery.com>
7546
7547         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
7548         align the stack when it's going to be saved.
7549
7550 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7551
7552         PR pch/14940
7553         * config/host-solaris.c (mmap_fixed): New function.
7554         (sol_gt_pch_get_address): Use it.
7555         (sol_gt_pch_use_address): Likewise.
7556
7557 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7558
7559         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
7560         pentiumpro on Solaris 8 and 9/x86.
7561         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
7562         Document SSE/SSE2 support.
7563         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
7564
7565 2010-07-12  Andi Kleen  <ak@linux.intel.com>
7566
7567         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
7568         instead of gcc_assert to print better error message for multiple
7569         prevailing defs.
7570
7571 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
7572
7573         * config/i386/i386.c (ix86_asm_output_function_label): Change format
7574         string placeholder from 0x%x to %#x.
7575         (ix86_code_end): Use putc to output '\n'.
7576         (ix86_print_operand) <case ';'>: Use putc to output ';'.
7577
7578 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
7579
7580         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
7581         in directive -export.
7582
7583 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
7584
7585         * reginfo.h (reg_classes_intersect_p): Change arguments type to
7586         reg_class_t.
7587         * rtl.h (reg_classes_intersect_p): Adjust prototype.
7588
7589         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7590         Remove macros.
7591         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
7592         rs6000_memory_move_cost): Remove
7593         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
7594         TARGET_MEMORY_MOVE_COST): Define.
7595         (rs6000_register_move_cost): Make static. Change arguments type from
7596         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
7597         (rs6000_memory_move_cost): Make static. Change arguments type from
7598         'enum reg_class' to reg_class_t.
7599
7600 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
7601
7602         PR middle-end/42505
7603         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
7604         lookup code into....
7605         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
7606         new functions.
7607         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
7608         * cfgloopanal.c (target_clobbered_regs): Define.
7609         (init_set_costs): Initialize target_clobbered_regs.
7610         (estimate_reg_pressure_cost): Add call_p argument.  When true,
7611         adjust the number of available registers to exclude the
7612         call-clobbered registers.
7613         * cfgloop.h (target_clobbered_regs): Declare.
7614         (estimate_reg_pressure_cost): Adjust declaration.
7615         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
7616         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
7617         (determine_set_costs): Dump target_clobbered_regs.
7618         (loop_body_includes_call): New function.
7619         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
7620         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
7621         call_p flag through.
7622         (best_gain_for_invariant): Likewise.
7623         (find_invariants_to_move): Likewise.
7624         (move_single_loop_invariants): Likewise, using already-computed
7625         has_call field.
7626
7627 2010-07-10  Richard Guenther  <rguenther@suse.de>
7628             Joern Rennecke  <joern.rennecke@embecosm.com>
7629
7630         PR debug/44832
7631         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
7632         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
7633         unless they have DECL_IGNORED_P set.
7634
7635 2010-07-10  Richard Guenther  <rguenther@suse.de>
7636
7637         PR lto/44889
7638         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
7639         helper function.
7640         (gimple_types_compatible_p): Similar to pointed-to
7641         types allow and merge a mix of complete and incomplete aggregate.
7642         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
7643         (iterative_hash_gimple_type): Adjust for that.
7644
7645 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
7646
7647         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
7648
7649 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
7650
7651         PR objc/44140
7652         * config/darwin.c (output_objc_section_asm_op): Save and restore
7653         section when outputting ObjC section list.
7654
7655 2010-07-09  Jan Hubicka  <jh@suse.cz>
7656
7657         * lto-streamer-out.c (produce_symtab): Do not write alias
7658         cgraph/varpool nodes.
7659
7660 2010-07-09  Jan Hubicka  <jh@suse.cz>
7661
7662         * tree-inline.c (declare_return_variable): Fix ICE while
7663         inlining DECL_BY_VALUE function not in SSA form
7664
7665 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
7666
7667         PR tree-optimization/44576
7668         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
7669         New.  Pull out from is_loop_prefetching_profitable to implement
7670         the trip count to ahead ratio heuristic.
7671         (mem_ref_count_reasonable_p): New.  Pull out from
7672         is_loop_prefetching_profitable to implement the instruction to
7673         memory reference ratio heuristic.  Also consider not reasonable if
7674         the memory reference count is above a threshold (to avoid
7675         explosive compilation time.
7676         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
7677         is_loop_prefetching_profitable to implement the instruction to
7678         prefetch ratio heuristic.
7679         (is_loop_prefetching_profitable): Removed.
7680         (loop_prefetch_arrays): Distribute the cost analysis across the
7681         function to allow early exit of the prefetch analysis.
7682         is_loop_prefetching_profitable is splitted into three functions,
7683         with each one called as early as possible.
7684         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
7685         number of memory references in a loop is considered too many.
7686
7687 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
7688
7689         * reload.c (find_reloads): Don't clear badop if we have a winreg
7690         alternative, but not win, and the class only has fixed regs.
7691         * hard-reg-set.h (class_only_fixed_regs): Declare.
7692         * reginfo.c (class_only_fixed_regs): New array.
7693         (init_reg_sets_1): Initialize it.
7694         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
7695         discourage alternatives using the stack pointer.
7696
7697         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
7698
7699         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
7700
7701         * config/arm/arm.md (cbranchqi4): Fix array size.
7702         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
7703         calculating length.
7704
7705 2010-07-09  Richard Guenther  <rguenther@suse.de>
7706
7707         * gimple.c (struct type_fixup_s): New struct and VEC type.
7708         (gimple_register_type_fixups): New static global.
7709         (gimple_queue_type_fixup): New function.
7710         (gimple_types_compatible_p): Queue type fixups instead of
7711         applying them here.
7712         (gimple_register_type): Apply queued fixups for the
7713         canonical type.  Empty the type fixup queue.
7714
7715 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7716
7717         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
7718         * configure: Regenerate.
7719         * config.in: Ditto.
7720
7721 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
7722             Denys Vlasenko  <dvlasenk@redhat.com>
7723             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7724
7725         PR tree-optimization/28632
7726         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
7727         (extract_range_from_binary_expr): Further optimize
7728         BIT_AND_EXPR and BIT_IOR_EXPR.
7729
7730 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
7731
7732         * tree-if-conv.c (fold_or_predicates): New.
7733         (add_to_predicate_list): Call it.
7734
7735 2010-07-09  Richard Guenther  <rguenther@suse.de>
7736
7737         PR middle-end/44890
7738         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
7739         if base is a pointer.
7740         * tree-cfg.c (verify_expr): Update MEM_REF checking.
7741
7742 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
7743
7744         PR target/44877
7745         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
7746         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
7747         builtin mask for load/store builtins.
7748
7749 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7750
7751         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
7752         for "lock addl".
7753         * configure: Regenerate.
7754         * config/i386/i386.c (ix86_print_operand) <case ';'>:
7755         Remove TARGET_MACHO.
7756
7757 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
7758
7759         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
7760         default ISA flags.
7761         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
7762
7763 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
7764
7765         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
7766
7767 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
7768
7769         * config/picochip/picochip.md (commsTestPort): Emit more
7770         efficient sequence for tstport instruction.
7771
7772 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
7773
7774         * config/i386/i386.c (ix86_veclib_handler): Make static.
7775
7776 2010-07-09  Richard Guenther  <rguenther@suse.de>
7777
7778         PR tree-optimization/44852
7779         * tree-ssa-alias.c: Include toplev.h for exact_log2.
7780         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
7781         in MEM_REF.
7782         (indirect_refs_may_alias_p): Likewise.
7783         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
7784
7785 2010-07-09  Richard Guenther  <rguenther@suse.de>
7786
7787         PR tree-optimization/44882
7788         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
7789         sets do conflict.
7790         (vectorizable_load): Likewise.
7791
7792 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
7793
7794         PR target/40657
7795         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
7796         All callers changed.
7797         Handle the case when we're called for the epilogue.
7798         (thumb_unexpanded_epilogue): Use it.
7799         (thumb1_expand_epilogue): Likewise.
7800
7801 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
7802
7803         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
7804         both ranges are range_int_cst_p with non-negative minimum,
7805         try harder to derive smaller range.
7806
7807 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7808
7809         * genrecog.c: Include diagnostic-core.h before toplev.h.
7810         * genoutput.c: Likewise.
7811         * genextract.c: Likewise.
7812         * genautomata.c: Likewise.
7813         * genemit.c: Likewise.
7814         * genpeep.c: Likewise.
7815         * genattrtab.c: Likewise.
7816         * genconditions.c: Likewise.
7817         * genpreds.c: Likewise.
7818
7819 2010-07-08  Andi Kleen  <ak@linux.intel.com>
7820
7821         * lto-section-in.c (lto_section_name): Add missing comma.
7822
7823 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
7824
7825         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
7826         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
7827         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
7828         (ia64_override_options): Rename to...
7829         (ia64_option_override): ... this one. Make static.
7830
7831 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7832
7833         PR middle-end/44843
7834         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
7835         pointed-to type of the offset in a MEM_REF to compute the alignment.
7836
7837 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
7838
7839         * final.c (final_scan_insn): Replace
7840         TARGET_UNWIND_INFO macro check by unwind_emit
7841         hook NULL check.
7842         * targhooks.c (default_unwind_emit): Removed.
7843         * targhooks.h (default_unwind_emit): Likewise.
7844         * target.def (unwind_emit): Set default value to NULL.
7845
7846         * config/i386/i386-protos.h (ix86_asm_output_function_label):
7847         New prototype.
7848         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
7849         for NULL fntype argument and allow 64-bit targets.
7850         (ix86_asm_output_function_label): New function.
7851         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
7852         (ix86_handle_fndecl_attribute): Likewise.
7853         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
7854         * doc/doc/tm.texi: Regenerated.
7855         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
7856         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
7857         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
7858         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
7859         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
7860         * config/elfos.h: Likewise.
7861         * config/i386/cygming.h: Likewise.
7862         * config/netbsd-aout.h: Likewise.
7863         * config/openbsd.h: Likewise.
7864         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
7865         by ix86_asm_output_function_label function call.
7866         * varasm.c (assemble_start_function): Use
7867         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
7868
7869 2010-07-08  Jan Hubicka  <jh@suse.cz>
7870
7871         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
7872         New function.
7873         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
7874         Declare.
7875         * ipa-cp.c (ipcp_estimate_growth): Use it.
7876         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
7877         Likewise.
7878
7879 2010-07-08  Jan Hubicka  <jh@suse.cz>
7880
7881         * tree-inline.c (declare_return_variable): Allocate annotation for new
7882         temporary.
7883
7884 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
7885
7886         PR tree-optimization/44710
7887         * tree-if-conv.c (parse_predicate): New.
7888         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
7889         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
7890
7891 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
7892
7893         * common.opt (ftree-loop-if-convert): New flag.
7894         * doc/invoke.texi (ftree-loop-if-convert): Documented.
7895         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
7896         when flag_tree_loop_if_convert is set.
7897
7898 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
7899
7900         * config/i386/i386.c: Use short syntax for function calls
7901         through function pointers.
7902         * config/i386/i386.md: Ditto.
7903
7904 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7905
7906         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
7907
7908 2010-07-08  Richard Guenther  <rguenther@suse.de>
7909
7910         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
7911         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
7912
7913 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
7914
7915         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
7916         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
7917         (loc_list_from_tree): Likewise.
7918         (output_loc_operands): Handle outputting DW_OP_const[48]u
7919         with loc->dtprel set.
7920         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
7921
7922 2010-07-08  Jan Hubicka  <jh@suse.cz>
7923
7924         * ipa.c: Include pointer-set.h
7925         (cgraph_externally_visible_p): New attribute ALIASED;
7926         when in LTO, hidden symbols are local unless they are aliased.
7927         (function_and_variable_visibility): Compute aliased nodes;
7928         handle LTO and hidden symbol on functions and vars.
7929         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
7930         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
7931
7932 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7933
7934         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7935         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7936         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7937         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7938         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7939         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
7940         (ix86_gen_probe_stack_range): Likewise.
7941         (override_options): Set them.
7942         (ix86_target_stack_probe): New function.
7943         (ix86_compute_frame_layout): Force use of push instructions to
7944         save registers if stack checking with probes is enabled.
7945         (get_scratch_register_on_entry): New function.
7946         (release_scratch_register_on_entry): Likewise.
7947         (ix86_adjust_stack_and_probe): Likewise.
7948         (output_adjust_stack_and_probe): Likewise.
7949         (ix86_emit_probe_stack_range): Likewise.
7950         (output_probe_stack_range): Likewise.
7951         (ix86_expand_prologue): Emit stack checking code if static built-in
7952         stack checking is enabled.
7953         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
7954         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
7955         (output_adjust_stack_and_probe): Likewise.
7956         (output_probe_stack_range): Likewise.
7957         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7958         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
7959         TARGET_STACK_PROBE.
7960         (allocate_stack_worker_64): Likewise.
7961         (allocate_stack): Likewise.
7962         (adjust_stack_and_probe): New insn.
7963         (probe_stack_range): Likewise.
7964
7965 2010-07-08  Richard Guenther  <rguenther@suse.de>
7966
7967         PR tree-optimization/44831
7968         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
7969         a MEM_REF preserving TBAA info of the original dereference.
7970         Dereference the original pointer if the address is not invariant.
7971         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
7972         at least one invariant address that we are going to dereference.
7973
7974 2010-07-08  Richard Guenther  <rguenther@suse.de>
7975
7976         PR tree-optimization/44861
7977         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
7978         information when building MEM_REFs.
7979         (vectorizable_load): Likewise.
7980         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
7981
7982 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7983
7984         * config/sol2-c.c: Do not include diagnostic-core.h.
7985
7986 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7987
7988         PR bootstrap/44768
7989         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
7990         with respect to current_function_decl. Pass decl of the function.
7991         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
7992         * ipa-inline.c (compute_inline_parameters): Pass decl to
7993         estimated_stack_frame_size.
7994
7995 2010-07-08  Richard Guenther  <rguenther@suse.de>
7996
7997         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
7998         New function.
7999         (valueize_refs): Call it.
8000
8001 2010-07-08  Richard Guenther  <rguenther@suse.de>
8002
8003         PR rtl-optimization/44838
8004         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
8005         SSA form do not use pointer equivalence.
8006
8007 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8008
8009         * dwarf2out.c (AT_linkage_name): Delete.
8010         (add_linkage_attr): New function.
8011         (add_linkage_name): Call it to emit the linkage attribute.
8012         (dwarf2out_finish): Likewise.
8013         (move_linkage_attr): Explicitly accept both attribute variants.
8014
8015 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8016
8017         * toplev.h: Do not include diagnostic-core.h.
8018         Include diagnostic-core.h in every file that includes toplev.h.
8019         * c-tree.h: Do not include toplev.h.
8020         * pretty-print.h: Update comment.
8021         * Makefile.in: Update dependencies.
8022         * alias.c: Include diagnostic-core.h in every file that includes
8023         toplev.h.
8024         * attribs.c: Likewise.
8025         * auto-inc-dec.c: Likewise.
8026         * bb-reorder.c: Likewise.
8027         * bt-load.c: Likewise.
8028         * caller-save.c: Likewise.
8029         * calls.c: Likewise.
8030         * cfg.c: Likewise.
8031         * cfganal.c: Likewise.
8032         * cfgbuild.c: Likewise.
8033         * cfgcleanup.c: Likewise.
8034         * cfghooks.c: Likewise.
8035         * cfgloop.c: Likewise.
8036         * combine.c: Likewise.
8037         * config/alpha/alpha.c: Likewise.
8038         * config/arc/arc.c: Likewise.
8039         * config/arm/arm.c: Likewise.
8040         * config/arm/pe.c: Likewise.
8041         * config/avr/avr.c: Likewise.
8042         * config/bfin/bfin.c: Likewise.
8043         * config/cris/cris.c: Likewise.
8044         * config/crx/crx.c: Likewise.
8045         * config/darwin-c.c: Likewise.
8046         * config/darwin.c: Likewise.
8047         * config/fr30/fr30.c: Likewise.
8048         * config/frv/frv.c: Likewise.
8049         * config/h8300/h8300.c: Likewise.
8050         * config/host-darwin.c: Likewise.
8051         * config/i386/i386.c: Likewise.
8052         * config/i386/netware.c: Likewise.
8053         * config/i386/nwld.c: Likewise.
8054         * config/i386/winnt-cxx.c: Likewise.
8055         * config/i386/winnt-stubs.c: Likewise.
8056         * config/i386/winnt.c: Likewise.
8057         * config/ia64/ia64-c.c: Likewise.
8058         * config/ia64/ia64.c: Likewise.
8059         * config/iq2000/iq2000.c: Likewise.
8060         * config/lm32/lm32.c: Likewise.
8061         * config/m32c/m32c-pragma.c: Likewise.
8062         * config/m32c/m32c.c: Likewise.
8063         * config/m32r/m32r.c: Likewise.
8064         * config/m68hc11/m68hc11.c: Likewise.
8065         * config/m68k/m68k.c: Likewise.
8066         * config/mcore/mcore.c: Likewise.
8067         * config/mep/mep-pragma.c: Likewise.
8068         * config/mep/mep.c: Likewise.
8069         * config/mmix/mmix.c: Likewise.
8070         * config/mn10300/mn10300.c: Likewise.
8071         * config/moxie/moxie.c: Likewise.
8072         * config/pa/pa.c: Likewise.
8073         * config/pdp11/pdp11.c: Likewise.
8074         * config/picochip/picochip.c: Likewise.
8075         * config/rs6000/rs6000-c.c: Likewise.
8076         * config/rs6000/rs6000.c: Likewise.
8077         * config/rx/rx.c: Likewise.
8078         * config/s390/s390.c: Likewise.
8079         * config/score/score.c: Likewise.
8080         * config/score/score3.c: Likewise.
8081         * config/score/score7.c: Likewise.
8082         * config/sh/sh.c: Likewise.
8083         * config/sh/symbian-base.c: Likewise.
8084         * config/sh/symbian-c.c: Likewise.
8085         * config/sh/symbian-cxx.c: Likewise.
8086         * config/sol2-c.c: Likewise.
8087         * config/sol2.c: Likewise.
8088         * config/sparc/sparc.c: Likewise.
8089         * config/spu/spu.c: Likewise.
8090         * config/stormy16/stormy16.c: Likewise.
8091         * config/v850/v850-c.c: Likewise.
8092         * config/v850/v850.c: Likewise.
8093         * config/vax/vax.c: Likewise.
8094         * config/vxworks.c: Likewise.
8095         * config/xtensa/xtensa.c: Likewise.
8096         * convert.c: Likewise.
8097         * cse.c: Likewise.
8098         * cselib.c: Likewise.
8099         * dbgcnt.c: Likewise.
8100         * dbxout.c: Likewise.
8101         * ddg.c: Likewise.
8102         * dominance.c: Likewise.
8103         * emit-rtl.c: Likewise.
8104         * explow.c: Likewise.
8105         * expmed.c: Likewise.
8106         * fixed-value.c: Likewise.
8107         * fold-const.c: Likewise.
8108         * fwprop.c: Likewise.
8109         * gcse.c: Likewise.
8110         * ggc-common.c: Likewise.
8111         * ggc-page.c: Likewise.
8112         * ggc-zone.c: Likewise.
8113         * gimple-low.c: Likewise.
8114         * gimplify.c: Likewise.
8115         * graph.c: Likewise.
8116         * haifa-sched.c: Likewise.
8117         * ifcvt.c: Likewise.
8118         * implicit-zee.c: Likewise.
8119         * integrate.c: Likewise.
8120         * ira-build.c: Likewise.
8121         * ira-color.c: Likewise.
8122         * ira-conflicts.c: Likewise.
8123         * ira-costs.c: Likewise.
8124         * ira-lives.c: Likewise.
8125         * ira.c: Likewise.
8126         * lists.c: Likewise.
8127         * loop-doloop.c: Likewise.
8128         * loop-iv.c: Likewise.
8129         * lto-opts.c: Likewise.
8130         * lto-symtab.c: Likewise.
8131         * main.c: Likewise.
8132         * modulo-sched.c: Likewise.
8133         * optabs.c: Likewise.
8134         * params.c: Likewise.
8135         * plugin.c: Likewise.
8136         * postreload-gcse.c: Likewise.
8137         * postreload.c: Likewise.
8138         * predict.c: Likewise.
8139         * profile.c: Likewise.
8140         * real.c: Likewise.
8141         * regcprop.c: Likewise.
8142         * reginfo.c: Likewise.
8143         * regmove.c: Likewise.
8144         * reorg.c: Likewise.
8145         * resource.c: Likewise.
8146         * rtl.c: Likewise.
8147         * rtlanal.c: Likewise.
8148         * sched-deps.c: Likewise.
8149         * sched-ebb.c: Likewise.
8150         * sched-rgn.c: Likewise.
8151         * sdbout.c: Likewise.
8152         * sel-sched-dump.c: Likewise.
8153         * sel-sched-ir.c: Likewise.
8154         * simplify-rtx.c: Likewise.
8155         * stmt.c: Likewise.
8156         * stor-layout.c: Likewise.
8157         * store-motion.c: Likewise.
8158         * targhooks.c: Likewise.
8159         * tree-cfg.c: Likewise.
8160         * tree-cfgcleanup.c: Likewise.
8161         * tree-dump.c: Likewise.
8162         * tree-eh.c: Likewise.
8163         * tree-inline.c: Likewise.
8164         * tree-nomudflap.c: Likewise.
8165         * tree-object-size.c: Likewise.
8166         * tree-optimize.c: Likewise.
8167         * tree-outof-ssa.c: Likewise.
8168         * tree-phinodes.c: Likewise.
8169         * tree-profile.c: Likewise.
8170         * tree-ssa-ccp.c: Likewise.
8171         * tree-ssa-coalesce.c: Likewise.
8172         * tree-ssa-live.c: Likewise.
8173         * tree-ssa-loop-niter.c: Likewise.
8174         * tree-ssa-loop-prefetch.c: Likewise.
8175         * tree-ssa-loop.c: Likewise.
8176         * tree-ssa-structalias.c: Likewise.
8177         * tree-ssa-uninit.c: Likewise.
8178         * tree-ssa.c: Likewise.
8179         * tree-vect-data-refs.c: Likewise.
8180         * tree-vect-loop-manip.c: Likewise.
8181         * tree-vect-loop.c: Likewise.
8182         * tree-vect-patterns.c: Likewise.
8183         * tree-vect-stmts.c: Likewise.
8184         * tree-vrp.c: Likewise.
8185         * varasm.c: Likewise.
8186         * vec.c: Likewise.
8187         * web.c: Likewise.
8188         * xcoffout.c: Likewise.
8189
8190 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
8191
8192         * gengtype.c (write_field_root): New function.
8193         (write_root): Use it.
8194
8195 2010-07-07  Wei Guozhi  <carrot@google.com>
8196
8197         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8198         of lowest bits to lshift/compare): Add a missing line.
8199
8200 2010-07-07  Wei Guozhi  <carrot@google.com>
8201
8202         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8203         of lowest bits to lshift/compare): New.
8204
8205 2010-07-07  Tom Tromey  <tromey@redhat.com>
8206
8207         * doc/tm.texi: Update.
8208         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
8209         Add @hook.
8210         * target.def (want_debug_pub_sections): New hook.
8211         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
8212         * dwarf2out.c (add_pubname_string): Check
8213         targetm.want_debug_pub_sections.
8214         (add_pubname): Likewise.
8215         (add_pubtype): Likewise.
8216
8217 2010-07-07  Jie Zhang  <jie@codesourcery.com>
8218
8219         * genautomata.c (output_automata_list_min_issue_delay_code):
8220         Correctly decompress min_issue_delay.
8221
8222 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8223
8224         PR rtl-optimization/44404
8225         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
8226         possible, use reg_overlap_mentioned_p instead.
8227
8228 2010-07-07  Duncan Sands  <baldrick@free.fr>
8229
8230         PR middle-end/41355
8231         * tree.c (build_function_type_skip_args): Copy the original type using
8232         build_distinct_type_copy rather than copy_node.
8233
8234 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8235
8236         PR target/44850
8237         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
8238         revision 161876.
8239         (ix86_expand_prologue): Likewise.
8240         (ix86_handle_fndecl_attribute): Likewise.
8241         (ix86_asm_declare_function_name): Likewise.
8242         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8243         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8244         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
8245         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
8246         * doc/extend.texi: Likewise.
8247
8248 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8249
8250         PR target/44844
8251         * config/i386/i386.md (rdrand<mode>): Changed to expand to
8252         retry if the carry flag isn't valid.
8253         (rdrand<mode>_1): New.
8254
8255 2010-07-07  Richard Guenther  <rguenther@suse.de>
8256
8257         PR middle-end/44790
8258         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
8259         for expanding the constant offset for MEM_REFs.
8260
8261 2010-07-07  Richard Guenther  <rguenther@suse.de>
8262
8263         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
8264         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
8265         * gimple.h (is_gimple_operand): Remove.
8266         * gimple.c (is_gimple_operand): Likewise.
8267         (walk_gimple_op): Fix wi->val_only setting for calls.
8268         * tree-cfg.c (verify_gimple_call): Fix argument validation.
8269         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
8270         invalid gimple calls.
8271
8272 2010-07-06  Jan Hubicka  <jh@suse.cz>
8273
8274         * lto-cgraph.c (output_cgraph): Add missing declaration.
8275
8276 2010-07-06  Jan Hubicka  <jh@suse.cz>
8277
8278         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
8279         partition.
8280
8281 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
8282
8283         * doc/gimple.texi (GIMPLE_DEBUG): Document.
8284         * doc/rtl.texi (Debug Information): New node.
8285         (NOTE_INSN_VAR_LOCATION): Document.
8286         (debug_insn): Likewise.
8287         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
8288
8289 2010-07-07  Jan Hubicka  <jh@suse.cz>
8290
8291         With parts by Richard Guenther.
8292
8293         PR middle-end/44813
8294         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
8295         for functions passed by reference.
8296         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
8297         in memory when passed by reference.
8298         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
8299         beggining.
8300         * ipa-split.c (split_function): Cleanup way return value is passed;
8301         handle SSA DECL_BY_REFERENCE retvals.
8302         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
8303         DECL_BY_REFERENCE is set.
8304         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
8305         find_what_p_points_to): Handle RESULT_DECL.
8306         * tree-inline.c (declare_return_variable): Get new entry_block argument;
8307         when passing by reference ensure that RESULT_DECL is gimple_val.
8308         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
8309         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
8310
8311 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8312
8313         PR rtl-optimization/44787
8314         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
8315         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
8316
8317 2010-07-06  Jan Hubicka  <jh@suse.cz>
8318
8319         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
8320         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
8321         with body can prevail.
8322         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
8323         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
8324         * cgraph.c (cgraph_get_node_or_alias): New function.
8325         * cgraph.h (cgraph_get_node_or_alias): Declare.
8326
8327 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
8328
8329         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
8330         support.
8331         (ix86_expand_prologue): Likewise.
8332         (ix86_handle_fndecl_attribute): Likewise.
8333         (ix86_asm_declare_function_name): New function for
8334         ASM_DECLARE_FUNCTION_NAME.
8335         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
8336         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
8337         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
8338         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
8339         * doc/extend.texi: Adjust documentation about ms_hook_prologue
8340         attribute.
8341
8342 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8343
8344         * config/i386/i386.md (immediate_operand): New mode attribute.
8345
8346         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
8347         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
8348         using P mode iterator.
8349         (pro_epilogue_adjust_stack_di_2): Rename from
8350         pro_epilogue_adjust_stack_rex64_2.
8351
8352         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
8353
8354 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8355
8356         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
8357         through gen_mov_insv_1 function pointer.
8358         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
8359         gen_truncxf<mode>2 through gen_truncxf function pointer.
8360         (remainder<mode>3): Ditto.
8361         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
8362         (allocate_stack): Call gen_allocate_stack_worker_64 or
8363         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
8364         function pointer.
8365         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
8366         function pointer.
8367
8368 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8369
8370         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
8371         operand constraint instead of <r><i>m.
8372
8373 2010-07-06  Richard Guenther  <rguenther@suse.de>
8374
8375         PR middle-end/44828
8376         * convert.c (convert_to_integer): Watch out for overflowing
8377         MULT_EXPR as well.
8378
8379 2010-07-05  Jan Hubicka  <jh@suse.cz>
8380
8381         * lto-streamer.c (write_symbol_vec): Rename to ...
8382         (write_symbol) ... this one; write only symbol given and when
8383         present in cache. Sanity check that what is defined is present
8384         in cgraph/varpool with body/finalized decl.
8385         (write_symbols_of_kind): Remove.
8386         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
8387         pairs to produce symtab.
8388         (produce_asm_for_decls): Update call of produce_symtab; don't do so
8389         when doing WPA streaming.
8390
8391 2010-07-05  Jan Hubicka  <jh@suse.cz>
8392
8393         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
8394         function is still available to fold into.
8395
8396 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8397
8398         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
8399         * function.h (struct_function): Change type of local_decls field
8400         to a VEC.
8401         (add_local_decl): New function.
8402         (FOR_EACH_LOCAL_DECL): New macro.
8403         * cfgexpand.c (init_vars_expansion): Adjust for new type of
8404         cfun->local_decls.
8405         (estimated_stack_frame_size): Likewise.
8406         (expand_used_vars): Likewise.
8407         * cgraphbuild.c (build_cgraph_edges): Likewise.
8408         * function.c (instantiate_decls_1): Likewise.
8409         * ipa-struct-reorg.c (build_data_structure): Likewise.
8410         * ipa-type-escape.c (analyze_function): Likewise.
8411         * lto-streamer-in.c (input_function): Likewise.
8412         * lto-streamer-out.c (output_function): Likewise.
8413         * tree-ssa-live.c (remove_unused_locals): Likewise.
8414         * tree.c (free_lang_data_in_decl): Likewise.
8415         (find_decls_types_in_node): Likewise.
8416         * omp-low.c (remove_exit_barrier): Likewise.
8417         (expand_omp_taskreg): Likewise.
8418         (list2chain): Rename to...
8419         (vec2chain): ...this.  Adjust.
8420         * cgraphunit.c (assemble_thunk): Call add_local_decl.
8421         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
8422         * gimple-low.c (record_vars_into): Likewise.
8423         * tree-inline.c (remap_decls): Likewise.
8424         (declare_return_variable): Likewise.
8425         (declare_inline_vars): Likewise.
8426         (copy_forbidden): Adjust for new type of cfun->local_decls.
8427         (add_local_variables): New function.
8428         (expand_call_inline): Call it.
8429         (tree_function_versioning): Likewise.
8430
8431 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8432
8433         AVX Programming Reference (June, 2010)
8434         * config/i386/cpuid.h (bit_F16C): New.
8435         (bit_RDRND): Likewise.
8436         (bit_FSGSBASE): Likewise.
8437
8438         * config/i386/i386-builtin-types.def: Add
8439         "DEF_FUNCTION_TYPE (UINT16)", function types for
8440         float16 <-> float conversions and
8441         "DEF_FUNCTION_TYPE (VOID, UINT64)".
8442
8443         * config/i386/i386-c.c (ix86_target_macros_internal): Support
8444         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
8445         OPTION_MASK_ISA_F16C.
8446
8447         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
8448         (OPTION_MASK_ISA_RDRND_SET): Likewise.
8449         (OPTION_MASK_ISA_F16C_SET): Likewise.
8450         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
8451         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
8452         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
8453         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
8454         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
8455         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
8456         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
8457         (override_options): Handle them.
8458         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
8459         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
8460         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
8461         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
8462         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
8463         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
8464         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
8465         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
8466         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
8467         (bdesc_args): Likewise.
8468         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
8469         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
8470         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
8471         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
8472         Handle non-memory store.
8473
8474         * config/i386/i386.h (TARGET_FSGSBASE): New.
8475         (TARGET_RDRND): Likewise.
8476         (TARGET_F12C): Likewise.
8477
8478         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
8479         (UNSPEC_VCVTPS2PH): Likewise.
8480         (UNSPECV_RDFSBASE): Likewise.
8481         (UNSPECV_RDGSBASE): Likewise.
8482         (UNSPECV_WRFSBASE): Likewise.
8483         (UNSPECV_WRGSBASE): Likewise.
8484         (UNSPECV_RDRAND): Likewise.
8485         (rdfsbase<mode>): Likewise.
8486         (rdgsbase<mode>): Likewise.
8487         (wrfsbase<mode>): Likewise.
8488         (wrgsbase<mode>): Likewise.
8489         (rdrand<mode>): Likewise.
8490
8491         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
8492
8493         * config/i386/immintrin.h (_rdrand_u16): New.
8494         (_rdrand_u32): Likewise.
8495         (_readfsbase_u32): Likewise.
8496         (_readfsbase_u64): Likewise.
8497         (_readgsbase_u32): Likewise.
8498         (_readgsbase_u64): Likewise.
8499         (_writefsbase_u32): Likewise.
8500         (_writefsbase_u64): Likewise.
8501         (_writegsbase_u32): Likewise.
8502         (_writegsbase_u64): Likewise.
8503         (_rdrand_u64): Likewise.
8504         (_cvtsh_ss): Likewise.
8505         (_mm_cvtph_ps): Likewise.
8506         (_mm256_cvtph_ps): Likewise.
8507         (_cvtss_sh): Likewise.
8508         (_mm_cvtps_ph): Likewise.
8509         (_mm256_cvtps_ph): Likewise.
8510
8511         * config/i386/sse.md (vcvtph2ps): New.
8512         (*vcvtph2ps_load): Likewise.
8513         (vcvtph2ps256): Likewise.
8514         (vcvtps2ph): Likewise.
8515         (*vcvtps2ph): Likewise.
8516         (*vcvtps2ph_store): Likewise.
8517         (vcvtps2ph256): Likewise.
8518
8519         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
8520
8521         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
8522
8523 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
8524
8525         PR bootstrap/44512
8526         * genenums.c (main): Output include of insn-constants.h
8527         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
8528
8529 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
8530
8531         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
8532         (override_options): Initialize it.
8533         (ix86_expand_prologue): Use it.
8534
8535 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
8536
8537         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
8538
8539 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
8540
8541         * double-int.h (fit_double_type): Remove declaration.
8542         * double-int.c (fit_double_type): Remove function.
8543         * tree.h (int_fits_type_p): Adjust prototype.
8544         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
8545         instead of fit_double_type.
8546         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
8547         instead of fit_double_type and build_int_cst_wide.
8548         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
8549         instead of fit_double_type and build_int_cst_wide.
8550         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
8551         of fit_double_type.
8552
8553 2010-07-05  Jan Hubicka  <jh@suse.cz>
8554
8555         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
8556         in_other_partition.
8557         * lto-cgraph.c (referenced_from_other_partition_p,
8558         reachable_from_other_partition_p): Use in_other_partition flags.
8559         (output_node, output_varpool_node): COMDAT nodes always have private
8560         copies and thus are never used from other partition.
8561
8562 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
8563
8564         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
8565         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
8566         * config/ia64/ia64.c Include reload.h.
8567         (ia64_memory_move_cost): New function.
8568         (TARGET_MEMORY_MOVE_COST): Define.
8569         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
8570         memory_move_cost.
8571
8572 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
8573
8574         PR middle-end/42505
8575         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
8576         comments about cost model.
8577         (try_add_cand_for):  Add second strategy for choosing initial set
8578         based on original IVs, controlled by ORIGINALP argument.
8579         (get_initial_solution): Add ORIGINALP argument.
8580         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
8581         (find_optimal_iv_set): Try two different strategies for choosing
8582         the IV set, and return the one with lower cost.
8583
8584 2010-07-05  Richard Guenther  <rguenther@suse.de>
8585
8586         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
8587
8588 2010-07-05  Richard Guenther  <rguenther@suse.de>
8589
8590         * tree.c (reference_alias_ptr_type): New function.
8591         * tree.h (reference_alias_ptr_type): Declare.
8592         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
8593         allow non-TARGET_MEM_REF new refs.
8594         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
8595         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
8596         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
8597         (create_mem_ref): Get alias pointer type.  Adjust calls to
8598         create_mem_ref_raw.
8599         (maybe_fold_tmr): Likewise.
8600         * tree-flow.h (create_mem_ref): Adjust prototype.
8601
8602 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
8603
8604         PR c++/44808
8605         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
8606         *from_p is VAR_DECL.
8607
8608 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8609
8610         * tree.h (build_call_list): Remove.
8611         * tree.c (build_call_list): Remove.
8612
8613 2010-07-05  Richard Guenther  <rguenther@suse.de>
8614
8615         * double-int.h (double_int_sub): Declare.
8616         * double-int.c (double_int_sub): New function.
8617         * dwarf2out.c (field_byte_offset): Use it.
8618         * fixed-value.c (do_fixed_add): Likewise.
8619         (do_fixed_multiply): Likewise.
8620         (do_fixed_divide): Likewise.
8621         * tree-predcom.c (add_ref_to_chain): Likewise.
8622         (determine_roots_comp): Likewise.
8623         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
8624
8625 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8626
8627         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
8628         implementations.
8629
8630 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
8631
8632         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
8633         * arm-modes.def (CC_NOTB): Don't define.
8634         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
8635         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
8636         (LTUGEU): New code_iterator.
8637         (cnb, optab): New corresponding code_attrs.
8638         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
8639         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
8640         using LTUGEU.
8641         (addsi3_carryin_shift_<optab>): Likewise.
8642         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
8643         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
8644         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
8645         (subsi3_compare): Renamed from subsi3_compare0_c.
8646         Change CC_NOTB to CC.
8647         (arm_subsi3_insn): Allow constants for operand 0.
8648         (compare_scc peephole for eq case): New.
8649         (compare_scc splitters): Change CC_NOTB to CC.
8650
8651 2010-07-05  Richard Guenther  <rguenther@suse.de>
8652
8653         * tree-ssa-loop-im.c (for_each_index): Do not handle
8654         ALIGN_INDIRECT_REF.
8655         (gen_lsm_tmp_name): Likewise.
8656         * tree-dump.c (dequeue_and_dump): Likewise.
8657         * tree-pretty-print.c (dump_generic_node): Likewise.
8658         (op_code_prio): Likewise.
8659         (op_symbol_code): Likewise.
8660         * tree.c (staticp): Likewise.
8661         (build1_stat): Likewise.
8662         * tree.h (INDIRECT_REF_P): Likewise.
8663         * fold-const.c (maybe_lvalue_p): Likewise.
8664         (operand_equal_p): Likewise.
8665         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8666         (ao_ref_init_from_vn_reference): Likewise.
8667         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
8668         (find_interesting_uses_address): Likewise.
8669         * dwarf2out.c (loc_list_from_tree): Likewise.
8670         * gimplify.c (gimplify_expr): Likewise.
8671         * tree-eh.c (tree_could_trap_p): Likewise.
8672         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8673         * cfgexpand.c (expand_debug_expr): Likewise.
8674         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8675         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
8676         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
8677         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
8678         * tree-ssa-operands.c (get_expr_operands): Likewise.
8679         * expr.c (safe_from_p): Likewise.
8680         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
8681         * tree-vect-data-refs.c (vect_setup_realignment): Build
8682         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
8683         * tree-vect-stmts.c (vectorizable_load): Likewise.
8684         * tree.def (ALIGN_INDIRECT_REF): Remove.
8685
8686 2010-07-05  Richard Guenther  <rguenther@suse.de>
8687
8688         PR tree-optimization/44784
8689         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
8690         for inserted stmts.
8691         (find_or_generate_expression): Fix SCCVN insertion check.
8692
8693 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
8694
8695         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
8696         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8697         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
8698         directives.
8699
8700 2010-07-05  Ira Rosen  <irar@il.ibm.com>
8701
8702         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
8703         statements that are not vectorized.
8704         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
8705         in INSIDE_COST.
8706
8707 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
8708
8709         PR bootstrap/44820
8710         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
8711
8712 2010-07-05  Richard Guenther  <rguenther@suse.de>
8713
8714         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
8715         RESULT_DECLs properly.
8716
8717 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
8718
8719         PR rtl-optimization/44695
8720         * config/i386/i386.md (extract_code): Removed.
8721         (<u>divmodqi4): Likewise.
8722         (divmodqi4): New.
8723         (udivmodqi4): Likewise.
8724         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
8725         (udivmodhiqi3): Likewise.
8726
8727 2010-07-04  Jan Hubicka  <jh@suse.cz>
8728
8729         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
8730
8731 2010-07-04  Jan Hubicka  <jh@suse.cz>
8732
8733         * cgraphunit.c (init_cgraph): Only initialize dump file if it
8734         is not already initialized.
8735
8736 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8737
8738         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
8739         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
8740         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
8741         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
8742         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
8743         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
8744         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
8745         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
8746         (sync_new_nand_optab): Redefine as macros.
8747         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
8748         Delete.
8749         (direct_optab_index): New enum.
8750         (direct_optab_d): New structure.
8751         (direct_optab): New typedef.
8752         (direct_optab_table): Declare.
8753         (direct_optab_handler, set_direct_optab_handler): New functions.
8754         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
8755         (sync_lock_release_optab): New macros.
8756         * optabs.c (direct_optab_table): New variable.
8757         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
8758         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
8759         cmpstr_optab and cmpstrn_optab.
8760         (emit_conditional_move): Likewise for movcc_optab.
8761         (can_conditionally_move_p): Likewise for movcc_gen_code.
8762         (init_insn_codes): Clear direct_optab_table.
8763         (init_optabs): Don't initialize the new "direct optabs" here.
8764         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
8765         vcond_gen_code.
8766         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
8767         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
8768         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
8769         (expand_sync_operation): Likewise other sync_*_optabs.
8770         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
8771         to sync_compare_and_swap_optab.
8772         (expand_sync_lock_test_and_set): Use direct_optab_handler for
8773         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
8774         to the names of both.
8775         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
8776         cmpstr_optab and cmpstrn_optab.
8777         (expand_builtin_lock_release): Likewise sync_lock_release.
8778         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
8779         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
8780         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
8781         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
8782         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
8783         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
8784         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
8785         (sync_lock_test_and_set, sync_lock_release): Delete.
8786         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
8787         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
8788         * genopinit.c (optabs): Use set_direct_optab_handler for the new
8789         macro optabs.
8790         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
8791         the "optab" local variable.  Use direct_optab_handler for optab and
8792         sync_compare_and_swap_optab.
8793         * reload1.c (reload_in_optab, reload_out_optab): Delete.
8794         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
8795         reload_in_optab and reload_out_optab.
8796         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
8797         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
8798         * config/pa/pa.c (pa_secondary_reload): Likewise.
8799         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
8800         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
8801         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
8802         (VMSupportsCS8_builtin): Likewise.
8803
8804 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8805
8806         * optabs.h (optab_handlers): Change type of insn_code to int.
8807         (optab_handler, set_optab_handler, convert_optab_handler)
8808         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
8809         CODE_FOR_nothing".
8810         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
8811         (init_insn_codes): Zero both the above arrays.
8812         (init_optabs): Never call init_insn_codes first time around.
8813
8814 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
8815
8816         * optabs.h (optab_handler, convert_optab_handler): Turn into
8817         inline functions that return an insn code.
8818         (set_optab_handler, set_convert_optab_handler): New functions.
8819         * builtins.c: Replace optab_handler(X)->insn_code with
8820         optab_handler or set_optab_handler thoughout.  Likewise
8821         convert_optab_handler(X)->insn_code with convert_optab_handler
8822         and set_convert_optab_handler.
8823         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
8824         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
8825         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
8826         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
8827         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
8828         config/spu/spu.c: Likewise.
8829
8830 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8831
8832         PR target/44531
8833         * config.gcc (sh*-*-*): Use regular expressions instead of
8834         the 'i' modifier for sed substitutions.
8835
8836 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
8837
8838         * gimple.c (gimple_body): Comments added.
8839
8840 2010-07-04  Richard Guenther  <rguenther@suse.de>
8841
8842         PR middle-end/44809
8843         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
8844         of an INDIRECT_REF.
8845
8846 2010-07-04  Richard Guenther  <rguenther@suse.de>
8847
8848         PR tree-optimization/44479
8849         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
8850         extra SSA name copy statements which preserves points-to
8851         information.
8852         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8853         Copy points-to information for all pointers.  Properly handle
8854         MEM_REFs.
8855         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
8856         copy statements.
8857         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
8858         dependency.
8859
8860 2010-07-04  Richard Guenther  <rguenther@suse.de>
8861
8862         PR middle-end/44785
8863         * tree-inline.c (initialize_inlined_parameters): Do not
8864         re-use pointer-map slot over remap_type call.
8865
8866 2010-07-04  Richard Guenther  <rguenther@suse.de>
8867
8868         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
8869
8870 2010-07-04  Richard Guenther  <rguenther@suse.de>
8871
8872         PR tree-optimization/44656
8873         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
8874         again after value-replacing in the defintions lhs.
8875
8876 2010-07-04  Ira Rosen  <irar@il.ibm.com>
8877             Revital Eres  <eres@il.ibm.com>
8878
8879         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
8880         Document new arguments.
8881         * doc/tm.texi: Regenerate.
8882         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
8883         Handle unaligned store.
8884         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
8885         * target.def (builtin_vectorization_cost): Add new arguments.
8886         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
8887         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
8888         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
8889         (vect_vfa_segment_size): Fix indentation.
8890         * tree-vectorizer.h (struct _vect_peel_info): New.
8891         (struct _vect_peel_extended_info): New.
8892         (struct _loop_vec_info): Add new field for peeling hash table and a
8893         macro for its access.
8894         (VECT_MAX_COST): Define.
8895         (vect_get_load_cost): Declare.
8896         (vect_get_store_cost, vect_get_known_peeling_cost,
8897         vect_get_single_scalar_iteraion_cost): Likewise.
8898         (vect_supportable_dr_alignment): Add new argument.
8899         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
8900         field.
8901         (destroy_loop_vec_info): Free peeling hash table.
8902         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
8903         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
8904         vect_analyze_slp. Fix indentation.
8905         (vect_get_single_scalar_iteraion_cost): New function.
8906         (vect_get_known_peeling_cost): Likewise.
8907         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
8908         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
8909         statement. Move outside cost calculation inside unknown peeling case.
8910         Call vect_get_known_peeling_cost for known amount of peeling.
8911         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
8912         reference to the print message of forced alignment.
8913         (vect_verify_datarefs_alignment): Update call to
8914         vect_supportable_dr_alignment.
8915         (vect_get_data_access_cost): New function.
8916         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
8917         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
8918         vect_peeling_hash_choose_best_peeling): Likewise.
8919         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
8920         to store all the accesses in the loop and find best possible access to
8921         align using peeling for known alignment case. For unknown alignment
8922         check if stores are preferred or if peeling is worthy.
8923         (vect_find_same_alignment_drs): Analyze pairs of loads too.
8924         (vect_supportable_dr_alignment): Add new argument and check aligned
8925         accesses according to it.
8926         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
8927         (cost_for_stmt): Call vect_get_stmt_cost.
8928         (vect_model_simple_cost): Likewise.
8929         (vect_model_store_cost): Call vect_get_stmt_cost. Call
8930         vect_get_store_cost to calculate the cost of the statement.
8931         (vect_get_store_cost): New function.
8932         (vect_model_load_cost): Call vect_get_stmt_cost. Call
8933         vect_get_load_cost to calculate the cost of the statement.
8934         (vect_get_load_cost): New function.
8935         (vectorizable_store): Update call to vect_supportable_dr_alignment.
8936         (vectorizable_load): Likewise.
8937         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
8938         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
8939         arguments. Handle unaligned store.
8940         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
8941         (rs6000_builtin_support_vector_misalignment): Return true for word and
8942         double word alignments for VSX.
8943         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
8944         vect_supportable_dr_alignment and builtin_vectorization_cost.
8945
8946 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8947
8948         PR target/44597
8949         * config/pa/predicates.md (prefetch_cc_operand): Remove.
8950         (prefetch_nocc_operand): Likewise.
8951         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
8952         (prefetch_20): New insn.
8953         (prefetch_cc): Remove.
8954         (prefetch_nocc): Likewise.
8955
8956 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8957
8958         * expr.c (vector_mode_valid_p): Move to c-common.c.
8959         * expr.h (vector_mode_valid_p): Do not declare here.
8960         * system.h: Poison GCC_EXPR_H in front-ends.
8961         * Makefile.in: Update dependencies.
8962
8963 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8964
8965         PR target/44705
8966         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
8967
8968 2010-07-03  Jan Hubicka  <jh@suse.cz>
8969
8970         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
8971         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
8972         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
8973         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
8974         Likewise.
8975
8976         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
8977         Update timevars.V
8978         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
8979         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
8980         TV_IPA_LTO_DECL_OUT): New.
8981         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
8982
8983 2010-07-03  Jan Hubicka  <jh@suse.cz>
8984
8985         * ipa-inline.c (update_edge_key): Break out from ...
8986         update_callers_keys): ... here;
8987         (update_callee_keys): Update only the edges from caller to callee.
8988         (update_all_calle_keys): Do what update_calle_keys did.
8989         (decide_inlining_of_small_functions): Avoid recomputing of all
8990         callees when badness increase.
8991
8992 2010-07-03  Jie Zhang  <jie@codesourcery.com>
8993
8994         * config/arm/arm.c (arm_attr_length_move_neon): New.
8995         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
8996         * config/arm/neon.md (define_mode_attr V_slen): Remove.
8997         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
8998         to compute length attribute.
8999
9000 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9001
9002         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
9003         as predicate for operand 1 and remove its constraint.
9004         * config/arm/predicates.md (vfp_register_operand): New.
9005         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
9006         (*push_fp_multi): Likewise.
9007
9008 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
9009
9010         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
9011
9012 2010-07-03  Jan Hubicka  <jh@suse.cz>
9013
9014         * config/i386/i386.c (override_options): Revert accidental commit.
9015
9016 2010-07-02  Le-Chun Wu  <lcwu@google.com>
9017
9018         PR c++/44128
9019         * doc/invoke.texi: Update documentation of -Wshadow.
9020
9021 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
9022             Julian Brown  <julian@codesourcery.com>
9023             Sandra Loosemore <sandra@codesourcery.com>
9024
9025         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
9026         comparisons.  Adjust to take both operands.
9027         (arm_select_cc_mode): Handle DImode comparisons.
9028         (arm_gen_compare_reg): Generate a scratch register for DImode
9029         comparisons which require one.  Use xor for Thumb equality checks.
9030         (arm_const_double_by_immediates): New.
9031         (arm_print_operand): Allow 'Q' and 'R' for constants.
9032         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
9033         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
9034         arm_canonicalize_comparison.
9035         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
9036         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9037         prototype.
9038         (arm_const_double_by_immediates): Declare.
9039         * config/arm/constraints.md (Di): New constraint.
9040         * config/arm/predicates.md (arm_immediate_di_operand)
9041         (arm_di_operand, cmpdi_operand): New.
9042         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
9043         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
9044         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
9045         (cstoredi4): Handle non-Cirrus also.
9046
9047 2010-07-02  Julian Brown  <julian@codesourcery.com>
9048             Sandra Loosemore <sandra@codesourcery.com>
9049
9050         PR target/43703
9051         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
9052         (smax<mode>3): Disable for NEON float modes when
9053         flag_unsafe_math_optimizations is false.
9054         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
9055         (*mul<mode>3_neon)
9056         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
9057         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
9058         for NEON float modes when flag_unsafe_math_optimizations is false.
9059         (quad_halves_<code>v4sf): Only enable if
9060         flag_unsafe_math_optimizations is true.
9061         * doc/invoke.texi (ARM Options): Add note about floating point
9062         vectorization requiring -funsafe-math-optimizations.
9063
9064 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9065             Julian Brown  <julian@codesourcery.com>
9066
9067         * config/arm/neon.md (UNSPEC_VABA): Delete.
9068         (UNSPEC_VABAL): Delete.
9069         (UNSPEC_VABS): Delete.
9070         (UNSPEC_VMUL_N): Delete.
9071         (adddi3_neon): New.
9072         (subdi3_neon): New.
9073         (mul<mode>3add<mode>_neon): Make the pattern named.
9074         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
9075         (neon_vadd<mode>): Replace with define_expand, and move the remaining
9076         unspec parts...
9077         (neon_vadd<mode>_unspec): ...to this.
9078         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
9079         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
9080         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
9081         (neon_vaba<mode>): Rewrite in terms of vabd.
9082         (neon_vabal<mode>): Rewrite in terms of vabdl.
9083         (neon_vabs<mode>): Rewrite without unspec.
9084         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
9085         (*arm_subdi3): Likewise.
9086         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
9087         No_op attribute to disable assembly output checks.
9088         * config/arm/arm_neon.h: Regenerated.
9089         * doc/arm-neon-intrinsics.texi: Regenerated.
9090
9091 2010-07-02  Jan Hubicka  <jh@suse.cz>
9092
9093         * ipa-split.c (split_function): For aggregate values, set the return
9094         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
9095         *<retval> = fncall.part ().
9096         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
9097
9098 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9099
9100         * config/arm/neon.md (UNSPEC_VAND): Delete.
9101         (UNSPEC_VBIC): Delete.
9102         (UNSPEC_VCLZ): Delete.
9103         (UNSPEC_VCNT): Delete.
9104         (UNSPEC_VEOR): Delete.
9105         (UNSPEC_VORN): Delete.
9106         (UNSPEC_VORR): Delete.
9107         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
9108         core registers too.
9109         (anddi3_neon): Likewise.
9110         (orndi3_neon): Likewise.
9111         (bicdi3_neon): Likewise.
9112         (xordi3_neon): Likewise.
9113         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
9114         rid of unspec and handle unused operand.
9115         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
9116         * config/arm/predicates.md (imm_for_neon_logic_operand):
9117         Require TARGET_NEON.
9118         (imm_for_neon_inv_logic_operand): Likewise.
9119         * config/arm/arm.md (define_split for logical_binary_operator):
9120         Disable for NEON registers.
9121         (anddi3): Add new define_expand, and rename the insn.  Disable
9122         this insn for NEON, where anddi3_neon now applies.
9123         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
9124         (iordi3): As for anddi3.
9125         (xordi3): Likewise.
9126         * config/arm/neon.ml (Vand): Split DImode variants and mark them
9127         as No_op to disable testing for exact instruction match.
9128         (Vorr): Likewise.
9129         (Veor): Likewise.
9130         (Vbic): Likewise.
9131         (Vorn): Likewise.
9132         * config/arm/arm_neon.h: Regenerated.
9133         * doc/arm-neon-intrinsics.texi: Regenerated.
9134
9135 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9136
9137         * expr.h (emit_stack_probe): Declare.
9138         * explow.c (emit_stack_probe): Make global.
9139         (anti_adjust_stack_and_probe): Fix comments.
9140         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9141         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9142         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9143         * config/sparc/sparc.c: Include except.h.
9144         (sparc_emit_probe_stack_range): New function.
9145         (output_probe_stack_range): Likewise.
9146         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
9147         built-in stack checking is enabled.
9148         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
9149         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9150         (probe_stack_range): New insn.
9151
9152 2010-07-02  Richard Guenther  <rguenther@suse.de>
9153
9154         PR target/43958
9155         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
9156         for argument alignment.
9157
9158 2010-07-02  Jan Hubicka  <jh@suse.cz>
9159
9160         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
9161         walk backwards from entry_bb to check only those basic block of header
9162         that might lead to execution of split part.
9163         (consider_split) ... here.
9164         (find_return_bb): Allow assignment in return BB.
9165         (find_retval): New.
9166         (split_function): Fix name of cloned function; take care of updating
9167         return value in return_bb containing move.
9168
9169 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
9170
9171         PR target/44771
9172         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
9173         used variable insn.
9174
9175 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9176
9177         * implicit-zee.c (combine_reaching_defs): Fix long lines.
9178         (is_set_with_extension_DI): Delete.
9179         (struct zero_extend_info): New structure.
9180         (add_removable_zero_extend): New function.
9181         (find_removable_zero_extends): Use note_stores to find SETs.
9182         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
9183
9184 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9185
9186         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
9187         is_miss_rate_acceptable. Pull total_positions computation
9188         out of the loops.  Early return if miss_positions exceeds
9189         the acceptable threshold.
9190         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
9191         is_miss_rate_acceptable after renaming of compute_miss_rate.
9192
9193 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9194
9195         PR middle-end/44576
9196         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
9197         of 1000) for miss rate if the address diference is greater than or
9198         equal to the cache line size (the two reference will never hit the
9199         same cache line).
9200
9201 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
9202
9203         PR target/42835
9204         * config/arm/arm-modes.def (CC_NOTB): New mode.
9205         * config/arm/arm.c (get_arm_condition_code): Handle it.
9206         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
9207         * config/arm/arm.md (subsi3_compare0_c): New pattern.
9208         (compare_scc): Now a define_and_split.  Add a number of extra
9209         splitters before it.
9210
9211         PR target/42172
9212         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
9213         and ZERO_EXTEND.
9214         (arm_rtx_costs_1): Likewise.
9215         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
9216         * config/arm/arm.md (is_arch6): New attribute.
9217         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
9218         extendqisi2): Tighten the code somewhat, avoiding invalid
9219         RTL to occur in the expander patterns.
9220         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
9221         (thumb1_zero_extendhisi2_v6): Delete.
9222         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
9223         (thumb1_extendhisi2_v6): Delete.
9224         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
9225         (thumb1_extendqisi2_v6): Delete.
9226         (zero_extendhisi2 for register input splitter): New.
9227         (zero_extendqisi2 for register input splitter): New.
9228         (thumb1_extendhisi2 for register input splitter): New.
9229         (extendhisi2 for register input splitter): New.
9230         (extendqisi2 for register input splitter): New.
9231         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
9232         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
9233         and add support for a register alternative requiring a split.
9234         (thumb1_zero_extendqisi2): Likewise.
9235         (arm_zero_extendqisi2): Likewise.
9236         (arm_extendhisi2): Likewise.
9237         (arm_extendqisi2): Likewise.
9238
9239 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9240
9241         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
9242         instead of an unspec.
9243         (neon_expand_vector_init): Likewise.
9244         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
9245         (UNSPEC_VDUP_LANE): Delete.
9246         (UNSPEC VDUP_N): Delete.
9247         (UNSPEC_VGET_HIGH): Delete.
9248         (UNSPEC_VGET_LANE): Delete.
9249         (UNSPEC_VGET_LOW): Delete.
9250         (UNSPEC_VMVN): Delete.
9251         (UNSPEC_VSET_LANE): Delete.
9252         (V_double_vector_mode): New.
9253         (vec_set<mode>_internal): Make code emitted match that for the
9254         corresponding intrinsics.
9255         (vec_setv2di_internal): Likewise.
9256         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
9257         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
9258         (neon_vset_lane<mode>): Combine double and quad patterns and
9259         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
9260         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
9261         (neon_vdup_n<mode>): Rewrite RTL without unspec.
9262         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
9263         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
9264         with neon_vdup_lanev2di, adjusting the pattern from the latter
9265         to be predicable for consistency.
9266         (neon_vdup_lane<mode>_internal): New.
9267         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
9268         to avoid using an unspec.
9269         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
9270         (neon_vdup_lanev2di): Turn into a define_expand.
9271         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
9272         (neon_vget_high<mode>): Replace with....
9273         (neon_vget_highv16qi): New pattern using canonical RTL.
9274         (neon_vget_highv8hi): Likewise.
9275         (neon_vget_highv4si): Likewise.
9276         (neon_vget_highv4sf): Likewise.
9277         (neon_vget_highv2di): Likewise.
9278         (neon_vget_low<mode>): Replace with....
9279         (neon_vget_lowv16qi): New pattern using canonical RTL.
9280         (neon_vget_lowv8hi): Likewise.
9281         (neon_vget_lowv4si): Likewise.
9282         (neon_vget_lowv4sf): Likewise.
9283         (neon_vget_lowv2di): Likewise.
9284
9285         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
9286         test for this emitting vmov.
9287         (Vset_lane): Likewise.
9288         (Vdup_n): Likewise.
9289         (Vmov_n): Likewise.
9290
9291         * doc/arm-neon-intrinsics.texi: Regenerated.
9292
9293 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9294
9295         * config/arm/neon.md (vec_extractv2di): Correct error in register
9296         numbering to reconcile with neon_vget_lanev2di.
9297
9298 2010-07-02  Richard Guenther  <rguenther@suse.de>
9299
9300         * tree-ssa-structalias.c (pt_solution_set_var): New function.
9301         * tree-ssa-alias.h (pt_solution_set_var): Declare.
9302         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
9303         points-to information.
9304
9305 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
9306
9307         * config/s390/s390.c (override_options): Adopt prefetching
9308         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
9309
9310 2010-07-02  Jan Hubicka  <jh@suse.cz>
9311
9312         * df-problems.c (df_kill_notes): Do not collect dead  notes.
9313         (df_set_note): Just call add_reg_note.
9314         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
9315         df_create_unused_note): Do not deal with lists of old notes.
9316         (df_note_bb_compute): Likewise.
9317
9318 2010-07-02  Richard Guenther  <rguenther@suse.de>
9319
9320         * tree-ssa-structalias.c (find_func_aliases): Handle
9321         pointer alignment via BIT_AND_EXPR.
9322         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
9323
9324 2010-07-02  Richard Guenther  <rguenther@suse.de>
9325
9326         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9327         mismatching number of dimensions properly.
9328
9329 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9330
9331         PR target/44707
9332         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
9333         (lo_sum (high ...) ...) patterns generated by earlier passes.
9334
9335 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9336
9337         * doc/install.texi (Prerequisites): Document Perl requirement on
9338         Solaris 2.
9339         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
9340
9341 2010-07-02  Richard Guenther  <rguenther@suse.de>
9342
9343         PR middle-end/44777
9344         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
9345
9346 2010-07-02  Jan Hubicka  <jh@suse.cz>
9347
9348         PR middle-end/44706
9349         * predict.c (predict_paths_for_bb): Handle case when control dependence
9350         BB has only abnormal edges.
9351
9352 2010-07-02  Richard Guenther  <rguenther@suse.de>
9353
9354         PR tree-optimization/44748
9355         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
9356         the embedded conversion in MEM_REFs.
9357
9358 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
9359
9360         * reload.c: Include toplev.h.
9361         * recog.c:  Likewise.
9362         * Makefile.in: Adjust dependencies.
9363
9364 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
9365
9366         PR debug/44694
9367         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
9368         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
9369
9370 2010-07-01  Richard Guenther  <rguenther@suse.de>
9371
9372         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
9373         types for offsets.
9374
9375 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
9376
9377         PR target/44732
9378         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
9379         Fix argument types.
9380
9381 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
9382
9383         PR target/44727
9384         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9385         Make sure operand 0 dies.
9386
9387 2010-07-01  Richard Guenther  <rguenther@suse.de>
9388
9389         PR middle-end/42834
9390         PR middle-end/44468
9391         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
9392         * doc/generic.texi (References to storage): Document MEM_REF.
9393         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
9394         (print_call_name): Likewise.
9395         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
9396         (build_simple_mem_ref_loc): New function.
9397         (mem_ref_offset): Likewise.
9398         * tree.h (build_simple_mem_ref_loc): Declare.
9399         (build_simple_mem_ref): Define.
9400         (mem_ref_offset): Declare.
9401         * fold-const.c: Include tree-flow.h.
9402         (operand_equal_p): Handle MEM_REF.
9403         (build_fold_addr_expr_with_type_loc): Likewise.
9404         (fold_comparison): Likewise.
9405         (fold_unary_loc): Fold
9406         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
9407         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
9408         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
9409         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
9410         (ptr_deref_may_alias_ref_p_1): Likewise.
9411         (ao_ref_base_alias_set): Properly differentiate base object for
9412         offset and TBAA.
9413         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
9414         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
9415         (indirect_refs_may_alias_p): Likewise.
9416         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
9417         chasing code.
9418         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
9419         (call_may_clobber_ref_p_1): Likewise.
9420         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
9421         * expr.c (expand_assignment): Handle MEM_REF.
9422         (store_expr): Handle MEM_REFs from STRING_CSTs.
9423         (store_field): If expanding a MEM_REF of a non-addressable
9424         decl use bitfield operations.
9425         (get_inner_reference): Handle MEM_REF.
9426         (expand_expr_addr_expr_1): Likewise.
9427         (expand_expr_real_1): Likewise.
9428         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
9429         * alias.c (ao_ref_from_mem): Handle MEM_REF.
9430         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
9431         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
9432         (dr_analyze_indices): Likewise.
9433         (dr_analyze_alias): Likewise.
9434         (object_address_invariant_in_loop_p): Likewise.
9435         * gimplify.c (mark_addressable): Handle MEM_REF.
9436         (gimplify_cond_expr): Build MEM_REFs.
9437         (gimplify_modify_expr_to_memcpy): Likewise.
9438         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
9439         (gimple_fold_indirect_ref): Adjust.
9440         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
9441         * tree.def (MEM_REF): New tree code.
9442         * tree-dfa.c: Include toplev.h.
9443         (get_ref_base_and_extent): Handle MEM_REF.
9444         (get_addr_base_and_unit_offset): New function.
9445         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
9446         * gimple-fold.c (may_propagate_address_into_dereference): Handle
9447         MEM_REF.
9448         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
9449         accesses if the array has just one dimension.  Remove always true
9450         parameter.  Do not require type compatibility here.
9451         (maybe_fold_offset_to_component_ref): Remove.
9452         (maybe_fold_stmt_indirect): Remove.
9453         (maybe_fold_reference): Remove INDIRECT_REF handling.
9454         Fold back to non-MEM_REF.
9455         (maybe_fold_offset_to_address): Simplify.  Deal with type
9456         mismatches here.
9457         (maybe_fold_reference): Likewise.
9458         (maybe_fold_stmt_addition): Likewise.  Also handle
9459         &ARRAY + I in addition to &ARRAY[0] + I.
9460         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
9461         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
9462         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
9463         * tree-ssa.c (useless_type_conversion_p): Make most pointer
9464         conversions useless.
9465         (warn_uninitialized_var): Handle MEM_REF.
9466         (maybe_rewrite_mem_ref_base): New function.
9467         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
9468         to SSA form.
9469         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
9470         INDIRECT_REF handling.
9471         (copy_tree_body_r): Handle MEM_REF.
9472         * gimple.c (is_gimple_addressable): Adjust.
9473         (is_gimple_address): Likewise.
9474         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
9475         invariant base are invariant.
9476         (is_gimple_min_lval): Adjust.
9477         (is_gimple_mem_ref_addr): New function.
9478         (get_base_address): Handle MEM_REF.
9479         (count_ptr_derefs): Likewise.
9480         (get_base_loadstore): Likewise.
9481         * gimple.h (is_gimple_mem_ref_addr): Declare.
9482         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
9483         * tree-cfg.c (verify_address): New function, split out from ...
9484         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
9485         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
9486         INDIRECT_REFs.
9487         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
9488         INDIRECT_REF.  Allow conversions.
9489         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
9490         a register does not change its size.
9491         (verify_types_in_gimple_reference): Verify MEM_REF.
9492         (verify_gimple_assign_single): Disallow INDIRECT_REF.
9493         Handle MEM_REF.
9494         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
9495         New.
9496         (mark_address_taken): Handle MEM_REF.
9497         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
9498         (get_asm_expr_operands): Pass opf_not_non_addressable.
9499         (get_expr_operands): Handle opf_[not_]non_addressable.
9500         Handle MEM_REF.  Remove INDIRECT_REF handling.
9501         * tree-vrp.c (check_array_ref): Handle MEM_REF.
9502         (search_for_addr_array): Likewise.
9503         (check_array_bounds): Likewise.
9504         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
9505         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
9506         (ref_always_accessed_p): Likewise.
9507         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
9508         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
9509         Handle MEM_REF.
9510         * cgraphbuild.c (mark_load): Properly check for NULL result
9511         from get_base_address.
9512         (mark_store): Likewise.
9513         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
9514         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
9515         handling for MEM_REF.
9516         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
9517         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
9518         * builtins.c (stabilize_va_list_loc): Use the function ABI
9519         valist type if we couldn't canonicalize the argument type.
9520         Always dereference with the canonical va-list type.
9521         (maybe_emit_free_warning): Handle MEM_REF.
9522         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
9523         memmove to memcpy.
9524         * builtins.c (fold_builtin_memory_op): Use ref-all types
9525         for all memcpy foldings.
9526         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
9527         (build_outer_var_ref): Likewise.
9528         (scan_omp_1_op): Likewise.
9529         (lower_rec_input_clauses): Likewise.
9530         (lower_lastprivate_clauses): Likewise.
9531         (lower_reduction_clauses): Likewise.
9532         (lower_copyprivate_clauses): Likewise.
9533         (expand_omp_atomic_pipeline): Likewise.
9534         (expand_omp_atomic_mutex): Likewise.
9535         (create_task_copyfn): Likewise.
9536         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
9537         Remove old union trick.  Initialize constant offsets.
9538         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
9539         INDIRECT_REF.  Init base_alias_set properly.
9540         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
9541         (vn_reference_fold_indirect): Adjust for MEM_REFs.
9542         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
9543         for ARRAY_REFs.
9544         (may_insert): Remove.
9545         (visit_reference_op_load): Do not test may_insert.
9546         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
9547         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
9548         a field to store the constant offset this op applies.
9549         (run_scc_vn): Adjust prototype.
9550         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
9551         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
9552         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
9553         bother about volatile qualifiers on pointers.
9554         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
9555         * tree-ssa-loop-ivopts.c
9556         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
9557         (strip_offset_1): Likewise.
9558         (find_interesting_uses_address): Replace INDIRECT_REF handling with
9559         MEM_REF handling.
9560         (get_computation_cost_at): Likewise.
9561         * ipa-pure-const.c (check_op): Handle MEM_REF.
9562         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
9563         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
9564         and constants.
9565         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
9566         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
9567         (eliminate_local_variables_1): Likewise.
9568         (create_call_for_reduction_1): Likewise.
9569         (create_loads_for_reductions): Likewise.
9570         (create_loads_and_stores_for_name): Likewise.
9571         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
9572         (ssa_accessed_in_tree): Handle MEM_REF.
9573         (ssa_accessed_in_assign_rhs): Likewise.
9574         (update_type_size): Likewise.
9575         (analyze_accesses_for_call_stmt): Likewise.
9576         (analyze_accesses_for_assign_stmt): Likewise.
9577         (transform_access_sites): Likewise.
9578         (transform_allocation_sites): Likewise.
9579         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
9580         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
9581         not handle INDIRECT_REF.
9582         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
9583         (cond_store_replacement): Likewise.
9584         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
9585         MEM_REF, no not handle INDIRECT_REFs.
9586         (insert_into_preds_of_block): Properly initialize avail.
9587         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
9588         for ARRAY_REFs.  Properly handle reference lookups that
9589         require a bit re-interpretation.
9590         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
9591         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
9592         (build_ref_for_offset_1): Remove.
9593         (build_ref_for_offset): Build MEM_REFs.
9594         (gate_intra_sra): Disable for now.
9595         (sra_ipa_modify_expr): Handle MEM_REF.
9596         (ipa_early_sra_gate): Disable for now.
9597         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
9598         MEM_REF handling.
9599         (disqualify_base_of_expr): Likewise.
9600         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
9601         MEM_REF handling.
9602         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
9603         Use mem_ref_offset.  Remove bogus folding.
9604         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
9605         (make_fancy_name_1): Add support for MEM_REF.
9606         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
9607         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
9608         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
9609         (compute_complex_ancestor_jump_func): Likewise.
9610         (ipa_analyze_virtual_call_uses): Likewise.
9611         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
9612         INDIRECT_REF folding with more generalized MEM_REF folding.
9613         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
9614         (forward_propagate_addr_into_variable_array_index): Also handle
9615         &ARRAY + I in addition to &ARRAY[0] + I.
9616         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
9617         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
9618         creates assignments with overlap.
9619         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
9620         (get_frame_field): Likewise.
9621         (get_nonlocal_debug_decl): Likewise.
9622         (convert_nonlocal_reference_op): Likewise.
9623         (struct nesting_info): Add mem_refs pointer-set.
9624         (create_nesting_tree): Allocate it.
9625         (convert_local_reference_op): Insert to be folded mem-refs.
9626         (fold_mem_refs): New function.
9627         (finalize_nesting_tree_1): Perform defered folding of mem-refs
9628         (free_nesting_tree): Free the pointer-set.
9629         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
9630         (vectorizable_load): Likewise.
9631         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
9632         (propagate_with_phi): Likewise.
9633         * tree-object-size.c (addr_object_size): Handle MEM_REFs
9634         instead of INDIRECT_REFs.
9635         (compute_object_offset): Handle MEM_REF.
9636         (plus_stmt_object_size): Handle MEM_REF.
9637         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
9638         for &MEM_REF.
9639         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
9640         (symbol_marked_for_renaming): Likewise.
9641         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
9642         (fold-const.o): Add $(TREE_FLOW_H).
9643         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
9644         (find_func_clobbers): Likewise.
9645         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
9646         (decompose_access): Likewise.
9647         (replace_field_acc): Likewise.
9648         (replace_field_access_stmt): Likewise.
9649         (insert_new_var_in_stmt): Likewise.
9650         (get_stmt_accesses): Likewise.
9651         (reorg_structs_drive): Disable.
9652         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
9653         (ix86_canonical_va_list_type): Likewise.
9654
9655 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
9656
9657         PR other/44566
9658         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
9659         * target.def (struct gcc_target): Replace enum reg_class with
9660         reg_class_t in hook argument / return types.
9661         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
9662         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
9663         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
9664         * targhooks.h (default_branch_target_register_class): Likewise.
9665         (default_ira_cover_classes, default_secondary_reload): Likewise.
9666         (default_memory_move_cost, default_register_move_cost): Likewise.
9667         * targhooks.c (default_branch_target_register_class): Likewise.
9668         (default_ira_cover_classes, default_secondary_reload): Likewise.
9669         (default_memory_move_cost, default_register_move_cost): Likewise.
9670         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
9671         * bt-load.c (branch_target_load_optimize): Likewise.
9672         * ira.c (setup_cover_and_important_classes): Likewise.
9673         * ira-costs.c (copy_cost): Likewise.
9674         * reload1.c (emit_input_reload_insns): Likewise.
9675         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9676         * config/frv/frv.c (frv_secondary_reload): Likewise.
9677         * config/s390/s390.c (s390_secondary_reload): Likewise.
9678         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
9679         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
9680         (ix86_register_move_cost): Likewise.
9681         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
9682         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
9683         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
9684         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
9685         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
9686         (rs6000_ira_cover_classes): Likewise.
9687         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
9688         * config/picochip/picochip-protos.h (picochip_secondary_reload):
9689         Likewise.
9690         * config/pa/pa.c (pa_secondary_reload): Likewise.
9691         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
9692         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
9693         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
9694         * doc/tm.texi: Regenerate.
9695
9696 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
9697
9698         PR bootstrrap/44726
9699         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
9700         use.
9701         (build_alias_set_optimal_p): Likewise.
9702         (build_base_obj_set_for_drs): Likewise.
9703
9704 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
9705
9706         * target.def: Remove comment about licensing problems of function
9707         declarations.
9708
9709         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
9710         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
9711         * doc/tm.texi: Regenerate.
9712
9713         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
9714         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
9715
9716         * target.def (enum_va_list_p): Use DEFHOOK.
9717         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
9718         Rename ptype to ptree.
9719         * doc/tm.texi: Regenerate.
9720
9721         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
9722         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
9723         * doc/tm.texi: Regenerate.
9724
9725         * target.def (memory_move_cost): Use DEFHOOK.
9726         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
9727         Rename regclass AKA class to rclass.
9728         * doc/tm.texi: Regenerate.
9729
9730         * target.def (pragma_parse): Use DEFHOOK.
9731         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
9732         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
9733         * doc/tm.texi: Regenerate.
9734
9735         * target.def (pass_by_reference): Use DEFHOOK.
9736         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
9737         * doc/tm.texi: Regenerate.
9738
9739         * target.def (resolve_overloaded_builtin): Rename params to arglist.
9740         Use DEFHOOK.
9741         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
9742         * doc/tm.texi: Regenerate.
9743
9744         * target.def (return_pops_args): Use DEFHOOK.
9745         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
9746         Rename stack-size to size.
9747         * doc/tm.texi: Regenerate.
9748
9749         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
9750         last-sched_cycle to last_clock, cur_cycle to clock.
9751         * doc/tm.texi.in: Use @hook.
9752         * doc/tm.texi: Regenerate.
9753
9754         * target.def (print_operand, print_operand_address): Update comment.
9755         (print_operand_punct_valid_p): Likewise.
9756
9757 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9758
9759         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
9760         to rtl.h.
9761         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
9762         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
9763         * rtl-error.h: New.
9764         * regrename.c: Do not include toplev.h. Include rtl-error.h.
9765         * rtl-error.c: Likewise.
9766         * reload.c: Likewise.
9767         * recog.c:  Likewise.
9768         * sel-sched.c: Likewise.
9769         * function.c: Likewise.
9770         * reg-stack.c: Likewise.
9771         * cfgrtl.c: Likewise.
9772         * reload1.c: Likewise.
9773         * final.c: Include rtl-error.
9774         * Makefile.in: Adjust dependencies.
9775
9776 2010-06-30  Jan Hubicka  <jh@suse.cz>
9777
9778         PR middle-end/PR44706
9779         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
9780         to return the value.
9781
9782 2010-06-30  Michael Matz  <matz@suse.de>
9783
9784         PR bootstrap/44699
9785         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
9786         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
9787         a gimple reg, attach the original VDEF to the last store in the
9788         sequence.
9789
9790 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
9791
9792         PR other/44034
9793         * config/darwin.c (darwin_override_options): Use renamed
9794         targetm.asm_out.emit_unwind_label.
9795
9796 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
9797
9798         PR tree-optimization/39799
9799         * tree-inline.c (remap_ssa_name): Initialize variable only if
9800         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
9801
9802 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
9803
9804         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
9805
9806 2010-06-30  Richard Guenther  <rguenther@suse.de>
9807
9808         PR target/44722
9809         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
9810         against oscillation with reverse peephole2.
9811
9812 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
9813
9814         PR target/44721
9815         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9816         Fix last commit.
9817
9818 2010-06-30  Nick Clifton  <nickc@redhat.com>
9819
9820         * config/rx/rx-modes.def: New file.
9821         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
9822         (CC_REGNUM): Define.
9823         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
9824         register.
9825         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
9826         (SELECT_CC_MODE): Define.
9827         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
9828         (reg:CC CC_REG) instead of (cc0).
9829         (attr "cc"): Delete.
9830         (cbranchsi4): Do not split compare and branch here. Instead move
9831         it to...
9832         (cbranchsi4_<code>): ... here.  New patterns.
9833         (cmpsi): Call rx-compare_redundant to find out if it is necessary
9834         to emit the compare instruction.
9835         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
9836         cc_status flags.
9837         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
9838         FIRST_PSEUDO_REGNUM.
9839         (rx_expand_prologue, rx_expand_epilogue): Likewise.
9840         (rx_notice_update_cc): Delete.
9841         (rx_cc_modes_compatible): New function.
9842         (flags_needed_for_conditional): New function.
9843         (flags_from_mode): New function.
9844         (rx_compare_redundant): New function - scans backwards through
9845         insn list to find out if condition flags are already set correctly.
9846         (TARGET_CC_MODES_COMPATIBLE): Define.
9847         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
9848
9849         * config/rx/rx.h (BRANCH_COST): Define.
9850         (REGISTER_MOVE_COST): Define.
9851         * config/rx/predicates (rx_source_operand): Allow all constant types.
9852         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
9853         (tstsi4): New pattern.
9854         * config/rx/rx.c (rx_memory_move_cost): Define.
9855         (TARGET_MEMORY_MOVE_COST): Define.
9856
9857 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9858
9859         * tree.h (block_may_fallthru): Declare here.
9860         * tree-flow.h (block_may_fallthru): Do not declare here.
9861         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
9862         bitmap.h
9863         * Makefile.in (c-typeck.o): Update dependencies.
9864
9865 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
9866
9867         PR debug/44694
9868         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
9869         * cselib.c (cfa_base_preserved_regno): New static variable.
9870         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
9871         of REGNO (cfa_base_preserved_val->locs->loc).
9872         (cselib_preserve_cfa_base_value): Add regno argument, set
9873         cfa_base_preserved_regno to it.
9874         (cselib_invalidate_regno): Allow removal of registers other than
9875         cfa_base_preserved_regno from cfa_base_preserved_val.
9876         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
9877         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
9878         of MEM addresses, if not on LHS.
9879         (reverse_op): Don't add reverse ops for cfa_base_rtx.
9880         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
9881
9882 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
9883
9884         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
9885         static variables.
9886         (peep2_buf_position): New static function.
9887         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
9888         peephole2_optimize): Use it.
9889         (peep2_attempt, peep2_update_life): New static functions, broken out
9890         of peephole2_optimize.
9891         (peep2_fill_buffer): New static function.
9892         (peephole2_optimize): Change the main loop to try to fill the buffer
9893         with the maximum number of insns before matching them against
9894         peepholes.  Use a forward scan.  Remove special case for targets with
9895         conditional execution.
9896         * genrecog.c (change_state): Delete dead code.
9897         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9898         Rewrite so as not to expect the second insn to have had a peephole
9899         applied yet.
9900
9901 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9902
9903         * genhooks.c (emit_findices): Cast field precision to int.
9904         (emit_documentation): Likewise.
9905
9906 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
9907
9908         PR tree-optimization/43801
9909         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
9910         if old_decl was DECL_ONE_ONLY.
9911
9912         PR debug/44668
9913         * dwarf2out.c (add_accessibility_attribute): New function.
9914         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
9915         instead of adding DW_AT_accessibility manually.
9916         (gen_enumeration_type_die, gen_struct_or_union_type_die,
9917         gen_typedef_die): Use it.
9918
9919 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9920
9921         * vmsdbgout.c (full_name): Just output the file name if not native.
9922
9923 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9924
9925         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
9926         (funcnam_table): New static table.
9927         (funcnum_table): New static table.
9928         (write_rtnbeg): Write value saved in funcnum_table.
9929         (write_rtnend): Write value saved in funcnum_table.
9930         (vmsdbgout_begin_function): Save current function info in
9931         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
9932         (vmsdbgout_finish): Iterate over funcnum_table.
9933
9934 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9935
9936         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
9937         (vmsdbgout_type_decl): Declare
9938         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
9939         (FUNC_EPILOGUE_LABEL): New macro
9940         (vmsdbgout_begin_epilogue): New function.
9941         (vmsdbgout_type_decl): New function.
9942
9943 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9944
9945         * vmsdbg.h: Update copyright.
9946
9947 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
9948
9949         * vmsdbg.h (DST_K_TBG): New DST constant.
9950         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
9951         (write_modbeg): Cast module_language to avoid warning.
9952         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
9953
9954 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
9955
9956         PR other/44034
9957         * target.def, doc/tm.texi.in, genhooks.c: New files.
9958         * target.h: Instead of defining individual hook members,
9959         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
9960         include target.def.
9961         * target-def.h: Instead of defining individual hook initializers,
9962         include target-hooks-def.h.
9963         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
9964         targetm.live_on_entry -> targetm.extra_live_on_entry
9965         targetm.sched.md_finish ->targetm.sched.finish
9966         targetm.sched.md_init -> targetm.sched.init
9967         targetm.sched.md_init_global -> targetm.sched.init_global
9968         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
9969         targetm.asm_out.except_table_label ->
9970           targetm.asm_out.emit_except_table_label
9971         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
9972         targetm.target_help -> targetm.help
9973         targetm.vectorize.builtin_support_vector_misalignment ->
9974           targetm.vectorize.support_vector_misalignment
9975         targetm.file_start_app_off -> targetm.asm_file_start_app_off
9976         targetm.file_start_file_directive ->
9977          targetm.asm_file_start_file_directive
9978         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
9979         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
9980         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
9981         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
9982           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
9983         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
9984           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
9985         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
9986         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
9987         * Makefile.in (TARGET_H): Depend on target.def.
9988         (TARGET_DEF_H): Depend on target-hooks-def.h.
9989         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
9990         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
9991         * doc/tm.texi: Regenerate.
9992
9993         * Makefile.in (s-tm-texi): Remove stray tab / rule.
9994
9995         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
9996         (targetm.sched.init): Likewise.
9997
9998 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
9999
10000         PR bootstrap/44713
10001         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
10002         (function_arg_advance_32): Const-ify TYPE parameter.
10003         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
10004         (ix86_function_arg_advance): Change type of NAMED to bool.
10005         (function_arg_32): Const-ify CUM and TYPE parameters.
10006         (function_arg_64): Likewise.  Change type of NAMED to bool.
10007         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
10008         to bool.
10009         (ix86_function_arg): Change type of NAMED to bool.
10010         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
10011         last argument as a bool.
10012
10013 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10014
10015         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
10016         (OVERRIDE_OPTIONS): Add note of obsolescence.
10017         Replace references with references to TARGET_OPTION_OVERRIDE.
10018         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
10019          the macro).
10020         * targhooks.c (default_target_option_override): New function.
10021         * targhooks.h (default_target_option_override): Declare.
10022         * target.h (struct gcc_target): Add override member to
10023         target_option member.
10024         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
10025         targetm.target_option.override call.
10026         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
10027         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
10028
10029 2010-06-29  Jan Hubicka  <jh@suse.cz>
10030
10031         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
10032
10033 2010-06-29  Jan Hubicka  <jh@suse.cz>
10034
10035         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
10036         unreachable.
10037         (rebuild_frequencies): New function.
10038         * predict.h (rebuild_frequencies): Declare.
10039         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
10040         entry block and edge reaching new_entry.
10041         (tree_function_versioning): When doing partial cloning, rebuild
10042         frequencies when done.
10043         * passes.c (execute_function_todo): Use rebild_frequencies.
10044
10045 2010-06-29  Richard Guenther  <rguenther@suse.de>
10046
10047         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
10048         * tree-flow.h (enum noalias_state): Remove.
10049         (struct var_ann_d): Remove noalias_state member.
10050
10051 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10052
10053         PR target/43902
10054         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
10055         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
10056         (maddhidi4): Likewise.
10057
10058         Revert parts of the change for PR25130.
10059         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10060         MEM_ALIAS_SET.
10061
10062 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10063
10064         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
10065         targetm.calls.function_incoming_arg, and
10066         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
10067         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
10068         * target.h (struct gcc_target): Add function_arg_advance,
10069         function_arg, and function_incoming_arg fields.
10070         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
10071         (TARGET_FUNCTION_INCOMING_ARG): Define.
10072         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
10073         and TARGET_FUNCTION_INCOMING_ARG.
10074         * targhooks.h (default_function_arg_advance): Declare.
10075         (default_function_arg, default_function_incoming_arg): Declare.
10076         * targhooks.c (default_function_arg_advance): New function.
10077         (default_function_arg, default_function_incoming_arg): New function.
10078         * config/i386/i386.c (function_arg_advance): Rename to...
10079         (ix86_function_arg_advance): ...this.  Make static.
10080         (function_arg): Rename to...
10081         (ix86_function_arg): ...this.  Make static.
10082         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10083         (TARGET_FUNCTION_ARG): Define.
10084         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
10085         (FUNCTION_ARG): Delete.
10086         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
10087         (function_arg): Delete prototype.
10088
10089 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10090
10091         * reginfo.c (init_reg_sets_1): Adjust comments.
10092         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
10093         * calls.c (prepare_call_address): Likewise.
10094         (emit_call_1): Use targetm.calls.return_pops_args.
10095         (expand_call): Likewise.
10096         * function.c (assign_parms): Likewise.
10097         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
10098         * target.h (struct gcc_target) [struct calls]: Add
10099         return_pops_args field.
10100         * targhooks.h (default_return_pops_args): Declare.
10101         * targhooks.c (default_return_pops_args): Define.
10102         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
10103         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
10104         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
10105         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
10106         documentation.
10107         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
10108         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
10109         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
10110         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
10111         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
10112         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
10113         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
10114         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
10115         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
10116         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
10117         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
10118         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
10119         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
10120         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
10121         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
10122         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
10123         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
10124         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
10125         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
10126         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
10127         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
10128         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
10129         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
10130         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
10131         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
10132         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
10133         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
10134         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
10135         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
10136         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
10137         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
10138         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
10139         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
10140         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
10141         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
10142         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
10143         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
10144         * config/i386/i386.c (ix86_return_pops_args): Make static.
10145         Constify arguments.
10146         (TARGET_RETURN_POPS_ARGS): Define.
10147         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
10148         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
10149         (TARGET_RETURN_POPS_ARGS): Define.
10150         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
10151         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
10152         (TARGET_RETURN_POPS_ARGS): Define.
10153
10154 2010-06-29  Richard Guenther  <rguenther@suse.de>
10155
10156         PR middle-end/44667
10157         * tree-inline.c (initialize_inlined_parameters): Make sure
10158         to remap the inlined parameter variable substitutions types.
10159
10160 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10161
10162         PR rtl-optimization/44659
10163         * combine.c (make_compound_operation) <SUBREG>: Do not return the
10164         result of force_to_mode if it partially re-expanded the compound.
10165
10166 2010-06-28  Jan Hubicka  <jh@suse.cz>
10167
10168         PR middle-end/44671
10169         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
10170         RESULT_DECL.
10171
10172 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
10173
10174         * double-int.h (force_fit_type_double): Remove declaration.
10175         * double-int.c (force_fit_type_double): Move to tree.c.
10176         * tree.h (force_fit_type_double): Declare.
10177         * tree.h (force_fit_type_double): Moved from double-int.c. Use
10178         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
10179         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
10180         * convert.c (convert_to_pointer): Adjust call to
10181         force_fit_type_double.
10182         * tree-vrp.c (extract_range_from_assert,
10183         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
10184         * fold-const.c: Update comment.
10185         (int_const_binop, fold_convert_const_int_from_int,
10186         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
10187         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
10188         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
10189         round_up_loc): Adjust call to force_fit_type_double.
10190
10191 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10192
10193         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
10194
10195 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10196
10197         * tree-sra.c (convert_callers): New parameter, change fndecls of
10198         recursive calls.
10199         (modify_function): Pass the old decl to convert_callers.
10200
10201 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10202
10203         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
10204         ipa_check_create_node_params and ipa_initialize_node_params with
10205         checking asserts they are not necessary.
10206
10207 2010-06-28  Jan Hubicka  <jh@suse.cz>
10208
10209         PR tree-optimization/44687
10210         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
10211
10212 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10213
10214         PR c++/44535
10215         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
10216         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
10217         instead of BINFO_BASE_BINFO.
10218
10219 2010-06-28  Michael Matz  <matz@suse.de>
10220
10221         PR middle-end/44592
10222         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
10223         proper VDEF chain for intermediate stores in the sequence.
10224
10225 2010-06-28  Jan Hubicka  <jh@suse.cz>
10226
10227         PR tree-optimization/44357
10228         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
10229         uninlinable functions.
10230
10231 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10232
10233         * config.gcc (powerpc*-*-*): Handle titan.
10234         * config/rs6000/rs6000.c (titan_cost): New costs.
10235         (rs6000_override_options): Add "titan" to processor_target_table.
10236         Add Titan to branch alignment logic.
10237         Correctly set rs6000_cost for titan.
10238         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
10239         * config/rs6000/titan.md: New file.
10240         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
10241
10242 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10243
10244         * tree-browser.c (TB_history_stack): Convert to a VEC.
10245         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
10246         (TB_history_prev): Likewise.
10247
10248 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10249
10250         * vec.h (vec_heap_free): Add parentheses around free.
10251
10252 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
10253
10254         * system.h: Poison GCC_EXCEPT_H for front-end files.
10255
10256         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
10257         langhook.
10258         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
10259         Define to NULL by default.
10260         * except.h: Define GCC_EXCEPT_H.
10261         (doing_eh): Remove prototype.
10262         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
10263         (lang_protect_cleanup_actions): Remove.
10264         * except.c (lang_protect_cleanup_actions): Remove.
10265         (doing_eh): Remove.
10266         (gen_eh_region): Don't check doing_eh here.
10267         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
10268         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
10269         instead of lang_protect_cleanup_actions.
10270         * omp-low.c (maybe_catch_exception): Likewise.
10271         * Makefile.in: Update dependencies.
10272
10273 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
10274
10275         * cgraph.h (struct varpool_node): new used_from_object_file flag.
10276         (struct cgraph_local_info): new used_from_object_file flag.
10277         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
10278         (cgraph_clone_node): initialize used_from_object_file.
10279         (cgraph_create_virtual_clone): initialize used_from_object_file.
10280         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
10281         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
10282         when compiling with -fwhole-program.
10283         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
10284         internal resolver.
10285         * ipa.c (function_and_variable_visibility): Set externally_visible
10286         flag of varpool_node if used_from_object_file flag is set.
10287         (cgraph_externally_visible_p): check used_from_object_file flag.
10288         * doc/invoke.texi (-fwhole-program option): Change description of
10289         externally_visible attribute accordingly.
10290         * doc/extend.texi (externally_visible): Ditto.
10291
10292 2010-06-27  Jan Hubicka  <jh@suse.cz>
10293
10294         * params.def (max-inline-insns-auto): Default to 40.
10295         * doc/invoke.texi (max-inline-insns-auto): Document the change.
10296
10297 2010-06-27  Jan Hubicka  <jh@suse.cz>
10298
10299         PR middle-end/44671
10300         PR middle-end/44686
10301         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
10302         signature change.
10303         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
10304         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
10305
10306 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
10307
10308         * target.h (struct gcc_target): Add register_move_cost field.
10309         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
10310         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
10311         * targhooks.c (default_register_move_cost): New function.
10312         * targhooks.h (default_register_move_cost): Declare function.
10313         * defaults.h (REGISTER_MOVE_COST): Delete.
10314         * ira-int.h (ira_register_move_cost): Update comment.
10315         * ira.c (ira_register_move_cost): Update comment.
10316         * reload.h (register_move_cost): Declare.
10317         * reginfo.c (register_move_cost): New function.
10318         (move_cost): Update comment.
10319         (init_move_cost, memory_move_secondary_cost): Replace
10320         REGISTER_MOVE_COST with register_move_cost.
10321         * postreload.c (reload_cse_simplify_set): (Ditto.).
10322         * reload.c (find_valid_class, find_reloads): (Ditto.).
10323         * reload1.c (choose_reload_regs): (Ditto.).
10324         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
10325         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
10326         * doc/md.texi (can_create_pseudo_p): Update documentation.
10327
10328         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
10329         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
10330         * config/i386/i386.h (ix86_memory_move_cost): Make static.
10331         (TARGET_MEMORY_MOVE_COST): Define.
10332
10333         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10334         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
10335         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
10336         (TARGET_MEMORY_MOVE_COST): Define.
10337
10338 2010-06-27  Richard Guenther  <rguenther@suse.de>
10339
10340         PR tree-optimization/44683
10341         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
10342         false edge from the inverted condition.
10343
10344 2010-06-27  Richard Guenther  <rguenther@suse.de>
10345
10346         PR middle-end/44684
10347         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
10348         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
10349         for register LHS.  Or non-store assignments.
10350
10351 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
10352
10353         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
10354         (sparc_emit_set_const64): Likewise.  Remove disabled code.
10355         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
10356         (sparc_emit_set_const64): Likewise.
10357
10358 2010-06-26  Catherine Moore  <clm@codesourcery.com>
10359
10360         * config/mips/mips.md (alu_type): New attribute.
10361         (type): Infer type from alu_type.
10362         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
10363         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
10364         *subsi3_extended, negsi2, negdi2, *low<mode>,
10365         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
10366         xor<mode>3, *nor<mode>3,
10367         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
10368         *zero_extendhi_truncqi):  Set alu_type instead of type.
10369
10370 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
10371
10372         * config/alpha/alpha.c (alpha_need_linkage): Adjust
10373         splay_tree_new_ggc call.
10374         (alpha_use_linkage): Likewise.
10375
10376 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10377
10378         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
10379         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
10380         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
10381         (static_specs): Remove switches_need_spaces.
10382         (process_command, do_self_spec): Hardcode handling "-o" instead of
10383         checking switches_need_spaces.
10384         * system.h (SWITCHES_NEED_SPACES): Poison.
10385
10386 2010-06-26  Richard Guenther  <rguenther@suse.de>
10387
10388         PR tree-optimization/44393
10389         * tree-loop-distribution.c (generate_loops_for_partition): Fix
10390         stmt removal and VOP renaming.
10391         (generate_memset_zero): Remove redundant stmt updating.
10392         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
10393         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
10394
10395 2010-06-26  Jan Hubicka  <jh@suse.cz>
10396
10397         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
10398         edges comming from header are equivalent.
10399         (visit_bb): Handle PHIs correctly.
10400         * tree-inline.c (copy_phis_for_bb): Be able to copy
10401         PHI from entry edge.
10402         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
10403
10404 2010-06-26  Richard Guenther  <rguenther@suse.de>
10405
10406         PR middle-end/44674
10407         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
10408         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
10409
10410 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10411
10412         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
10413         add_infile, alloc_switch): New.
10414         (process_command): Remove variable lang_n_infiles.  Process
10415         options in a single pass.  Use new functions for allocating
10416         infiles and switches arrays.  Properly skip operands of
10417         -Xpreprocessor and -Xassembler.
10418
10419 2010-06-26  Jan Hubicka  <jh@suse.cz>
10420
10421         PR middle-end/44671
10422         * cgraphunit.c (cgraph_function_versioning): Remove wrong
10423         cgraph_make_decl_local call; fix typo copying RTL data.
10424
10425 2010-06-25  DJ Delorie  <dj@redhat.com>
10426
10427         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
10428         (m32c_output_aligned_common): Likewise.
10429         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
10430         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
10431         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
10432         (m32c_register_pragmas): Register it.
10433         * config/m32c/m32c.c (m32c_get_pragma_address): New.
10434         (m32c_insert_attributes): Set #pragma address decls volatile.
10435         (pragma_entry_eq): New.
10436         (pragma_entry_hash): New.
10437         (m32c_note_pragma_address): New.
10438         (m32c_get_pragma_address): New.
10439         (m32c_output_aligned_common): New.
10440         * doc/extend.texi: Document the new pragma.
10441
10442         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
10443         also.
10444         * config/m32c/predicates.md (m32c_any_operand): Check the code
10445         instead of memory_operand so as to allow matching volatile MEMs.
10446         (m32c_nonimmediate_operand): Likewise.
10447         (mra_operand): Allow volatiles.
10448
10449 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
10450
10451         PR debug/44610
10452         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
10453         address if the offset is unknown.
10454
10455 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
10456
10457         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
10458         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
10459         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
10460         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
10461         to ia64_start_function. Invoke it.
10462         * config/ia64/ia64.c (ia64_start_function): Call new function
10463         dwarf2out_vms_debug_main_pointer.
10464
10465 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10466
10467         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
10468         statements computing the true predicate.
10469
10470 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10471
10472         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
10473         to boolean_true_node.
10474         (reset_bb_predicate): New.
10475         (predicate_bbs): Call reset_bb_predicate.
10476
10477 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10478
10479         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
10480         (tree_if_conversion): Returns true when something has been changed.
10481         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
10482         changed something.
10483
10484 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10485
10486         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
10487         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
10488         * tree-if-conv.c: Include dbgcnt.h.
10489         (tree_if_conversion): Use if_conversion_tree to count the number of
10490         if-convertible loops.
10491
10492 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
10493
10494         * common.opt (fprefetch-loop-arrays): Re-define
10495         -fprefetch-loop-arrays as a tri-state option with the initial
10496         value of -1.
10497         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
10498         pass only when flag_prefetch_loop_arrays > 0.
10499         * toplev.c (process_options): Note that, with tri-states,
10500         flag_prefetch_loop_arrays>0 means prefetching is enabled.
10501         * config/i386/i386.c (override_options): Enable prefetching at -O3
10502         for a set of CPUs that sw prefetching is helpful.
10503         (software_prefetching_beneficial_p): New.  Return TRUE if software
10504         prefetching is beneficial for the given CPU.
10505
10506 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
10507
10508         PR rtl-optimization/44326
10509         * implicit-zee.c (find_removable_zero_extends): Replace
10510         INSN_P with NONDEBUG_INSN_P.
10511
10512 2010-06-25  Martin Jambor  <mjambor@suse.cz>
10513
10514         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
10515         (struct ipa_node_params): Removed the modification_analysis_done flag.
10516         (ipa_is_param_modified): Removed.
10517         (ipa_analyze_node): Declare.
10518         (ipa_compute_jump_functions): Remove declaration.
10519         (ipa_count_arguments): Likewise.
10520         (ipa_detect_param_modifications): Likewise.
10521         (ipa_analyze_params_uses): Likewise.
10522         * ipa-prop.c (struct param_analysis_info): New type.
10523         (visit_store_addr_for_mod_analysis): Removed.
10524         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
10525         moved down in the file.
10526         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
10527         (ipa_count_arguments): Made static.
10528         (mark_modified): New function.
10529         (is_parm_modified_before_call): New function.
10530         (compute_pass_through_member_ptrs): New parameter parms_info, call
10531         is_parm_modified_before_call instead of ipa_is_param_modified.
10532         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
10533         it to compute_pass_through_member_ptrs.
10534         (ipa_compute_jump_functions): New parameter parms_info, pass it to
10535         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
10536         on the callee if it is analyzed.  Made static.
10537         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
10538         is_parm_modified_before_call instead of ipa_is_param_modified.
10539         (ipa_analyze_call_uses): New parameter parms_info, pass it to
10540         ipa_analyze_indirect_call_uses.
10541         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
10542         ipa_analyze_call_uses.
10543         (ipa_analyze_params_uses): New parameter parms_info, pass it to
10544         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
10545         (ipa_analyze_node): New function.
10546         (ipa_print_node_params): Do not dump the modified flag.
10547         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
10548         it.  Do not stream the modified parameter flag.
10549         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
10550         it.  Do not stream the modified parameter flag.
10551         * ipa-cp.c (ipcp_analyze_node): Removed.
10552         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
10553         with only a call to ipa_analyze_node.
10554         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
10555         node with only a call to ipa_analyze_node.
10556
10557 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10558
10559         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
10560
10561 2010-06-25  Jan Hubicka  <jh@suse.cz>
10562
10563         * tree-pass.h (pass_split_functions): Declare.
10564         * opts.c (decode_options): Enable function splitting at -O2
10565         * timevar.def (TV_IPA_FNSPLIT): New macro.
10566         * ipa-split.c: New file.
10567         * common.opt (-fpartial-inlining): New flag.
10568         * Makefile.in (ipa-split.o): New object file.
10569         * passes.c (init_optimization_passes): Add ipa-split.
10570         * params.def (partial-inlining-entry-probability): New parameters.
10571         * doc/invoke.texi (-fpartial-inlining): New.
10572
10573 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10574
10575         PR 44665
10576         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
10577         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
10578         (gimplify_expr): Likewise.
10579
10580 2010-06-25  Martin Jambor  <mjambor@suse.cz>
10581
10582         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
10583         statements instead of bailing out on them.
10584         (ipa_analyze_indirect_call_uses): Do not require that loads from the
10585         parameter are in the same BB as the condition.  Update comments.
10586
10587 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
10588
10589         PR middle-end/43866
10590         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
10591         true or always false, return NULL_TREE.
10592         (tree_unswitch_single_loop): Optimize conditions even when reaching
10593         max-unswitch-level parameter.  If num > 0, optimize first all conditions
10594         using entry checks, then do still reachable block discovery and consider
10595         only conditions in still reachable basic blocks in the loop.
10596
10597         PR tree-optimization/44539
10598         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
10599         the call doesn't have LHS, but has VDEF.
10600
10601 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
10602
10603         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
10604         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
10605         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
10606         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
10607         * system.h (MODIFY_TARGET_NAME): Poison.
10608
10609 2010-06-25  Alan Modra  <amodra@gmail.com>
10610
10611         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
10612         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
10613         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10614         CMODEL_LARGE as default.
10615         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
10616         (offsettable_ok_by_alignment): Delete.
10617         (rs6000_emit_move): Remove mcmodel=medium optimization.
10618
10619 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
10620
10621         With large parts from Jim Wilson:
10622         PR target/43902
10623         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
10624         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
10625         * optabs.c (optab_for_tree_code): Likewise.
10626         (expand_widen_pattern_expr): Likewise.
10627         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
10628         out of execute_optimize_widening_mul.
10629         (convert_plusminus_to_widen): New function.
10630         (execute_optimize_widening_mul): Use the two new functions.
10631         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
10632         Remove code to generate widening multiply-accumulate.  Add support
10633         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
10634         * gimple-pretty-print.c (dump_ternary_rhs): New function.
10635         (dump_gimple_assign): Call it when appropriate.
10636         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
10637         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
10638         (expand_gimple_stmt_1): Likewise.
10639         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
10640         WIDEN_MULT_MINUS_EXPR.
10641         * tree-ssa-operands.c (get_expr_operands): Likewise.
10642         * tree-inline.c (estimate_operator_cost): Likewise.
10643         * gimple.c (extract_ops_from_tree_1): Renamed from
10644         extract_ops_from_tree.  Add new arg for a third operand; fill it.
10645         (gimple_build_assign_stat): Support operations with three operands.
10646         (gimple_build_assign_with_ops_stat): Likewise.
10647         (gimple_assign_set_rhs_from_tree): Likewise.
10648         (gimple_assign_set_rhs_with_ops_1): Renamed from
10649         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
10650         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
10651         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
10652         WIDEN_MULT_MINUS_EXPR.
10653         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
10654         (extract_ops_from_tree_1): Adjust declaration.
10655         (gimple_assign_set_rhs_with_ops_1): Likewise.
10656         (gimple_build_assign_with_ops): Pass NULL for last operand.
10657         (gimple_build_assign_with_ops3): New macro.
10658         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
10659         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
10660         functions.
10661         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
10662         (verify_gimple_assign): Call it.
10663         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
10664         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
10665         functions for dealing with three-operand statements.
10666         * tree.c (commutative_ternary_tree_code): New function.
10667         * tree.h (commutative_ternary_tree_code): Declare it.
10668         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
10669         ternary statements.
10670         (gimple_assign_nonzero_warnv_p): Likewise.
10671         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
10672         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
10673         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
10674         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
10675         (struct hashtable_expr): New member ternary in the union.
10676         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
10677         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
10678         (iterative_hash_hashable_expr): Likewise.
10679         (print_expr_hash_elt): Handle EXPR_TERNARY.
10680         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
10681         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
10682         statements.  Handle GIMPLE_TERNARY_RHS.
10683
10684 2010-06-25  Jan Hubicka  <jh@suse.cz>
10685
10686         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
10687
10688 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
10689
10690         PR c/44517
10691         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
10692         parameters are not good.
10693         (c_parser_parameter_declaration): Error unknown type name if the type
10694         name can't start declaration specifiers.
10695
10696 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
10697
10698         * gcc.c (translate_options): Don't mention +e in comment.
10699         (process_command): Don't handle +e specially.
10700
10701 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
10702
10703         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
10704
10705         * ira-build.c (merge_hard_reg_conflicts): New function.
10706         (create_cap_allocno, copy_info_to_removed_store_destinations,
10707         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
10708         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
10709         (remove_unnecessary_allocnos, remove_low_level_allocnos)
10710         copy_nifo_to_removed_store_destination): Use them.
10711         * ira-lives.c (make_hard_regno_born): New function, split out of
10712         make_regno_born.
10713         (make_allocno_born): Likewise.
10714         (make_hard_regno_dead): New function, split out of make_regno_dead.
10715         (make_allocno_dead): Likewise.
10716         (inc_register_pressure): New function, split out of set_allocno_live.
10717         (dec_register_pressure): New function, split out of clear_allocno_live.
10718         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
10719         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
10720         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
10721         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
10722         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
10723         mark_pseudo_regno_live.
10724         (process_bb_node_lives): Use mark_pseudo_regno_live,
10725         make_hard_regno_born and make_allocno_dead.
10726         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
10727         set_allocno_live, clear_allocno_live): Delete functions.
10728
10729         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
10730         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
10731         functions.
10732         (ira_flattening): Use ira_parent_allocno.
10733         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
10734         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
10735
10736         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
10737         statement.
10738
10739         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
10740         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
10741         minmax_set_iter_cond, minmax_set_iter_next,
10742         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
10743         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
10744         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
10745         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
10746         uses changed.
10747
10748         * ira-int.h (struct live_range, live_range_t): Renamed from struct
10749         ira_allocno_live_range and allocno_live_range_t; all uses changed.
10750         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
10751         All uses changed.
10752
10753 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
10754
10755         * thumb2.md (thumb2_tlobits_cbranch): Delete.
10756         (peephole2 to convert zero_extract/compare of single bit to
10757          lshift/compare): New.
10758
10759 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
10760
10761         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
10762         recursive call and call to 'int_const_binop'.
10763         (build_range_check, fold_cond_expr_with_comparison, unextend,
10764         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
10765         multiple_of_p): Adjust call to const_binop.
10766
10767 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
10768
10769         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
10770         determine size of XFmode operand.
10771         (XFmode extended DFmode push splitter): Ditto.
10772         (XFmode extended SFmode push splitter): Ditto.
10773
10774 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
10775
10776         PR target/44588
10777         * config/i386/i386.md (extract_code): New.
10778         (<u>divmodqi4): Likewise.
10779         (divmodhiqi3): Likewise.
10780         (udivmodhiqi3): Likewise.
10781         (<u>divqi3): Remvoved.
10782
10783 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
10784
10785         PR middle-end/44492
10786         * recog.h (struct recog_data): Add is_asm field.
10787         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
10788         present in constraints of inline-asm operand and memory operand
10789         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
10790         (extract_insn): Initialize recog_data.is_asm.
10791         * doc/md.texi (Constraints): Document operand side-effect rules.
10792
10793 2010-06-24  Andi Kleen  <ak@linux.intel.com>
10794
10795         * c-parser.c (c_parser_conditional_expression): Call
10796         warn_for_omitted_condop.
10797         * doc/invoke.texi: Document omitted condop warning.
10798
10799 2010-06-24  Nick Clifton<nickc@redhat.com>
10800
10801         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
10802         insn in the sequence is a jump insn before setting its label.
10803
10804 2010-06-24  Alan Modra  <amodra@gmail.com>
10805
10806         * collect2.c (main): Match exactly --version and --help.
10807
10808 2010-06-24  DJ Delorie  <dj@redhat.com>
10809
10810         * config/m32c/m32c-pragma.c: Don't include rtl.h.
10811
10812 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
10813
10814         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
10815         using X87MODEF mode iterator.
10816         (pushsf splitter): Macroize splitter using P mode iterator.
10817         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
10818         mode iterator.
10819
10820         (*movxf_internal): Rename from *movxf_integer.
10821         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
10822         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
10823         (*movdf_internal): Rename from *movdf_integer.
10824         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
10825         (*movsf_internal): Rename from *movdf_1.
10826
10827 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
10828
10829         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
10830         (const_gimple_seq_node): Removed typedefs.
10831
10832         * gimple.h (gimple_seq_node_d, gimple_seq_node)
10833         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
10834
10835 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
10836
10837         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
10838         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
10839         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
10840         and CODE_FOR_vec_extract_lo_v4df.
10841
10842         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
10843         Changed to define_insn_and_split.
10844         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
10845         (vec_extract_lo_v16hi): Likewise.
10846         (vec_extract_lo_v32qi): Likewise.
10847         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
10848         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
10849
10850 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
10851
10852         PR target/44640
10853         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
10854         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
10855         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
10856         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
10857         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
10858
10859         PR target/44640
10860         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
10861
10862         PR other/44644
10863         * df-core.c (struct df): Rename to df_d.
10864         * df.h (struct df): Likewise.
10865         * dse.h (struct df): Remove forward declaration.
10866         * recog.h (struct insn_data): Rename to:
10867         (struct_insn_data_d).  Adjusted all users.
10868
10869 2010-06-23  Arnaud Charlet  <charlet@adacore.com
10870
10871         PR ada/22220
10872         * doc/install.texi: Update requirements to build GNAT.
10873
10874 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
10875
10876         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
10877         enum type.
10878         (m68k_sched_attr_opx_type): Remove unreachable return.
10879         (m68k_sched_attr_opy_type): Likewise.
10880         (m68k_sched_attr_size): Likewise.
10881         (sched_get_opxy_mem_type): Likewise.
10882         (m68k_sched_attr_op_mem): Likewise.
10883
10884 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
10885
10886         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
10887         new statement and adjust VDEF only if necessary.  Remove superfluous
10888         call to maybe_clean_or_replace_eh_stmt.
10889         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
10890         copy the flags.
10891         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
10892         * tree-inline.c (copy_bb): ...and not there.
10893
10894 2010-06-22  Cary Coutant  <ccoutant@google.com>
10895
10896         * dwarf2out.c (is_nested_in_subprogram): New function.
10897         (should_move_die_to_comdat): Use it.
10898         (copy_ancestor_tree): Don't mark DIEs here.
10899         (copy_decls_walk): Start walk from root of newly-added tree;
10900         mark DIEs here instead.
10901
10902 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
10903
10904         * config/i386/i386.md (unit): Also check sseishft1.
10905
10906 2010-06-22  Jan Hubicka  <jh@suse.cz>
10907
10908         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
10909         enabled.
10910
10911 2010-06-22  Jan Hubicka  <jh@suse.cz>
10912
10913         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
10914         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
10915         Return true if something changed.
10916         * df.h (df_confluence_function_n): Return bool.
10917         * df-core.c (df_worklist_propagate_forward,
10918         df_worklist_propagate_backward): Track changes and ages.
10919         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
10920         track ages.
10921         * dse.c (dse_confluence_n): Return always true.
10922
10923 2010-06-22  Jan Hubicka  <jh@suse.cz>
10924
10925         * bitmap.c (bitmap_clear_bit): Micro optimize.
10926
10927 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
10928
10929         * config/i386/i386.md (SWI1248x): New mode iterator.
10930         (SWI48x): Ditto.
10931         (SWI12): Ditto.
10932         (SWI24): Ditto.
10933
10934         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
10935         SWI1248x mode iterator.
10936         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
10937         using SWI124 mode iterator.
10938         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
10939         mode iterator.
10940         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
10941         *pushdi2_prologue_rex64 using P mode iterator.
10942         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
10943         using SWI48 mode iterator.
10944         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
10945         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
10946         using SWI1248x mode iterator.
10947         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
10948         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
10949         SWI48 mode iterator.
10950         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
10951         iterator.
10952         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
10953         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
10954         SWI12 mode iterator.
10955         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
10956         SWI12 mode iterator.
10957         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
10958         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
10959         SWI24 mode iterator.
10960         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
10961         SWI48 mode iterator.
10962         (mov<mode>_insn_1): New expander.
10963         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
10964         using SWI48x mode iterator.
10965
10966         (*movoi_internal_avx): Rename from *movoi_internal.
10967         (*movti_internal_rex64): Rename from *movti_rex64.
10968         (*movti_internal_sse): Rename from *movti_sse.
10969         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
10970         (*movdi_internal): Rename from *movdi_2.
10971         (*movsi_internal): Rename from *movsi_1.
10972         (*movhi_internal): Rename from *movhi_1.
10973         (*movqi_internal): Rename from *movqi_1.
10974
10975         (insv): Update the call to gen_movsi_insv_1 for rename.
10976         * config/i386/i386.c (promote_duplicated_reg): Ditto.
10977
10978 2010-06-22  Jan Hubicka  <jh@suse.cz>
10979
10980         * passes.c (execute_function_todo): Move call of statistics_fini_pass
10981         to ...
10982         (execute_todo) ... this one.
10983
10984 2010-06-22  Alan Modra  <amodra@gmail.com>
10985
10986         PR target/44364
10987         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
10988         * caller-save.c (insert_restore, insert_save): Use non-validate
10989         form of adjust_address.
10990
10991 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10992
10993         PR target/39690
10994         * config/pa/pa.c (override_options): Disable
10995         -freorder-blocks-and-partition.
10996
10997 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
10998
10999         PR target/44615
11000         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
11001
11002         * config/i386/i386.md (type): Add sseishft1
11003
11004         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
11005         (ppro_insn_load): Likewise.
11006         (ppro_insn_store): Likewise.
11007         (ppro_insn_both): Likewise.
11008
11009         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
11010         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
11011         for type.
11012         (*vec_extractv2di_1_avx): Likewise.
11013         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
11014         type.  Remove atom_unit.
11015         (*vec_extractv2di_1_sse2): Likewise.
11016
11017 2010-06-21  DJ Delorie  <dj@redhat.com>
11018
11019         * diagnostic.h (diagnostic_classification_change_t): New.
11020         (diagnostic_context): Add history and push/pop list.
11021         (diagnostic_push_diagnostics): Declare.
11022         (diagnostic_pop_diagnostics): Declare.
11023         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
11024         from pragmas in a history chain instead of the global table.
11025         (diagnostic_push_diagnostics): New.
11026         (diagnostic_pop_diagnostics): New.
11027         (diagnostic_report_diagnostic): Scan history chain to find state
11028         of diagnostics as of the diagnostic location.
11029         * opts.c (set_option): Pass UNKNOWN_LOCATION to
11030         diagnostic_classify_diagnostic.
11031         (enable_warning_as_error): Likewise.
11032         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
11033         use in the history chain.
11034         * doc/extend.texi: Document pragma GCC diagnostic changes.
11035
11036 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
11037
11038         * dwarf2out.c (add_linkage_name): New function.  Don't add
11039         anything to DW_TAG_member DIEs.
11040         (add_name_and_src_coords_attributes): Use it.
11041         (gen_variable_die): Call it for C++ static data members if
11042         specification is DW_TAG_member.
11043
11044         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
11045         C++ char16_t and char32_t.
11046
11047         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
11048         * genattrtab.c: Include vecprim.h.
11049         (cached_attrs, cached_attr_count, attrs_seen_once,
11050         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
11051         attrs_cached_after): New variables.
11052         (find_attrs_to_cache): New function.
11053         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
11054         (write_test_expr): Add attrs_cached argument, return it too,
11055         attempt to cache non-const attributes used more than once in
11056         a single case handling.
11057         (write_attr_get): Use find_attrs_to_cache, for caching candidates
11058         emit cached_* variables.  Adjust write_attr_set callers.
11059         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
11060         to find attributes that should be cached in this block.  Adjust
11061         write_test_expr callers.
11062         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
11063         callers.
11064         (make_automaton_attrs): Adjust write_test_expr caller.
11065
11066         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
11067         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
11068         (make_automaton_attrs): If find_tune_attr returns non-NULL,
11069         write separate internal_dfa_insn_code_* and insn_default_latency_*
11070         functions for each attribute's value and emit init_sched_attrs
11071         function and function pointers.
11072         * genattr.c (const_attrs, reservations): New variables.
11073         (gen_attr): Add const attributes to const_attrs vector.
11074         (check_tune_attr, find_tune_attr): New functions.
11075         (main): Add reservations to reservations vector.  If find_tune_attr
11076         returns true, add prototype for init_sched_attrs and make
11077         internal_dfa_insn_code and insn_default_latency function pointers,
11078         otherwise define init_sched_attrs as dummy macro.
11079         * cfgexpand.c: Include insn-attr.h.
11080         (gimple_expand_cfg): Call init_sched_attrs.
11081
11082         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
11083
11084         PR target/44575
11085         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
11086         va_arg from a set of register save slots into a temporary,
11087         if the container is bigger than type size, do the copying
11088         using smaller mode or using memcpy.
11089
11090         PR bootstrap/44426
11091         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
11092         prototype.
11093         (sel_print_to_dot): Remove macro.
11094         (sel_print): Likewise.  New prototype.
11095         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
11096         (sel_print): New function.
11097
11098 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11099
11100         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
11101         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
11102
11103 2010-06-21  Nick Clifton  <nickc@redhat.com>
11104
11105         * config/rx/rx.h (PTRDIFF_TYPE): Define.
11106         (SMALL_REGISTER_CLASS): Define (to zero).
11107         (PRINT_OPERAND): Delete.
11108         (PRINT_OPERAND_ADDRESS): Delete.
11109         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
11110         (rx_print_operand_address): Delete prototype.
11111         * config/rx/rx.c (rx_print_operand): Make static.
11112         Allow %H and %L to handle CONST_DOUBLEs.
11113         (rx_print_operand_address): Make static.
11114         (rx_gen_move_template): Rename local variable 'template' to
11115         out_template.
11116         (rx_function_arg): Do not pass unknown sized objects in registers.
11117         (TARGET_PRINT_OPERAND): Define.
11118         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11119
11120 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
11121
11122         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
11123
11124 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
11125
11126         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
11127         stack-alignment for simple leaf-functions.
11128
11129 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11130
11131         * doc/install.texi: Document bootstrap-lto.
11132
11133 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11134
11135         PR debug/44248
11136         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
11137         (input_function): Drop them here, if VTA is disabled.
11138
11139 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
11140
11141         PR target/44546
11142         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
11143         New predicate.
11144         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
11145         ix86_swapped_fp_comparsion_operator instead of
11146         ix86_fp_comparison_operator.
11147
11148         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
11149         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
11150         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
11151         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
11152         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
11153         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
11154
11155 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
11156
11157         PR other/32998
11158         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
11159         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
11160         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
11161         (decode_cmdline_option): Update for this return value.  Set
11162         orig_option_with_args_text field.  Set arg field for unknown
11163         options.  Make static.
11164         (decode_cmdline_options_to_array): New.
11165         (prune_options): Update handling of find_opt return value.
11166         * opts.c (read_cmdline_option): Take decoded option.  Return void.
11167         (read_cmdline_options): Take decoded options.
11168         (decode_options): Add parameters for decoded options.  Use
11169         decode_cmdline_options_to_array.  Use decoded options for -O
11170         scan.  Use integral_argument for -O parameters.  Update call to
11171         read_cmdline_options.
11172         (enable_warning_as_error): Update handling of find_opt return value.
11173         * opts.h: Update comment on unknown options.
11174         (struct cl_decoded_option): Update comments on opt_index and arg.
11175         Add orig_option_with_args_text.
11176         (decode_cmdline_option): Remove.
11177         (decode_cmdline_options_to_array): Declare.
11178         (decode_options): Update prototype.
11179         * toplev.c (save_argv): Remove.
11180         (save_decoded_options, save_decoded_options_count): New.
11181         (read_integral_parameter): Remove.
11182         (print_switch_values): Use decoded options.
11183         (toplev_main): Don't set save_argv.  Update call to decode_options.
11184         * toplev.h (read_integral_parameter): Remove.
11185         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
11186
11187 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
11188
11189         PR target/44072
11190         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
11191         immediate.
11192         * constraints.md (Pw, Px): New constraints.
11193         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
11194
11195 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
11196
11197         * config/i386/sse.md (fma4modesuffixf4): Removed.
11198         (ssemodesuffixf2s): Likewise.
11199         (ssemodesuffixf4): Likewise.
11200         (ssemodesuffixf2c): Likewise.
11201         (ssescalarmodesuffix2s): Likewise.
11202         (avxmodesuffixf2c): Likewise.
11203         (ssemodesuffix): New.
11204         (ssescalarmodesuffix): Likewise.
11205         Update patterns with ssemodesuffix and ssescalarmodesuffix.
11206
11207 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
11208
11209         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
11210
11211 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11212
11213         * stor-layout.c (debug_rli): Remove unused local variables.
11214
11215 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11216
11217         PR rtl-optimization/40900
11218         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
11219         original expression for later reuse.
11220         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
11221         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
11222
11223 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
11224
11225         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
11226         double_int_fits_in_uhwi_p): Implement as static inline.
11227         (double_int_xor): New inline function.
11228         (double_int_lrotate, double_int_rrotate, double_int_max,
11229         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11230         double_int_smin): Declare.
11231         (lrotate_double, rrotate_double): Remove declaration.
11232         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
11233         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
11234         (double_int_lrotate, double_int_rrotate, double_int_max,
11235         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11236         double_int_smin): New function.
11237         * fold-const.c (int_const_binop): Clean up, use double_int_*
11238         functions.
11239         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
11240         double_int_* and immed_double_int_const functions.
11241
11242 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11243
11244         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
11245         * function.c (types_used_by_cur_var_decl): Likewise.
11246         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
11247
11248 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11249
11250         * tree.h (record_layout_info): Change type of pending_statics field
11251         to a VEC.
11252         * stor-layout.c (start_record_layout): Store NULL into
11253         pending_statics.
11254         (debug_rli): Call debug_vec_tree instead of debug_tree.
11255         (place_field): Likewise.
11256         (finish_record_layout): Likewise.
11257
11258 2010-06-18  Alan Modra  <amodra@gmail.com>
11259
11260         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
11261
11262 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11263
11264         PR target/43740
11265         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
11266         for SET source operand from SET destination operand.
11267
11268 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
11269
11270         PR rtl-optimization/39871
11271         * reload1.c (init_eliminable_invariants): For flag_pic, disable
11272         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
11273         (function_invariant_p): Rule out a plus of frame or arg pointer with
11274         a SYMBOL_REF.
11275         * ira.c (find_reg_equiv_invariant_const): Likewise.
11276
11277 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
11278
11279         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
11280         print_operand_address and puts to output the operand for CONST.
11281
11282 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
11283
11284         PR debug/44572
11285         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
11286         hook.
11287
11288 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11289
11290         * v850-protos.h (print_operand): Delete.
11291         (print_operand_address): Delete.
11292         * v850.h (PRINT_OPERAND): Delete.
11293         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11294         (PRINT_OPERAND_ADDRESS): Delete.
11295         * v850.c (print_operand_address): Rename to...
11296         (v850_print_operand_address): ...this.  Make static. Call
11297         v850_print_operand.
11298         (print_operand): Rename to...
11299         (v850_print_operand): ...this.  Make static.  Call
11300         v850_print_operand_address.
11301         (v850_print_operand_punct_valid_p): New function.
11302         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11303         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11304
11305 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11306
11307         * config/sh/sh-protos.h (print_operand): Delete.
11308         (print_operand_address): Delete.
11309         * config/sh/sh.h (PRINT_OPERAND): Delete.
11310         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11311         (PRINT_OPERAND_ADDRESS): Delete.
11312         * config/sh/sh.c (sh_print_operand_address): Make static.
11313         (sh_print_operand): Make static.  Call sh_print_operand_address
11314         and sh_print_operand.
11315         (sh_print_operand_punct_valid_p): New function.
11316         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11317         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11318
11319 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11320
11321         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
11322         (mcore_print_operand_address): Delete.
11323         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
11324         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11325         (PRINT_OPERAND_ADDRESS): Delete.
11326         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
11327         (mcore_print_operand): Make static.
11328         (mcore_print_operand_punct_valid_p): New function.
11329         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
11330         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11331
11332 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11333
11334         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
11335         (print_operand_address): Delete.
11336         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
11337         (PRINT_OPERAND_ADDRESS): Delete.
11338         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
11339         static.
11340         (m68hc11_print_operand): Make static.
11341         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11342
11343 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11344
11345         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
11346         (m32r_print_operand_address): Delete.
11347         * config/m32r/m32r.h (m32r_punct_chars): Delete.
11348         (PRINT_OPERAND): Delete.
11349         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11350         (PRINT_OPERAND_ADDRESS): Delete.
11351         * config/m32r/m32r.c (m32r_punct_chars): Make static.
11352         (m32r_print_operand_address): Make static.
11353         (m32r_print_operand): Make static.
11354         (m32r_print_operand_punct_valid_p): New function.
11355         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11356         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11357
11358 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11359
11360         * config/iq2000/iq2000-protos.h (print_operand): Delete.
11361         (print_operand_address): Delete.
11362         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
11363         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11364         (PRINT_OPERAND_ADDRESS): Delete.
11365         (iq2000_print_operand_punct): Delete.
11366         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
11367         (iq2000_print_operand_address): Make static.
11368         (iq2000_print_operand): Make static.
11369         (iq2000_print_operand_punct_valid_p): New function.
11370         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11371         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11372
11373 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11374
11375         * config/frv/frv-protos.h (frv_print_operand): Delete.
11376         (frv_print_operand_address): Delete.
11377         * config/frv/frv.h (PRINT_OPERAND): Delete.
11378         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11379         (PRINT_OPERAND_ADDRESS): Delete.
11380         * config/frv/frv.c (frv_print_operand_address): Make static.
11381         (frv_print_operand): Make static.
11382         (frv_print_operand_punct_valid_p): New function.
11383         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11384         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11385
11386 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11387
11388         * tree.h (vec_member): Declare.
11389         * tree.c (vec_member): Define.
11390
11391 2010-06-17  Richard Guenther  <rguenther@suse.de>
11392
11393         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
11394         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
11395
11396 2010-06-17  Richard Guenther  <rguenther@suse.de>
11397
11398         * tree-inline.c (declare_return_variable): Remove bogus code.
11399
11400 2010-06-17  Richard Guenther  <rguenther@suse.de>
11401
11402         * gimplify.c (gimplify_bind_expr): Always promote complex
11403         and vector variables to registers if possible.
11404
11405 2010-06-17  Richard Guenther  <rguenther@suse.de>
11406
11407         * expr.c (get_inner_reference): Use double_int for bit_offset
11408         calculation.
11409
11410 2010-06-16  DJ Delorie  <dj@redhat.com>
11411
11412         * common.opt (-fstrict-volatile-bitfields): new.
11413         * doc/invoke.texi: Document it.
11414         * fold-const.c (optimize_bit_field_compare): For volatile
11415         bitfields, use the field's type to determine the mode, not the
11416         field's size.
11417         * expr.c (expand_assignment): Likewise.
11418         (get_inner_reference): Likewise.
11419         (expand_expr_real_1): Likewise.
11420         * expmed.c (store_fixed_bit_field): Likewise.
11421         (extract_bit_field_1): Likewise.
11422         (extract_fixed_bit_field): Likewise.
11423
11424 2010-06-16  Richard Guenther  <rguenther@suse.de>
11425
11426         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
11427
11428 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
11429
11430         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
11431         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
11432         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
11433         * debug.c: Likewise.
11434         * sdbout.c: Likewise.
11435         * vmsdbgout.c: Likewise.
11436         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
11437         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
11438         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
11439         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
11440         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
11441         * dwarf2out.c (dw_fde_struct): New fields
11442         dw_fde_vms_{end,begin}_prologue.
11443         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
11444         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
11445         (dwarf2out_vms_end_prologue): New function.
11446         (dwarf2out_vms_begin_epilogue): New function.
11447         (dw_val_struct): New value dw_val_class_vms_delta.
11448         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
11449         begin_epilogue for VMS.
11450         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
11451         new static functions.
11452         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
11453         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
11454         static functions.
11455         (print_die): New case dw_val_class_vms_delta.
11456         (attr_checksum): Likewise.
11457         (same_dw_val_p: Likewise.
11458         (size_of_die): Likewise.
11459         (value_format): Likewise.
11460         (output_die): Likewise.
11461         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
11462         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
11463         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
11464         dwarf2out_cfi_begin_epilogue
11465         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
11466
11467 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11468
11469         * config/cris/cris-protos.h (cris_print_operand): Delete.
11470         (cris_print_operand_address): Delete.
11471         * config/cris/cris.h (PRINT_OPERAND): Delete.
11472         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11473         (PRINT_OPERAND_ADDRESS): Delete.
11474         * config/cris/cris.c (cris_print_operand_address): Make static.
11475         (cris_print_operand): Make static.
11476         (cris_print_operand_punct_valid_p): New function.
11477         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11478         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11479
11480 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11481
11482         * config/arm/arm-protos.h (arm_print_operand): Delete.
11483         (arm_print_operand_address): Delete.
11484         * config/arm/arm.h (PRINT_OPERAND): Delete.
11485         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11486         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
11487         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
11488         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
11489         (arm_print_operand): Make static.
11490         (arm_print_operand_punct_valid_p): New function.
11491         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11492         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11493
11494 2010-06-16  Nick Clifton  <nickc@redhat.com>
11495
11496         * config/rx/constraints.md (NEGint4): New constraint.
11497         * config/rx/rx.md (attr cc): Add set_zsc.
11498         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
11499         initialised.
11500         (cmpsf): Likewise.
11501         (call_internal): Clobber the cc0 register.
11502         (call_value_internal): Likewise.
11503         (cstoresi4): Likewise.
11504         (movsieq): Likewise.
11505         (movsine): Likewise.
11506         (addsi3): Add alternative to handle small negative constants.
11507         (sunsi3): Likewise.
11508         (addsi3): Do not set the O bit in the cc0 register.
11509         (adddi3): Likewise.
11510         (subsi3): Likewise.
11511         (subdi3): Likewise.
11512         (andsi3): Reorder alternatives to prefer shorter forms.
11513         (mulsi3): Likewise.
11514         (iorsi3): Likewise.
11515         (negsi2): Note that the cc0 flags are set.
11516         (rotlsi3): Note that only the Z and S bits are set in cc0.
11517         (lshrsi3): Likewise.
11518         (ashlsi3): Likewise.
11519         (subsf3): Use %Q for the MEM operand.
11520         (fix_truncsfsi2): Likewise.
11521         (floatsisf2): Likewise.
11522         (bitset): Remove early clobber from destination.
11523         (bitset_in_memory): Likewise.
11524         (lrintsf2): Clobber the cc0 register.
11525         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
11526         (rx_print_operand): Handle %N.
11527
11528 2010-06-16  Jan Hubicka  <jh@suse.cz>
11529
11530         * df-core.c (df_compact_blocks): Free problem_temps vector.
11531
11532 2010-06-16  Martin Jambor  <mjambor@suse.cz>
11533
11534         PR tree-optimization/43905
11535         * tree-sra.c: Include tree-inline.h.
11536         (create_abstract_origin): Removed.
11537         (modify_function): Version the call graph node instead of creating
11538         abstract origins and dealing with same_body aliases.
11539         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
11540         function is versionable.
11541         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
11542
11543 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
11544
11545         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
11546         (CHOOSE_DYNAMIC_LINKER): Update.
11547
11548 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
11549
11550         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
11551         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
11552         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
11553         *prefetch_3dnow_rex.
11554
11555 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
11556
11557         * target.h (struct asm_out):Add declare_constant_name field.
11558         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
11559         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
11560         * output.h (default_asm_declare_constant_name): Declare.
11561         (assemble_label): Update prototype.
11562         * varasm.c (assemble_constant_contents): Use
11563         targetm.asm_out.declare_constant_name target hook.
11564         (assemble_label): Add 'file' argument.
11565         (default_asm_declare_constant_name): New function.
11566         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
11567         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
11568         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
11569
11570         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
11571         * config/darwin.c (darwin_asm_declare_constant_name): New function.
11572         (machopic_output_indirection): Update assemble_label argument list.
11573         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
11574         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
11575
11576 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
11577
11578         PR middle-end/44391
11579         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
11580         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
11581
11582 2010-06-15  Richard Guenther  <rguenther@suse.de>
11583
11584         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
11585
11586 2010-06-15  Paul Brook  <paul@codesourcery.com>
11587
11588         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
11589         hard-float ABI.
11590
11591 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
11592
11593         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
11594         don't get a vector type for output.
11595
11596 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
11597
11598         PR fortran/44536
11599         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
11600         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
11601         (LANG_HOOKS_DECLS): Add it.
11602         * gimplify.c (omp_notice_variable): Call
11603         lang_hooks.decls.omp_report_decl.
11604
11605 2010-06-15  Martin Jambor  <mjambor@suse.cz>
11606
11607         PR lto/44464
11608         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
11609         on the newly dead SSA name.
11610
11611 2010-06-15  Alan Modra  <amodra@gmail.com>
11612
11613         * doc/invoke.texi: Add mcmodel to powerpc options.
11614         * configure.ac: Add HAVE_LD_LARGE_TOC test.
11615         * configure: Regenerate.
11616         * config.in: Regenerate.
11617         * config/rs6000/linux64.opt (mcmodel): New.
11618         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
11619         (TARGET_CMODEL, SET_CMODEL): Define.
11620         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
11621         select CMODEL_MEDIUM default.
11622         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
11623         (TARGET_CMODEL): Define default.
11624         * config/rs6000/rs6000.c (cmodel): New variable.
11625         (rs6000_explicit_options): Add cmodel field.
11626         (rs6000_handle_option): Handle -mcmodel.
11627         (create_TOC_reference): Add largetoc_reg param.  Generate high,
11628         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
11629         (rs6000_delegitimize_address): Recognise new toc reference rtl
11630         and minimal-toc rtl.
11631         (rs6000_legitimize_reload_address): Handle new toc references.
11632         (print_operand_address): Handle legitimate_constant_pool_address_p
11633         match before lo_sum.
11634         (rs6000_eliminate_indexed_memrefs): Tidy.
11635         (rs6000_emit_move): Tweak threshold for inlining constants.
11636         Keep rs6000_emit_allocate_stack large stack frame offsets
11637         loaded into r0 inline.
11638         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
11639         (tocrel_base, tocrel_offset): New variables.
11640         (toc_relative_expr_p): Set them here.
11641         (print_operand_address): Skip over any offset on constant pool address.
11642         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
11643         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
11644         (offsettable_ok_by_alignment): New function.
11645         (rs6000_emit_move): Address suitably aligned local symbol_refs
11646         relative to the toc pointer for -mcmodel=medium.
11647         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
11648         strict param.  Allow lo_sum version of addressing.  Verify reg
11649         used for -mminimal-toc and -mcmodel != small.  Update all callers.
11650         * config/rs6000/constraints.md: Update for above change.
11651         * config/rs6000/predicates.md: Likewise.
11652         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
11653         code.
11654         (tls_gd): Split for -mcmodel=medium/large.
11655         (tls_gd_high, tls_gd_low): New.
11656         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
11657         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
11658         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
11659         (largetoc_high, largetoc_low): New.
11660         (cmptf_internal2): Add clobber.
11661         * config/rs6000/rs6000-protos.h: Update.
11662
11663 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
11664
11665         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
11666         true if no prefetch is going to be generated for a given group.
11667         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
11668         estimate the prefetch_count.
11669         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
11670         prefetch count by considering the unroll_factor and prefetch_mod
11671         for is_loop_prefetching_profitable.
11672
11673 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
11674
11675         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
11676         anything if the argument is not a MEM.
11677
11678 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
11679
11680         PR debug/43650
11681         PR debug/44181
11682         PR debug/44247
11683         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
11684         debug stmts.
11685         (canonicalize_loop_ivs): Likewise.
11686
11687 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
11688
11689         PR debug/43656
11690         * haifa-sched.c (setup_insn_reg_pressure_info,
11691         update_register_pressure): Reject debug insns.
11692         (ready_sort): Don't setup reg pressure for debug insns.
11693         (schedule_insn): Don't update reg pressure for debug insns.
11694
11695 2010-06-14  Richard Guenther  <rguenther@suse.de>
11696
11697         * lto-streamer.c (cached_bp): Remove.
11698         (bitpack_delete): Likewise.
11699         (bitpack_create): Likewise.
11700         (bp_get_next_word): Likewise.
11701         (bp_pack_value, bp_unpack_value): Move ...
11702         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
11703         Re-implement.
11704         (struct bitpack_d): Likewise.
11705         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
11706         New inline functions.
11707         * lto-streamer-out.c (lto_output_bitpack): Remove.
11708         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
11709         (pack_value_fields): Adjust.
11710         (lto_write_tree): Likewise.
11711         (output_gimple_stmt): Likewise.
11712         (output_function): Likewise.
11713         * lto-streamer-in.c (input_gimple_stmt): Adjust.
11714         (input_function): Likewise.
11715         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
11716         (lto_input_bitpack): Remove.
11717         (lto_materialize_tree): Adjust.
11718         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
11719         * lto-cgraph.c (lto_output_edge): Adjust.
11720         (lto_output_node): Likewise.
11721         (lto_output_varpool_node): Likewise.
11722         (lto_output_ref): Likewise.
11723         (input_node): Likewise.
11724         (input_varpool_node): Likewise.
11725         (input_ref): Likewise.
11726         (input_edge): Likewise.
11727         (output_node_opt_summary): Likewise.
11728         (input_node_opt_summary): Likewise.
11729         * ipa-pure-const.c (pure_const_write_summary): Likewise.
11730         (pure_const_read_summary): Likewise.
11731         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
11732         (ipa_read_indirect_edge_info): Likewise.
11733         (ipa_write_node_info): Likewise.
11734         (ipa_read_node_info): Likewise.
11735
11736 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
11737
11738         PR target/44534
11739         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
11740         (vec_extract_lo_v16hi): Likewise.
11741         (vec_extract_lo_v32qi): Likewise.
11742
11743 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
11744
11745         PR bootstrap/44426
11746         * tree.h (build_call_expr): Don't define as vararg macro, instead
11747         add a prototype.
11748         * builtins.c (build_call_nofold): Remove.
11749         (expand_builtin_int_roundingfn, expand_builtin_pow,
11750         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
11751         expand_builtin_memset_args, expand_builtin_strcmp,
11752         expand_builtin_strncmp, expand_builtin_memory_chk): Use
11753         build_call_nofold_loc instead of build_call_nofold.
11754         (build_call_expr): New function.
11755
11756         PR tree-optimization/44508
11757         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
11758         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
11759         don't eliminate trivially dead stmts.
11760         * tree-vrp.c (vrp_finalize): Pass false as last argument
11761         to substitute_and_fold.
11762         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
11763         to substitute_and_fold.
11764         * tree-ssa-ccp.c (ccp_finalize): Likewise.
11765
11766         PR bootstrap/44509
11767         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
11768
11769 2010-06-14  Ira Rosen  <irar@il.ibm.com>
11770
11771         PR tree-optimization/44507
11772         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
11773         to build initial vector for BIT_AND_EXPR.
11774         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
11775
11776 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
11777
11778         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
11779         adjust z10prop set_attr.
11780
11781 2010-06-13  Jan Hubicka  <jh@suse.cz>
11782
11783         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
11784         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
11785         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
11786         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
11787         datastructure checks into checking asserts.
11788         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
11789         * tree-ssa-sccvn.c (VN_INFO): Likewise.
11790         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
11791         df_ref_create_structure): Likewise.
11792         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
11793         pool_free): Use gcc_checking_assert.
11794         * alias.c (get_alias_set): Likewise.
11795         * var-tracking.c (variable_htab_free, shared_hash_copy,
11796         canonicalize_values_mark, variable_merge_over_cur): Likewise.
11797         * lto-streamer.c (bp_unpack_value): Likewise.
11798
11799 2010-06-13  Richard Guenther  <rguenther@suse.de>
11800
11801         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
11802         Do not stream but initialize TYPE_CANONICAL to NULL.
11803         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
11804         * gimple.c (gimple_types_compatible_p): Disregard
11805         TYPE_STRUCTURAL_EQUALITY_P.
11806         (gimple_register_type): Use TYPE_CANONICAL as cache.
11807         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
11808         before registering common types.
11809         * config/i386/i386.c (ix86_function_arg_boundary): Do not
11810         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
11811         * tree.h (TYPE_CANONICAL): Clarify documentation.
11812
11813 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
11814
11815         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
11816         LIBCALL_VALUE): Remove macros.
11817         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
11818         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11819         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11820         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
11821         (ia64_function_value): Make static. Handle receiving the function
11822         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
11823
11824 2010-06-12  Jan Hubicka  <jh@suse.cz>
11825
11826         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
11827         at correct place.
11828
11829 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
11830
11831         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
11832
11833 2010-06-12  Jan Hubicka  <jh@suse.cz>
11834
11835         * df-core.c (df_clear_bb_info): New function.
11836         (df_set_blocks): bb_info is always allocated.
11837         (df_get_bb_info): Use block_info_elt_size.
11838         (df_set_bb_info): Likewise.
11839         (df_compact_blocks): Update for new block_info.
11840         (grow_bb_info): New function.
11841         * df-problems.c (df_grow_bb_info): Move to df-core.c
11842         (df_rd_set_bb_info): Remove.
11843         (df_rd_free_bb_info): Do not free block pool.
11844         (df_rd_alloc): Do not create pool, use check for
11845         obstack presence instead of NULL pointer for new blocks.
11846         (df_rd_free): DO not free alloc pool; clear block_info.
11847         (problem_RD): Add size of block info structure.
11848         (df_lr_set_bb_info): Remove.
11849         (df_lr_free_bb_info): Do not free block pool.
11850         (df_lr_alloc): Do not create pool, use check for
11851         obstack presence instead of NULL pointer for new blocks.
11852         (df_lr_free): DO not free alloc pool; clear block_info.
11853         (problem_LR): Add size of block info structure.
11854         (df_live_set_bb_info): Remove.
11855         (df_live_free_bb_info): Do not free block pool.
11856         (df_live_alloc): Do not create pool, use check for
11857         obstack presence instead of NULL pointer for new blocks.
11858         (df_live_free): DO not free alloc pool; clear block_info.
11859         (problem_LIVE): Add size of block info structure.
11860         (problem_CHAIN): Add size of block info structure.
11861         (df_byte_lr_set_bb_info): Remove.
11862         (df_byte_lr_free_bb_info): Do not free block pool.
11863         (df_byte_lr_alloc): Do not create pool, use check for
11864         obstack presence instead of NULL pointer for new blocks.
11865         (df_byte_lr_free): DO not free alloc pool; clear block_info.
11866         (problem_BYTE_LR): Add size of block info structure.
11867         (problem_NOTE): Add size of block info structure.
11868         (df_byte_MD_set_bb_info): Remove.
11869         (df_byte_MD_free_bb_info): Do not free block pool.
11870         (df_byte_MD_alloc): Do not create pool, use check for
11871         obstack presence instead of NULL pointer for new blocks.
11872         (df_byte_MD_free): DO not free alloc pool; clear block_info.
11873         (problem_BD): Add size of block info structure.
11874         * df-scan.c (df_scan_free_internal): Free block pool.
11875         (df_scan_set_bb_info): Remove.
11876         (df_scan_free_bb_info): Check for artificial_defs instead
11877         of bb_info being non-NULL.
11878         (df_scan_alloc): DO not create df_scan_block pool.
11879         (problem_SCAN): Set size of block info.
11880         (df_bb_refs_record): Do not allocate bb_info.
11881         * df.h (df_problem): Add block_info_elt_size.
11882         (struct dataflow): Change block_info to void *.
11883         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
11884         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
11885         in-line structures.
11886
11887 2010-06-12  Jan Hubicka  <jh@suse.cz>
11888
11889         PR tree-optimize/44485
11890         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
11891         containing use of return value of noreturn function.
11892
11893 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
11894
11895         * targhooks.c (default_function_value): Don't use
11896         FUNCTION_OUTGOING_VALUE.
11897         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
11898         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
11899
11900 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
11901
11902         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
11903         Add crtfastmath.o to extra_parts.
11904         * config/mips/crtfastmath.c: New.
11905         * config/mips/linux.h (ENDFILE_SPEC): New.
11906
11907 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
11908
11909         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
11910         old_type in parameter.
11911         (gcc_type_for_value): Update call to gcc_type_for_interval.
11912         (compute_type_for_level_1): Renamed compute_type_for_level.
11913         Update call to gcc_type_for_interval.
11914
11915 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11916
11917         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
11918         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
11919
11920 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
11921
11922         * opts-common.c: Include options.h.
11923         (integral_argument): Move from opts.c.
11924         (decode_cmdline_option): New.  Based on read_cmdline_option.
11925         * opts.c (integral_argument): Move to opts-common.c.
11926         (read_cmdline_option): Move most contents to
11927         decode_cmdline_option.  Use %qs in diagnostics.
11928         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
11929         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
11930         decode_cmdline_option): New.
11931
11932 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11933
11934         PR target/44481
11935         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
11936         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
11937         (partiysi2_cmp): Ditto.
11938         (*partiyhi2_cmp): Ditto.
11939         (*parityqi2_cmp): Remove.
11940
11941 2010-06-11  Jan Hubicka  <jh@suse.cz>
11942
11943         * bitmap.h (bmp_iter_next_bit): New.
11944         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
11945
11946 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
11947             Eric Botcazou  <ebotcazou@adacore.com>
11948
11949         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
11950         computed cost.
11951
11952 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
11953
11954         * config/i386/i386.md (unspec): New define_c_enum.
11955         (unspecv): Ditto.
11956
11957 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
11958
11959         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
11960
11961 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
11962
11963         PR middle-end/44483
11964         * tree-if-conv.c (bb_predicate_s): New struct.
11965         (bb_predicate_p): New.
11966         (bb_has_predicate): New.
11967         (bb_predicate): New.
11968         (set_bb_predicate): New.
11969         (bb_predicate_gimplified_stmts): New.
11970         (set_bb_predicate_gimplified_stmts): New.
11971         (add_bb_predicate_gimplified_stmts): New.
11972         (init_bb_predicate): New.
11973         (free_bb_predicate): New.
11974         (is_predicated): Use bb_predicate.
11975         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
11976         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
11977         before processing their successors.
11978         (clean_predicate_lists): Removed.
11979         (find_phi_replacement_condition): Use bb_predicate.
11980         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
11981         computations.
11982         (insert_gimplified_predicates): New.
11983         (combine_blocks): Call insert_gimplified_predicates.
11984         (tree_if_conversion): Call free_bb_predicate instead of
11985         clean_predicate_lists.
11986
11987 2010-10-11  Paul Brook  <paul@codesourcery.com>
11988
11989         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
11990         * config/arm/arm.c (all_architectures): Change v7e-m default to
11991         cortexm4.
11992         * config/arm/arm-cores.def: Add cortex-m4.
11993         * config/arm/arm-tune.md: Regenerate.
11994
11995 2010-06-11  Jan Hubicka  <jh@suse.cz>
11996
11997         * ipa-pure-const.c (special_builtlin_state): New function.
11998         (check_call): Use it instead of special casign BUILT_IN_RETURN.
11999         (propagate_pure_const): Use it.
12000
12001 2010-06-11  Jan Hubicka  <jh@suse.cz>
12002
12003         * df-problems.c (df_live_scratch): Convert to bitmap_head.
12004         (df_live_alloc): Initialize df_live_scratch when initializing
12005         problem_data.
12006         (df_live_transfer_function): Update uses of df_live_scratch.
12007         (df_live_free): Free problem_data; clear df_live_scratch before
12008         releasing the obstack.
12009         (df_md_free): Free problem data.
12010
12011 2010-06-11  Jan Hubicka  <jh@suse.cz>
12012
12013         * doc/invoke.texi (Wsuggest-attribute): Document.
12014         (Wmissing-noreturn): Remove.
12015         * ipa-pure-const.c (warn_function_noreturn): New function.
12016         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
12017         warn_missing_noreturn.
12018         * common.opt (Wsuggest-attribute=noreturn): New.
12019         * tree-flow.h (warn_function_noreturn): Declare.
12020         * tree-cfg.c (execute_warn_function_noreturn): Use
12021         warn_function_noreturn.
12022         (gate_warn_function_noreturn): New.
12023         (pass_warn_function_noreturn): Update.
12024
12025 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12026
12027         * c-typeck.c (handle_warn_cast_qual): Add loc
12028         parameter. Improve warning message.
12029         (build_c_cast): Pass location to handle_warn_cast_qual.
12030
12031 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12032
12033         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
12034         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
12035         insn mnemonic.
12036         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
12037
12038 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
12039
12040         Fix bootstap on mips
12041         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
12042         be naming typedefs.
12043
12044 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
12045
12046         * system.h (helper_const_non_const_cast): New inline for
12047         gcc version <= 4.0.
12048         (CONST_CAST2): For gcc version <= 4.0 use
12049         new helper to do const/non-const casting.
12050
12051 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12052
12053         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
12054         * Makefile.in (OBJS-common): Include insn-enums.o.
12055         (insn-enums.o): New rule.
12056         (simple_generated_c): Add insn-enums.c.
12057         (build/genenums.o): New rule.
12058         (genprogmd): Add "enums".
12059         * genconstants.c (print_enum_type): Declare a C string array
12060         for each enum.
12061         * genenums.c: New file.
12062         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
12063         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
12064         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
12065
12066 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12067
12068         * doc/md.texi (define_enum_attr): Document.
12069         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
12070         * read-md.h (lookup_enum_type): Declare.
12071         * read-md.c (lookup_enum_type): New function.
12072         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
12073         * genattrtab.c (attr_desc): Add an enum_name field.
12074         (evaluate_eq_attr): Take the associated attribute as argument.
12075         Get the enum prefix from the enum_name field, if defined.
12076         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
12077         (simplify_test_exp): Pass attr to evaluate_eq_attr.
12078         (add_attr_value): New function, split out from...
12079         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
12080         (write_test_expr): Pass attr to evaluate_eq_attr.
12081         (write_attr_get): Use the enum_name as the enum tag, if defined.
12082         (write_attr_valueq): Use the enum_name as a prefix, if defined.
12083         (find_attr): Initialize enum_name.
12084         (main): Handle DEFINE_ENUM_ATTR.
12085         * gensupport.c (process_rtx): Likewise.
12086         * config/mips/mips.h (mips_tune_attr): Delete.
12087         * config/mips/mips.md (cpu): Use define_attr_enum.
12088
12089 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12090
12091         * doc/md.texi (define_c_enum, define_enum): Document.
12092         * read-md.h (md_constant): Add a parent_enum field.
12093         (enum_value, enum_type): New structures.
12094         (upcase_string, traverse_enum_types): Declare.
12095         * read-md.c (enum_types): New variable.
12096         (upcase_string, add_constant): New functions.
12097         (handle_constants): Don't create the hash table here.
12098         Use add_constant.
12099         (traverse_md_constants): Don't check for a null md_constants.
12100         (decimal_string, handle_enum, traverse_enum_types): New functions.
12101         (read_md_files): Initialize md_constants and md_enums.
12102         * genconstants.c (print_md_constant): Ignore info argument.
12103         Only print constants that belong to no enum.
12104         (print_enum_type): New function.
12105         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
12106         for each defined enum type.
12107         * config/mips/mips.md (processor): New define_enum.
12108         (unspec): New define_c_enum.
12109         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
12110         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
12111         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
12112         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
12113         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
12114         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
12115         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
12116         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
12117         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
12118         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
12119         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
12120         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
12121         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
12122         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
12123         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
12124         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
12125         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
12126         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
12127         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
12128         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
12129         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
12130         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
12131         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12132         (UNSPEC_RDDSP): Move to mips-dsp.md.
12133         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
12134         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
12135         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
12136         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
12137         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
12138         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
12139         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
12140         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
12141         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
12142         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
12143         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
12144         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
12145         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
12146         Moved to mips-dspr2.md.
12147         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
12148         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
12149         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
12150         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
12151         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
12152         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
12153         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12154         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12155         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12156         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12157         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12158         UNSPEC_LOONGSON_PSADBH)
12159         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12160         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12161         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
12162         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12163         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12164         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12165         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
12166         (cpu): Update comment.
12167         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
12168         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
12169         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
12170         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
12171         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
12172         UNSPEC_LOONGSON_PCMPEQ)
12173         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
12174         UNSPEC_LOONGSON_PINSR_0)
12175         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12176         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12177         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12178         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12179         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12180         UNSPEC_LOONGSON_PSADBH)
12181         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12182         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12183         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
12184         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12185         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12186         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12187         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
12188         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
12189         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
12190         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
12191         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
12192         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
12193         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
12194         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
12195         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
12196         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
12197         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
12198         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
12199         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
12200         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
12201         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
12202         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
12203         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
12204         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
12205         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
12206         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
12207         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12208         (UNSPEC_RDDSP): Moved from mips.md.
12209         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
12210         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
12211         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
12212         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
12213         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
12214         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
12215         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
12216         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
12217         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
12218         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
12219         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
12220         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
12221         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
12222         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
12223         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
12224         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
12225         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
12226         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
12227         (UNSPEC_SCC): Moved from mips.md.
12228         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
12229         "processor_type" to "processor".
12230         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
12231         * config/mips/mips.h (processor_type): Delete.
12232         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
12233         "processor_type" to "processor".
12234
12235 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12236
12237         * configure.ac (tm_include_list): Add insn-constants.h.
12238         * configure: Regenerate.
12239         * Makefile.in (GTM_H): Move insn-constants.h here from...
12240         (TM_H): ...here.
12241         * mkconfig.sh: Remove special handling for insn-constants.h.
12242
12243 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12244
12245         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
12246         (BUILD_MD): ...this new variable.
12247         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
12248         that include the old contents of simple_generated_h and
12249         simple_generated_c.
12250         (simple_generated_h, simple_generated_c): Include them.  Add
12251         insn-constants.h.
12252         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
12253         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
12254         Remove these dependencies from the main rule and include
12255         insn-conditions.md in the command line only if it appears
12256         in the dependency list.
12257         (insn-constants.h, s-constants): Delete.
12258         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
12259         or gensupport.h.
12260         (build/genmddeps.o): Likewise.
12261         (genprogrtl): New variable that contains everything from genprogmd
12262         except mddeps and constants.
12263         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
12264         depend on $(BUILD_MD)
12265         (genprog): New variable.  Make these programs depend on
12266         $(BUILD_ERRORS).
12267         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
12268         (main): Use read_md_files instead of init_rtx_reader_args.
12269         * genconstants.c: As for genmddeps.c.
12270         * read-md.h (read_skip_construct): Declare.
12271         * read-md.c (read_skip_construct): New function.
12272         (handle_file): Allow a null handle_directive, skipping the
12273         construct if so.
12274         (parse_include): Update the comment accordingly.
12275
12276 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12277
12278         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
12279         * genmddeps.c: Include read-md.h.
12280         (main): Call init_rtx_reader_args instead of init_md_reader_args.
12281         * genattr.c (main): Likewise.
12282         * genattrtab.c (main): Likewise.
12283         * genautomata.c (main): Likewise.
12284         * gencodes.c (main): Likewise.
12285         * genconditions.c (main): Likewise.
12286         * genconfig.c (main): Likewise.
12287         * genconstants.c (main): Likewise.
12288         * genemit.c (main): Likewise.
12289         * genextract.c (main): Likewise.
12290         * genflags.c (main): Likewise.
12291         * genopinit.c (main): Likewise.
12292         * genoutput.c (main): Likewise.
12293         * genpeep.c (main): Likewise.
12294         * genrecog.c (main): Likewise.
12295         * genpreds.c (main): Likewise.
12296         * gensupport.h (in_fname): Move to read-md.h.
12297         (init_md_reader_args_cb): Rename to...
12298         (init_rtx_reader_args_cb): ...this and return a bool.
12299         (init_md_reader_args): Rename to...
12300         (init_rtx_reader_args): ...this and return a bool.
12301         (include_callback): Move to read-md.h.
12302         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
12303         (file_name_list, first_dir_md_include): Move to read-md.c
12304         (first_bracket_include): Delete unused variable.
12305         (last_dir_md_include): Move to read-md.c.
12306         (process_include): Delete, moving code to read-md.c:handle_include.
12307         (process_rtx): Don't handle INCLUDE.
12308         (save_string): Delete.
12309         (rtx_handle_directive): New function.
12310         (init_md_reader_args_cb): Rename to...
12311         (init_rtx_reader_args_cb): ...this and return a boolean success value.
12312         Use read_md_args.
12313         (init_md_reader_args): Rename to...
12314         (init_rtx_reader_args): ...this and return a boolean success value.
12315         * rtl.def (INCLUDE): Delete.
12316         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
12317         argument.
12318         * read-rtl.c (read_conditions): Don't gobble ')' here.
12319         (read_mapping): Likewise.
12320         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
12321         Handle top-level non-rtx constructs here rather than in read_rtx_1.
12322         Store the whole queue in *X.  Remove call to init_md_reader.
12323         (read_rtx_1): Rename to...
12324         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
12325         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
12326         here.
12327         (read_nested_rtx): New function.  Handle (nil) here rather than
12328         in read_rtx_code.
12329         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
12330         gobble ')' here.
12331         * read-md.h (directive_handler_t): New type.
12332         (in_fname, include_callback): Moved from read-md.h.
12333         (read_constants, init_md_reader): Delete.
12334         (read_md_files): Declare.
12335         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
12336         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
12337         from gensupport.c.
12338         (read_constants): Rename to...
12339         (handle_constants): ...this.  Don't gobble ')' here.
12340         (handle_include, handle_file, handle_toplevel_file)
12341         (parse_include): New functions, mostly taken from gensupport.c.
12342         (init_md_reader): Subsume into...
12343         (read_md_files): ...this new function.
12344
12345 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12346
12347         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
12348         (unread_char): Decrement read_md_lineno after putting back '\n'.
12349         * read-md.c (fatal_with_file_and_line): Push back any characters
12350         that we decide not to add to the context.
12351         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
12352         fatal_expected_char in cases where '/' ends a line (for example).
12353         (read_name): Don't increment read_md_lineno here.
12354         (read_escape): Likewise.
12355         (read_quoted_string): Likewise.
12356         (read_braced_string): Likewise.
12357
12358 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12359
12360         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
12361         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
12362         * genconstants.c: Include read-md.h.
12363         * read-rtl.c (md_constants): Move to read-md.c.
12364         (md_name): Move to read-md.h.
12365         (initialize_iterators): Use leading_string_hash instead of def_hash
12366         and leading_string_eq_p instead of def_name_eq_p.
12367         (read_name): Move to read-md.c.
12368         (def_hash, def_name_eq_p): Delete.
12369         (read_constants, traverse_md_constants): Move to read-md.c.
12370         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
12371         * read-md.h: Include hashtab.h.
12372         (md_name): Moved from read-rtl.c.
12373         (md_constant): Moved from read-md.h.
12374         (leading_string_hash, leading_string_eq_p, read_name)
12375         (read_constants, traverse_md_constants): Declare.
12376         * read-md.c (md_constants): Moved from read-rtl.c.
12377         (leading_string_hash, leading_string_eq_p): New functions.
12378         (read_name, read_constants, traverse_md_constants): Moved from
12379         read-rtl.c.
12380
12381 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12382
12383         * read-rtl.c (md_name): New structure.
12384         (read_name): Take an md_name instead of a buffer pointer.
12385         Use the "string" field instead of strcpy when expanding constants.
12386         (read_constants): Remove the tmp_char argument.  Update the calls
12387         to read_name, using two local name buffers instead of the tmp_char
12388         argument.  Merge the constant-creation code.
12389         (read_conditions): Remove the tmp_char argument.  Update the calls
12390         to read_name, using a local name buffer instead of the tmp_char
12391         argument.
12392         (read_mapping): Replace tmp_char variable with a local name buffer.
12393         Update the calls to read_name.
12394         (read_rtx_1): Likewise.  Update the calls to read_constants and
12395         read_conditions.
12396
12397 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12398
12399         * Makefile.in (build/read-md.o): Depend on errors.h.
12400         * read-md.h (error_with_line): Declare.
12401         * read-md.c: Include errors.h.
12402         (message_with_line_1): New function, extracted from...
12403         (message_with_line): ...here.
12404         (error_with_line): New function.
12405         * genattrtab.c: If a call to message_with_line is followed by
12406         "have_error = 1;", replace both statements with a call to
12407         error_with_line.
12408         * genoutput.c: Likewise.
12409         * genpreds.c: Likewise.
12410         * genrecog.c: If a call to message_with_line is followed by
12411         "error_count++;", replace both statements with a call to
12412         error_with_line.
12413         (errorcount): Delete.
12414         (main): Don't check it.
12415         * gensupport.c: If a call to message_with_line is followed by
12416         "errors = 1;", replace both statements with a call to error_with_line.
12417         (errors): Delete.
12418         (process_define_cond_exec): Check have_error instead of errors.
12419         (init_md_reader_args_cb): Likewise.  Don't set errors.
12420
12421 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12422
12423         * read-md.h (read_md_file): Declare.
12424         (read_char, unread_char): New functions.
12425         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12426         (read_quoted_string, read_string): Remove FILE * argument.
12427         * read-md.c (read_md_file): New variable.
12428         (read_md_filename, read_md_lineno): Update comments and remove
12429         unnecessary initialization.
12430         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12431         (read_escape, read_quoted_string, read_braced_string, read_string):
12432         Remove FILE * argument.  Update calls accordingly, using read_char
12433         and unread_char instead of getc and ungetc.
12434         * rtl.h (read_rtx): Remove FILE * argument.
12435         * read-rtl.c (iterator_group): Remove FILE * argument from
12436         "find_builtin".
12437         (iterator_traverse_data): Remove "infile" field.
12438         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
12439         (add_mapping, read_name, read_constants, read_conditions)
12440         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
12441         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
12442         Remove file arguments from all calls, using read_char and unread_char
12443         instead of getc and ungetc.
12444         * gensupport.c (process_include): Preserve read_md_file around
12445         the include.  Set read_md_file to the handle of the included file.
12446         Update call to read_rtx.
12447         (init_md_reader_args_cb): Set read_md_file to the handle of the file
12448         and remove local FILE *.  Update calls to read_rtx.
12449
12450 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12451
12452         * read-md.h (read_rtx_lineno): Rename to...
12453         (read_md_lineno): ...this.
12454         (read_rtx_filename): Rename to...
12455         (read_md_filename): ...this.
12456         (copy_rtx_ptr_loc): Rename to...
12457         (copy_md_ptr_loc): ...this.
12458         (print_rtx_ptr_loc): Rename to...
12459         (print_md_ptr_loc): ...this.
12460         * read-md.c: Likewise.  Update references after renaming.
12461         (string_obstack): Replace RTL with MD in comment.
12462         (set_rtx_ptr_loc): Rename to...
12463         (set_md_ptr_loc): ...this.
12464         (get_rtx_ptr_loc): Rename to...
12465         (get_md_ptr_loc): ...this.
12466         * genconditions.c: Update references after renaming.
12467         * genemit.c: Likewise.
12468         * genoutput.c: Likewise.
12469         * genpreds.c: Likewise.
12470         * gensupport.c: Likewise.
12471         * read-rtl.c: Likewise.
12472
12473 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12474
12475         * Makefile.in (READ_MD_H): New variable.
12476         (BUILD_RTL): Add build/read-md.o.
12477         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
12478         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
12479         (build/genattrtab.o, build/genconditions.o build/genemit.o)
12480         (build/genextract.o, build/genflags.o, build/genoutput.o)
12481         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
12482         (build/read-md.o): New rule.
12483         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
12484         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
12485         * coretypes.h: ...here.
12486         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
12487         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
12488         * genattr.c: Include read-md.h.
12489         * genattrtab.c: Likewise.
12490         * genconditions.c: Likewise.
12491         * genemit.c: Likewise.
12492         * genextract.c: Likewise.
12493         * genflags.c: Likewise.
12494         * genoutput.c: Likewise.
12495         * genpreds.c: Likewise.
12496         * genrecog.c: Likewise.
12497         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
12498         (join_c_conditions, print_c_condition, read_rtx_filename)
12499         (read_rtx_lineno): Move to read-md.h.
12500         * read-rtl.c: Include read-md.h.
12501         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
12502         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
12503         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
12504         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
12505         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
12506         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
12507         (read_braced_string, read_string): Move to read-md.c.
12508         (read_rtx): Move some initialization to init_md_reader and call
12509         init_md_reader here.
12510         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
12511         Move to read-md.h.
12512         * gensupport.c: Include read-md.h.
12513         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
12514         * read-md.h, read-md.c: New files.
12515
12516 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
12517
12518         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12519         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12520         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
12521         * config/moxie/moxie.c (moxie_function_value): Make static.
12522         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
12523         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12524
12525 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12526
12527         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
12528         * dbgcnt.def (tree_sra): New counter.
12529         * tree-sra.c: Include dbgcnt.h.
12530         (gate_intra_sra): Check tree_sra debug counter.
12531
12532 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12533
12534         PR tree-optimization/44258
12535         * tree-sra.c (build_access_subtree): Return false iff there is a
12536         partial overlap.
12537         (build_access_trees): Likewise.
12538         (analyze_all_variable_accesses): Disqualify candidates if
12539         build_access_trees returns true for them.
12540
12541 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
12542
12543         PR debug/41371
12544         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
12545         tail-recurse into canonical node.  Fast-forward over
12546         non-canonical VALUEs.
12547
12548 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
12549
12550         PR boostrap/44470
12551         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
12552         (*addsi_1_zext) <TYPE_LEA>: Likewise.
12553         (add lea splitter): Likewise.
12554         (add_zext lea splitter): Likewise.
12555
12556 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
12557
12558         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
12559
12560 2010-06-10  Jan Hubicka  <jh@suse.cz>
12561
12562         * df-problems.c (df_live_problem_data): Add live_bitmaps.
12563         (df_live_alloc): Initialize problem data and live_osbtacks.
12564         (df_live_finalize): Remove obstack, problem data; do not
12565         clear all bitmaps.
12566         (df_live_top_dump, df_live_bottom_dump): Do not dump old
12567         data when not allocated.
12568         (df_live_verify_solution_start): Do not allocate problem data.
12569         (df_live_verify_solution_end): Check if out is allocated.
12570         (struct df_md_problem_data): New structure.
12571         (df_md_alloc): Allocate problem data.
12572         (df_md_free): Free problem data; do not clear bitmaps.
12573
12574 2010-06-10  Jan Beulich  <jbeulich@novell.com>
12575
12576         PR bootstrap/37304
12577         * configure.ac: Replace $() with ${} when intending to expand
12578         variables rather than invoking commands.
12579         * configure: Re-generate.
12580
12581 2010-06-10  Jan Hubicka  <jh@suse.cz>
12582
12583         PR rtl-optimization/44460
12584         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
12585         TYPE_NEEDS_CONSTRUCTING sanity check.
12586
12587 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
12588
12589         * doc/include/fdl.texi: Move to GFDL version 1.3.
12590
12591         * doc/cpp.texi: Move to GFDL version 1.3.
12592         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
12593         * doc/gccint.texi: Move to GFDL version 1.3.
12594         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
12595         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
12596         * doc/invoke.texi: Move to GFDL version 1.3.
12597
12598 2010-06-09  Jan Hubicka  <jh@suse.cz>
12599
12600         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
12601         Break out from ...
12602         (propagate) ... here; swap the order.
12603
12604 2010-06-09  Jan Hubicka  <jh@suse.cz>
12605
12606         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
12607         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
12608         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
12609         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
12610
12611 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
12612
12613         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
12614         Do not the gather memory reference in the outer loop if the step
12615         is not a constant.
12616
12617 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
12618
12619         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
12620         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
12621         8 to 4.  Minor change of the related comments.
12622
12623 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12624
12625         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
12626         the scev analysis when the variable is not used outside the loop
12627         in a close phi node: call compute_overall_effect_of_inner_loop.
12628
12629 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12630
12631         * graphite-sese-to-poly.c (single_pred_cond): Renamed
12632         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
12633         (build_sese_conditions_before): Renamed call to single_pred_cond.
12634         (build_sese_conditions_after): Same.
12635
12636 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
12637
12638         * graphite-poly.h: Fix comments and indentation.
12639         * graphite-sese-to-poly.c: Same.
12640         (build_sese_conditions_before): Compute stmt and gbb only when needed.
12641         * tree-chrec.c: Fix comments and indentation.
12642         (tree-ssa-loop-niter.c): Same.
12643
12644 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
12645
12646         PR rtl-optimization/42461
12647         * dce.c (deletable_insn_p): Return true for const or pure calls again.
12648         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
12649
12650 2010-06-09  Jan Hubicka  <jh@suse.cz>
12651
12652         * bitmap.c (bitmap_and): Walk array forward.
12653         (bitmap_and_compl_into): Likewise.
12654         (bitmap_xor): Likewise.
12655         (bitmap_xor_into):  Likewise.
12656         (bitmap_equal_p): Likewise.
12657         (bitmap_intersect_p): Likewise.
12658         (bitmap_intersect_compl_p): Likewise.
12659         (bitmap_ior_and_into): Likewise.
12660         (bitmap_elt_copy): Likewise.
12661         (bitmap_and_compl): Likewise.
12662         (bitmap_elt_ior): Likewise.
12663
12664 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
12665
12666         * opts-common.c (prune_options): Ensure replacement argv array
12667         is correctly terminated by a NULL entry.
12668
12669 2010-06-09  Jan Hubicka  <jh@suse.cz>
12670
12671         * cgraph.h (varpool_first_static_initializer,
12672         varpool_next_static_initializer): Make checking only when
12673         checking enabled.
12674         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
12675         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
12676         gcc_assert to gcc_checking_assert.
12677         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
12678         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
12679         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
12680         op_iter_init_phiuse, op_iter_init_phidef,
12681         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
12682         gcc_checking_assert.
12683         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
12684         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
12685         partition_is_global, live_on_entry, live_on_exit,
12686         live_merge_and_clear): Likewise.
12687         * system.h (gcc_checking_assert): New macro.
12688         * gimple.h (set_bb_seq): Use gcc_checking_assert.
12689
12690 2010-06-09  Jason Merrill  <jason@redhat.com>
12691
12692         * Makefile.in (TAGS): Collect tags info from c-family.
12693
12694 2010-06-09  Jan Hubicka  <jh@suse.cz>
12695
12696         * gimple.h (gcc_gimple_checking_assert): New macro.
12697         (gimple_set_def_ops, gimple_set_use_ops,
12698         gimple_set_vuse, gimple_set_vdef,
12699         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
12700         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
12701         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
12702         gimple_asm_output_op, gimple_asm_output_op_ptr,
12703         gimple_asm_set_output_op, gimple_asm_clobber_op,
12704         gimple_asm_set_clobber_op, gimple_asm_label_op,
12705         gimple_asm_set_label_op, gimple_try_set_kind,
12706         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
12707         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
12708         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
12709         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
12710         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
12711         gimple_omp_for_set_initial, gimple_omp_for_final,
12712         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
12713         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
12714         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
12715         conditional with ENABLE_GIMPLE_CHECKING.
12716         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
12717
12718 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
12719
12720         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
12721         (get_computation_cost_at): Use it.
12722         (determine_use_iv_cost_condition): Likewise.
12723         (determine_iv_cost): Likewise.
12724
12725 2010-06-09  Richard Guenther  <rguenther@suse.de>
12726
12727         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
12728         replace constants.
12729
12730 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
12731
12732         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
12733
12734 2010-06-09  Martin Jambor  <mjambor@suse.cz>
12735
12736         PR tree-optimization/44423
12737         * tree-sra.c (dump_access): Dump also grp_assignment_read.
12738         (analyze_access_subtree): Pass negative allow_replacements to children
12739         if the current type is scalar.
12740
12741 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
12742
12743         PR testsuite/42843
12744         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
12745         * doc/plugins.texi (Plugin license check): Update information
12746         on type of plugin_is_GPL_compatible.
12747         * Makefile.in (PLUGINCC): Define as $(COMPILER).
12748         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
12749
12750 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
12751
12752         * config/arm/arm.c (thumb2_reorg): New function.
12753         (arm_reorg): Call it.
12754         * config/arm/thumb2.md (define_peephole2 for flag clobbering
12755         arithmetic operations): Delete.
12756
12757 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
12758
12759         PR target/44067
12760         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
12761         e500v2 target.
12762
12763 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
12764
12765         PR plugins/44459
12766         * gcc-plugin.h: Encapsulate all declarations in extern "C".
12767
12768 2010-06-08  Jan Hubicka  <jh@suse.cz>
12769
12770         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
12771         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
12772
12773 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
12774
12775         PR tree-optimization/39874
12776         PR middle-end/28685
12777         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
12778         Declare.
12779         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
12780         same_bool_result_p): New.
12781         (and_var_with_comparison, and_var_with_comparison_1,
12782         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
12783         (or_var_with_comparison, or_var_with_comparison_1,
12784         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
12785         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
12786         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
12787         of combine_comparisons.
12788         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
12789
12790 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
12791
12792         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12793         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12794         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
12795         pdp11_function_value_regno_p): New functions.
12796         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12797         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12798
12799 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
12800
12801         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
12802         Thumb-2 in the MINUS case.
12803
12804 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12805
12806         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
12807
12808         * doc/gty.texi (GTY Options): Document typed GC allocation and
12809         variable_size GTY option.
12810
12811         * ggc-internal.h: New.
12812
12813         * ggc.h: Update copyright year.
12814         (digit_string): Move to stringpool.c.
12815         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
12816         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
12817         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
12818         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
12819         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
12820         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
12821         (ggc_force_collect, ggc_get_size, ggc_statistics)
12822         (ggc_print_common_statistics): Move to ggc-internal.h.
12823         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
12824         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
12825         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
12826         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
12827         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
12828         (ggc_alloc_zone_pass_stat): Remove.
12829         (ggc_internal_alloc_stat, ggc_internal_alloc)
12830         (ggc_internal_cleared_alloc_stat): New.
12831         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
12832         (ggc_internal_vec_alloc_stat)
12833         (ggc_internal_cleared_vec_alloc_stat)
12834         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
12835         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
12836         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
12837         (ggc_cleared_alloc_ptr_array_two_args): New.
12838         (htab_create_ggc, splay_tree_new_ggc): Redefine.
12839         (ggc_splay_alloc): Change the type of the first argument to
12840         enum gt_types_enum.
12841         (ggc_alloc_string): Make macro.
12842         (ggc_alloc_string_stat): New.
12843         (ggc_strdup): Redefine.
12844         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
12845         (ggc_alloc_rtvec_sized): New.
12846         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
12847         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
12848         (ggc_internal_cleared_alloc_zone_stat)
12849         (ggc_internal_zone_alloc_stat)
12850         (ggc_internal_zone_cleared_alloc_stat)
12851         (ggc_internal_zone_vec_alloc_stat)
12852         (ggc_alloc_zone_rtx_def_stat)
12853         (ggc_alloc_zone_tree_node_stat)
12854         (ggc_alloc_zone_cleared_tree_node_stat)
12855         (ggc_alloc_cleared_gimple_statement_d_stat): New.
12856
12857         * ggc-common.c: Include ggc-internal.h.
12858         (ggc_internal_cleared_alloc_stat): Rename from
12859         ggc_alloc_cleared_stat.
12860         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
12861         (ggc_calloc): Remove.
12862         (ggc_cleared_alloc_htab_ignore_args): New.
12863         (ggc_cleared_alloc_ptr_array_two_args): New.
12864         (ggc_splay_alloc): Add obj_type parameter.
12865         (init_ggc_heuristics): Formatting fixes.
12866
12867         * ggc-none.c: Update copyright year.
12868         (ggc_alloc_stat): Rename to ggc_alloc_stat.
12869         (ggc_alloc_cleared_stat): Rename to
12870         ggc_internal_cleared_alloc_stat.
12871         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
12872
12873         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
12874         Remove references to ggc_alloc in comments.
12875         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
12876         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
12877         (new_ggc_zone, destroy_ggc_zone): Remove.
12878         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
12879
12880         * ggc-zone.c: Include ggc-internal.h.  Remove references to
12881         ggc_alloc in comments.
12882         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
12883         (ggc_internal_alloc_zone_pass_stat): New.
12884         (ggc_internal_cleared_alloc_zone_stat): New.
12885         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
12886         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
12887         (new_ggc_zone, destroy_ggc_zone): Remove.
12888
12889         * stringpool.c: Update copyright year.  Include ggc-internal.h
12890         (digit_vector): Make static.
12891         (digit_string): Moved from ggc.h.
12892         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
12893         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
12894
12895         * Makefile.in (GGC_INTERNAL_H): New.
12896         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
12897         $(GGC_INTERNAL_H) to dependencies.
12898
12899         * gentype.c: Update copyright year.
12900         (walk_type): Accept variable_size GTY option.
12901         (USED_BY_TYPED_GC_P): New macro.
12902         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
12903         whitespace at the end of strings.
12904         (get_type_specifier, variable_size_p): New functions.
12905         (alloc_quantity, alloc_zone): New enums.
12906         (write_typed_alloc_def): New function.
12907         (write_typed_struct_alloc_def): Likewise.
12908         (write_typed_typed_typedef_alloc_def): Likewise.
12909         (write_typed_alloc_defns): Likewise.
12910         (output_typename, write_splay_tree_allocator_def): Likewise.
12911         (write_splay_tree_allocators): Likewise.
12912         (main): Call write_typed_alloc_defns and
12913         write_splay_tree_allocators.
12914
12915         * lto-streamer.h (lto_file_decl_data_ptr): New.
12916
12917         * passes.c (order): Define using cgraph_node_ptr.
12918
12919         * strinpool.c (struct string_pool_data): Declare nested_ptr using
12920         ht_identifier_ptr.
12921
12922         * gimple.h (union gimple_statement_d): Likewise.
12923
12924         * rtl.h (struct rtx_def): Likewise.
12925         (struct rtvec_def): Likewise.
12926
12927         * tree.h (union tree_node): Likewise.
12928
12929         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
12930
12931         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
12932
12933         * tree-scalar-evolution.c (scev_initialize): Likewise.
12934
12935         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
12936
12937         * dwarf2asm.c (dw2_force_const_mem): Likewise.
12938
12939         * omp-low.c (lower_omp_critical): Likewise.
12940
12941         * bitmap.h (struct bitmap_head_def): Update comment to not
12942         reference ggc_alloc.
12943
12944         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
12945
12946         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
12947
12948         * ipa-prop.c (duplicate_ggc_array): Rename to
12949         duplicate_ipa_jump_func_array.  Use typed GC allocation.
12950         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
12951
12952         * gimple.c (gimple_alloc_stat): Use
12953         ggc_alloc_cleared_gimple_statement_d_stat.
12954
12955         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
12956
12957         * tree.c (make_node_stat): Use
12958         ggc_alloc_zone_cleared_tree_node_stat.
12959         (make_tree_vec_stat): Likewise.
12960         (build_vl_exp_stat): Likewise.
12961         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
12962         (make_tree_binfo_stat): Likewise.
12963         (tree_cons_stat): Likewise.
12964
12965         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
12966         (shallow_copy_rtx_stat): Likewise.
12967         (make_node_stat): Likewise.
12968
12969         * lto-symtab.c: Fix comment.
12970
12971         * tree-cfg.c (create_bb): Update comment to not reference
12972         ggc_alloc_cleared.
12973         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
12974
12975         * varpool.c (varpool_node): Use typed GC allocation.
12976         (varpool_extra_name_alias): Likewise.
12977
12978         * varasm.c (emutls_decl): Likewise.
12979         (get_unnamed_section): Likewise.
12980         (get_noswitch_section): Likewise.
12981         (get_section): Likewise.
12982         (get_block_for_section): Likewise.
12983         (build_constant_desc): Likewise.
12984         (create_constant_pool): Likewise.
12985         (force_const_mem): Likewise.
12986
12987         * tree.c (build_vl_exp_stat): Likewise.
12988         (build_real): Likewise.
12989         (build_string): Likewise.
12990         (decl_debug_expr_insert): Likewise.
12991         (decl_value_expr_insert): Likewise.
12992         (type_hash_add): Likewise.
12993         (build_omp_clause): Likewise.
12994
12995         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
12996
12997         * tree-ssa.c (init_tree_ssa): Likewise.
12998
12999         * tree-ssa-structalias.c (heapvar_insert): Likewise.
13000
13001         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
13002
13003         * tree-ssa-loop-niter.c (record_estimate): Likewise.
13004
13005         * tree-ssa-alias.c (get_ptr_info): Likewise.
13006
13007         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
13008
13009         * tree-phinodes.c (allocate_phi_node): Likewise.
13010
13011         * tree-iterator.c (tsi_link_before): Likewise.
13012         (tsi_link_after): Likewise.
13013
13014         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
13015
13016         * tree-dfa.c (create_var_ann): Likewise.
13017
13018         * tree-cfg.c (create_bb): Likewise.
13019
13020         * toplev.c (alloc_for_identifier_to_locale): Likewise.
13021         (general_init): Likewise.
13022
13023         * stringpool.c (stringpool_ggc_alloc): Likewise.
13024         (gt_pch_save_stringpool): Likewise.
13025
13026         * sese.c (if_region_set_false_region): Likewise.
13027
13028         * passes.c (do_per_function_toporder): Likewise.
13029
13030         * optabs.c (set_optab_libfunc): Likewise.
13031         (set_conv_libfunc): Likewise.
13032
13033         * lto-symtab.c (lto_symtab_register_decl): Likewise.
13034
13035         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
13036         (input_eh_region): Likewise.
13037         (input_eh_lp): Likewise.
13038         (make_new_block): Likewise.
13039         (unpack_ts_real_cst_value_fields): Likewise.
13040
13041         * lto-section-in.c (lto_new_in_decl_state): Likewise.
13042
13043         * lto-cgraph.c (input_node_opt_summary): Likewise.
13044
13045         * loop-init.c (loop_optimizer_init): Likewise.
13046
13047         * lambda.h (lambda_vector_new): Likewise.
13048
13049         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13050
13051         * ira.c (update_equiv_regs): Likewise.
13052
13053         * ipa.c (cgraph_node_set_new): Likewise.
13054         (cgraph_node_set_add): Likewise.
13055         (varpool_node_set_new): Likewise.
13056         (varpool_node_set_add): Likewise.
13057
13058         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
13059         (duplicate_ipa_jump_func_array): Likewise.
13060         (ipa_read_node_info): Likewise.
13061
13062         * ipa-cp.c (ipcp_create_replace_map): Likewise.
13063
13064         * integrate.c (get_hard_reg_initial_val): Likewise.
13065
13066         * gimple.c (gimple_alloc_stat): Likewise.
13067         (gimple_build_omp_for): Likewise.
13068         (gimple_seq_alloc): Likewise.
13069         (gimple_copy): Likewise.
13070
13071         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
13072         (gsi_insert_after_without_update): Likewise.
13073
13074         * function.c (add_frame_space): Likewise.
13075         (insert_temp_slot_address): Likewise.
13076         (assign_stack_temp_for_type): Likewise.
13077         (allocate_struct_function): Likewise.
13078         (types_used_by_var_decl_insert): Likewise.
13079
13080         * except.c (init_eh_for_function): Likewise.
13081         (gen_eh_region): Likewise.
13082         (gen_eh_region_catch): Likewise.
13083         (gen_eh_landing_pad): Likewise.
13084         (add_call_site): Likewise.
13085
13086         * emit-rtl.c (get_mem_attrs): Likewise.
13087         (get_reg_attrs): Likewise.
13088         (start_sequence): Likewise.
13089         (init_emit): Likewise.
13090
13091         * dwarf2out.c (new_cfi): Likewise.
13092         (queue_reg_save): Likewise.
13093         (dwarf2out_frame_init): Likewise.
13094         (new_loc_descr): Likewise.
13095         (find_AT_string): Likewise.
13096         (new_die): Likewise.
13097         (add_var_loc_to_decl): Likewise.
13098         (clone_die): Likewise.
13099         (clone_as_declaration): Likewise.
13100         (break_out_comdat_types): Likewise.
13101         (new_loc_list): Likewise.
13102         (loc_descriptor): Likewise.
13103         (add_loc_descr_to_each): Likewise.
13104         (add_const_value_attribute): Likewise.
13105         (tree_add_const_value_attribute): Likewise.
13106         (add_comp_dir_attribute): Likewise.
13107         (add_name_and_src_coords_attributes): Likewise.
13108         (lookup_filename): Likewise.
13109         (store_vcall_insn): Likewise.
13110         (dwarf2out_init): Likewise.
13111
13112         * dbxout.c (dbxout_init): Likewise.
13113
13114         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13115
13116         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13117
13118         * config/score/score7.c (score7_output_external): Likewise.
13119
13120         * config/score/score3.c (score3_output_external): Likewise.
13121
13122         * config/s390/s390.c (s390_init_machine_status): Likewise.
13123
13124         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
13125         (rs6000_init_machine_status): Likewise.
13126         (output_toc): Likewise.
13127
13128         * config/pa/pa.c (pa_init_machine_status): Likewise.
13129         (get_deferred_plabel): Likewise.
13130
13131         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
13132
13133         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
13134
13135         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
13136
13137         * config/mep/mep.c (mep_init_machine_status): Likewise.
13138         (mep_note_pragma_flag): Likewise.
13139
13140         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
13141
13142         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
13143
13144         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
13145
13146         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
13147         (i386_pe_maybe_record_exported_symbol): Likewise.
13148
13149         * config/i386/i386.c (get_dllimport_decl): Likewise.
13150         (ix86_init_machine_status): Likewise.
13151         (assign_386_stack_local): Likewise.
13152
13153         * config/frv/frv.c (frv_init_machine_status): Likewise.
13154
13155         * config/darwin.c (machopic_indirection_name): Likewise.
13156
13157         * config/cris/cris.c (cris_init_machine_status): Likewise.
13158
13159         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
13160
13161         * config/avr/avr.c (avr_init_machine_status): Likewise.
13162
13163         * config/arm/arm.c (arm_init_machine_status): Likewise.
13164
13165         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
13166         (alpha_need_linkage): Likewise.
13167         (alpha_use_linkage): Likewise.
13168
13169         * cgraph.c (cgraph_allocate_node): Likewise.
13170         (cgraph_create_edge_1): Likewise.
13171         (cgraph_create_indirect_edge): Likewise.
13172         (cgraph_add_asm_node): Likewise.
13173
13174         * cfgrtl.c (init_rtl_bb_info): Likewise.
13175
13176         * cfgloop.c (alloc_loop): Likewise.
13177         (rescan_loop_exit): Likewise.
13178
13179         * cfg.c (init_flow): Likewise.
13180         (alloc_block): Likewise.
13181         (unchecked_make_edge): Likewise.
13182
13183         * c-parser.c (c_parse_init): Likewise.
13184         (c_parse_file): Likewise.
13185
13186         * c-decl.c (bind): Likewise.
13187         (record_inline_static): Likewise.
13188         (push_scope): Likewise.
13189         (make_label): Likewise.
13190         (lookup_label_for_goto): Likewise.
13191         (finish_struct): Likewise.
13192         (finish_enum): Likewise.
13193         (c_push_function_context): Likewise.
13194
13195         * bitmap.c (bitmap_element_allocate): Likewise.
13196         (bitmap_gc_alloc_stat): Likewise.
13197
13198         * alias.c (record_alias_subset): Likewise.
13199         (init_alias_analysis): Likewise.
13200
13201 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
13202
13203         * fold-const.c (fold_comparison): Remove redundant parenthesis.
13204         * tree-inline.c (expand_call_inline): Pass translated return value of
13205         cgraph_inline_failed_string to diagnostic function.
13206
13207 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
13208             Shujing Zhao  <pearly.zhao@oracle.com>
13209
13210         PR c/37724
13211         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
13212         implicit bad conversions is initialization.
13213         (error_init): Use gmsgid instead of msgid for argument name and change
13214         the call for error.
13215         (pedwarn_init): Use gmsgid instead of msgid for argument name and
13216         change the call for pedwarn.
13217         (warning_init): Use gmsgid instead of msgid for argument name and
13218         change the call for warning.
13219
13220 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
13221
13222         * config/mips/mips-protos.h (mips_print_operand): Delete.
13223         (mips_print_operand_address): Delete.
13224         * config/mips/mips.h (mips_print_operand_punct): Delete.
13225         (PRINT_OPERAND): Delete.
13226         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13227         (PRINT_OPERAND_ADDRESS): Delete.
13228         * config/mips/mips.c (mips_print_operand_punct): Make static.
13229         (mips_print_operand_address): Make static.
13230         (mips_print_operand): Make static.  Call
13231         mips_print_operand_punct_valid_p.
13232         (mips_print_operand_punct_valid_p): New function.
13233         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13234         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13235
13236 2010-06-07  Jan Hubicka  <jh@suse.cz>
13237
13238         PR middle-end/44454
13239         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
13240         are allocated.
13241
13242 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
13243
13244         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
13245         name of RECORD.
13246
13247 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13248
13249         * doc/sourcebuild.texi (Effective-Target Keywords, Other
13250         attributes): Document gas.
13251
13252 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
13253
13254         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
13255         <TYPE_LEA>: Split instruction.
13256         <default>: Remove alternative 2 handling.
13257         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
13258         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
13259         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
13260
13261         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
13262         (ashift_zext lea splitter): Use DImode for multiplication.
13263
13264         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
13265         to generate addition.
13266
13267 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
13268
13269         * common.opt (fira-verbose): Use Var.
13270         (fpcc-struct-return): Use Init instead of VarExists.
13271         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
13272         toplev.c.
13273         * flags.h (flag_signed_char, flag_short_enums,
13274         flag_pcc_struct_return, flag_ira_verbose,
13275         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
13276         * toplev.c (flag_detailed_statistics, flag_signed_char,
13277         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
13278         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
13279         * toplev.h (flag_crossjumping, flag_if_conversion,
13280         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
13281         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
13282         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
13283         flag_cprop_registers, time_report, flag_ira_loop_pressure,
13284         flag_ira_coalesce, flag_ira_move_spills,
13285         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
13286
13287 2010-06-07  Jan Hubicka  <jh@suse.cz>
13288
13289         * df-core.c (df_analyze_problem): Do verification after allocation.
13290
13291         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
13292         (df_lr_alloc): Initialize problem data; move bitmaps to
13293         lr_bitmaps obstack.
13294         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
13295         (df_lr_verify_solution_start): Do not initialize problem data;
13296         allocate bitmaps in lr_bitmaps.
13297         (df_lr_verify_solution_end): Do not free problem data.
13298
13299 2010-06-07  Jan Hubicka  <jh@suse.cz>
13300
13301         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
13302         if caller is noreturn.
13303         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
13304         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
13305         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
13306         * ipa-pure-const.c (check_decl): Add IPA parameter.
13307         (state_from_flags): New function.
13308         (better_state, worse_state): New functions.
13309         (check_call): When in IPA mode, do not care about callees.
13310         (check_load, check_store): Update.
13311         (check_ipa_load, check_ipa_store): New.
13312         (check_stmt): When in IPA mode, use IPA checkers.
13313         (analyze_function): Use state_from_flags.
13314         (propagate): Check indirect edges and references.
13315
13316 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
13317
13318         PR rtl-optimization/44404
13319         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
13320         of count_occurrences to see if it's safe to modify mem_insn.
13321
13322 2010-06-07  Richard Guenther  <rguenther@suse.de>
13323
13324         * gimplify.c (gimplify_cleanup_point_expr): For empty body
13325         and EH-only cleanup drop the cleanup instead of inserting it
13326         unconditionally.
13327
13328 2010-06-07  Ira Rosen  <irar@il.ibm.com>
13329
13330         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
13331         documentation.
13332         * targhooks.c (default_builtin_vectorization_cost): New function.
13333         * targhooks.h (default_builtin_vectorization_cost): Declare.
13334         * target.h (enum vect_cost_for_stmt): Define.
13335         (builtin_vectorization_cost): Change argument and comment.
13336         * tree-vectorizer.h: Remove cost model macros.
13337         * tree-vect-loop.c: Include target.h.
13338         (vect_get_cost): New function.
13339         (vect_estimate_min_profitable_iters): Replace cost model macros with
13340         calls to vect_get_cost.
13341         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
13342         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
13343         default implementation.
13344         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
13345         calls to target hook builtin_vectorization_cost.
13346         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
13347         Likewise.
13348         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
13349         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
13350         implementation to return costs.
13351         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
13352         * config/spu/spu.h: Remove vectorizer cost model macros.
13353         * config/i386/i386.h: Likewise.
13354         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
13355         a call to target hook builtin_vectorization_cost.
13356
13357 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
13358
13359         PR target/44319
13360         * config/i386/i386.c (override_options): Turn zee pass on for level 2
13361         and above and defer till target is known.
13362         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
13363         turn off otherwise.
13364
13365 2010-05-25  Jan Hubicka  <jh@suse.cz>
13366
13367         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
13368         (df_compact_blocks): Likewise.
13369         * df.h (struct df): Turn hardware_regs_used,
13370         regular_block_artificial_uses, eh_block_artificial_uses,
13371         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
13372         bitmap_head.
13373         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
13374         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
13375         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
13376         df_scan_blocks, df_insn_delete, df_insn_rescan,
13377         df_insn_rescan_debug_internal, df_insn_rescan_all,
13378         df_process_deferred_rescans, df_process_deferred_rescans,
13379         df_notes_rescan, df_get_call_refs, df_get_call_refs,
13380         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
13381         df_record_entry_block_defs, df_record_exit_block_uses,
13382         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
13383         df_scan_verify): Update.
13384
13385 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
13386
13387         PR c++/44188
13388         * c-common.c (is_typedef_decl): Move this definition ...
13389         * tree.c (is_typedef_decl): ... here.
13390         (typdef_variant_p): Move definition here from cp/tree.c.
13391         * c-common.h (is_typedef_decl): Move this declaration ...
13392         * tree.h (is_typedef_decl): ... here.
13393         (typedef_variant_p): Move declaration here from cp/cp-tree.h
13394         * dwarf2out.c (is_naming_typedef_decl): New function.
13395         (gen_tagged_type_die): Split out of ...
13396         (gen_type_die_with_usage): ... this function. When an anonymous
13397         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
13398         is emitted for the typedef.
13399         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
13400         anonymous tagged types.
13401
13402 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13403
13404         PR c/20000
13405         * c-decl.c (grokdeclarator): Delete warning.
13406
13407 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13408
13409         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
13410         newly built CALL_EXPR.
13411         * tree-profile.c (tree_profiling): Don't profile functions produced
13412         for built-in stuff.
13413
13414 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
13415
13416         PR bootstrap/44427
13417         PR bootstrap/44428
13418         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
13419         endianness-independent.
13420
13421 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
13422
13423         * c-common.c: Move to c-family/.
13424         * c-common.def: Likewise.
13425         * c-common.h: Likewise.
13426         * c-cppbuiltin.c: Likewise.
13427         * c-dump.c: Likewise.
13428         * c-format.c: Likewise.
13429         * c-format.h : Likewise.
13430         * c-gimplify.c: Likewise.
13431         * c-lex.c: Likewise.
13432         * c-omp.c: Likewise.
13433         * c.opt: Likewise.
13434         * c-opts.c: Likewise.
13435         * c-pch.c: Likewise.
13436         * c-ppoutput.c: Likewise.
13437         * c-pragma.c: Likewise.
13438         * c-pragma.h: Likewise.
13439         * c-pretty-print.c: Likewise.
13440         * c-pretty-print.h: Likewise.
13441         * c-semantics.c: Likewise.
13442         * stub-objc.c: Likewise.
13443
13444         * gengtype.c (get_file_langdir): Special-case files in c-family/.
13445         (get_output_file_with_visibility): Fix name for c-common.h.
13446         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
13447
13448         * c-tree.h: Update include path for moved files.
13449         * c-lang.c: Likewise.
13450         * c-lang.h: Likewise.
13451         * c-parser.c: Likewise.
13452         * c-convert.c: Likewise.
13453         * c-decl.c: Likewise.
13454         * c-objc-common.c: Likewise.
13455         * configure.ac: Make sure c-family/ exists in the build directory.
13456         * configure: Regenerate.
13457         * Makefile.in: Update paths for moved files.  Regroup files per
13458         location and update dependencies.  Move generated_files down after
13459         ALL_GTFILES_H.
13460
13461         * config/spu/spu-c.c: Update paths for moved files.
13462         * config/mep/mep-pragma.c: Likewise.
13463         * config/darwin-c.c: Likewise.
13464         * config/i386/msformat-c.c: Likewise.
13465         * config/i386/i386-c.c: Likewise.
13466         * config/avr/avr-c.c: Likewise.
13467         * config/sol2-c.c: Likewise.
13468         * config/ia64/ia64-c.c: Likewise.
13469         * config/rs6000/rs6000-c.c: Likewise.
13470         * config/arm/arm.c: Likewise.
13471         * config/arm/arm-c.c: Likewise.
13472         * config/h8300/h8300.c: Likewise.
13473         * config/v850/v850-c.c: Likewise.
13474
13475         * config/t-darwin: Fix dependencies for moved files.
13476         * config/t-sol2: Fix dependencies for moved files.
13477         * config/mep/t-mep: Fix dependencies for moved files.
13478         * config/ia64/t-ia64: Fix dependencies for moved files.
13479         * config/rs6000/t-rs6000: Fix dependencies for moved files.
13480         * config/v850/t-v850: Fix dependencies for moved files.
13481         * config/v850/t-v850e: Fix dependencies for moved files.
13482
13483         * config/m32c/m32c-pragma.c
13484
13485         * po/exgettext: Look in c-family/ also.
13486
13487 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
13488
13489         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
13490         (mark_control_dependent_edges_necessary): Call it instead of marking
13491         the last statement manually.
13492         (propagate_necessity): Likewise.
13493
13494 2010-06-05  Jan Hubicka  <jh@suse.cz>
13495
13496         * basic-block.h (compute_dominance_frontiers): Updated.
13497         (compute_idf): Likewise.
13498
13499         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
13500         for dominance frontiers.
13501         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
13502         (insert_updated_phi_nodes_for): Likewise.
13503         (update_ssa): Likewise.
13504         * cfganal.c (compute_dominance_frontiers_1): Likewise.
13505         (compute_dominance_frontiers): Likewise.
13506         (compute_idf): Likewise.
13507         * df-problems.c (df_md_local_compute): Likewise.
13508
13509 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
13510
13511         * target.h (struct gcc_target): Add memory_move_cost field.
13512         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
13513         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
13514         * targhooks.c (default_memory_move_cost): New function.
13515         * targhooks.h (default_memory_move_cost): Declare function.
13516         * reload.h (memory_move_cost): Declare.
13517         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13518         * reginfo.c (memory_move_cost): New function.
13519         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13520         * ira.h (ira_memory_move_cost): Update comment.
13521         * ira.c (ira_memory_move_cost): Update comment.
13522         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
13523         with memory_move_cost.
13524         * postreload.c (reload_cse_simplify_set): (Ditto.).
13525         * reload1.c (choose_reload_regs): (Ditto.).
13526         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
13527         (MEMORY_MOVE_COST):  Revise documentation.
13528
13529         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
13530         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
13531         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
13532         type of 'in' argument to bool.
13533         (TARGET_MEMORY_MOVE_COST): Define.
13534
13535 2010-06-05  Jan Hubicka  <jh@suse.cz>
13536
13537         * ipa-pure-const.c (propagate): Fix typo in handling of functions
13538         that cannot return.  Be more careful when merging the results with
13539         previously known ones.
13540
13541 2010-06-05  Matthias Klose  <doko@ubuntu.com>
13542
13543         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
13544         function to add the -iplugindir option.
13545         (find_plugindir_spec_function): Add new declaration and function.
13546         (static_spec_func): Use it for "find-plugindir".
13547
13548 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
13549
13550         PR c++/44361
13551         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
13552         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
13553         statement expression.
13554
13555 2010-06-05  Jan Hubicka  <jh@suse.cz>
13556
13557         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
13558         (df_rd_problem_data): Convert sparse_invalidated_by_call,
13559         dense_invalidated_by_call to bitmap head.
13560         (df_rd_alloc, df_rd_bb_local_compute_process_def,
13561         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
13562         df_rd_start_dump, df_lr_verify_transfer_functions,
13563         df_live_verify_transfer_functions, df_chain_create_bb,
13564         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
13565         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
13566         df_simulate_one_insn_forwards, df_md_alloc,
13567         df_md_bb_local_compute_process_def,
13568         df_md_bb_local_compute_process_def, df_md_local_compute,
13569         df_md_transfer_function df_md_free): Update.
13570
13571 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
13572
13573         PR c/44322
13574         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
13575         target type for ADDR_EXPR; require no changes to qualifiers except
13576         for function types.
13577         * c-tree.h (c_build_type_variant): Remove.
13578
13579 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
13580
13581         * genautomata.c (get_excl_set): Do work per element, not per char.
13582         (check_presence_pattern_sets): Similar.
13583         (check_absence_pattern_sets): Similar.
13584
13585 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
13586
13587         * genautomata.c (curr_state_pass_num): Delete.
13588         (min_issue_delay_pass_states): Delete.
13589         (min_issue_delay): Delete.
13590         (initiate_min_issue_delay_pass_states): Delete.
13591         (output_min_issue_delay_table): Compute min_issue_delay_vect
13592         using a breadth-first search variant.
13593         (output_tables): Don't call initiate_min_issue_delay_pass_states.
13594
13595 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
13596
13597         PR boostrap/44421
13598         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
13599         (df_byte_lr_bb_local_compute): Likewise.
13600
13601 2010-06-03  Jason Merrill  <jason@redhat.com>
13602
13603         Implement noexcept operator (5.3.7)
13604         * c-common.c (c_common_reswords): Add noexcept.
13605         * c-common.h (enum rid): Add RID_NOEXCEPT.
13606
13607 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
13608
13609         * config/darwin-driver.c (darwin_default_min_version): Use
13610         GCC-specific formats in diagnostics.
13611         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
13612         diagnostics.
13613         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
13614         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
13615         eval_spec_function, handle_braces, process_brace_body, main,
13616         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
13617         getenv_spec_function, compare_version_strings,
13618         version_compare_spec_function): Use GCC-specific formats in
13619         diagnostics.
13620
13621 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13622
13623         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
13624         that operand 0 and operand 1 are equal.
13625         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
13626         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
13627         and operand 1 are equal.
13628         <default>: Ditto.  Remove ??? comment.
13629         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
13630         and operand 1 are equal.
13631         <default>: Ditto.  Remove ??? comment.
13632         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
13633         are equal.
13634         (*add<mode>_4) <default>: Ditto.
13635         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
13636
13637 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
13638
13639         * config/i386/i386-protos.h (ix86_print_operand): Declare.
13640         * config/i386/i386.c (ix86_print_operand): Make non-static.
13641         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
13642         * output.h (output_operand): Declare.
13643         * final.c (output_operand): Make non-static.
13644
13645 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
13646
13647         PR rtl-optimization/44013
13648         * sched-deps.c (add_dependence_list_and_free): Don't free lists
13649         when processing debug insns.
13650
13651         PR debug/41371
13652         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
13653         recursing.  Check that recursion is bounded.  Rename inner var
13654         to avoid hiding incoming argument.
13655
13656 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13657
13658         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
13659         operands[2] == 255.
13660         (*addqi_3): Ditto.
13661         (*addqi_4): Ditto.
13662         (*addqi_5): Ditto.
13663         (*addqi_ext_1_rex64): Ditto.
13664         (*addqi_ext_1): Ditto.
13665
13666         (*addqi_4): Check for incdec_operand in QImode.
13667
13668         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
13669         using SWI mode iterator.
13670         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
13671         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
13672         mode iterator.
13673         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
13674         using SWI mode iterator.
13675
13676 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13677
13678         PR c/25880
13679         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
13680         * c-format.c (gcc_diag_flag_specs): Add hash.
13681         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
13682         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
13683         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
13684         pp_c_cv_qualifiers. Handle qualifiers spelling here.
13685         (pp_c_type_qualifier_list): Call the function above.
13686         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
13687         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
13688         (WARN_FOR_QUALIFIERS): New macro.
13689         (convert_for_assignment): Use it.
13690
13691 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
13692
13693         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
13694
13695 2010-06-04  Jan Hubicka  <jh@suse.cz>
13696
13697         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
13698         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
13699         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
13700         DF_BYTE_LR_OUT): Update for embedded bitmaps.
13701         * fwprop.c (single_def_use_enter_block): Likewise.
13702         * ddg.c (create_ddg_dep_from_intra_loop_link,
13703         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
13704         * loop-iv.c (latch_dominating_def): Likewise.
13705         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
13706         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
13707         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
13708         df_rd_transfer_function, df_rd_top_dump,
13709         df_rd_bottom_dump): Update.
13710         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
13711         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
13712         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
13713         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
13714         df_lr_verify_solution_start, df_lr_verify_solution_end,
13715         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
13716         df_live_free_bb_info, df_live_alloc, df_live_reset,
13717         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
13718         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
13719         df_live_verify_solution_start, df_live_verify_solution_end,
13720         df_live_verify_transfer_functions, df_chain_create_bb,
13721         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
13722         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
13723         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
13724         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
13725         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
13726         df_byte_lr_transfer_function, df_byte_lr_top_dump,
13727         df_byte_lr_bottom_dump, df_create_unused_note,
13728         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
13729         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
13730         df_md_transfer_function, df_md_init, df_md_confluence_0,
13731         df_md_confluence_n,
13732         df_md_top_dump, df_md_bottom_dump): Update.
13733         (struct df_lr_problem_data): Embedd bitmap headers.
13734
13735 2010-06-04  Jan Hubicka  <jh@suse.cz>
13736
13737         * dce.c (dce_process_block): Do not re-scan already marked
13738         instructions.
13739
13740 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
13741
13742         PR rtl-optimization/39871
13743         PR rtl-optimization/40615
13744         PR rtl-optimization/42500
13745         PR rtl-optimization/42502
13746         * ira.c (init_reg_equiv_memory_loc: New function.
13747         (ira): Call it twice.
13748         * reload.h (calculate_elim_costs_all_insns): Declare.
13749         * ira-costs.c: Include "reload.h".
13750         (regno_equiv_gains): New static variable.
13751         (init_costs): Allocate it.
13752         (finish_costs): Free it.
13753         (ira_costs): Call calculate_elim_costs_all_insns.
13754         (find_costs_and_classes): Take estimated elimination costs
13755         into account.
13756         (ira_adjust_equiv_reg_cost): New function.
13757         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
13758         * reload1.c (init_eliminable_invariants, free_reg_equiv,
13759         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
13760         (elim_bb): New static variable.
13761         (reload): Move code out of here into init_eliminable_invariants and
13762         free_reg_equiv.  Call them.
13763         (calculate_elim_costs_all_insns): New function.
13764         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
13765         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
13766         but call note_reg_elim_costly if we turned a valid memory address
13767         into an invalid one.
13768         * Makefile.in (ira-costs.o): Depend on reload.h.
13769
13770 2010-06-04  Julian Brown  <julian@codesourcery.com>
13771
13772         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
13773         for pool ranges.
13774
13775 2010-06-04  Richard Guenther  <rguenther@suse.de>
13776
13777         PR lto/41584
13778         * cgraph.h (struct varpool_node): Add lto_file_data field.
13779         * lto-cgraph.c (input_varpool_node): Initialize it.
13780
13781 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
13782
13783         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
13784         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
13785         predicate in "type" attribute calculation.
13786         (*addsi_1_zext): Ditto.
13787         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
13788         (*addsi_2_zext): Ditto.
13789         (*add<mode>_3): Ditto.
13790         (*addsi_3_zext): Ditto.
13791         (*add<mode>_5): Ditto.
13792
13793 2010-06-03  Jan Hubicka  <jh@suse.cz>
13794
13795         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
13796         of bitmap_bit_p.
13797         * cfganal.c (compute_dominance_frontiers_1): Likewise.
13798
13799 2010-06-03  Jan Hubicka  <jh@suse.cz>
13800
13801         * df-problems.c (df_create_unused_note, df_note_bb_compute):
13802         micro-optimize the checks when to add new note.
13803
13804 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
13805
13806         * final.c (output_asm_insn): Call
13807         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
13808         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
13809         (output_address): Call targetm.asm_out.print_operand_address.
13810         Update comments.
13811         * target.h (struct gcc_target): Add print_operand,
13812         print_operand_address, and print_operand_punct_valid_p fields.
13813         * targhooks.h (default_print_operand): Declare.
13814         (default_print_operand_address): Declare.
13815         (default_print_operand_punct_valid_p): Declare.
13816         * targhooks.c (default_print_operand): Define.
13817         (default_print_operand_address): Define.
13818         (default_print_operand_punct_valid_p): Define.
13819         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
13820         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
13821         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
13822         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
13823         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
13824         * vmsdbgout.c (addr_const_to_string): Update comment.
13825         * config/i386/i386.c (print_operand): Rename to...
13826         (ix86_print_operand): ...this.  Make static.
13827         (print_operand_address): Rename to...
13828         (ix86_print_operand_address): ...this.  Make static.  Call
13829         ix86_print_operand instead of PRINT_OPERAND.
13830         (ix86_print_operand_punct_valid_p): New function.
13831         (TARGET_PRINT_OPERAND): Define.
13832         (TARGET_PRINT_OPERAND_ADDRESS): Define.
13833         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13834         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
13835         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13836         (PRINT_OPERAND): Delete.
13837         (PRINT_OPERAND_ADDRESS): Delete.
13838         * config/i386/i386-protos.h (print_operand): Delete prototype.
13839         (print_operand_address): Delete prototype.
13840
13841 2010-06-03  Richard Guenther  <rguenther@suse.de>
13842
13843         PR tree-optimization/44403
13844         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
13845         Preserve pointer qualifiers.
13846         (vect_create_data_ref_ptr): Likewise.
13847
13848 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
13849
13850         PR c++/44294
13851         * defaults.h (MAX_FIXED_MODE_SIZE): New.
13852
13853         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
13854
13855 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
13856
13857         PR debug/44375
13858         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
13859         return false if merging the bbs would lead to goto_locus
13860         location being lost from the IL.
13861
13862 2010-06-03  Jan Hubicka  <jh@suse.cz>
13863             Jakub Jelinek  <jakub@redhat.com>
13864
13865         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
13866         set->regs[i] is NULL or has just one entry.
13867
13868 2010-06-03  Jan Hubicka  <jh@suse.cz>
13869
13870         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
13871         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
13872
13873 2010-06-03  Paul Brook  <paul@codesourcery.com>
13874
13875         * config/arm/arm.c (FL_TUNE): Define.
13876         (arm_default_cpu, arm_cpu_select): Remove.
13877         (all_cores): Populate core field.
13878         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
13879         (arm_find_cpu): New function.
13880         (arm_handle_option): Lookup cpu/architecture names.
13881         (arm_override_options): Cleanup mcpu/march/mtune handling.
13882         (arm_file_start): Ditto.
13883
13884 2010-06-03  Alan Modra  <amodra@gmail.com>
13885
13886         PR target/44169
13887         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
13888         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
13889         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
13890         (rs6000_emit_load_toc_table): Likewise.
13891
13892 2010-06-02  Jan Hubicka  <jh@suse.cz>
13893
13894         * passes.c (init_optimization_passes): Put ipa reference
13895         after ipa pure-const.
13896
13897 2010-06-02  Jan Hubicka  <jh@suse.cz>
13898
13899         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
13900         calls_read_all and calls_write_all.
13901         (get_reference_optimization_summary): Fix formatting.
13902         (is_proper_for_analysis): Check that decl is not readonly.
13903         (propagate_bits): Check CONST/PURE/noreturn flags.
13904         (ipa_init): Move all_module_statics to optimization_summary_obstack.
13905         (analyze_function): Ignore indirect edges.
13906         (copy_global_bitmap): For all module statics, do nothing.
13907         (generate_summary): Do not print calls_read_all/calls_write_all.
13908         (read_write_all_from_decl): Take node as argument; check
13909         cgraph_node_cannot_return.
13910         (propagate): Reorganize read_all/write_all computation;
13911         check indirect edges; check ecf flags; use all_module_statics
13912         in the results; do not free all_module_statics.
13913         (stream_out_bitmap): Handle all_module_statics.
13914         (ipa_reference_write_optimization_summary): Likewise; use
13915         varpool/cgraph encoders to get boundaries.
13916         (ipa_reference_read_optimization_summary): Read in all_module_statics;
13917         use it when possible.
13918
13919 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13920
13921         PR target/44218
13922         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
13923         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
13924
13925         * doc/extend.texi (powerpc builtins): Document vec_recip,
13926         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
13927
13928         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
13929         (rs6000_emit_swrsqrt): Ditto.
13930         (rs6000_emit_swdivsf): Delete.
13931         (rs6000_emit_swdivdf): Ditto.
13932         (rs6000_emit_swrsqrtsf): Ditto.
13933
13934         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
13935         describe the reciprocal estimate support for each type.
13936         (recip_options): Map -mrecip=<opt> into option bits.
13937         (gen_2arg_fn_t): New typedef for binary rtx gen function.
13938         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
13939         reciprocal estimate instructions.
13940         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
13941         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
13942         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
13943         cost information if -mdebug=cost or -mdebug=reg.
13944         (rs6000_override_options): Set -mrecip-precision for power6, and
13945         power7 machines.  If -mvsx or -mdfp, enable various options that
13946         came in previous instruction set ISAs, unless the option was
13947         explicitly disabled by the command line option.  Parse
13948         -mrecip=<opt> options.
13949         (rs6000_builtin_vectorized_function): Add support for vectorizing
13950         the reciprocal estimate builtins and expansions.
13951         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
13952         (bdesc_2arg): Add reciprocal estimate builtins.
13953         (bdesc_1arg): Add reciprocal square root estimate builtins.
13954         (rs6000_expand_builtin): Rewrite to use a switch statement,
13955         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
13956         (rs6000_init_builtins): Create declarations for reciprocal
13957         estimate builtins.
13958         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
13959         sized, prefer traditional floating point registers, if integer
13960         vector types, prefer altivec registers.  Don't actually look at
13961         the memory address any more.
13962         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
13963         builtins.
13964         (rs6000_load_constant_and_splat): New helper function to load up
13965         the constant for reciprocal estimate instructions.
13966         (rs6000_emit_madd): New helper function for generating
13967         multiply/add type instructions, based on the current switches.
13968         (rs6000_emit_msub): Ditto.
13969         (rs6000_emit_mnsub): Ditto.
13970         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
13971         replace a divide with a reciprocal estimate and fixup, adding
13972         support for machines with high precision and vectors.
13973         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
13974         low precision machines.
13975         (rs6000_emit_swdiv): New common function to be called to replace a
13976         division with reciprocal estimate and fixup.
13977         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
13978         for double and vector types.  Add support for high precision machines.
13979
13980         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
13981         the reciprocal estimate instructions can be generated.
13982         (TARGET_FRE): Ditto.
13983         (TARGET_FRSQRTES): Ditto.
13984         (TARGET_FRSQRTE): Ditto.
13985         (RS6000_RECIP_*): New macros for reciprocal estimate support.
13986
13987         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
13988         square root estimate on vectors.
13989         (re<mode>2): New insn for reciprocal division estimate on vectors.
13990
13991         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
13992         New builtin.
13993         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
13994         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
13995         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
13996         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
13997         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
13998         (RS6000_BUILTIN_RSQRT): Ditto.
13999         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
14000         floating point builtin.
14001
14002         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14003         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
14004         __RECIP_PRECISION__ based on the command line switches.
14005         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
14006
14007         * config/rs6000/rs6000.opt (-mrecip): Document add support for
14008         replacing division instructions with reciprocal estimate and fixup.
14009         (-mrecip=<opt>): New option.
14010         (-mrecip-precision): Ditto.
14011
14012         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
14013         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
14014         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
14015         precision scalar.
14016
14017         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
14018         (UNSPEC_VREFP): Ditto.
14019         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
14020         conterparts with regard to support of -mno-fused-madd and -ffast-math.
14021         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
14022         reciprocal estimate instructions to be generated.
14023         (altivec_vrefp): Ditto.
14024
14025         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
14026         estimate support.
14027         (rreg): New mode attribute for reciprocal estimate support.
14028         (recip<mode>3): New insn for division using reciprocal estimate
14029         and fixup builtins.
14030         (divide define_split): New define_split to convert floating point
14031         division to use reciprocal estimate if the user used the
14032         appropriate options and the split is run when we can add new
14033         pseudo registers for the fixup.
14034         (rsqrt<mode>2): New insn for reciprocal square root support.
14035         (recipsf3): Move into recip<mode>3.
14036         (recipdf3): Ditto.
14037         (fres): Use TARGET_FRES.
14038         (rsqrtsf2): Move into rsqrt<mode>2.
14039         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
14040         (copysignsf3): Add support for VSX.
14041         (fred): Use TARGET_FRE.
14042         (fred_fpr): Ditto.
14043         (rsqrtdf_internal1): New function for frsqrte instruciton.
14044
14045         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
14046         (vec_rsqrt): Ditto.
14047
14048 2010-06-03  Richard Guenther  <rguenther@suse.de>
14049
14050         PR middle-end/44291
14051         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
14052         (set_user_assembler_libfunc): Likewise.
14053
14054 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14055
14056         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
14057         defaults.h.
14058         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
14059         to defaults.h
14060         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
14061         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
14062         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
14063         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
14064         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
14065         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
14066         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
14067         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
14068         * defaults.h: Updated for above mentioned changes.
14069
14070 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
14071
14072         * c-common.c: Remove header include of tm_p.h.
14073         * Makefile.in (c-common.o): Remove TM_P_H dependency.
14074
14075 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
14076
14077         * tree.h (struct tree_decl_map): New type.
14078         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
14079         (tree_decl_map_hash): New prototype.
14080         (debug_expr_for_decl, value_expr_for_decl): Change into
14081         tree_decl_map hashtab from tree_map.
14082         (init_ttree): Adjust initialization.
14083         (tree_decl_map_hash): New function.
14084         (decl_debug_expr_lookup, decl_debug_expr_insert,
14085         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
14086
14087 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14088
14089         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
14090         linker emulations.
14091         * configure: Regenerate.
14092         * config.in: Regenerate.
14093
14094         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
14095         (X86_64_EMULATION): Define.
14096         (TARGET_LD_EMULATION): Use them.
14097
14098         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
14099         (SPARC64_EMULATION): Define.
14100         (LINK_ARCH_SPEC): Use them.
14101
14102 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14103
14104         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
14105         smallest_mode_for_size for computing the precision types of new
14106         graphite IVs.  Do not call lang_hooks.types.type_for_size.
14107
14108 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14109
14110         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
14111         information.
14112         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
14113
14114 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14115
14116         PR middle-end/44363
14117         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
14118         return false instead.
14119
14120 2010-06-02  Jan Hubicka  <jh@suse.cz>
14121
14122         PR middle-end/44295
14123         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
14124         create new cgraph node to check callee.
14125
14126 2010-06-02  Richard Guenther  <rguenther@suse.de>
14127
14128         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
14129
14130 2010-06-02  Richard Guenther  <rguenther@suse.de>
14131
14132         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
14133         (lto_wrapper_cleanup): ... this.  Do not exit.
14134         (fatal): Adjust.  Exit here.
14135         (fatal_perror): Likewise.
14136         (fatal_signal): New function.
14137         (main): Set up signal handlers to cleanup temporary files.
14138         * Makefile.in (lto-wrapper.o): Adjust dependencies.
14139
14140 2010-06-02  Richard Guenther  <rguenther@suse.de>
14141
14142         PR tree-optimization/44377
14143         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
14144
14145 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14146
14147         * config/s390/2097.md (z10_fhex): Remove insn reservation.
14148         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
14149         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
14150         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
14151         instruction.
14152         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
14153
14154 2010-06-02  Jan Hubicka  <jh@suse.cz>
14155
14156         * bitmap.c (bitmap_descriptor): Add search_iter.
14157         (bitmap_find_bit): Increment it.
14158         (print_statistics): Print it.
14159
14160 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
14161
14162         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
14163         instead of gimple_build_call_vec.  Delete unnecessary local variable.
14164
14165 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14166
14167         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
14168         change from yesterday.
14169
14170 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14171
14172         * c-ada-spec.c: Clean up redundant includes.
14173
14174 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
14175
14176         * gimplify.c: Do not include except.h and optabs.h.
14177         (gimplify_body): Do not initialize RTL profiling.
14178         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
14179         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
14180         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
14181         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
14182         langhooks.h.
14183
14184         * tree-pretty-print.h: Include pretty-print.h.
14185         * gimple-pretty-print.h: Include pretty-print.h.
14186
14187         * tree-pretty-print.c: Do not include diagnostic.h.
14188         * tree-vrp.c: Likewise.
14189         * tree-tailcall.c: Likewise
14190         * tree-scalar-evolution.c: Likewise
14191         * tree-ssa-dse.c: Likewise
14192         * tree-chrec.c: Likewise
14193         * tree-ssa-sccvn.c: Likewise
14194         * tree-ssa-copyrename.c: Likewise
14195         * tree-nomudflap.c: Likewise
14196         * tree-call-cdce.c: Likewise
14197         * tree-stdarg.c: Likewise
14198         * tree-ssa-math-opts.c: Likewise
14199         * tree-nrv.c: Likewise
14200         * tree-ssa-sink.c: Likewise
14201         * tree-browser.c: Likewise
14202         * tree-ssa-loop-ivcanon.c: Likewise
14203         * tree-ssa-loop.c: Likewise
14204         * tree-parloops.c: Likewise
14205         * tree-ssa-address.c: Likewise
14206         * tree-ssa-ifcombine.c: Likewise
14207         * tree-if-conv.c: Likewise
14208         * tree-data-ref.c: Likewise
14209         * tree-affine.c: Likewise
14210         * tree-ssa-phiopt.c: Likewise
14211         * tree-ssa-coalesce.c: Likewise
14212         * tree-ssa-pre.c: Likewise
14213         * tree-ssa-live.c: Likewise
14214         * tree-predcom.c: Likewise
14215         * tree-ssa-forwprop.c: Likewise
14216         * tree-ssa-dce.c: Likewise
14217         * tree-ssa-ter.c: Likewise
14218         * tree-ssa-loop-prefetch.c: Likewise
14219         * tree-optimize.c: Likewise
14220         * tree-ssa-phiprop.c: Likewise
14221         * tree-object-size.c: Likewise
14222         * tree-outof-ssa.c: Likewise
14223         * tree-ssa-structalias.c: Likewise
14224         * tree-switch-conversion.c: Likewise
14225         * tree-ssa-reassoc.c: Likewise
14226         * tree-ssa-operands.c: Likewise
14227         * tree-vectorizer.c: Likewise
14228         * tree-vect-data-refs.c: Likewise
14229         * tree-vect-generic.c: Likewise
14230         * tree-vect-stmts.c: Likewise
14231         * tree-vect-patterns.c: Likewise
14232         * tree-vect-slp.c: Likewise
14233         * tree-vect-loop.c: Likewise
14234         * tree-ssa-loop-ivopts.c: Likewise
14235         * tree-ssa-loop-im.c: Likewise
14236         * tree-ssa-loop-niter.c: Likewise
14237         * tree-ssa-loop-unswitch.c: Likewise
14238         * tree-ssa-loop-manip.c: Likewise
14239         * tree-ssa-loop-ch.c: Likewise
14240         * tree-dump.c: Likewise
14241         * tree-complex.c: Likewise
14242
14243         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
14244         * tree-ssa-uninit.c: Likewise
14245         * tree-ssa-threadupdate.c: Likewise
14246         * tree-ssa-uncprop.c: Likewise
14247         * tree-ssa-ccp.c: Likewise
14248         * tree-ssa-dom.c: Likewise
14249         * tree-ssa-propagate.c: Likewise
14250         * tree-ssa-alias.c: Likewise
14251         * tree-dfa.c: Likewise
14252         * tree-cfgcleanup.c: Likewise
14253         * tree-sra.c: Likewise
14254         * tree-ssa-copy.c: Likewise
14255         * tree-ssa.c: Likewise
14256         * tree-profile.c: Likewise
14257         * tree-cfg.c: Likewise
14258         * tree-ssa-threadedge.c: Likewise
14259         * tree-vect-loop-manip.c: Likewise
14260
14261         * tree-inline.c: Do not include diagnostic.h and expr.h.
14262         Include rtl.h.
14263         (copy_decl_for_dup_finish): Do not use NULL_RTX.
14264
14265         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
14266         * tree-loop-distribution.c: Likewise.
14267
14268 2010-06-01  Jan Hubicka  <jh@suse.cz>
14269
14270         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
14271
14272 2010-06-01  Jan Hubicka  <jh@suse.cz>
14273
14274         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
14275         remove return value.
14276         (split_bbs_on_noreturn_calls) .... here.
14277         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
14278         * tree-flow.h (fixup_noreturn_call): New.
14279
14280 2010-06-01  Jan Hubicka  <jh@suse.cz>
14281
14282         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
14283
14284 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
14285
14286         * tree.h (build_nt_call_list): Delete.
14287         * tree.c (build_nt_call_list): Delete.
14288
14289 2010-06-01  Jan Hubicka  <jh@suse.cz>
14290
14291         * fwprop.c: Make emit-rtl.h include last.
14292         * rtlanal.c: Include emit-rtl.h.
14293         * genautomata.c: Output emit-rtl include into insn-automata.c
14294         * df-scan.c: Include emit-rtl.h.
14295         * haifa-sched.c: Indlude emit-rtl.h.
14296         * mode-switching.c: Indlude emit-rtl.h.
14297         * graph.c: Indlude emit-rtl.h.
14298         * sel-sched.c: Include emit-rtl.h.
14299         * sel-sched-ir.c: Include emit-rtl.h.
14300         * ira-build.c: Include emit-rtl.h.
14301         * emit-rtl.c (first_insn, last_insn): Remove defines.
14302         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
14303         Move to emit-rtl.h.
14304         (set_new_first_and_last_insn, get_last_insn_anywhere,
14305         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
14306         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
14307         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
14308         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
14309         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
14310         Use accessor functions.
14311         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14312          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14313         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14314         mem_expr_equal_p): Move here from rtl.h.
14315         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
14316         Move here from emit-rtl.c; make inline.
14317         * cfglayout.h: Include emit-rtl.h.
14318         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14319          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14320         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14321         mem_expr_equal_p, get_insns, set_first-insn,
14322         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
14323         * reg-stack.c: Include emit-rtl.h.
14324         * dce.c: Likewise.
14325
14326 2010-06-01  Jan Hubicka  <jh@suse.cz>
14327
14328         * cgraph.h (tree_function_versioning): Update prototype.
14329         (cgraph_function_versioning): Update prototype.
14330         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
14331         bitmap.
14332         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
14333         (cgraph_materialize_clone, save_inline_function_body): Update use of
14334         tree_function_versioning.
14335         * tree-inline.c (copy_bb): Look for previous copied block to link
14336         after; fix debug output.
14337         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
14338         (copy_body): Likewise.
14339         (expand_call_inline): Update use of copy_body.
14340         (tree_function_versioning): Update use of copy body; accept
14341         blocks_to_copy and new_entry.
14342
14343 2010-06-01  Jan Hubicka  <jh@suse.cz>
14344
14345         * gegenrtl.c: Remove unnecesary prototypes.
14346         (gendecl): Remove.
14347         (gendef): Produce static inline.
14348         (gencode): Remove.
14349         (main): Do not decode parameters; generate header only.
14350         * Makefile.in (genrtl.c): Remove.
14351
14352 2010-06-01  Jan Hubicka  <jh@suse.cz>
14353
14354         * tree-switch-conversion.c (build_one_array): Make it readonly.
14355
14356 2010-06-01  Richard Guenther  <rguenther@suse.de>
14357
14358         * optabs.c (init_optabs): Guard all accesses to reinit.
14359         * ipa-pure-const.c (propagate): Fix another typo.
14360         * opts.c (common_handle_option): Split assignment to bool.
14361         * c-opts.c (c_common_handle_option): Likewise.
14362
14363 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
14364             Matthew Gingell  <gingell@adacore.com>
14365
14366         * doc/invoke.texi: Mention -fdump-ada-spec.
14367         * tree-dump.c (dump_files): Add ada-spec.
14368         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
14369         * tree-pass.h (tree_dump_index): Add TDI_ada.
14370         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
14371         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
14372         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
14373         * c-decl.c: Include c-ada-spec.h.
14374         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
14375         functions.
14376         (c_write_global_declarations): Add handling of -fdump-ada-spec.
14377         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
14378         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
14379         * c-ada-spec.h, c-ada-spec.c: New files.
14380
14381 2010-06-01  Richard Guenther  <rguenther@suse.de>
14382
14383         PR lto/43853
14384         * ipa-pure-const.c (get_function_state): Hand back varying state
14385         if we do not have one.
14386         (has_function_state): New function.
14387         (duplicate_node_data): Adjust.
14388         (remove_node_data): Likewise.
14389         (pure_const_write_summary): Likewise.
14390         (propagate): Likewise.  Fix typo.
14391
14392 2010-06-01  Jan Hubicka  <jh@suse.cz>
14393
14394         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
14395         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
14396         (execute_all_ipa_transforms): Do not play with the states.
14397
14398 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
14399
14400         * config/arm/t-linux-androideabi: New.
14401         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
14402
14403 2010-06-01  Jan Hubicka  <jh@suse.cz>
14404
14405         * tree-inline.c (estimate_num_insns): For stdarg functions look
14406         into call statement to count cost of argument passing.
14407
14408 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
14409
14410         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
14411         argument for fprintf.
14412         (ix86_output_addr_diff_elt): Likewise.
14413         (x86_function_profiler): Likewise.
14414         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
14415         (LPREFIX): Likewise.
14416         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
14417
14418 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14419
14420         PR target/44338
14421         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
14422         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
14423         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
14424         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
14425         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
14426         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
14427         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
14428         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
14429         TARGET_FUSED_MADD.
14430
14431 2010-05-31  Jan Hubicka  <jh@suse.cz>
14432
14433         * tree.h (tree_range_check_failed): Declare noreturn.
14434
14435 2010-05-31  Jan Hubicka  <jh@suse.cz>
14436
14437         * gimple.c (gimple_call_builtin_p): New function.
14438         * gimple.h (gimple_call_builtin_p): Declare.
14439         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
14440         to exit.
14441         (execute_warn_function_return): BUILT_IN_RETURN is return.
14442         (split_critical_edges): Return edges are not critical.
14443         (is_ctrl_altering_stmt): Builtin_in_return is altering.
14444         (gimple_verify_flow_info): Handle built_in_return.
14445         (execute_warn_function_return): Handle built_in_return.
14446         * ipa-pure-const.c (check_call): Ignore builtin_return.
14447
14448 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14449
14450         PR middle-end/44337
14451         * expr.c (expand_assignment): Don't store anything for out-of-bounds
14452         array accesses with non-MEM.
14453
14454         PR tree-optimization/44182
14455         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
14456         newly needs to end a bb is followed by debug stmts, instead return
14457         true from the function at the end.
14458         (maybe_move_debug_stmts_to_successors): New function.
14459         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
14460
14461 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
14462
14463         PR target/44161
14464         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
14465
14466 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
14467
14468         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
14469         for nested functions in non-optimized compilation.
14470
14471 2010-05-31  Richard Guenther  <rguenther@suse.de>
14472
14473         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
14474
14475 2010-05-30  Jan Hubicka  <jh@suse.cz>
14476
14477         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
14478
14479 2010-05-30  Richard Guenther  <rguenther@suse.de>
14480
14481         PR lto/42975
14482         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
14483         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
14484         no longer needed.
14485
14486 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
14487
14488         * config/darwin.c (output_objc_section_asm_op): Add comment.
14489         (name_needs_quotes): Add '_' to list of valid comment chars.
14490         (machopic_output_function_base_name): Remove unneeded quotes.
14491         (darwin_encode_section_info): Adjust asm whitespace.
14492         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
14493         (ASM_OUTPUT_LOCAL): Ditto.
14494         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
14495         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
14496         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
14497
14498 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14499
14500         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
14501         RS6000_OUTPUT_BASENAME unconditionally.
14502         (rs6000_output_function_epilogue): Likewise.
14503
14504 2010-05-30  Jan Hubicka  <jh@suse.cz>
14505
14506         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
14507         nodes.
14508
14509 2010-05-30  Richard Guenther  <rguenther@suse.de>
14510
14511         * tree-cfg.c (verify_gimple_assign_single): Implement
14512         verification for COND_EXPR rhs.
14513
14514 2010-05-30  Jan Hubicka  <jh@suse.cz>
14515
14516         * cgraph.h (cgraph_dump_file): Declare.
14517         * cgraphunit.c (cgraph_dump_file): Export.
14518         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
14519
14520 2010-05-30  Jan Hubicka  <jh@suse.cz>
14521
14522         * dwarf2out.c (reference_to_unused,
14523         premark_types_used_by_global_vars_helper): Avoid creation of new
14524         varpool nodes.
14525
14526 2010-05-30  Jan Hubicka  <jh@suse.cz>
14527
14528         * cgraph.h (cgraph_node_cannot_return,
14529         cgraph_edge_cannot_lead_to_return): New functions.
14530         * cgraph.c (cgraph_node_cannot_return,
14531         cgraph_edge_cannot_lead_to_return): Use them.
14532         * ipa-pure-const.c (pure_const_names): New static var.
14533         (check_call): Handle calls not leading to return.
14534         (pure_const_read_summary): Dump info read.
14535         (propagate): Dump info about propagation process; ignore side effects
14536         of functions not leading to exit; fix handling of pure functions.
14537
14538 2010-05-30  Jan Hubicka  <jh@suse.cz>
14539
14540         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
14541         for tail call epilogues.
14542
14543 2010-05-30  Jan Hubicka  <jh@suse.cz>
14544
14545         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
14546         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
14547         dump files.
14548
14549 2010-05-29  Jan Hubicka  <jh@suse.cz>
14550
14551         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
14552         node; remove references in node we no longer keep in cgrpah but need
14553         body of.
14554
14555 2010-05-29  Jan Hubicka  <jh@suse.cz>
14556
14557         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
14558
14559 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14560
14561         PR target/44165
14562         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
14563
14564 2010-05-29  Jan Hubicka  <jh@suse.cz>
14565
14566         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
14567         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
14568         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
14569         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
14570         debug_names_replaced_by, debug_update_ssa): Likewise.
14571         * sbitmap.c (debug_sbitmap): Likewise.
14572         * genrecog.c (debug_decision, debug_decision_list): Likewise.
14573         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
14574         debug_tree_chain): Likewise.
14575         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
14576         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
14577         * optabs.c (debug_optab_libfuncs): Likewise.
14578         (verify_loop_closed_ssa): Likewise.
14579         * value-prof.c (verify_histograms): Likewise.
14580         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
14581         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
14582         * cfghooks.c (verify_flow_info): Likewise.
14583         * fold-const.c (debug_fold_checksum): Likewise.
14584         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
14585         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
14586         Likewise.
14587         * omega.c (debug_omega_problem): Likewise.
14588         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
14589         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
14590         * dominance.c (verify_dominators, debug_dominance_info,
14591         debug_dominance_tree): Likewise.
14592         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
14593         * df_regno_debug, df_ref_debug,
14594         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
14595         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
14596         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
14597         * sel-sched.c (debug_state): Likewise.
14598         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
14599         Likewise.
14600         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
14601         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
14602         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
14603         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
14604         Likewise.
14605         * c-pretty-print.c (debug_c_tree): Likewise.
14606         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
14607         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
14608         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
14609         * ebitmap.c (debug_ebitmap): Likewise.
14610         * function.c (debug_find_var_in_block_tree): Likewise.
14611         * print-rtl.c (debug_rtx): Likewise.
14612         (debug_rtx_count): Likewise.
14613         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
14614         * stor-layout.c (debug_rli): Likewise.
14615         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
14616         * tree-data-ref.c (debug_data_references,
14617         debug_data_dependence_relations, debug_data_reference,
14618         debug_data_dependence_relation, debug_rdg_vertex,
14619         debug_rdg_component, debug_rdg): Likewise.
14620         * tree-affine.c (debug_aff): Likewise.
14621         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
14622         Likewise.
14623         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
14624         * emit-rtl.c (verify_rtl_sharing): Likewise.
14625         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
14626         debug_value_expressions): Likewise.
14627         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
14628         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
14629         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
14630         * cfglayout.c (verify_insn_chain): Likewise.
14631         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
14632         debug_clast_stmt, debug_generated_program): Likewise.
14633         * ggc-page.c (debug_print_page_list): Likewise.
14634         * tree-ssa-ter.c (debug_ter): Likewise.
14635         * graphite-dependences.c (debug_pddr): Likewise.
14636         * sched-deps.c (debug_ds): Likewise.
14637         * tree-ssa.c (verify_ssa): Likewise.
14638         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
14639         debug_scattering_functions, debug_iteration_domains, debug_pdr,
14640         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
14641         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
14642         * tree-inline.c (debug_find_tree): Likewise.
14643         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
14644         debug_ppl_powerset_matrix): Likewise.
14645         * var-tracking.c (debug_dv): Likewise.
14646         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
14647         * cfgloop.c (verify_loop_structure): Likewise.
14648         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
14649         * c-common.c (verify_sequence_points): Likewise.
14650         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
14651         debug_candidates, debug_rgn_dependencies): Likewise.
14652         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
14653         * debug_constraint_graph, debug_solution_for_var,
14654         debug_sa_points_to_info): Likewise.
14655         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
14656         Likewie.
14657         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
14658         debug_loops, debug_loop, debug_loop_num): Likewise.
14659         * passes.c (debug_pass): Likewise.
14660         (dump_properties): Likewise; add cfglayout property.
14661         (debug_properties): Likewise.
14662         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
14663         * varpool.c (debug_varpool): Likewise.
14664         * regcprop.c (debug_value_data): Likewise.
14665         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
14666         debug_immediate_uses_for): Likewise.
14667
14668 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14669
14670         PR bootstrap/44315
14671         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
14672         Filter out insn-flags.h.
14673
14674 2010-05-29  Jan Hubicka  <jh@suse.cz>
14675
14676         * cgraph.h (struct varpool_node_set_def,
14677         struct cgraph_node_set_def): Remove unused AUX pointer.
14678         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
14679         VEC_empty macro.
14680
14681 2010-05-29  Jan Hubicka  <jh@suse.cz>
14682
14683         PR middle-end/44324
14684         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
14685
14686 2010-05-29  Richard Guenther  <rguenther@suse.de>
14687
14688         * lto-streamer.c (cached_bp): New global variable.
14689         (bitpack_create): Return the cached bitpack, if available.
14690         (bitpack_delete): Clear and cache the bitpack, if appropriate.
14691         (bp_pack_value): Remove redundant asserts.
14692
14693 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
14694
14695         PR middle-end/44306
14696         * tree-if-conv.c (is_true_predicate): New.
14697         (is_predicated): Use is_true_predicate.
14698         (add_to_predicate_list): Same.  Do not use unshare_expr.
14699         (add_to_dst_predicate_list): Same.
14700
14701 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
14702
14703         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
14704         field on edges.
14705         (predicate_bbs): Same.
14706         (clean_predicate_lists): Same.
14707         (find_phi_replacement_condition): Do not AND the predicate from
14708         edge->aux.
14709
14710 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
14711
14712         PR bootstrap/44315
14713         * Makefile.in (build/gencondmd.o): Add a missing `\'.
14714
14715 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14716
14717         PR target/44261
14718         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
14719         (negdf2): Adjust expander pattern and use negdf2_slow.
14720         (negsf2): Likewise.
14721
14722 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
14723
14724         * basic-block.h (struct control_flow_graph): Move last_label_uid field
14725         up.
14726         * df.h (struct df_base_ref): Move regno field up.
14727         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
14728         * expr.h (struct separate_ops): Move location field up.
14729         * optabs.h (struct optab_d): Move libcall_basename field down.
14730         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
14731         * config/i386/i386.h (struct machine_function): Convert call_abi field
14732         into a bitfield.  Move cfa field to the end of the structure.
14733
14734 2010-05-29  Jan Hubicka  <jh@suse.cz>
14735
14736         * varpool.c (varpool_get_node): Fix lookup.
14737
14738 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14739
14740         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
14741         RTL specific prototypes with #ifdef RTX_CODE.
14742         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
14743         * config/spu/t-spu-elf: Fix dependencies.
14744
14745         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
14746
14747 2010-05-29  Mike Stump  <mikestump@comcast.net>
14748
14749         PR bootstrap/44315
14750         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
14751         TM_H when building to avoid dependency loops.
14752
14753 2010-05-29  Jan Hubicka  <jh@suse.cz>
14754
14755         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
14756         refs and body; not the whole node for masters of materialized clones.
14757
14758 2010-05-29  Mike Stump  <mikestump@comcast.net>
14759
14760         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
14761
14762 2010-05-29  Jan Hubicka  <jh@suse.cz>
14763
14764         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
14765         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
14766         use of clone_function_name.
14767         * cgraph.h (cgraph_create_virtual_clone,
14768         cgraph_function_versioning): update prototypes.
14769         (clone_function_name): Declare.
14770         * ipa-cp.c (ipcp_insert_stage): Update call of
14771         cgraph_create_virtual_clone.
14772         * omp-low.c (create_omp_child_function_name): Use
14773         cgraph_create_virtual_clone.
14774         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
14775         (cgraph_function_versioning): Take SUFFIX argument; produce new name
14776         and make decl local.
14777
14778 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14779
14780         * vec.h: Include statistics.h
14781         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
14782         with VEC_H.
14783
14784 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14785
14786         * c-lex.c: Do not include c-tree.h.
14787         * c-pretty-print.c: Likewise.
14788         * c-opts.c: Likewise.
14789         * c-gimplify.c: Likewise.
14790         * c-common.c: Likewise.
14791         * c-dump.c: Likewise.  Include c-common.h.
14792
14793 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14794
14795         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
14796         before including diagnostic-core.h.
14797         (c_cpp_error): New prototype moved from c-tree.h.
14798         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
14799         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
14800         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
14801         (c_cpp_error): Prototype moved to c-common.h.
14802         * Makefile.in: Update dependency for C_COMMON_H.
14803
14804 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
14805
14806         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
14807         * c-common.c (c_register_addr_space): Remove here.
14808         * c-decl.c (c_register_addr_space): Re-add here.
14809
14810 2010-05-28  Mike Stump  <mikestump@comcast.net>
14811
14812         * config/darwin-c.c: Remove c-tree.h include.
14813
14814 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14815
14816         * gcc.c: Include diagnostic.h.
14817         (error_count): Remove.  All users changed to use errorcount.
14818         (programname): Remove.  All users changed to use progname.
14819         (fancy_abort, internal_error, fatal_error, error, warning, inform,
14820         fnotice): Remove.
14821         (execute): Don't include "Internal error" and bug reporting
14822         information in argument of internal_error call.
14823         (process_command): Don't increment error_count after calling
14824         perror_with_name.
14825         (input_filename): Rename to gcc_input_filename.  All users
14826         changed.
14827         (main): Call diagnostic_initialize.  Register delete_temp_files
14828         with atexit.  Use seen_error to test for errors.
14829         * gcc.h: Include diagnostic-core.h.
14830         (fatal_error, error, warning): Remove.
14831         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
14832         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
14833         (gcc.o): Update dependencies.
14834
14835 2010-05-28  Jeff Law  <law@redhat.com>
14836
14837         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
14838         functions.
14839         * ira.h (ira_bad_reload_regno): Declare
14840         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
14841
14842         * ira-color.c (update_curr_costs): Free updated hard reg costs.
14843         (ira_reassign_conflict_allocnos): Remove bogus asserts.
14844         (allocno_reload_assign): Likewise.
14845
14846 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
14847
14848         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
14849         build1_stat.
14850
14851 2010-05-28  Richard Guenther  <rguenther@suse.de>
14852
14853         PR lto/44312
14854         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
14855         Stream fixed-point constants mode.
14856         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
14857         and TYPE_PRECISION.
14858         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
14859         Stream fixed-point constants mode.
14860         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
14861         and TYPE_PRECISION.
14862
14863 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14864
14865         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
14866         only place it was called from.
14867         (number_of_latch_executions): Do not return chrec_dont_know when the
14868         may_be_zero is a runtime condition: instead, return a COND_EXPR
14869         including the may_be_zero condition.
14870         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
14871         of nb_iterations.
14872         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
14873         COND_EXPRs.
14874
14875 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14876
14877         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
14878         generate COND_EXPRs for degenerate_phi_result.
14879
14880 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
14881
14882         PR middle-end/44293
14883         * tree-if-conv.c (if_convertible_loop_p): Check the
14884         if-convertibility of phi nodes in non predicated BBs.
14885
14886 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14887
14888         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
14889
14890 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14891
14892         PR driver/15303
14893         * gcc.c (inform, warning, inform): New functions.
14894         (fatal_ice): Rename to internal_error; change cmsgid parameter to
14895         gmsgid.  All callers changed.
14896         (notice): Rename to fnotice; add parameter fp.  All callers changed.
14897         (fatal_error): Rename to fatal_signal.  All users changed.
14898         (fatal): Rename to fatal_error; change cmsgid parameter to
14899         gmsgid.  All callers changed.
14900         (process_command): Use warning instead of error for warnings.
14901         (end_going_arg): Don't use _() around argument of error.
14902         (do_spec_1): Use inform for message from %n specs.  Use warning
14903         instead of error for warnings.
14904         (main): Use inform for comparison messages.  Use warning for
14905         message about unused linker input.
14906         (error): Increment error_count.  Print "error: ".
14907         * gcc.h (fatal): Change to fatal_error.
14908         (warning): Declare.
14909         * config/darwin-driver.c (darwin_default_min_version): Use warning
14910         instead of fprintf for warnings.
14911         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
14912
14913 2010-05-28  Julian Brown  <julian@codesourcery.com>
14914
14915         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
14916         (*thumb2_addsi3_compare0_scratch): New.
14917         * config/arm/constraints.md (Pv): New.
14918         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
14919         for ARM mode only.
14920         (*addsi3_compare0_scratch): Likewise.
14921
14922 2010-05-28  Jan Hubicka  <jh@suse.cz>
14923
14924         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
14925         check.
14926         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
14927         only on local statics.
14928
14929 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
14930
14931         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
14932
14933 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14934
14935         PR bootstrap/44314
14936         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
14937         (OPTION_GLIBC): Define.
14938
14939 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
14940
14941         PR debug/41048
14942         * dwarf2out.c (double_int_type_size_in_bits): New function.
14943         (round_up_to_align): Change first argument and return value to
14944         double_int.
14945         (field_byte_offset): Work internally on double_ints.
14946
14947         PR target/43636
14948         * builtins.c (expand_movstr): Use a temporary pseudo instead
14949         of target even when target is not NULL and not const0_rtx, but
14950         fails movstr predicate.
14951         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
14952
14953 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14954
14955         * final.c (rest_of_clean_state): Use %m in errors instead of
14956         strerror (errno).
14957         * gengtype.c (read_input_list, close_output_files): Use xstrerror
14958         instead of strerror.
14959         * toplev.c (process_options): Use %m in errors instead of strerror
14960         (errno).
14961         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
14962         (errno).
14963
14964 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
14965
14966         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
14967         (ix86_canonical_va_list_type): Make static.  Add declaration.
14968         (ix86_enum_va_list): Make static.  Reindent.
14969         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
14970         (ix86_canonical_va_list_type): Ditto.
14971         (ix86_enum_va_list): Ditto.
14972
14973 2010-05-28  Richard Guenther  <rguenther@suse.de>
14974
14975         * lto-wrapper.c (run_gcc): With -save-temps generate a
14976         user-visible ltrans filename.  Fixup ltrans unit numbering.
14977
14978 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
14979
14980         * c-common.c (c_common_nodes_and_builtins): Replace use
14981         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
14982         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
14983         to ix86_enum_va_list.
14984         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
14985         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
14986         (TARGET_ENUM_VA_LIST_P): Add hook description.
14987         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
14988         * target.h (gcc_target): Add enum_va_list hook.
14989
14990         PR bootstrap/44299
14991         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
14992         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
14993         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
14994
14995 2010-05-28  Alan Modra  <amodra@gmail.com>
14996
14997         PR target/44266
14998         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14999         emit_library_call machinery to set up __tls_get_addr calls.
15000
15001 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15002
15003         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
15004
15005 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
15006
15007         Revert fix for PR c++/44188
15008         * c-common.c (is_typedef_decl): Revert the moving of  this
15009         definition ...
15010         * tree.c (is_typedef_decl): ... here.
15011         (typdef_variant_p): Revert the moving of this  definition
15012         here from cp/tree.c.
15013         * c-common.h (is_typedef_decl): Revert the moving of this
15014         declaration ...
15015         * tree.h (is_typedef_decl): ... here.
15016         (typedef_variant_p): Revert the moving of this  declaration here
15017         from cp/cp-tree.h
15018         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15019         (gen_tagged_type_die): Revert the splitting out of ...
15020         (gen_type_die_with_usage): ... this function. Revert the anonymous
15021         tagged type handling.
15022         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
15023         typedefs naming anonymous tagged types.
15024
15025 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15026
15027         * config/rs6000/rs6000-modes.def (PSImode): Delete.
15028
15029 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15030
15031         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
15032         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
15033         throughout.
15034         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
15035         "xer" to "ca".
15036         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
15037         XER_REGS to CA_REGS throughout.
15038         * config/rs6000/rs6000.h: Same.
15039         (ADDITIONAL_REGISTER_NAMES): Add "xer".
15040         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
15041         that mode_iterator "P" is the size for arithmetic carries as well.
15042         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15043
15044 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15045
15046         PR bootstrap/44255
15047         * combine.c (struct rtx_subst_pair): Define unconditionally.
15048         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
15049         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
15050         Call make_compound_operation on pair->to.
15051         (propagate_for_debug): Don't call make_compound_operation here.
15052         Always use simplify_replace_fn_rtx.
15053
15054 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
15055
15056         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
15057         * config/xtensa/xtensa.c (override_options): Check
15058           TARGET_FORCE_NO_PIC and set flag_pic.
15059         * config/xtensa/xtensa.opt: Document -mforce-no-pic
15060
15061 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15062
15063         PR bootstrap/44299
15064         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
15065         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
15066
15067 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15068
15069         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
15070         toplev.h.
15071         * diagnostic.c: Don't include toplev.h.
15072         (progname): Define.  Moved from toplev.c.
15073         (seen_error): New function.
15074         * diagnostic.h: Include diagnostic-core.h.
15075         (diagnostic_t, emit_diagnostic): Don't declare here.
15076         * toplev.c (progname): Move to toplev.c.
15077         (emit_debug_global_declarations, compile_file, finalize,
15078         do_compile, toplev_main): Use seen_error.
15079         * toplev.h: Include diagnostic-core.h.
15080         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15081         internal_error, warning, warning_at, error, error_n, error_at,
15082         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
15083         verbatim, fnotice, progname): Move to diagnostic-core.h.
15084         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
15085         (expand_builtin_expect): Use seen_error.
15086         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
15087         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
15088         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
15089         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
15090         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
15091         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
15092         errorcount for errors.
15093         * c-opts.c (c_common_finish): Use seen_error.
15094         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15095         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
15096         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
15097         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
15098         (get_coverage_counts): Use seen_error.
15099         * dwarf2out.c (dwarf2out_finish): Use seen_error.
15100         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
15101         gimplify_body): Use seen_error.
15102         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
15103         * ipa-pure-const.c (gate_pure_const): Use seen_error.
15104         * ipa-reference.c (gate_reference): Use seen_error.
15105         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
15106         * lambda-code.c: Include diagnostic-core.h instead of
15107         diagnostic.h.
15108         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15109         * lto-compress.c: Include diagnostic-core.h instead of
15110         diagnostic.h.
15111         * lto-section-in.c: Include diagnostic-core.h instead of
15112         diagnostic.h.
15113         * lto-streamer-out.c: Include diagnostic-core.h instead of
15114         diagnostic.h.
15115         * lto-streamer.c: Include diagnostic-core.h instead of
15116         diagnostic.h.
15117         (gate_lto_out): Use seen_error.
15118         * matrix-reorg.c: Include diagnostic-core.h instead of
15119         diagnostic.h.
15120         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
15121         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
15122         (gate_expand_omp, lower_omp_1): Use seen_error.
15123         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
15124         (rest_of_decl_compilation, rest_of_type_compilation,
15125         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
15126         * tree-cfg.c (label_to_block_fn): Use seen_error.
15127         * tree-inline.c (optimize_inline_calls): Use seen_error.
15128         * tree-mudflap.c (mudflap_finish_file): Use
15129         seen_error.
15130         * tree-optimize.c (gate_all_optimizations,
15131         gate_all_early_local_passes, gate_all_early_optimizations): Use
15132         seen_error.
15133         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
15134         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
15135         (varpool_remove_unreferenced_decls,
15136         varpool_assemble_pending_decls): Use seen_error.
15137         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
15138         (TOPLEV_H, DIAGNOSTIC_H): Update.
15139         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
15140         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
15141         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
15142         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
15143         coverage.o, lambda-code.o): Update dependencies.
15144
15145 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15146
15147         PR c++/44188
15148         * c-common.c (is_typedef_decl): Move this definition ...
15149         * tree.c (is_typedef_decl): ... here.
15150         (typdef_variant_p): Move definition here from cp/tree.c.
15151         * c-common.h (is_typedef_decl): Move this declaration ...
15152         * tree.h (is_typedef_decl): ... here.
15153         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15154         * dwarf2out.c (is_naming_typedef_decl): New function.
15155         (gen_tagged_type_die): Split out of ...
15156         (gen_type_die_with_usage): ... this function. When an anonymous
15157         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15158         is emitted for the typedef.
15159         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15160         anonymous tagged types.
15161
15162 2010-05-27  Jason Merrill  <jason@redhat.com>
15163
15164         * print-tree.c (debug_vec_tree): New fn.
15165         (print_vec_tree): New fn.
15166         * tree.h: Declare them.
15167         * gdbinit.in (pvt): New command.
15168
15169         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
15170
15171         * gdbinit.in (pdd): New command.
15172
15173 2010-05-27  Jan Hubicka  <jh@suse.cz>
15174
15175         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
15176         (update_caller_keys): Return early if there are no callers;
15177         only update fibheap when decresing the key.
15178         (update_callee_keys): Avoid recursion.
15179         (decide_inlining_of_small_functions): When badness does not match;
15180         re-insert into fibheap.
15181
15182 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
15183
15184         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
15185         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
15186         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
15187         (ALL_HOST_OBJS): Now a union of the above two.
15188         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
15189         all files in ALL_HOST_FRONTEND_OBJS.
15190         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
15191
15192         * c-common.c: Pretend to be a backend file by undefining
15193         IN_GCC_FRONTEND (still need rtl.h here).
15194
15195 2010-05-27  Jan Hubicka  <jh@suse.cz>
15196
15197         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
15198         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
15199
15200 2010-05-27  Jan Hubicka  <jh@suse.cz>
15201
15202         * sched-ebb.c: Rename struct deps to struct deps_desc.
15203         * ddg.c: Likewise.
15204         * sel-sched-ir.c: Likewise.
15205         * sched-deps.c: Likewise.
15206         * sched-int.h: Likewise.
15207         * sched-rgn.c: Likewise.
15208
15209 2010-05-27  Jon Beniston  <jon@beniston.com>
15210
15211         PR 43726
15212         * config/lm32/lm32.h: Remove definition of
15213         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
15214
15215 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15216
15217         PR lto/44230
15218         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
15219
15220 2010-05-27  Richard Guenther  <rguenther@suse.de>
15221
15222         PR tree-optimization/44284
15223         * tree-vect-stmts.c (vectorizable_assignment): Handle
15224         sign-changing conversions as simple copy.
15225
15226 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15227
15228         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
15229         Bionic C library.
15230         (__gthread_active_p): Check for pthread_create if compiling against
15231         Bionic C library.
15232
15233 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15234
15235         Support compilation for Android platform.  Reimplement -mandroid.
15236
15237         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
15238         (*android*): Set ANDROID_DEFAULT.
15239         (arm*-*-linux*): Include linux-android.h.
15240         (arm*-*-eabi*): Don't include previous -mandroid implementation.
15241         * config/arm/eabi.h: Remove, move Android-specific parts ...
15242         * config/linux-android.h: ... here.  New file.
15243         * config/arm/eabi.opt: Rename to ...
15244         * config/linux-android.opt: ... this.
15245         (mandroid): Allow -mno-android option.  Initialize based on
15246         ANDROID_DEFAULT.
15247         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
15248         Move logic to corresponding LINUX_TARGET_* macros.
15249         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
15250         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
15251         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
15252         Android definitions.
15253         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
15254         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
15255         Document.
15256
15257 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15258
15259         Add support for Bionic C library
15260
15261         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
15262         macro.
15263         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
15264         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
15265
15266         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
15267         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
15268         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
15269         to support multiple C libraries.  Handle Bionic.
15270         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
15271         (BIONIC_DYNAMIC_LINKER64): Define.
15272         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
15273         Update.
15274         (TARGET_HAS_SINCOS): Enable for Bionic.
15275
15276         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
15277         the last option specified on command line take effect.
15278         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
15279         (mbionic): New.
15280         (mglibc, muclibc): Update.
15281
15282         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
15283         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
15284         DEFAULT_LIBC.
15285
15286         * doc/invoke.texi (-mglibc, -muclibc): Update.
15287         (-mbionic): Document.
15288
15289 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15290
15291         * c-common.h (c_register_addr_space): Add prototype.
15292         (ADDR_SPACE_KEYWORD): Remove.
15293         * c-common.c (c_register_addr_space): New function.
15294         (c_addr_space_name): Reimplement.
15295         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
15296
15297         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
15298         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
15299
15300         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
15301         Remove TARGET_ADDR_SPACE_KEYWORDS.
15302
15303 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15304
15305         * input.c: New file.
15306         * input.h (main_input_filename): Move declaration to toplev.h.
15307         * toplev.c (input_location, line_table): Move to input.c
15308         * toplev.h (main_input_filename): Move declaration from input.h.
15309         * tree.c (expand_location): Move to input.c.
15310         * Makefile.in (OBJS-common): Add input.o.
15311         (input.o): Add dependencies.
15312
15313 2010-05-27  Richard Guenther  <rguenther@suse.de>
15314
15315         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
15316         for non-existant files.
15317         (fork_execute): Mark args_name file as deleted.
15318
15319 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15320
15321         PR bootstrp/44287
15322         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
15323         (narrow_signed_type): Likewise.
15324
15325 2010-05-26  Jan Hubicka  <jh@suse.cz>
15326
15327         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
15328         edge only when checking is enabled; check using former_clone_of;
15329         check inline clones too.
15330         (cgraph_materialize_clone): Record former_clone_of pointer.
15331         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
15332         combining redirections; dump args_to_skip bitmap
15333         (cgraph_materialize_all_clones): Do no redirection here.
15334         * ipa-inline.c (inline_transform): Do redirection here.
15335         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
15336         cheking only).
15337
15338 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15339
15340         * config/avr/avr-c.c: Do not include regs.h.
15341         Include cpplib.h for cpp_define and tree.h for c-common.h.
15342         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
15343         * config/avr/t-avr: Fix dependencies for avr-c.o.
15344
15345 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15346
15347         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
15348         string instead of SYMBOL_REF rtx.
15349         * rtl.h (set_stack_check_libfunc): Move prototype from here...
15350         * libfuncs.h: ...to here.  Adjust for explow.c change.
15351
15352 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15353
15354         * pretty-print.c: Don't include ggc.h.
15355         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
15356         (identifier_to_locale): Use them for allocation.
15357         * pretty-print.h (identifier_to_locale_alloc,
15358         identifier_to_locale_free): Declare.
15359         * toplev.c (alloc_for_identifier_to_locale): New.
15360         (general_init): Set identifier_to_locale_alloc and
15361         identifier_to_locale_free.
15362         * Makefile.in (pretty-print.o): Update dependencies.
15363
15364 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15365
15366         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
15367         pointer types if they have different alignment or mode.
15368
15369 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
15370
15371         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15372         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15373         * config/sparc/sparc-protos.h (function_value): Remove declaration.
15374         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
15375         sparc_function_value_regno_p): New functions.
15376         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15377         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15378         (function_value): Rename to...
15379         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
15380         argument to 'outgoing'.
15381         (function_arg_record_value, function_arg_union_value,
15382         function_arg_vector_value): Update comment.
15383
15384 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15385
15386         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
15387         (fde_needed_for_eh_p): New predicate.
15388         (output_call_frame_info): Use it throughout to decide whether FDEs
15389         are needed for EH purpose.
15390         (dwarf2out_begin_prologue): Reorder assignments.
15391
15392 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15393
15394         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
15395         special case loop->header.
15396         (is_predicated): New.
15397         (if_convertible_loop_p): Call it.
15398
15399 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15400
15401         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
15402         iterator in parameter.  Do not generate code during the analysis.
15403         (tree_if_convert_cond_stmt): Removed.
15404         (tree_if_convert_stmt): Removed.
15405         (predicate_bbs): New.
15406         (if_convertible_loop_p): Call predicate_bbs.
15407         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
15408         now contains all the analysis part.
15409
15410 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15411
15412         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
15413         statements in the analysis part.
15414         (tree_if_convert_stmt): Update comment.
15415         (remove_conditions_and_labels): New.
15416         (combine_blocks): Call remove_conditions_and_labels.
15417         (tree_if_conversion): Update comment.
15418
15419 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15420
15421         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
15422         than 2 predecessors or more than 2 successors.
15423
15424 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15425
15426         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
15427         of loops in which the data dependence analysis fails.
15428
15429 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15430
15431         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
15432         CDI_POST_DOMINATORS.
15433         (tree_if_conversion): Same.
15434
15435 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15436
15437         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
15438
15439 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15440
15441         * tree-if-conv.c: Update copyright years.  Fix comments.
15442         Fix indentation.
15443
15444 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
15445
15446         * builtin-types.def (BT_INT128): New primitive type.
15447         (BT_UINT128): Likewise.
15448         * c-common.c (c_common_r): Add __int128 keyword.
15449         (c_common_type_for_size): Handle __int128.
15450         (c_common_type_for_mode): Likewise.
15451         (c_common_signed_or_unsigned_type): Likewise.
15452         (c_common_nodes_and_builtins): Add builtin type
15453         if target supports 128-bit integer scalar.
15454         * c-common.h (enum rid): Add RID_INT128.
15455         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
15456         if target supports 128-bit integer scalar.
15457         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
15458         (finish_declspecs): Likewise.
15459         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
15460         (c_token_starts_declspecs): Likewise.
15461         (c_parser_declspecs): Likewise.
15462         (c_parser_attributes): Likewise.
15463         (c_parser_objc_selector): Likewise.
15464         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
15465         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
15466         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
15467         * tree.c (make_or_reuse_type): Likewise.
15468         (make_unsigned_type): Likewise.
15469         (build_common_tree_nodes_2): Likewise.
15470         * tree.h (enum integer_type_kind): Add itk_int128 and
15471         itk_unsigned_int128.
15472         (int128_integer_type_node): New define.
15473         (int128_unsigned_type_node): New define.
15474         * doc/extend.texi: Add documentation about __int128 type.
15475
15476 2010-05-26  Richard Guenther  <rguenther@suse.de>
15477
15478         * tree-ssa-sccvn.c (copy_nary): Adjust.
15479         (copy_phis): Rename to ...
15480         (copy_phi): ... this.  Adjust.
15481         (copy_references): Rename to ...
15482         (copy_reference): ... this.  Adjust.
15483         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
15484         result into the valid table.
15485
15486 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15487
15488         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
15489         insn-config.h, insn-codes.h, recog.h, and optabs.h.
15490
15491 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15492
15493         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
15494
15495 2010-05-26  Richard Guenther  <rguenther@suse.de>
15496
15497         * opts.c (common_handle_option): Handle OPT_Ofast.
15498
15499 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15500
15501         * diagnostic.c: Don't include opts.h.
15502         (permissive_error_option): Define.
15503         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
15504         for classify_diagnostic.  Don't use memset for
15505         classify_diagnostic.  Initialize new and recently added fields.
15506         (diagnostic_classify_diagnostic): Use context->n_opts instead of
15507         N_OPTS.
15508         (diagnostic_report_diagnostic): Pass context parameter to
15509         diagnostic_report_warnings_p.  Use option_enabled and option_name
15510         hooks from context.
15511         (emit_diagnostic): Use permissive_error_option.
15512         (permerror): Likewise.
15513         * diagnostic.h: Don't include options.h.
15514         (struct diagnostic_context): Add n_opts, opt_permissive,
15515         inhibit_warnings, warn_system_headers, option_enabled and
15516         option_name fields.  Change classify_diagnostic to a pointer.
15517         * opts-diagnostic.h: New file.
15518         * opts.c: Include opts-diagnostic.h.
15519         (common_handle_option): Set global_dc fields for -Wfatal-errors,
15520         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
15521         (option_name): New function.
15522         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
15523         (c_common_handle_option): Set global_dc->permissive for
15524         -fpermissive.
15525         * c-common.c (c_cpp_error): Save and restore
15526         global_dc->warn_system_headers, not variable warn_system_headers.
15527         * toplev.c: Include opts-diagnostic.h.
15528         (general_init): Update call to diagnostic_initialize.  Set
15529         global_dc->show_column, global_dc->option_enabled and
15530         global_dc->option_name.
15531         (process_options): Don't set global_dc fields here.
15532         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
15533         (diagnostic.o, opts.o, toplev.o): Update dependencies.
15534
15535 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15536
15537         * config/picochip/picochip.md (movsi): Split a movsi from a
15538         const after reload.
15539
15540 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15541
15542         * ggc-zone.c: Update copyright year.
15543         (poison_region): Mark memory for Valgrind as undefined before
15544         memset () call and inaccessible afterwards.
15545         (ggc_pch_total_size): Change type of i to int.
15546
15547 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15548
15549         * ggc-common.c (ggc_free_overhead): Allow empty slot.
15550
15551 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15552
15553         * ggc-common.c: Update copyright year.
15554         (ggc_rlimit_bound): Remove prototype.  Compile only if
15555         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
15556         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
15557         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
15558         (ggc_min_heapsize_heuristic): Likewise.
15559
15560 2010-05-26  Richard Guenther  <rguenther@suse.de>
15561
15562         PR rtl-optimization/44164
15563         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
15564         no-common access-path disambiguation.
15565         (indirect_ref_may_alias_decl_p): Adjust.
15566         (indirect_refs_may_alias_p): Likewise.
15567         (refs_may_alias_p_1): Likewise.
15568
15569 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15570
15571         * c-typeck.c: Do not include expr.h.
15572
15573 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15574
15575         * rtl.h (decl_default_tls_model): Move prototype from here...
15576         * output.h: ...to here.
15577         * c-decl.c: Do not include rtl.h.
15578         * c-pragma.c: Likewise.
15579         * c-parser.c: Likewise.
15580         * c-gimplify.c: Likewise.  And also not hard-reg-set.
15581         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
15582         FIXME note for it.  Add a FIXME note for expr.h.
15583         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
15584         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
15585         defined.
15586
15587 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
15588
15589         PR target/44199
15590         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
15591         or total_size is larger than red zone size for non-V4 ABI, emit a
15592         stack_tie resp. frame_tie insn before stack pointer restore.
15593         * config/rs6000/rs6000.md (frame_tie): New insn.
15594
15595 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
15596
15597         * function.h (struct function): Add can_throw_non_call_exceptions bit.
15598         * lto-streamer-in.c (input_function): Stream it in.
15599         * lto-streamer-out.c (output_function): Stream it out.
15600         * function.c (allocate_struct_function): Set it.
15601         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
15602         for flag_non_call_exceptions.
15603         * cfgbuild.c (control_flow_insn_p): Likewise.
15604         (make_edges): Likewise.
15605         * cfgexpand.c (expand_stack_alignment): Likewise.
15606         * combine.c (distribute_notes): Likewise.
15607         * cse.c (cse_extended_basic_block): Likewise.
15608         * except.c (insn_could_throw_p): Likewise.
15609         * gcse.c (simple_mem): Likewise.
15610         * ipa-pure-const.c (check_call): Likewise.
15611         (check_stmt ): Likewise.
15612         * lower-subreg.c (lower-subreg.c): Likewise.
15613         * optabs.c (emit_libcall_block): Likewise.
15614         (prepare_cmp_insn): Likewise.
15615         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
15616         * postreload.c (rest_of_handle_postreload): Likewise.
15617         * reload1.c (reload_as_needed): Likewise.
15618         (emit_input_reload_insns): Likewise.
15619         (emit_output_reload_insns): Likewise.
15620         (fixup_abnormal_edges): Likewise.
15621         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
15622         * store-motion.c (find_moveable_store): Likewise.
15623         * tree-eh.c (stmt_could_throw_p): Likewise.
15624         (tree_could_throw_p): Likewise.
15625         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
15626         * config/arm/arm.c (arm_expand_prologue): Likewise.
15627         (thumb1_expand_prologue): Likewise.
15628         * config/rx/rx.md (cbranchsf4): Likewise.
15629         (cmpsf): Likewise.
15630         * config/s390/s390.c (s390_emit_prologue): Likewise.
15631         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
15632         (inline_forbidden_into_p): New predicate.
15633         (expand_call_inline): Use it to forbid inlining.
15634         (tree_can_inline_p): Likewise.
15635
15636 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15637
15638         * config/i386/i386-c.c: Do not include rtl.h.
15639         * config/i386/t-i386: Update dependencies.
15640
15641 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15642
15643         * attribs.c: Do not include rtl.h.
15644         * Makefile.in: Update dependencies.
15645
15646 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
15647
15648         * double-int.h (double_int_and): New.
15649         * combine.c (try_combine): Clean up, use double_int_* and
15650         immed_double_int_const functions.
15651
15652 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15653
15654         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
15655         stderr to /dev/null instead of grep -q.
15656         * configure: Regenerate.
15657
15658 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
15659
15660         * Makefile.in (EXCEPT_H): Fix typo.
15661
15662 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
15663
15664         * ira-build.c (update_conflict_hard_reg_costs): New.
15665         (ira_build): Call update_conflict_hard_reg_costs.
15666
15667 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
15668
15669         PR debug/41371
15670         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
15671         ENABLE_CHECKING.
15672         (intersect_loc_chains): Walk the s2var's loc_chain together
15673         with s1node chain as long as the locations are equal, don't
15674         call find_loc_in_1pdv in that case.
15675
15676         PR debug/42801
15677         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
15678         (copy_bind_expr): ... instead of here.
15679         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
15680         if the block hasn't been remapped.
15681         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
15682         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
15683
15684 2010-05-25  Richard Guenther  <rguenther@suse.de>
15685
15686         PR middle-end/44069
15687         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
15688         out-of-bounds array accesses.
15689
15690 2010-05-25  Richard Guenther  <rguenther@suse.de>
15691
15692         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
15693         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
15694         (run_gcc): Re-organize to make cleanup easier.
15695
15696 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15697
15698         * config/s390/s390.c (optimization_options): Fix and move the
15699         flag_prefetch_loop_arrays override ...
15700         (override_options): ... here.
15701
15702 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
15703
15704         * diagnostic.c: Don't include plugin.h.
15705         (diagnostic_report_diagnostic): Don't handle plugins specially
15706         here.  Pass context to internal_error callback.
15707         * diagnostic.h (struct diagnostic_context): Add context parameter
15708         to internal_error callback.
15709         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
15710         * plugin.h (struct diagnostic_context): Declare.
15711         (warn_if_plugins, plugins_internal_error_function): Declare.
15712         * toplev.c (general_init): Set global_dc->internal_error.
15713         * Makefile.in (diagnostic.o): Update dependencies.
15714
15715 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
15716
15717         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
15718         * config/rs6000/t-darwin64: New.
15719         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
15720         build crt2.
15721
15722 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
15723
15724         PR 44203
15725         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
15726         match the original (and intended) behaviour before r159557.  This
15727         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
15728         in two ways.
15729
15730 2010-05-25  Richard Guenther  <rguenther@suse.de>
15731
15732         * doc/invoke.texi: Document -Ofast.
15733         * target.h (struct gcc_target): Add handle_ofast.
15734         * target-def.h (TARGET_HANDLE_OFAST): Add.
15735         (TARGET_INITIALIZER): Adjust.
15736         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
15737         * common.opt (Ofast): Add.
15738
15739 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
15740
15741         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
15742         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
15743
15744 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
15745
15746         PR target/43610
15747         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
15748         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
15749         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
15750         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
15751
15752 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
15753
15754         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
15755         DW_OP_minus with negated offset instead of DW_OP_plus.
15756         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
15757
15758 2010-05-25  Wei Guozhi  <carrot@google.com>
15759
15760         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
15761         tst instruction and a new alternative.
15762         * config/arm/constraints.md (Pu): New constraint.
15763
15764 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
15765
15766         * function.c (assign_stack_local_1): Initialize variable
15767         to avoid warning when bootstrapping at -O3.
15768
15769 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
15770
15771         * configure.ac (all_lang_makefiles): Remove everything related to it.
15772         * configure: Regenerate.
15773         * Makefile.in: Fix reference to ada Make-lang.in.
15774         Remove support for LANG_MAKEFILES.
15775
15776 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
15777             Sandra Loosemore  <sandra@codesourcery.com>
15778
15779         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
15780         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
15781         description.  Add arm_neon_fp16_ok.
15782         (Add Options): Add arm_neon and arm_neon_fp16.
15783
15784 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
15785
15786         * diagnostic.c: Don't include flags.h.
15787         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
15788         context parameters.  Check flags in the context passed as a parameter.
15789         (diagnostic_build_prefix): Add context parameter.  Check
15790         show_column flag in context.
15791         (diagnostic_action_after_output): Check fatal_errors flag in context.
15792         (diagnostic_report_current_module): Check show_column flag in context.
15793         (default_diagnostic_starter): Update call to
15794         diagnostic_build_prefix.
15795         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
15796         (emit_diagnostic): Pass context to permissive_error_kind.
15797         (permerror): Pass context to permissive_error_kind.
15798         * diagnostic.h (struct diagnostic_context): Add show_column,
15799         pedantic_errors, permissive and fatal_errors fields.
15800         (diagnostic_build_prefix): Update prototype.
15801         * langhooks.c
15802         * toplev.c (process_options): Set flags in global_dc from
15803         flag_show_column, flag_pedantic_errors, flag_permissive,
15804         flag_fatal_errors.
15805         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
15806         to diagnostic_build_prefix.
15807         * Makefile.in (diagnostic.o): Update dependencies.
15808
15809 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
15810
15811         * config/i386/ia32intrin.h (__crc32q): Define only if
15812         __SSE4_2__ is defined.
15813
15814 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
15815
15816         PR target/44132
15817         PR middle-end/43602
15818         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
15819         DECL_VISIBILITY_SPECIFIED.
15820         (emutls_decl): Set DECL_PRESERVE_P and copy
15821         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
15822         (emutls_finalize_control_var): New callback.
15823         (emutls_finish): Finalize emutls control variables.
15824         * toplev.c (compile_file): Move the call to emutls_finish ()
15825         before varpool_assemble_pending_decls ().
15826
15827 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
15828
15829         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
15830         added to the preprocessor condition.
15831
15832 2010-05-24  Paul Brook  <paul@codesourcery.com>
15833
15834         * gengtype-lex.l: Add HARD_REG_SET.
15835         * expr.c (expand_expr_real_1): Record writes to hard registers.
15836         * function.c (rtl_data): Add asm_clobbers.
15837         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
15838         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
15839         Use crtl->asm_clobbers.
15840
15841 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15842
15843         * doc/makefile.texi (Makefile): Mention stages 'profile'
15844         and 'feedback' for profiledbootstrap.
15845
15846 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
15847
15848         PR target/44245
15849         * config/i386/i386.c (def_builtin): Properly check
15850         OPTION_MASK_ISA_64BIT.
15851
15852 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
15853
15854         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
15855         typedefs with different but compatible types.  Allow duplicate
15856         typedefs with the same type except for pedantic non-C1X, but give
15857         warning for variably modified types.
15858         * c-typeck.c (tagged_types_tu_compatible_p,
15859         function_types_compatible_p, type_lists_compatible_p,
15860         comptypes_internal): Add parameter different_types_p; set
15861         *different_types_p for different but compatible types.  All
15862         callers changed.
15863         (comptypes_check_different_types): New.
15864         * c-tree.h (comptypes_check_different_types): Declare.
15865
15866 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
15867
15868         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
15869         * jump.c: Include basic-block.h.
15870         * profile.c: Likewise.
15871         * tree-profile.c: Likewise.
15872         * coverage.c: Likewise.
15873         * basic-block.h (optimize_function_for_size_p): Move to function.h.
15874         (optimize_function_for_speed_p): Likewise.
15875         * function.h (optimize_function_for_size_p,
15876         optimize_function_for_speed_p): Moved here from basic-block.h.
15877         * Makefile.in: Update dependencies.
15878
15879 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15880
15881         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
15882         before calling make; allow override through $MAKE.
15883         * doc/invoke.texi (Optimize Options): Document override.
15884
15885 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
15886
15887         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
15888         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15889         (rs6000_mode_dependent_address_ptr): Make static.
15890         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15891         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
15892         Remove.
15893
15894 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
15895
15896         PR target/43869
15897         * config/i386/i386.c: Make sure that the correct regparm is passed.
15898
15899 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
15900
15901         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
15902         * sbitmap.c: ...to here to internalize sbitmap element access.
15903         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
15904         Explain why basic-block.h is included.
15905         * function.h: Include tm.h for CUMULATIVE_ARGS.
15906         * Makefile.in: Update dependencies.
15907
15908 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15909
15910         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
15911         New core types.
15912         * sbitmap.h (struct sbitmap_def): Do not typedef here.
15913         * sbitmap.c: Include sbitmap.h.
15914         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
15915         hard-reg-set.h.  Split everything related to regsets out from here...
15916         * regset.h: ...to here.  New file.
15917         * df.h: Include regset.h and sbitmap.h.
15918         * tree-flow.h: Likewise.
15919         * cfgloop.h: Likewise.
15920         * except.h: Do not include sbitmap.h.  Include hashtab.h.
15921         * cgraph.h: Include vec.h and function.h.
15922         * reload.h (struct insn_chain): Change types of live_throughout
15923         and dead_or_set from regset_head to bitmap_head.
15924         (compute_use_by_pseudos): Be defined also if regset.h is not included.
15925         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
15926         spilled_regs from regset_head to bitmap_head to avoid dependency
15927         in regset.h.
15928         * sel-sched-ir.h: Include regset.h.
15929         * reload.c: Include df.h before reload.h.
15930         * caller-save.c: Likewise.
15931         * reload1.c: Likewise.
15932         * ira.c: Likewise.
15933         (mark_elimination): Update type of r to bitmap, consistent with
15934         DF_LR_IN.
15935         * dominance.c: Include bitmap.h.
15936         * modulo-sched.c: Include df.h.
15937         * cfganal.c: Include bitmap.h and sbitmap.h.
15938         * cfgbuild.c: Include sbitmap.h.
15939         * lcm.c: Include sbitmap.h.
15940         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
15941         * domwalk.c: Include sbitmap.h, exclude ggc.h.
15942         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
15943         * cselib.c: Include bitmap.h.
15944         * tree-optimize.c: Include regset.h.
15945         * stmt.c: Include bitmap.h.
15946         * Makefile.in: Update dependencies.
15947
15948 2010-05-22  Jan Hubicka  <jh@suse.cz>
15949
15950         * cgraph.h (struct varpool_node): Add same_comdat_group.
15951         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
15952         pointer.
15953         (output_varpool): Update call of lto_output_varpool_node.
15954         (input_varpool): Read same_comdat_group pointer.
15955         (input_varpool_1): Fixup same_comdat_group pointer.
15956         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
15957         group is needed, all are.
15958         * varpool.c (varpool_remove_node): Remove node from same comdat group
15959         linklist too.
15960         (varpool_analyze_pending_decls): Walk same comdat groups.
15961
15962 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
15963
15964         * rtl.h (union rtunion_def): Remove rt_bit member.
15965         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
15966         * print-rtl (print_rtx): Do not print the member.
15967         * gengtype.c (adjust_field_rtx_def): Do not handle it.
15968         * gengenrtl.c (type_from_format): Likewise.
15969         (accessor_from_format): Likewise.
15970
15971 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
15972
15973         * dbgcnt.c: Include toplev.h instead of errors.h.
15974         * ira-emit.c: Don't include errors.h.
15975         * ira.c: Include toplev.h instead of errors.h.
15976         * lto-compress.c: Include toplev.h instead of errors.h.
15977         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
15978         ira.o, dbgcnt.o): Update dependencies.
15979
15980 2010-05-22  Richard Guenther  <rguenther@suse.de>
15981
15982         * gimple.c (gimple_types_compatible_p): Check type qualifications
15983         before merging pointer to complete and pointer to incomplete type.
15984         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
15985         we use our own resolution algorithm.  The gold linker plugin
15986         doesn't do the job we want it to do here.
15987
15988 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
15989
15990         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
15991         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15992         (sparc_mode_dependent_address_p): New function.
15993
15994 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
15995
15996         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
15997
15998         * timevar.c: Do not include any core headers.
15999         (timevar_print): De-i18n-ize.
16000         (print_time): Likewise.
16001         * timevar.h (timevar_push, timevar_pop): Make inline functions.
16002
16003 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
16004
16005         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
16006         langhooks-def.h.
16007         (diagnostic_initialize): Initialize x_data not last_function.
16008         (diagnostic_report_current_function): Move to tree-diagnostic.c.
16009         (default_diagnostic_starter): Call
16010         diagnostic_report_current_module not
16011         diagnostic_report_current_function.
16012         (diagnostic_report_diagnostic): Initialize x_data not
16013         abstract_origin.
16014         (verbatim): Likewise.
16015         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
16016         x_data.
16017         (struct diagnostic_context): Change last_function to x_data.
16018         (diagnostic_auxiliary_data): Replace with
16019         diagnostic_context_auxiliary_data and
16020         diagnostic_info_auxiliary_data.
16021         (diagnostic_last_function_changed, diagnostic_set_last_function,
16022         diagnostic_report_current_function): Move to tree-diagnostic.h.
16023         (print_declaration, dump_generic_node, print_generic_stmt,
16024         print_generic_stmt_indented, print_generic_expr,
16025         print_generic_decl, debug_c_tree, dump_omp_clauses,
16026         print_call_name, debug_generic_expr, debug_generic_stmt,
16027         debug_tree_chain, default_tree_printer): Move to
16028         tree-pretty-print.h.
16029         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
16030         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
16031         gimple-pretty-print.h.
16032         * pretty-print.c: Don't include tree.h
16033         (pp_base_format): Don't handle %K here.
16034         (pp_base_tree_identifier): Move to tree-pretty-print.c.
16035         * pretty-print.h (text_info): Change abstract_origin to x_data.
16036         (pp_tree_identifier, pp_unsupported_tree,
16037         pp_base_tree_identifier): Move to tree-pretty-print.h.
16038         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
16039         tree-pretty-print.h: New files.
16040         * tree-pretty-print.c: Include tree-pretty-print.h.
16041         (percent_K_format): New.  Moved from pretty-print.c.
16042         (pp_base_tree_identifier): Move from pretty-print.c.
16043         * c-objc-common.c: Include tree-pretty-print.h.
16044         (c_tree_printer): Handle %K here.
16045         * langhooks.c: Include tree-diagnostic.h.
16046         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
16047         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
16048         (default_tree_printer): Handle %K using percent_K_format.
16049         (general_init): Use default_tree_diagnostic_starter.
16050         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
16051         (free_lang_data): Use default_tree_diagnostic_starter.
16052         * c-pretty-print.c: Include tree-pretty-print.h.
16053         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16054         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16055         * dwarf2out.c: Include tree-pretty-print.h.
16056         * except.c: Include tree-pretty-print.h.
16057         * gimple-pretty-print.c: Include tree-pretty-print.h and
16058         gimple-pretty-print.h.
16059         * gimplify.c: Include tree-pretty-print.h.
16060         * graphite-poly.c: Include tree-pretty-print.h and
16061         gimple-pretty-print.h.
16062         * ipa-cp.c: Include tree-pretty-print.h.
16063         * ipa-inline.c: Include gimple-pretty-print.h.
16064         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16065         * ipa-pure-const.c: Include gimple-pretty-print.h.
16066         * ipa-struct-reorg.c: Include tree-pretty-print.h and
16067         gimple-pretty-print.h.
16068         * ipa-type-escape.c: Include tree-pretty-print.h.
16069         * print-rtl.c: Include tree-pretty-print.h.
16070         * print-tree.c: Include gimple-pretty-print.h.
16071         * sese.c: Include tree-pretty-print.h.
16072         * tree-affine.c: Include tree-pretty-print.h.
16073         * tree-browser.c: Include tree-pretty-print.h.
16074         * tree-call-cdce.c: Include gimple-pretty-print.h.
16075         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16076         * tree-chrec.c: Include tree-pretty-print.h.
16077         * tree-data-ref.c: Include tree-pretty-print.h and
16078         gimple-pretty-print.h.
16079         * tree-dfa.c: Include tree-pretty-print.h.
16080         * tree-if-conv.c: Include tree-pretty-print.h and
16081         gimple-pretty-print.h.
16082         * tree-inline.c: Include tree-pretty-print.h.
16083         * tree-into-ssa.c: Include tree-pretty-print.h and
16084         gimple-pretty-print.h.
16085         * tree-nrv.c: Include tree-pretty-print.h.
16086         * tree-object-size.c: Include tree-pretty-print.h and
16087         gimple-pretty-print.h.
16088         * tree-outof-ssa.c: Include tree-pretty-print.h and
16089         gimple-pretty-print.h.
16090         * tree-parloops.c: Include tree-pretty-print.h and
16091         gimple-pretty-print.h.
16092         * tree-predcom.c: Include tree-pretty-print.h and
16093         gimple-pretty-print.h.
16094         * tree-scalar-evolution.c: Include tree-pretty-print.h and
16095         gimple-pretty-print.h.
16096         * tree-sra.c: Include tree-pretty-print.h.
16097         * tree-ssa-address.c: Include tree-pretty-print.h.
16098         * tree-ssa-alias.c: Include tree-pretty-print.h.
16099         * tree-ssa-ccp.c: Include tree-pretty-print.h and
16100         gimple-pretty-print.h.
16101         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
16102         * tree-ssa-copy.c: Include tree-pretty-print.h and
16103         gimple-pretty-print.h.
16104         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
16105         * tree-ssa-dce.c: Include tree-pretty-print.h and
16106         gimple-pretty-print.h.
16107         * tree-ssa-dom.c: Include tree-pretty-print.h and
16108         gimple-pretty-print.h.
16109         * tree-ssa-dse.c: Include gimple-pretty-print.h.
16110         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
16111         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
16112         * tree-ssa-live.c: Include tree-pretty-print.h and
16113         gimple-pretty-print.h.
16114         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
16115         gimple-pretty-print.h.
16116         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
16117         gimple-pretty-print.h.
16118         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
16119         gimple-pretty-print.h.
16120         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
16121         gimple-pretty-print.h.
16122         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
16123         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
16124         * tree-ssa-operands.c: Include tree-pretty-print.h and
16125         gimple-pretty-print.h.
16126         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
16127         gimple-pretty-print.h.
16128         * tree-ssa-pre.c: Include tree-pretty-print.h and
16129         gimple-pretty-print.h.
16130         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
16131         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
16132         gimple-pretty-print.h.
16133         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
16134         gimple-pretty-print.h.
16135         * tree-ssa-sink.c: Include gimple-pretty-print.h.
16136         * tree-ssa-ter.c: Include tree-pretty-print.h and
16137         gimple-pretty-print.h.
16138         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
16139         * tree-ssa.c: Include tree-pretty-print.h and
16140         gimple-pretty-print.h.
16141         * tree-stdarg.c: Include gimple-pretty-print.h.
16142         * tree-switch-conversion.c: Include gimple-pretty-print.h.
16143         * tree-tailcall.c: Include tree-pretty-print.h and
16144         gimple-pretty-print.h.
16145         * tree-vect-data-refs.c: Include tree-pretty-print.h and
16146         gimple-pretty-print.h.
16147         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
16148         gimple-pretty-print.h.
16149         * tree-vect-loop.c: Include tree-pretty-print.h and
16150         gimple-pretty-print.h.
16151         * tree-vect-patterns.c: Include gimple-pretty-print.h.
16152         * tree-vect-slp.c: Include tree-pretty-print.h and
16153         gimple-pretty-print.h.
16154         * tree-vect-stmts.c: Include tree-pretty-print.h and
16155         gimple-pretty-print.h.
16156         * tree-vectorizer.c: Include tree-pretty-print.h.
16157         * tree-vrp.c: Include tree-pretty-print.h and
16158         gimple-pretty-print.h.
16159         * value-prof.c: Include tree-pretty-print.h and
16160         gimple-pretty-print.h.
16161         * var-tracking.c: Include tree-pretty-print.h.
16162         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
16163         (tree-diagnostic.o): New dependencies.
16164         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
16165         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
16166         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
16167         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
16168         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
16169         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
16170         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
16171         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
16172         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
16173         tree-ssa-address.o, tree-ssa-loop-niter.o,
16174         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
16175         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
16176         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
16177         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
16178         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
16179         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
16180         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
16181         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
16182         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
16183         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
16184         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
16185         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
16186         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
16187         tree-switch-conversion.o, var-tracking.o, value-prof.o,
16188         cfgexpand.o, pretty-print.o): Update dependencies.
16189
16190 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
16191
16192         * tree-ssa-structalias.c: Remove tm_p.h from include.
16193
16194 2010-05-21  Jeff Law  <law@redhat.com>
16195
16196         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
16197
16198 2010-05-21  Jason Merrill  <jason@redhat.com>
16199
16200         * tree-eh.c (cleanup_is_dead_in): New.
16201         (lower_try_finally): Don't generate a dead cleanup region.
16202         (lower_cleanup): Likewise.
16203
16204 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16205
16206         PR debug/44223
16207         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
16208         unchain each use from the cyclic next_regno_use chain first.
16209
16210 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16211
16212         * real: Do not include gmp.h, mpfr.h, and mpc.h.
16213         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
16214         (real_value_negate, real_value_abs): New prototypes.
16215         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
16216         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
16217         new include file for interface between MPFR and REAL_VALUE_TYPE.
16218         * real.c: Include realmpfr.h.
16219         (real_arithmetic2): Remove legacy function.
16220         (real_value_negate): New.
16221         (real_value_abs): New.
16222         (mfpr_from_real, real_from_mpfr): Move from here...
16223         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
16224         * builtins.c: Include realmpfr.h.
16225         * fold-const.c: Include realmpfr.h.
16226         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
16227         (fold_negate_const): Likewise.
16228         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
16229         * toplev.c: Include realmpfr.h.
16230         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
16231         and real_value_negate.
16232         * fixed-value.c (check_real_for_fixed_mode): Likewise.
16233         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
16234         (vfp3_const_double_index): Likewise.
16235         (arm_print_operand): Likewise.
16236         * Makefile.in: Update dependencies.
16237
16238 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16239
16240         * config/s390/s390.c (override_options): Increase the default
16241         of max-completely-peel-times.
16242
16243 2010-05-21  Julian Brown  <julian@codesourcery.com>
16244             Mark Mitchell  <mark@codesourcery.com>
16245
16246         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
16247         sibling calls for Thumb-1.
16248         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
16249         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
16250         Thumb-2.
16251         (*call_insn, *call_value_insn): Don't use for Thumb-2.
16252         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
16253         for Thumb-2.
16254         (return): New expander.
16255         (*arm_return): New name for ARM return insn.
16256         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
16257
16258 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
16259
16260         * config.gcc (sparc64-*-rtems*): New target.
16261
16262 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16263
16264         * tree.c (build_function_decl_skip_args): Fix grammar.
16265         (build_function_type_list_1): Fix typos, adjust formatting.
16266
16267 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16268
16269         * tree.h: Include real.h and fixed-value.h as basic datatypes.
16270         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
16271         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
16272         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
16273         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
16274         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
16275         tree-pretty-print.c, tree-loop-distribution.c,
16276         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
16277         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
16278         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
16279         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
16280         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
16281         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
16282         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
16283         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
16284         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
16285         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
16286         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
16287         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
16288         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
16289         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
16290         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
16291         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
16292         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
16293         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
16294         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
16295         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
16296         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
16297         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
16298         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
16299         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
16300         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
16301         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
16302         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
16303         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
16304         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
16305         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
16306         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
16307         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
16308         config/score/score7.c, config/score/score.c, config/arm/arm.c,
16309         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
16310         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
16311         config/bfin/bfin.c: Clean up redundant includes.
16312         * Makefile.in: Update accordingly.
16313
16314 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16315
16316         PR middle-end/44204
16317         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
16318         statement has no arguments.
16319
16320 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
16321
16322         PR/44139
16323         * varasm.c (emutls_decl): Merge attributes to new decl.
16324
16325 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16326
16327         PR middle-end/44101
16328         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
16329         around the uniquized constructor if its type requires a conversion.
16330
16331 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16332
16333         PR debug/44205
16334         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
16335         at -O0 goto_locus of any of the incoming edges differs from
16336         goto_locus of outgoing edge, or gimple_location of any of the
16337         labels differs.
16338
16339 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
16340
16341         * ira.c (ira_non_ordered_class_hard_regs): Define.
16342         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
16343         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
16344         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
16345         cost of unaligned hard regs when allocating multi-reg pseudos.
16346
16347 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
16348
16349         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
16350         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
16351         for TARGET_NO_FLOAT.
16352         * config/mips/mips.c (mips_file_start): Expand conditional expression
16353         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
16354         (mips_override_options): Move -mno-float override -msoft-float and
16355         -mhard-float.
16356         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
16357         Condition(TARGET_SUPPORTS_NO_FLOAT).
16358         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
16359         __mips_no_float here.
16360         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
16361         (TARGET_SUPPORTS_NO_FLOAT): Define.
16362         * config/mips/sdemtk.opt: Delete.
16363
16364 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
16365
16366         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
16367
16368 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
16369
16370         PR target/43733
16371         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
16372         * configure: Regenerate.
16373         * config.in: Regenerate.
16374         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
16375         instead of sahf only for 64bit targets.
16376
16377 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16378
16379         PR debug/44178
16380         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
16381         setup_ref_regs for DEBUG_INSNs.
16382
16383 2010-05-20  Jan Hubicka  <jh@suse.cz>
16384
16385         PR middle-end/44197
16386         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
16387
16388 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
16389
16390         PR bootstrap/43870
16391         * df-scan.c (df_ref_compare): Stabilize sort.
16392
16393 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16394
16395         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
16396         argument.  Don't use DW_OP_piece if offset is non-zero,
16397         put offset into second DW_OP_bit_piece argument.
16398         (dw_sra_loc_expr): Adjust callers.  For memory expressions
16399         compute offset.
16400
16401 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
16402
16403         PR target/44202
16404         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
16405         settings for 16-bit-constant "addo" alternative.
16406
16407 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
16408
16409         * config/mips/mips-dsp.md (add<DSPV:mode>3,
16410         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
16411
16412         PR target/43764
16413         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
16414         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
16415         Use it.
16416
16417 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
16418
16419         * diagnostic.c (FLOAT, FFS): Don't undefine.
16420         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
16421         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
16422         include ordering.
16423
16424 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
16425
16426         * combine.c (propagate_for_debug): Call make_compound_operation
16427         on the source value.
16428         (try_combine): When implementing a split chosen by find_split_point,
16429         either copy i2src or set it to null.  Assert that i2src is not null
16430         before substituting into CALL_INSN_FUNCTION_USAGE.
16431
16432 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
16433
16434         * double-int.h (double_int_ior): New function.
16435         * tree.h (build_int_cst_wide_type): Remove.
16436         * tree.c (build_int_cst_wide_type): Remove.
16437         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
16438         of build_int_cst_wide_type.
16439         * stor-layout.c (set_sizetype): (Ditto.).
16440         * dojump.c (do_jump): Use build_int_cstu instead of
16441         build_int_cst_wide_type.
16442
16443 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16444
16445         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
16446         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
16447         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
16448         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
16449         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
16450         propagate the 'data' argument to copy_tree_r.
16451         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
16452         Propagate 'data' argument to walk_tree.
16453         (copy_if_shared): New function.
16454         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
16455         (unmark_visited): New function.
16456         (unshare_body): Call copy_if_shared instead of doing it manually.
16457         (unvisit_body): Call unmark_visited instead of doing it manually.
16458
16459 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
16460
16461         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
16462         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
16463         * hooks.c: Likewise.
16464         * target-def.h (TARGET_FOLD_BUILTIN): Define to
16465         hook_tree_tree_int_treep_bool_null.
16466         * target.h (struct gcc_target): Update signature of fold_builtin
16467         field.
16468         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
16469         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
16470         instead of the call expression.
16471         (fold_builtin_call_array): Pass n and argarray directly.
16472         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
16473         consing a list.
16474         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
16475         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
16476         `i' and use it in place of `arity'.
16477         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
16478         Dereference `args' directly.
16479         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
16480
16481 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16482
16483         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16484         3dnow, sse3, sse2.
16485         (Directives): Document optional dg-require-effective-target
16486         selector.
16487
16488 2010-05-19  Richard Guenther  <rguenther@suse.de>
16489
16490         PR lto/44196
16491         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
16492
16493 2010-05-19  Richard Guenther  <rguenther@suse.de>
16494
16495         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
16496         * common.opt (fwhopr=): New.
16497         * opts.c (common_handle_option): Handle OPT_fwhopr.
16498         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
16499         * collect2.c (main): Match -fwhopr*.
16500         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
16501         Execute ltrans stage in parallel when jobs is bigger than 1.
16502
16503 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16504
16505         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
16506         pentiumpro on Solaris 8/x86 with Sun as.
16507         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
16508         hidden alias bug.
16509         (gcc_cv_as_ix86_quad): Check for .quad directive.
16510         * configure: Regenerate.
16511         * config.in: Regenerate.
16512         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
16513
16514 2010-05-19  Martin Jambor  <mjambor@suse.cz>
16515
16516         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
16517         also for indirect edges.  Actual printing moved...
16518         (ipa_print_node_jump_functions_for_edge): ...here.
16519         (ipa_compute_jump_functions): Renamed to
16520         ipa_compute_jump_functions_for_edge and made static.
16521         (ipa_compute_jump_functions): New function.
16522         (make_edge_direct_to_target): Check if the number of arguments on
16523         the newly direct edge is the same as the number of parametrs of
16524         the callee.
16525         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
16526         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
16527         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16528         analysis functions unconditionally, call the new
16529         ipa_analyze_params_uses on the node instead of every edge.
16530
16531 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
16532
16533         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
16534         to tree.
16535         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
16536         also checks for a constant int vs.  non-constant but
16537         loop-invariant steps.
16538         (find_or_create_group): Change the sort algorithm to only consider
16539         steps that are constant ints.
16540         (idx_analyze_ref): Adopt code to handle a tree instead of a
16541         HOST_WIDE_INT for step.
16542         (gather_memory_references_ref): Handle tree instead of int and be
16543         prepared to see a NULL_TREE.
16544         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
16545         prefetches if the step cannot be calculated at compile time.
16546         (issue_prefetch_ref): Issue prefetches for non-constant but
16547         loop-invariant steps.
16548
16549 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16550
16551         Revert:
16552         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16553
16554         * tree.h (build_call_list): Remove.
16555         * tree.c (build_call_list): Remove.
16556
16557 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
16558
16559         * tree.h (build_call_list): Remove.
16560         * tree.c (build_call_list): Remove.
16561
16562 2010-05-18  Jan Hubicka  <jh@suse.cz>
16563
16564         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
16565
16566 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
16567
16568         PR rtl-optimization/43332
16569         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
16570
16571 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
16572
16573         * tree.h (build_int_cstu): Implement as static inline.
16574         * tree.c (build_int_cstu): Remove function.
16575         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
16576         sign extended.
16577
16578 2010-05-18  Richard Guenther  <rguenther@suse.de>
16579
16580         PR lto/44143
16581         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
16582         (debug): Initialize from -save-temps.
16583         (collect_execute): Print command-line when verbose.
16584         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
16585         for ltrans invocation.  Produce -dumpbase flag again.
16586         (process_args): Remove.
16587         (main): Simplify.
16588         * collect2.c (maybe_run_lto_and_relink): Only pass object
16589         files to lto-wrapper.
16590         * gcc.c (LINK_COMMAND_SPEC): Likewise.
16591
16592 2010-05-18  Jan Hubicka  <jh@suse.cz>
16593
16594         * opts.c (decode_options): Do not disable whopr at ipa_cp.
16595         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
16596
16597 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
16598
16599         PR lto/44184
16600         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
16601         in a GIMPLE_ASM.
16602         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
16603         in a GIMPLE_ASM.
16604
16605 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
16606
16607         PR debug/41371
16608         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
16609         rtx_equal_p inline.
16610
16611 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
16612
16613         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
16614         lto-macho as lto_binary_reader.
16615
16616         * darwin.c (darwin_asm_named_section): Do not add assembler comment
16617         after .section directive; just print it before the directive instead.
16618
16619 2010-05-17  Jan Hubicka  <jh@suse.cz>
16620
16621         * cgraph.c (cgraph_create_virtual_clone): Only check
16622         versionable_function_p when not in wpa and checking is enabled.
16623         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
16624         there are no more functions to materialize.
16625
16626 2010-05-17  Jan Hubicka  <jh@suse.cz>
16627
16628         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
16629         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
16630         New functions.
16631         (output_cgraph): Call output_cgraph_opt_summary.
16632         (input_cgrpah): Call input_cgraph_opt_summary.
16633         (output_cgraph_opt_summary_p, output_node_opt_summary,
16634         input_node_opt_summary, input_cgraph_opt_section): New functions.
16635         * lto-section-in.c (lto_section_name): Add cgraphopt.
16636         * tree-inline.c (tree_function_versioning): Handle parm_num.
16637         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
16638         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
16639
16640 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
16641
16642         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
16643         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
16644         the insn to prefetch ratio heuristic to loops with known trip count.
16645
16646 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
16647
16648         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
16649         (schedule_prefetches): Do not generate a prefetch if the unroll factor
16650         is far from what is required by the prefetch.
16651
16652 2010-05-17  Jan Hubicka  <jh@suse.cz>
16653
16654         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
16655         (ipcp_estimate_growth): Likewise.
16656         (ipcp_const_param_count): Likewise.
16657         (ipcp_insert_stage): Likewise.
16658         * ipa-prop.c (visit_load_for_mod_analysis): New function.
16659         (visit_store_addr_for_mod_analysis): Set used flag.
16660         (ipa_detect_param_modifications): Set used flag for SSE params;
16661         update use of walk_stmt_load_store_addr_ops.
16662         (ipa_print_node_params): Print used flag.
16663         (ipa_write_node_info): Stream used flag.
16664         (ipa_read_node_info): Likewise.
16665         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
16666         (ipa_is_param_used): New function.
16667         (lto_ipa_fixup_call_notes): Remove unused declaration.
16668
16669 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16670
16671         PR target/44074
16672         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
16673         * configure: Regenerate.
16674         * config.in: Regenerate.
16675         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
16676         !HAVE_AS_IX86_REP_LOCK_PREFIX.
16677         Don't emit whitespace.
16678         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
16679         (*rep_movsi): Likewise.
16680         (*rep_movsi_rex64): Likewise.
16681         (*rep_movqi): Likewise.
16682         (*rep_movqi_rex64): Likewise.
16683         (*rep_stosdi_rex64): Likewise.
16684         (*rep_stossi): Likewise.
16685         (*rep_stossi_rex64): Likewise.
16686         (*rep_stosqi): Likewise.
16687         (*rep_stosqi_rex64): Likewise.
16688         (*cmpstrnqi_nz_1): Use {%;} after repz.
16689         (*cmpstrnqi_nz_rex_1): Likewise.
16690         (*cmpstrnqi_1): Likewise.
16691         (*cmpstrnqi_rex_1): Likewise.
16692         (*strlenqi_1): Use {%;} after repnz.
16693         (*strlenqi_rex_1): Likewise.
16694         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
16695         (*sync_compare_and_swap<mode>): Likewise.
16696         (sync_double_compare_and_swap<mode>): Likewise.
16697         (*sync_double_compare_and_swapdi_pic): Likewise.
16698         (sync_old_add<mode>): Likewise.
16699         (sync_add<mode>): Likewise.
16700         (sync_sub<mode>): Likewise.
16701         (sync_<code><mode>): Likewise.
16702
16703 2010-05-17  Martin Jambor  <mjambor@suse.cz>
16704
16705         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
16706         otr_token and polymorphic.
16707         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
16708         (cgraph_clone_edge): Copy the above fields.
16709         * tree.c (get_binfo_at_offset): New function.
16710         * tree.h (get_binfo_at_offset): Declare.
16711         * ipa-prop.h (enum jump_func_type): Added known_type jump function
16712         type, reordered items, updated comments.
16713         (union jump_func_value): Added base_type field, reordered fields.
16714         (enum ipa_lattice_type): Moved down in the file.
16715         (struct ipa_param_descriptor): New field polymorphic.
16716         (ipa_is_param_polymorphic): New function.
16717         * ipa-prop.c: Include gimple.h and gimple-fold.h.
16718         (ipa_print_node_jump_functions): Print known type jump functions.
16719         (compute_complex_pass_through): Renamed to...
16720         (compute_complex_assign_jump_func): this.
16721         (compute_complex_ancestor_jump_func): New function.
16722         (compute_known_type_jump_func): Likewise.
16723         (compute_scalar_jump_functions): Create known type and complex ancestor
16724         jump functions.
16725         (ipa_note_param_call): New parameter polymorphic, set the corresponding
16726         flag in the call note accordingly.
16727         (ipa_analyze_call_uses): Renamed to...
16728         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
16729         variable var only in the block where it is used.
16730         (ipa_analyze_virtual_call_uses): New function.
16731         (ipa_analyze_call_uses): Likewise.
16732         (combine_known_type_and_ancestor_jfs): Likewise.
16733         (update_jump_functions_after_inlining): Implemented handling of a
16734         number of new jump function types combination.
16735         (print_edge_addition_message): Removed.
16736         (make_edge_direct_to_target): New function.
16737         (try_make_edge_direct_simple_call): Likewise.
16738         (try_make_edge_direct_virtual_call): Likewise.
16739         (update_call_notes_after_inlining): Renamed to...
16740         (update_indirect_edges_after_inlining): this.  Moved edge creation for
16741         indirect calls to try_make_edge_direct_simple_call, also calls
16742         try_make_edge_direct_virtual_call for virtual calls.
16743         (ipa_print_node_params): Changed the header message.
16744         (ipa_write_jump_function): Stream also known type jump functions.
16745         (ipa_read_jump_function): Likewise.
16746         (ipa_write_indirect_edge_info): Stream new fields in
16747         cgraph_indirect_call_info.
16748         (ipa_read_indirect_edge_info): Likewise.
16749         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
16750         GIMPLE_FOLD_H.
16751
16752 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16753
16754         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
16755
16756 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
16757
16758         * tree.h (CALL_EXPR_ARGS): Delete.
16759         (call_expr_arglist): Delete.
16760         * tree.c (call_expr_arglist): Delete.
16761         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
16762         targetm.fold_builtin.
16763         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
16764         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
16765         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
16766         arglist parameter.  Use CALL_EXPR_ARG.
16767         (picochip_expand_builtin_3op): Likewise.
16768         (picochip_expand_builtin_2opvoid): Likewise.
16769         (picochip_expand_array_get): Likewise.
16770         (picochip_expand_array_put): Likewise.
16771         (picochip_expand_array_testport): Likewise.
16772         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
16773         rather than arglist.
16774         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
16775         CALL_EXPR_ARGS.
16776         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
16777         than TREE_VALUE and TREE_CHAIN.
16778         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
16779         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
16780         the arglist.
16781
16782 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
16783
16784         PR bootstrap/42347
16785         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
16786         to have no fallthru edge.
16787
16788         PR middle-end/44102
16789         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
16790         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
16791         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
16792         add BARRIER after previous bb if needed.
16793
16794 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
16795
16796         * tree.c (build_function_type_list_1): Remove bogus assert condition.
16797
16798 2010-05-17  Alan Modra  <amodra@gmail.com>
16799
16800         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
16801         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
16802         with copy_reg rtx param.
16803         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
16804         Correct cases where code for ABI_V4 did not initialise the reg
16805         used to access frame.  Also leave frame_reg_rtx as sp for large
16806         frames that save no regs.
16807
16808 2010-05-17  Martin Jambor  <mjambor@suse.cz>
16809
16810         PR middle-end/44133
16811         * tree-sra.c (create_access_replacement): New parameter rename, mark
16812         the replaement for renaming only when it is true.
16813         (get_access_replacement): Pass true in the rename parameter of
16814         create_access_replacement.
16815         (get_unrenamed_access_replacement): New function.
16816         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
16817         replacement declaration from it.
16818
16819 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
16820
16821         * function.c (try_fit_stack_local, add_frame_space): New static
16822         functions.
16823         (assign_stack_local_1): Use them.  Look for opportunities to use
16824         space previously wasted on alignment.
16825         * function.h (struct frame_space): New.
16826         (struct rtl_data): Add FRAME_SPACE_LIST member.
16827         * reload1.c (something_was_spilled): New static variable.
16828         (alter_reg): Set it.
16829         (reload): Test it in addition to testing if the frame size changed.
16830
16831 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
16832
16833         * config/s390/s390.c: Define sane prefetch settings and activate
16834         flag_prefetch_loop_arrays on -O3.
16835         * config/s390/s390.h: Declare that read can use write prefetch.
16836
16837 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
16838
16839         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
16840         build.
16841
16842 2010-05-16  Jan Hubicka  <jh@suse.cz>
16843
16844         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
16845         function body; do not check stdarg field of struct function.
16846
16847 2010-05-16  Jan Hubicka  <jh@suse.cz>
16848
16849         * cgraph.c (dump_cgraph_node): Dump versionable flag.
16850         * cgraph.h (cgraph_local_info): Add versionable flag.
16851         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
16852         (ipcp_versionable_function_p): Use it.
16853         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
16854         versionable flag.
16855
16856 2010-05-16  Jan Hubicka  <jh@suse.cz>
16857
16858         * cgraph.c (cgraph_clone_node): Take decl argument and insert
16859         clone into hash when it is different from orig.
16860         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
16861         * cgraph.h (cgraph_clone_node): Update prototype.
16862         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
16863         (lto_cgraph_encoder_delete): Delete body map.
16864         (lto_cgraph_encoder_size): Move to header.
16865         (lto_cgraph_encoder_encode_body_p,
16866         lto_set_cgraph_encoder_encode_body): New.
16867         (lto_output_node): Do not take written_decls argument; output clone_of
16868         pointer.
16869         (add_node_to): Add include_body_argument; call
16870         lto_set_cgraph_encoder_encode_body on master of the clone.
16871         (add_references): Update use of add_node_to.
16872         (compute_ltrans_boundary): Likewise.
16873         (output_cgraph): Do not create written_decls bitmap.
16874         (input_node): Take nodes argument; stream in clone_of correctly.
16875         (input_cgraph_1): Update use of input_node.
16876         * lto-streamer-out.c (lto_output): Use encoder info to decide
16877         what bodies to output.
16878         * ipa-inline.c (cgraph_clone_inlined_nodes,
16879         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
16880         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
16881         (lto_cgraph_encoder_size): Define here.
16882         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
16883         Declare.
16884
16885 2010-05-16  Richard Guenther  <rguenther@suse.de>
16886
16887         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
16888         -fipa-type-escape.
16889         * ipa-type-escape.c (gate_type_escape_vars): Run when
16890         -fipa-struct-reorg runs.
16891         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
16892         * common.opt (fipa-type-escape): Remove.
16893
16894 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
16895
16896         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
16897         (decode_options): Likewise.
16898         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
16899
16900 2010-05-16  Jan Hubicka  <jh@suse.cz>
16901
16902         * ipa.c (function_and_variable_visibility): Also bring local all
16903         aliases.
16904
16905 2010-05-16  Richard Guenther  <rguenther@suse.de>
16906
16907         * alias.c (nonoverlapping_memrefs_p): Remove use of
16908         IPA type-escape information.
16909
16910 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
16911
16912         * c-common.c (c_common_reswords): Add _Static_assert for C.
16913         * c-parser.c (c_token_starts_declaration,
16914         c_parser_next_token_starts_declaration,
16915         c_parser_static_assert_declaration_no_semi,
16916         c_parser_static_assert_declaration): New.
16917         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
16918         Handle static assertions if static_assert_ok.
16919         (c_parser_external_declaration, c_parser_declaration_or_fndef,
16920         c_parser_compound_statement_nostart, c_parser_label,
16921         c_parser_for_statement, c_parser_objc_methodprotolist,
16922         c_parser_omp_for_loop): All callers of
16923         c_parser_declaration_or_fndef changed.
16924         (c_parser_struct_declaration): Handle static assertions.
16925         (c_parser_compound_statement_nostart): Use
16926         c_parser_next_token_starts_declaration and
16927         c_token_starts_declaration to detect start of declarations.
16928         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
16929         Likewise.
16930
16931 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
16932
16933         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16934         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16935         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16936         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16937         (mmix_function_outgoing_value): Rename to...
16938         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
16939         (mmix_function_value_regno_p): Make static.
16940         (mmix_libcall_value): New function.
16941         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
16942         mmix_function_value_regno_p): Remove declaration.
16943
16944 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
16945
16946         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
16947         BUILT_IN_ALLOCA if stack checking is enabled.
16948
16949 2010-05-16  Richard Guenther  <rguenther@suse.de>
16950
16951         * var-tracking.c (vars_copy_1): Inline ...
16952         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16953         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
16954         (variable_merge_over_cur): Adjust.  Merge asserts.
16955         (variable_merge_over_src): Likewise.
16956         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
16957         (variable_post_merge_new_vals): Merge asserts.
16958         (variable_post_merge_perm_vals): Likewise.
16959         (find_mem_expr_in_1pdv): Likewise.
16960         (dataflow_set_different_value): Remove.
16961         (onepart_variable_different_p): Merge asserts.
16962         (variable_different_p): Likewise.
16963         (dataflow_set_different_1): Inline ...
16964         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
16965         (emit_notes_for_differences_1): Merge asserts.
16966
16967 2010-05-16  Richard Guenther  <rguenther@suse.de>
16968
16969         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
16970         * optabs.c (libfunc_decl_hash): Likewise.
16971         * varasm.c (emutls_decl): Likewise.
16972
16973 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
16974
16975         * c-decl.c: Don't include gimple.h.
16976         (merge_decls): Do not copy gimple_body.
16977
16978 2010-05-15  Jason Merrill  <jason@redhat.com>
16979
16980         * c.opt: Add -fnothrow-opt.
16981
16982 2010-05-15  Jan Hubicka  <jh@suse.cz>
16983
16984         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
16985         analyzed.
16986         * passes.c (ipa_write_summaries): Write all analyzed nodes.
16987
16988 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
16989
16990         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
16991         * Makefile.in: Add it.
16992         Fix all other Makefile dependencies for changes below.
16993         * tree.h: Include it instead of defining VEC primitives here.
16994         * gimple.h: Likewise.
16995         * rtl.h: Likewise.
16996         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
16997         * except.h: Include vecir.h, break dependence on tree.h.
16998
16999         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
17000         Move from here...
17001         * tree-iterator.c: ...to here.
17002         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
17003
17004         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
17005         tm_p.h.
17006         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
17007         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
17008         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
17009         tree-mudflap.h, and target.h.
17010         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
17011         predict.h, tree-inline.h, gimple.h, and langhooks.h.
17012         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
17013         Add FIXME for why gimple.h is still included (should be unnecessary
17014         since GCC 4.5 gimplification unit-at-a-time).
17015         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
17016         * c-pragma.c: Add FIXME for why function.h needs to be included just
17017         for cfun, at front-end level.
17018         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
17019         Do not include ggc.h, but include vecprim.h for VEC(char).
17020         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
17021         Explain why target.h is included.
17022         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
17023         Explain why gimple.h is included.
17024         * c-ppoutput.c: Do not include tm.h.
17025         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
17026         * c-parses.c: Explain why rtl.h is included, and that this (and only
17027         this) is also why tm.h must be included.
17028         Do not include except.h.
17029         * c-lang.c: Do not include ggc.h.
17030
17031 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
17032
17033         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
17034
17035 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
17036
17037         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
17038         unions by default if those structs and unions have no tags.  Do
17039         not condition anonymous struct and unions handling on flag_iso.
17040         Allow anonymous structs and unions for C1X.
17041         (finish_struct): Do not diagnose lack of named fields when
17042         anonymous structs and unions present for C1X.  Accept flexible
17043         array members in structure with anonymous structs or unions but no
17044         directly named fields.
17045         * doc/extend.texi (Unnamed Fields): Update.
17046
17047 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
17048
17049         * gimple.h (compare_field_offset): Rename into...
17050         (gimple_compare_field_offset): ...this.
17051         * gimple.c (compare_field_offset): Rename into...
17052         (gimple_compare_field_offset): ...this.  Compare the full access if
17053         the offset is self-referential.
17054         (gimple_types_compatible_p): Adjust for above renaming.
17055         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
17056         DECL_NONADDRESSABLE_P flag of fields before merging them.
17057
17058 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
17059
17060         * tree.h (ctor_to_list): Delete.
17061         * tree.c (ctor_to_list): Delete.
17062
17063 2010-05-15  Jan Hubicka  <jh@suse.cz>
17064
17065         * ipa-reference.c: Include toplev.h
17066         (is_proper_for_analysis): Only add to all_module_statics
17067         if it is allocated.
17068         (write_node_summary_p, stream_out_bitmap,
17069         ipa_reference_write_optimization_summary,
17070         ipa_reference_read_optimization_summary): New.
17071         (struct ipa_opt_pass_d pass_ipa_reference): Add
17072         optimization summary streaming.
17073         * lto-cgraph.c (referenced_from_this_partition_p,
17074         reachable_from_this_partition_p): New functions.
17075         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
17076         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
17077         * opts.c (decode_options): Enable ipa_reference.
17078         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
17079         * lto-streamer.h (referenced_from_this_partition_p,
17080         reachable_from_this_partition_p): Declare.
17081
17082 2010-05-15  Richard Guenther  <rguenther@suse.de>
17083
17084         PR tree-optimization/44038
17085         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
17086         taking the address of a V_C_E of a constant.
17087
17088 2010-05-14  Jan Hubicka  <jh@suse.cz>
17089
17090         * tree.h (memory_identifier_string): Remove.
17091         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
17092         (ipa_reference_global_vars_info_d): Remove statics_not_read and
17093         statics_not_written.
17094         (ipa_reference_optimization_summary_d): New structure.
17095         (ipa_reference_optimization_summary_t): New type and vector.
17096         (ipa_reference_vars_info_d): Embedd structures instead of using
17097         pointers.
17098         (reference_vars_to_consider): Remove out of GGC space.
17099         (module_statics_escape): Remove.
17100         (global_info_obstack): Rename to ...
17101         (optimization_summary_obstack): ... this one.
17102         (initialization_status_t): Remove.
17103         (memory_identifier_string): Remove.
17104         (get_reference_vars_info): Fix indenting.
17105         (set_reference_vars_info): Likewise.
17106         (get_reference_optimization_summary): New.
17107         (set_reference_optimization_summary): New.
17108         (get_global_reference_vars_info): Remove.
17109         (ipa_reference_get_read_global): Remove.
17110         (ipa_reference_get_written_global): Remove.
17111         (ipa_reference_get_not_read_global): Update.
17112         (ipa_reference_get_not_written_global): Update.
17113         (is_proper_for_analysis): Outlaw addressable.
17114         (propagate_bits): Update for new datastructures.
17115         (analyze_variable): Remove.
17116         (init_function_info): Update for new datastructures.
17117         (clean_function_local_data): Remove.
17118         (clean_function): Remove.
17119         (copy_global_bitmap): Use optimizations_summary_obstack.
17120         (duplicate_node_data): Duplicate optimization summary only.
17121         (remove_node_data): Remove optimization summary only.
17122         (generate_summary): Do not analyze variables; do not compute
17123         module_statics_escape; do not prune solutions by it.
17124         (read_write_all_from_decl): Fix typos in comments.
17125         (propagate): Doscover readonly and nonaddressable first;
17126         update for new datastructures; share global bitmaps.
17127         * ipa-reference.h (ipa_reference_get_read_global,
17128         ipa_reference_get_written_global): Remove.
17129         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
17130         * Makefile.in: Remove ipa-refereference from GT files.
17131
17132 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17133
17134         PR debug/44112
17135         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
17136         for all SYMBOL_REF_DECLs.
17137
17138 2010-05-14  Jan Hubicka  <jh@suse.cz>
17139
17140         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
17141         (varpool_all_refs_explicit_p): New inline function.
17142         * ipa-reference.c: Update comment.
17143         (module_statics_written): Remove.
17144         (get_static_decl): Remove.
17145         (ipa_init): Do not initialize module_statics_written.
17146         (analyze_function): Likewise.
17147         (generate_summary): Likewise; do not compute module_statics_readonly
17148         and do not update variable flags.
17149         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
17150         * ipa.c: Inlucde flags.h
17151         (cgraph_local_node_p): New.
17152         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
17153         promote functions to local.
17154         (ipa_discover_readonly_nonaddressable_vars): New function.
17155         (function_and_variable_visibility): Use cgraph_local_node_p.
17156         * varpool.c (varpool_finalize_decl): Set force_output for
17157         DECL_PRESERVE_P vars.
17158
17159 2010-05-14  Jan Hubicka  <jh@suse.cz>
17160
17161         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
17162
17163 2010-05-14  Richard Guenther  <rguenther@suse.de>
17164
17165         PR tree-optimization/44119
17166         * tree-ssa-pre.c (eliminate): Properly mark replacement of
17167         a PHI node necessary.
17168
17169 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17170
17171         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
17172
17173 2010-05-14  Jason Merrill  <jason@redhat.com>
17174
17175         PR c++/44127
17176         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
17177         (gimple_call_set_nothrow): New.
17178         * gimple.c (gimple_build_call_from_tree): Call it.
17179         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
17180
17181         PR c++/44127
17182         * gimplify.c (gimplify_seq_add_stmt): No longer static.
17183         * gimple.h: Declare it.
17184         * gimple.c (gimple_build_eh_filter): No ops.
17185
17186 2010-05-14  Jan Hubicka  <jh@suse.cz>
17187
17188         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
17189         nodes already in queue.
17190         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
17191         re-enqueueing node.
17192
17193 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17194
17195         PR debug/44136
17196         * cfgexpand.c (expand_debug_expr): If non-memory op0
17197         has BLKmode, return NULL.
17198
17199 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
17200
17201         * config.gcc: Add support for --with-cpu option for bdver1.
17202         * config/i386/i386.h (TARGET_BDVER1): New macro.
17203         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
17204         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17205         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
17206         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17207         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
17208         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
17209         (processor_type): Add PROCESSOR_BDVER1.
17210         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
17211         processor_type in config/i386/i386.h.
17212         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
17213         movaps <reg, reg> instead of movapd <reg, reg> when replacing
17214         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
17215         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
17216         to emit packed xor instead of packed double/packed integer
17217         xor for SSE and AVX when moving a zero value.
17218         * config/i386/sse.md: Add check for
17219         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
17220         movapd/movdqa for SSE and AVX.
17221         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
17222         single logical operations i.e and, or and xor instead of packed double
17223         logical operations for SSE and AVX.
17224         * config/i386/i386-c.c (ix86_target_macros_internal):
17225         Add PROCESSOR_BDVER1.
17226         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
17227         (has_fma4, has_xop): New.
17228         * config/i386/i386.c (bdver1_cost): New variable.
17229         (m_BDVER1): New macro.
17230         (m_AMD_MULTIPLE): Add m_BDVER1.
17231         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
17232         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
17233         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
17234         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
17235         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
17236         x86_tune_sse_partial_reg_dependency,
17237         x86_tune_sse_unaligned_load_optimal,
17238         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
17239         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
17240         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
17241         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
17242         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
17243         Enable/disable for bdver1.
17244         (processor_target_table): Add bdver1_cost.
17245         (cpu_names): Add bdver1.
17246         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
17247          processor_alias_table.
17248         (ix86_expand_vector_move_misalign): Change.
17249         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
17250         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
17251         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
17252         of movupd/movdqu for SSE and AVX.
17253         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
17254         (ix86_tune_adjust_cost): Add code for bdver1.
17255         (standard_sse_constant_opcode): Add check for
17256         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
17257         of packed double xor for SSE and AVX.
17258
17259 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
17260
17261         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
17262         result to unsigned.
17263
17264 2010-05-14  Tristan Gingold  <gingold@adacore.com>
17265
17266         * toplev.c (default_debug_hooks): Remove this variable.
17267         (process_options): Remove assignments to default_debug_hooks.
17268
17269 2010-05-14  Martin Jambor  <mjambor@suse.cz>
17270
17271         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
17272         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
17273         * langhooks.h (struct lang_hooks_for_decls): Removed field
17274         fold_obj_type_ref.
17275         * tree.c (free_lang_data): Remove assignment to
17276         lang_hooks.fold_obj_type_ref.
17277         * tree.def (OBJ_TYPE_REF): Update comment.
17278
17279 2010-05-14  Richard Guenther  <rguenther@suse.de>
17280
17281         PR tree-optimization/44124
17282         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
17283
17284 2010-05-14  Alan Modra  <amodra@gmail.com>
17285
17286         PR target/44075
17287         * config/rs6000/rs6000.c (struct machine_function): Reorder
17288         fields for better packing.  Add lr_save_state.
17289         (rs6000_ra_ever_killed): Return lr_save_state if set.
17290         (rs6000_emit_eh_reg_restore): Set lr_save_state.
17291
17292 2010-05-13  Jan Hubicka  <jh@suse.cz>
17293
17294         * varpool.c (decide_is_variable_needed): Drop code checking
17295         TREE_SYMBOL_REFERENCED.
17296
17297 2010-05-13  Jan Hubicka  <jh@suse.cz>
17298
17299         * final.c (output_addr_const): Do not call mark_decl_referenced.
17300         * cgraphunit.c (process_function_and_variable_attributes): Use
17301         mark_needed_node dirrectly.
17302         (assemble_thunk): Do not call mark_decl_referenced.
17303
17304 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
17305
17306         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
17307
17308 2010-05-13  Jeff Law  <law@redhat.com>
17309
17310         * ira-conflicts.c (print_allocno_conflicts): New function broken out
17311         from...
17312         (print_conflicts): Call print_allocno_conflicts.
17313
17314 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17315
17316         PR debug/44104
17317         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
17318         if it is NULL.
17319
17320 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
17321
17322         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
17323         t-mingw-w64 or t-mingw-w32 for multilib configuration.
17324         * config/i386/t-mingw-w32: New.
17325         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
17326
17327 2010-05-13  Martin Jambor  <mjambor@suse.cz>
17328
17329         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
17330         gimple-fold.c).
17331         * gimple-fold.c (get_base_binfo_for_type): New function.
17332         (gimple_get_relevant_ref_binfo): Likewise.
17333         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17334         (gimple_fold_obj_type_ref): Likewise.
17335         (fold_gimple_call): Simplify condition for folding virtual calls
17336         and call gimple_fold_obj_type_ref.
17337         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
17338         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17339
17340 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
17341
17342         * config/rs6000/rs6000-protos.h
17343         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
17344         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
17345         (rs6000_debug_mode_dependent_address)
17346         (rs6000_mode_dependent_address_ptr): Likewise.
17347
17348 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17349
17350         PR debug/43983
17351         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
17352         by SRA.
17353         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
17354         * tree-sra.c (create_access_replacement): Call unshare_expr before
17355         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
17356         * dwarf2out.c: Include tree-flow.h.
17357         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
17358         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
17359         Handle DW_OP_bit_piece.
17360         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
17361         construct_piece_list, adjust_piece_list): New functions.
17362         (add_var_loc_to_decl): Handle SRA optimized variables.
17363         Adjust for var_loc_note to loc field renaming.
17364         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
17365         in VAR_LOCATION note.
17366         (new_loc_descr_op_bit_piece): New function.
17367         (dw_sra_loc_expr): New function.
17368         (dw_loc_list): Use it.  Don't handle the last range after the
17369         loop, handle it inside of the loop.  Adjust for var_loc_note
17370         to loc field renaming.
17371         (add_location_or_const_value_attribute): Only special case
17372         single entry loc lists if loc is NOTE_P.  Adjust for
17373         var_loc_note to loc field renaming.
17374         (dwarf2out_var_location): Don't set newloc->var_loc_note
17375         and newloc->next here.
17376
17377 2010-05-12  Jan Hubicka  <jh@suse.cz>
17378
17379         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
17380         flag.
17381         * cgraph.h (cgraph_only_called_directly_p,
17382         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
17383         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
17384         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
17385         (assemble
17386         * ipa.c (cgraph_remove_unreachable_nodes): Use
17387         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
17388         flags.
17389         * tree-inline.c (copy_bb): Check address_taken flag.
17390         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
17391         externally_visible flag.
17392
17393 2010-05-12  Jason Merrill  <jason@redhat.com>
17394
17395         PR bootstrap/44048
17396         PR target/44099
17397         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
17398         * sdbout.c (plain_type_1): Likewise.
17399         * dwarf2out.c (is_base_type): Likewise.
17400         (gen_type_die_with_usage): Likewise.  Generate
17401         DW_TAG_unspecified_type for any LANG_TYPE.
17402
17403 2010-05-12  Jan Hubicka  <jh@suse.cz>
17404
17405         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
17406         indrect edges too.
17407         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
17408         (cgraph_clone_edge): Update.
17409         (cgraph_node_remove_callees): Remove indirect calls too.
17410         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
17411         (cgraph_create_indirect_edge): Update prototype.
17412         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
17413         is_proper_for_analysis.
17414         (add_new_function, visited_nodes, function_insertion_hook_holder,
17415         get_local_reference_vars_info, mark_address_taken, mark_address,
17416         mark_load, mark_store, check_asm_memory_clobber, check_call,
17417         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
17418         (ipa_init): Do not initialize visited_nodes;
17419         function_insertion_hook_holder.
17420         (analyze_variable): Rewrite.
17421         (analyze_function): Rewrite.
17422         (copy_local_bitmap): Remove.
17423         (duplicate_node_dat): Do not duplicate local info.
17424         (generate_summary): Simplify to only walk cgraph.
17425         (write_node_summary_p, ipa_reference_write_summary,
17426         ipa_reference_read_summary): Remove.
17427         (propagate): Do not remove function insertion;
17428         generate summary.
17429         (pass_ipa_reference): NULLify summary handling fields.
17430         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
17431         (input_edge): Input ecf_flags.
17432         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
17433         (update_indirect_edges_after_inlining): Ignore edges with unknown
17434         param.
17435
17436 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
17437
17438         * implicit-zee.c: New file.
17439         * tree-pass.h (pass_implicit_zee): Declare.
17440         * passes.c (init_optimization_passes): Add zee pass.
17441         * common.opt (fzee): New flag.
17442         * timevar.def (TV_ZEE): Define.
17443         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
17444         and beyond.
17445         * Makefile.in (implicit-zee.o): Add new build file.
17446
17447 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17448             Nathan Froyd  <froydnj@codesourcery.com>
17449
17450         * c-common.c (sync_resolve_params): Remove write-only variable.
17451
17452 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
17453
17454         * target.h (struct gcc_target): Add mode_dependent_address_p field.
17455         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17456         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
17457         * targhooks.c (default_mode_dependent_address_p): New function.
17458         * targhooks.h (default_mode_dependent_address_p): Declare function.
17459         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17460         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
17461         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
17462         target hook. Change return type to bool.
17463         * recog.h (mode_dependent_address_p): Change return type to bool.
17464
17465 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17466             Nathan Froyd  <froydnj@codesourcery.com>
17467
17468         * tree-mudflap.c (build_function_type_0, build_function_type_1,
17469         build_function_type_2, build_function_type_3): Remove.
17470         (mudflap_init): Use build_function_type_list.
17471
17472 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17473             Nathan Froyd  <froydnj@codesourcery.com>
17474
17475         * coverage.c (build_fn_info_value): Call build_constructor instead of
17476         build_constructor_from_list.
17477         (build_ctr_info_value): Likewise.
17478         (build_gcov_info): Likewise.
17479
17480 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
17481
17482         * tree.c (build_constructor): Compute TREE_CONSTANT for the
17483         resultant constructor.
17484         (build_constructor_single): Don't set TREE_CONSTANT.
17485         (build_constructor_from_list): Don't compute TREE_CONSTANT.
17486
17487 2010-05-12  Jan Hubicka  <jh@suse.cz>
17488
17489         * cgraph.h (struct varpool_node): Add aux.
17490         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
17491         * varpool.c (varpool_remove_node): Do not remove initializer.
17492         (varpool_reset_queue): Export.
17493         (varpool_finalize_decl): Volatile vars are forced to be output.
17494         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
17495         replaced decl.
17496         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
17497         process_references, varpool_can_remove_if_no_refs): New functions.
17498         (cgraph_remove_unreachable_nodes): Handle variables too.
17499
17500 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
17501
17502         PR target/44088
17503         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
17504
17505 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
17506
17507         PR middle-end/44085
17508         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
17509         change value of ORT_TASK.
17510         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
17511         (omp_notice_threadprivate_variable): New function.
17512         (omp_notice_variable): Call it for threadprivate variables.
17513         If enclosing ctx is a task, print enclosing task rather than
17514         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
17515         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
17516         if task has untied clause.
17517
17518         PR debug/42278
17519         * dwarf2out.c (base_type_die): Don't add name attribute here.
17520         (modified_type_die): Instead of sizetype use
17521         its underlying original type.  If a DW_TAG_base_type doesn't
17522         have name added, add __unknown__.
17523         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
17524         always call force_type_die instead.
17525
17526 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
17527
17528         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
17529         for __stack_chk_guard.
17530
17531 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
17532
17533         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
17534         don't call start_source_file debug hook here...
17535         (finish_options): ... but here, after outputting predefined and
17536         command line defines and undefs.
17537
17538         PR middle-end/44071
17539         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
17540         no fallthru edge.
17541         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
17542         optimizing away empty bb with no successors, move over its
17543         footer chain to fallthru predecessor.
17544         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
17545         (rtl_split_edge): For asm goto call patch_jump_insn even if
17546         splitting fallthru edge.
17547
17548         PR c++/44059
17549         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
17550         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
17551         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
17552         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
17553         on DW.ref.* decls.
17554
17555         PR c++/44062
17556         * c-parser.c (c_parser_expression): Mark LHS of a comma
17557         expression as read if it is a decl, handled component or
17558         COMPOUND_EXPR with that on the RHS.
17559         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
17560         if it is a decl or handled component.
17561
17562 2010-05-11  Jan Hubicka  <jh@suse.cz>
17563
17564         * lto-symtab.c (lto_symtab_free): New function.
17565         * lto-streamer.h (lto_symtab_free): Declare.
17566
17567 2010-05-11  Jan Hubicka  <jh@suse.cz>
17568
17569         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
17570         that if function is needed it is reachable.
17571         (lto_output_node): See if it the function is reachable or referenced.
17572         (output_cgraph): Update call of lto_output_node.
17573         * lto-streamer.h (reachable_from_other_partition_p): Declare.
17574
17575 2010-05-11  Jan Hubicka  <jh@suse.cz>
17576
17577         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
17578         Mark as used.
17579
17580 2010-05-11  Jan Hubicka  <jh@suse.cz>
17581
17582         PR tree-optimize/44063
17583         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
17584         queue.
17585         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
17586         limits.
17587         (estimate_function_body_sizes): Compute sizes even when disregarding.
17588
17589 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
17590
17591         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
17592
17593 2010-05-11  Jan Hubicka  <jh@suse.cz>
17594
17595         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
17596         into every boundary.
17597
17598 2010-05-11  Jan Hubicka  <jh@suse.cz>
17599
17600         * matrix-reorg.c (matrix_reorg): Rebuild edges.
17601
17602 2010-05-11  Jan Hubicka  <jh@suse.cz>
17603
17604         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
17605         lto_streamer_cache_delete): Put nodes into heap.
17606         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
17607         heap.
17608
17609 2010-05-11  Jan Hubicka  <jh@suse.cz>
17610
17611         * cgraphbuild.c (cgraph_rebuild_references): New.
17612         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
17613         out extern inlines.
17614         * cgraph.h (cgraph_rebuild_references): Declare.
17615         * tree-inline.c (tree_function_versioning): Use it.
17616         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
17617
17618 2010-05-11  Jan Hubicka  <jh@suse.cz>
17619
17620         * cgraph.c: Include ipa-utils.h
17621         (cgraph_create_virtual_clone): Update references.
17622         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
17623
17624 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
17625
17626         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
17627         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
17628         cache size.
17629
17630 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
17631
17632         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
17633
17634 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
17635
17636         * gcc.c (execute): For -### don't quote arguments that
17637         contain just alphanumerics and _/-. characters.
17638         * doc/invoke.texi: Document that change for -###.
17639
17640         PR debug/44023
17641         * df-problems.c (struct dead_debug): Add to_rescan field.
17642         (dead_debug_init): Clear to_rescan field.
17643         (dead_debug_finish): Rescan all debug insns in to_rescan
17644         bitmap and free the bitmap.
17645         (dead_debug_insert_before): Instead of rescanning debug insns
17646         immediately queue their rescanning until dead_debug_finish.
17647         (df_note_bb_compute): After dead_debug_add do continue instead
17648         of break.
17649
17650 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
17651
17652         PR debug/44028
17653         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
17654         clear also INSN_REG_USE_LIST.
17655
17656 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17657
17658         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
17659
17660 2010-05-10  Jan Hubicka  <jh@suse.cz>
17661
17662         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
17663         commited change.
17664
17665 2010-05-10  Jan Hubicka  <jh@suse.cz>
17666
17667         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
17668         Allocate encoders.
17669         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
17670         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
17671         (lto_streamer_cache_create): Init alloc pool.
17672         (lto_streamer_cache_delete): Free alloc pool.
17673         * lto-streamer.h: Include alloc pool.
17674         (lto_streamer_cache_d): Use alloc pool.
17675         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
17676
17677 2010-05-10  Jan Hubicka  <jh@suse.cz>
17678
17679         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
17680         * cgraphbuild.c: Include except.h
17681         (record_type_list, record_eh_tables): New function.
17682         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
17683
17684 2010-05-10  Jan Hubicka  <jh@suse.cz>
17685
17686         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
17687         __frame_dummy_init_array_entry, force_to_data): Attribute as used
17688         rather than unused.
17689
17690 2010-05-10  Michael Matz  <matz@suse.de>
17691
17692         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
17693         (can_reassociate_p): Use FLOAT_TYPE_P.
17694         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
17695         (vect_force_simple_reduction): ... this.
17696         * tree-parloops.c (gather_scalar_reductions): Use
17697         vect_force_simple_reduction.
17698         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
17699         vect_is_simple_reduction, add modify argument, if true rewrite
17700         "a-b" into "a+(-b)".
17701         (vect_is_simple_reduction, vect_force_simple_reduction): New
17702         functions.
17703         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
17704
17705 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
17706             Vladimir Makarov  <vmakarov@redhat.com>
17707
17708         PR rtl-optimization/44012
17709         * ira-build.c (remove_unnecessary_allocnos): Nullify
17710         regno_allocno_map of the removed allocno.
17711
17712 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17713
17714         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
17715         to /dev/null.
17716         * configure: Regenerate.
17717
17718 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17719
17720         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
17721         unused.
17722         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
17723         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
17724         support in Sun ld.
17725         * configure: Regenerate.
17726
17727 2010-05-10  Richard Guenther  <rguenther@suse.de>
17728
17729         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
17730         marked if the entry identifier is marked.
17731
17732 2010-05-10  Richard Guenther  <rguenther@suse.de>
17733
17734         * c-common.c (struct c_common_attributes): Add fnspec attribute.
17735         (handle_fnspec_attribute): New function.
17736         * gimple.h (gimple_call_return_flags): Declare.
17737         (gimple_call_arg_flags): Likewise.
17738         * gimple.c (gimple_call_arg_flags): New function.
17739         (gimple_call_return_flags): Likewise.
17740         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
17741         New argument flags.
17742         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
17743         return value flags.
17744         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
17745         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
17746         main work to ...
17747         (make_heapvar_for): ... this new function.
17748         (handle_rhs_call): Handle fnspec attribute argument specifiers.
17749         (handle_lhs_call): Likewise.
17750         (find_func_aliases): Adjust.
17751
17752 2010-05-10  Richard Guenther  <rguenther@suse.de>
17753
17754         PR tree-optimization/44050
17755         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
17756
17757 2010-05-10  Wei Guozhi  <carrot@google.com>
17758
17759         PR target/42879
17760         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
17761
17762 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
17763
17764         PR c/10676
17765         * c-typeck.c (lookup_field): Take a type directly.  Update
17766         recursive calls.
17767         (build_component_ref): Update call to lookup_field.
17768         (set_init_label): Use lookup_field to find initialized field.
17769         Handle returned list of fields like a sequence of designators.
17770
17771 2010-05-09  Richard Guenther  <rguenther@suse.de>
17772
17773         PR middle-end/44024
17774         * fold-const.c (tree_single_nonzero_warnv_p): Properly
17775         handle &FUNCTION_DECL.
17776
17777 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
17778
17779         PR c/4784
17780         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
17781         structures and unions recursively.
17782         (detect_field_duplicates): Move duplicate detection with a hash to
17783         detect_field_duplicates_hash.  Always use a hash if anonymous
17784         structures or unions are present.
17785         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
17786         give errors.
17787
17788 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
17789
17790         PR target/44046
17791         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
17792         detect Atom, Core 2 and Core i7.
17793
17794 2010-05-09  Richard Guenther  <rguenther@suse.de>
17795
17796         * gcc.c (store_arg): Handle temporary file deletion for
17797         joined arguments.
17798
17799 2010-05-09  Richard Guenther  <rguenther@suse.de>
17800
17801         PR middle-end/44043
17802         * ipa-inline.c (estimate_function_body_sizes): Return after
17803         disregarding inline limits.
17804
17805 2010-05-09  Richard Guenther  <rguenther@suse.de>
17806
17807         * gcc.c (store_arg): Revert last change.
17808
17809 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
17810
17811         PR middle-end/28685
17812         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
17813         (optimize_ops_list): Call it.
17814
17815 2010-05-08  Richard Guenther  <rguenther@suse.de>
17816
17817         PR tree-optimization/44030
17818         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
17819         NECESSARY flag if we propagate from a inserted expression.
17820
17821 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
17822
17823         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
17824         domain types as equal if they are both PLACEHOLDER_EXPRs.
17825
17826 2010-05-08  Richard Guenther  <rguenther@suse.de>
17827
17828         * lto-wrapper.c (run_gcc): Remove linker output from
17829         command line for LTRANS invocation.
17830
17831 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
17832
17833         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
17834         lto-macho as lto_binary_reader.
17835         * target.h (struct gcc_target): New hooks lto_start and lto_end.
17836         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
17837         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
17838         in lto_start and lto_end calls.
17839         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
17840         magic numbers.
17841         (scan_prog_file): Update is_elf_or_coff call.
17842         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
17843
17844         * collect2.c (main): Fix enum comparison.
17845
17846         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
17847         Add prototypes.
17848         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
17849         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
17850         and TARGET_ASM_LTO_END.
17851         * darwin.c: Include obstack.h and lto-streamer.h.
17852         (lto_section_names_offset, lto_section_names_obstack,
17853         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
17854         global variables.
17855         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
17856         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
17857         to a temporary file.
17858         (darwin_asm_lto_end): New function.  Restore asm_out_file.
17859         (darwin_asm_named_section): For LTO sections, replace the name with
17860         the offset of the section name in a string table, and build this
17861         table.
17862         (darwin_file_start): Initialize global vars for LTO support.
17863         (darwin_file_end): If output to asm_out_file was redirected, append it
17864         to the proper asm_out_file here.  Add the section names section.
17865
17866 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
17867
17868         * c-pragma.c (pending_weak_d, pending_weak): New.
17869         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
17870         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
17871         handle_pragma_weak): Update the uses of pending_weaks.
17872
17873 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17874
17875         PR documentation/44016
17876         * doc/standards.texi (Standards): Link to unversioned
17877         cxx0x_status.html page.
17878
17879 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
17880
17881         PR target/43708
17882         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
17883         in addition to TREE_USED, to avoid "set but unused" warnings.
17884
17885 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17886
17887         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
17888         (is_loop_prefetching_profitable): Do not insert prefetches
17889         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
17890         times the prefetch ahead distance.
17891
17892 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17893
17894         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
17895         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
17896         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
17897         the unroll_factor.
17898
17899 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
17900
17901         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
17902         a diagnostic info when the insn-to-mem ratio is too small.
17903
17904 2010-05-07  Richard Guenther  <rguenther@suse.de>
17905
17906         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
17907         the linker plugin.
17908         (store_arg): Queue temp_filename for deletion instead of
17909         the whole argument.
17910
17911 2010-05-07  Richard Guenther  <rguenther@suse.de>
17912
17913         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
17914         (run_gcc): Handle LTRANS phase invocation.
17915         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
17916
17917 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
17918
17919         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
17920         this is also meaningful on PARM_DECLs and RESULT_DECLs.
17921
17922 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17923
17924         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
17925
17926 2010-05-07  Richard Guenther  <rguenther@suse.de>
17927
17928         PR tree-optimization/44020
17929         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
17930         code when PRE is not yet initialized.
17931
17932 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17933
17934         * config/mips/dbxmdebug.h: Remove.
17935         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
17936
17937 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
17938
17939         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
17940         with null pointer and also warn about ordered comparison of zero with
17941         pointer if -Wextra.
17942
17943 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17944
17945         * graphite-blocking.c
17946         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
17947         * graphite-clast-to-gimple.c
17948         (clast_to_gcc_expression): Same.
17949         (precision_for_value): Same.
17950         (precision_for_interval): Same.
17951         (gcc_type_for_interval): Same.
17952         (graphite_create_new_guard): Same.
17953         (compute_bounds_for_level): Same.
17954         (graphite_create_new_loop_guard): Same.
17955         * graphite-interchange.c
17956         (build_linearized_memory_access): Same.
17957         (pdr_stride_in_loop): Same.
17958         (memory_strides_in_loop_1): Same.
17959         (memory_strides_in_loop): Same.
17960         (extend_scattering): Same.
17961         (psct_scattering_dim_for_loop_depth): Same.
17962         (pbb_number_of_iterations): Same.
17963         * graphite-poly.h
17964         (debug_iteration_domains): Same.
17965         * graphite-ppl.c
17966         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17967         (ppl_set_inhomogeneous_gmp): Same.
17968         (ppl_strip_loop): Same.
17969         (ppl_lexico_compare_linear_expressions): Same.
17970         (ppl_read_polyhedron_matrix): Same.
17971         (ppl_max_for_le_pointset): Same.
17972         * graphite-ppl.h
17973         (ppl_read_polyhedron_matrix): Same.
17974         (tree_int_to_gmp): Same.
17975         (gmp_cst_to_tree): Same.
17976         (ppl_set_inhomogeneous): Same.
17977         (ppl_set_inhomogeneous_tree): Same.
17978         (ppl_set_coef): Same.
17979         (ppl_set_coef_tree): Same.
17980         * graphite-sese-to-poly.c
17981         (build_pbb_scattering_polyhedrons): Same.
17982         (build_scop_scattering): Same.
17983         (scan_tree_for_params_right_scev): Same.
17984         (scan_tree_for_params): Same.
17985         (find_params_in_bb): Same.
17986         (find_scop_parameters): Same.
17987         (add_upper_bounds_from_estimated_nit): Same.
17988         (build_loop_iteration_domains): Same.
17989         (add_condition_to_domain): Same.
17990         (pdr_add_memory_accesses): Same.
17991
17992 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17993
17994         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
17995         CLooG's value_* macros to their respective mpz_* counterparts.
17996         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
17997         (graphite_create_new_loop_guard): Same.
17998         * graphite-interchange.c (build_linearized_memory_access): Same.
17999         (pdr_stride_in_loop): Same.
18000         (memory_strides_in_loop_1): Same.
18001         (1st_interchange_profitable_p): Same.
18002         * graphite-poly.c (extend_scattering): Same.
18003         (psct_scattering_dim_for_loop_depth): Same.
18004         (pbb_number_of_iterations): Same.
18005         (pbb_number_of_iterations_at_time): Same.
18006         * graphite-poly.h (new_1st_loop): Same.
18007         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
18008         (oppose_constraint): Same.
18009         (insert_constraint_into_matrix): Same.
18010         (ppl_set_inhomogeneous_gmp): Same.
18011         (ppl_set_coef_gmp): Same.
18012         (ppl_strip_loop): Same.
18013         (ppl_lexico_compare_linear_expressions): Same.
18014         (ppl_max_for_le_pointset): Same.
18015         (ppl_min_for_le_pointset): Same.
18016         (ppl_build_realtion): Same.
18017         * graphite-ppl.h (gmp_cst_to_tree): Same.
18018         (ppl_set_inhomogeneous): Same.
18019         (ppl_set_inhomogeneous_tree): Same.
18020         (ppl_set_coef): Same.
18021         (ppl_set_coef_tree): Same.
18022         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
18023         (build_scop_scattering): Same.
18024         (add_value_to_dim): Same.
18025         (scan_tree_for_params_right_scev): Same.
18026         (scan_tree_for_params_int): Same.
18027         (scan_tree_for_params): Same.
18028         (find_params_in_bb): Same.
18029         (find_scop_parameters): Same.
18030         (add_upper_bounds_from_estimated_nit): Same.
18031         (build_loop_iteration_domains): Same.
18032         (create_linear_expr_from_tree): Same.
18033         (add_condition_to_domain): Same.
18034         (pdr_add_memory_accesses): Same.
18035
18036 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
18037             Jason Merrill  <jason@redhat.com>
18038
18039         * c-common.c (c_common_reswords): Add nullptr.
18040         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
18041         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
18042         (gen_type_die_with_usage): Likewise.
18043         * dbxout.c (dbxout_type): Likewise.
18044         * sdbout.c (plain_type_1): Likewise.
18045
18046 2010-05-06  Jason Merrill  <jason@redhat.com>
18047
18048         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
18049         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
18050         ret appropriately.
18051         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
18052
18053         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
18054         stripping WITH_SIZE_EXPR.
18055         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
18056         change.
18057
18058 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18059
18060         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
18061         list of obsolete configurations.
18062         Disabled check for obsolete configurations.
18063         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
18064         Removed support for previous versions.
18065         * config/mips/iris.h: Removed.
18066         * config/mips/iris5.h: Removed.
18067         * config/mips/iris6.h: Merged old iris.h contents.
18068         (TARGET_IRIX): Removed.
18069         (DRIVER_SELF_SPECS): Removed mabi=32.
18070         (IDENT_ASM_OP): Removed undef.
18071         (STARTFILE_SPEC): Removed mabi=32.
18072         (ENDFILE_SPEC): Likewise.
18073         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
18074         (MACHINE_TYPE): Update for IRIX 6.5.
18075         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
18076         TARGET_IRIX by TARGET_IRIX6.
18077         (mips_file_start): Likewise.
18078         (mips_output_external): Remove IRIX 5/6 O32 support.
18079         (mips_output_function_prologue): Likewise.
18080         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
18081         TARGET_IRIX6.
18082         (TARGET_CPU_CPP_BUILTINS): Likewise.
18083         (TARGET_IRIX): Removed.
18084         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
18085         (MULTILIB_DIRNAMES): Removed 32.
18086         (MULTILIB_OSDIRNAMES): Removed ../lib.
18087         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
18088         (Specific, mips-sgi-irix5): Document removal.
18089         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
18090         Remove references to older IRIX 6 releases and the O32 ABI.
18091
18092 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
18093
18094         PR bootstrap/43994
18095         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
18096         instead of DF_REF_REAL_REG.
18097
18098 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
18099
18100         PR target/43888
18101         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
18102         handling to still return true for x64 targets.
18103
18104 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18105
18106         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
18107
18108 2010-05-06  Jan Hubicka  <jh@suse.cz>
18109
18110         PR tree-optimization/43791
18111         * ipa-inline.c (update_caller_keys): Remove bogus
18112         disregard_inline_limits check.
18113
18114 2010-05-06  Michael Matz  <matz@suse.de>
18115
18116         PR tree-optimization/43984
18117         * tree-ssa-pre.c (inserted_phi_names): Remove.
18118         (inserted_exprs): Change to bitmap.
18119         (create_expression_by_pieces): Set bits, don't append to vector.
18120         (insert_into_preds_of_block): Don't handle inserted_phi_names.
18121         (eliminate): Don't look at inserted_phi_names, remove deleted
18122         insns from inserted_exprs.
18123         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
18124         (init_pre, fini_pre): Allocate and free bitmaps.
18125         (execute_pre): Insert insns on edges before elimination.
18126
18127 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18128
18129         * tree.c (initializer_zerop): Handle STRING_CST.
18130
18131 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18132
18133         PR 40989
18134         * doc/invoke.texi (Wimplicit): Document as C only.
18135         * opts.c (common_handle_option): Add argument kind.
18136         (handle_option): Rename as read_cmdline_option. Factor out code to...
18137         (handle_option): ... here. New.
18138         (handle_options): Rename as read_cmdline_options.
18139         (decode_options): Update call.
18140         (set_option): Use option index instead of option pointer. Classify
18141         diagnostics correctly.
18142         (enable_warning_as_error): Call handle_option.
18143         * opts.h (set_option): Update declaration.
18144         (handle_option): Declare.
18145         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
18146         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
18147         * c-opts.c (set_Wimplicit): Delete.
18148         (c_family_lang_mask): New static constant.
18149         (c_common_handle_option): Add argument kind. Use handle_option
18150         instead of set_Wimplicit.
18151         (c_common_post_options): warn_implicit and warn_implicit_int
18152         are disabled by default.
18153         * c-common.c (warn_implicit): Do not define here.
18154         * c-common.h (warn_implicit): Do not declare here.
18155         (c_common_handle_option): Update declaration.
18156         * lto-opts.c (lto_reissue_options): Update call to set_option.
18157
18158 2010-05-06  Richard Guenther  <rguenther@suse.de>
18159
18160         PR tree-optimization/43571
18161         * domwalk.c (walk_dominator_tree): Walk the dominator
18162         sons in more optimal order.
18163
18164 2010-05-06  Richard Guenther  <rguenther@suse.de>
18165
18166         PR tree-optimization/43934
18167         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
18168         (stmt_cost): Likewise.
18169         (extract_true_false_args_from_phi): New helper.
18170         (determine_max_movement): For PHI nodes verify we can hoist them
18171         and compute their cost.
18172         (determine_invariantness_stmt): Handle PHI nodes.
18173         (move_computations_stmt): Likewise.  Hoist PHI nodes in
18174         if-converted form using COND_EXPRs.
18175         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
18176         (tree_ssa_lim): Likewise.
18177         * tree-flow.h (tree_ssa_lim): Adjust prototype.
18178         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
18179
18180 2010-05-06  Richard Guenther  <rguenther@suse.de>
18181
18182         PR tree-optimization/43987
18183         * tree-ssa-structalias.c (could_have_pointers): For possibly
18184         address-taken variables force pointers to be recorded.
18185         (create_variable_info_for_1): Likewise.
18186         (push_fields_onto_fieldstack): Pass in wheter all fields
18187         must have pointers.
18188         (find_func_aliases): Query types instead of vars whether
18189         they contain pointers where appropriate.
18190
18191 2010-05-06  Jan Hubicka  <jh@suse.cz>
18192
18193         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
18194         (record_reference, mark_address, mark_load, mark_store): Record
18195         references.
18196         (record_references_in_initializer): Update call of record_references.
18197         (rebuild_cgraph_edges): Remove all references before rebuiding.
18198         * cgraph.c (cgraph_create_node): Clear ref list.
18199         (cgraph_remove_node): Remove references.
18200         (dump_cgraph_node): Dump references.
18201         (cgraph_clone_node): Clone references.
18202         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
18203         (struct cgraph_node, varpool_node): Add ref_lst.
18204         * ipa-ref.c: New file.
18205         * ipa-ref.h: New file.
18206         * ipa-ref-inline.h: New file.
18207         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
18208         (referenced_from_other_partition_p): New function.
18209         (lto_output_varpool_node): Take set arugment; call
18210         referenced_from_other_partition.
18211         (lto_output_ref): New.
18212         (add_references): New.
18213         (output_refs): New.
18214         (output_cgraph): Compute boundary based on references; output refs.
18215         (output_varpool): Accept cgraph_node_set argument.
18216         (input_ref): New.
18217         (input_refs): New.
18218         (input_cgraph): Call input_refs.
18219         * lto-section-in.c (lto_section_name): Add refs.
18220         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
18221         (ipa-ref.o): New file.
18222         * varpool.c (varpool_node): Clear ipa ref list.
18223         (varpool_remove_node): Remove references.
18224         (dump_varpool_node): Dump references.
18225         (varpool_assemble_decl): Only compile finalized ones.
18226         (varpool_extra_name_alias): Initialize ref list.
18227         * lto-streamer.c (lto-get_section_name): Add .refs section.
18228         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
18229         (referenced_from_other_partition_p): Declared.
18230
18231 2010-05-06  Ira Rosen  <irar@il.ibm.com>
18232
18233         PR tree-optimization/43901
18234         * tree-vect-stmts.c (vectorizable_call): Assert that vector
18235         type is not NULL if it's transformation phase, and return
18236         FALSE if it's analysis.
18237         (vectorizable_conversion, vectorizable_operation,
18238         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
18239
18240 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
18241
18242         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18243         Delete.
18244         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18245         New define.
18246         * config/mips/mips-protos.h
18247         (mips_small_register_classes_for_mode_p): Delete prototype.
18248
18249 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
18250
18251         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
18252         * config/arm/arm.c (multiple_operation_profitable_p,
18253         compute_offset_order): New static functions.
18254         (load_multiple_sequence, store_multiple_sequence): Use them.
18255         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
18256         memory offsets, not register numbers.
18257         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
18258
18259 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
18260
18261         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
18262         (get_pending_sizes, put_pending_size, put_pending_sizes):
18263         Update the uses of pending_sizes.
18264         * c-decl.c (store_parm_decls): Likewise.
18265         * c-tree.h (struct c_arg_info): Likewise.
18266         * tree.h: Update the prototype for get_pending_sizes and
18267         put_pending_sizes.
18268
18269 2010-05-05  Jason Merrill  <jason@redhat.com>
18270
18271         PR debug/43370
18272         * c-common.c (handle_aligned_attribute): Respect
18273         ATTR_FLAG_TYPE_IN_PLACE.
18274
18275         PR testsuite/43758
18276         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
18277         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18278         (TARGET_INITIALIZER): Use it.
18279         * c-common.c (attribute_takes_identifier_p): Call it.
18280         * c-common.h: Update prototype.
18281         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
18282         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18283
18284 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18285
18286         PR debug/43950
18287         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
18288         DW_ID_down_case for Fortran compilation units.
18289
18290 2010-05-05  Jan Hubicka  <jh@suse.cz>
18291
18292         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
18293         handle aliases.
18294
18295 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
18296
18297         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
18298         a variable-sized RESULT_DECL.
18299
18300 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
18301
18302         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
18303
18304 2010-05-05  Jason Merrill  <jason@redhat.com>
18305
18306         PR c++/43787
18307         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
18308         returns GS_OK.
18309         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
18310
18311 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
18312             Jakub Jelinek  <jakub@redhat.com>
18313
18314         PR debug/43478
18315         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
18316         (dead_debug_init, dead_debug_finish): New functions.
18317         (dead_debug_add, dead_debug_insert_before): Likewise.
18318         (df_note_bb_compute): Initialize a dead_debug object, add dead
18319         debug uses to it, insert debug bind insns before death insns,
18320         reset debug insns that refer to pending uses at the end.
18321         * rtl.h (make_debug_expr_from_rtl): New prototype.
18322         * varasm.c (make_debug_expr_from_rtl): New function.
18323
18324 2010-05-05  Jan Hubicka  <jh@suse.cz>
18325
18326         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
18327         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
18328         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
18329         lto_varpool_encoder_deref, lto_varpool_encoder_size,
18330         lto_varpool_encoder_encode_initializer_p,
18331         lto_set_varpool_encoder_encode_initializer): New functions.
18332         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
18333         call output_varpool.
18334         (input_varpool_node): Do not always set analyzed.
18335         (input_cgraph_1): Return vector of cgraph nodes.
18336         (input_varpool_1): Return vector of varpools.
18337         (input_cgraph): Free the vectors.
18338         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18339         output only initializers needed.
18340         (lto_output): Only call output_cgraph.
18341         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
18342         * lto-section-out.c (lto_new_out_decl_state): Initialize
18343         state->varpool_node_encoder.
18344         * lto-streamer.h (lto_varpool_encoder_d): New.
18345         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
18346         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
18347         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
18348         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
18349         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
18350         Declare.
18351         (output_varpool, input_varpool): Remove declarations.
18352
18353 2010-05-05  Jan Hubicka  <jh@suse.cz>
18354
18355         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
18356         with body can prevail.
18357
18358 2010-05-05  Jan Hubicka  <jh@suse.cz>
18359
18360         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
18361         size.
18362
18363 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18364
18365         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
18366
18367         * gengtype.h (erro_at_line): Constify pos argument.
18368
18369         * gengtype.c: Include hashtab.h.
18370         (enum gc_used): Document GC_MAYBE_POINTED_TO.
18371         (error_at_line): Constify pos argument.
18372         (do_typedef): Initialize p->opt field.
18373         (get_file_gtfilename): Fix comment typo.
18374         (struct walk_type_data): Constify line field.
18375         (get_output_file_for_structure): New function.
18376         (write_local_func_for_structure): Constify orig_s argument.
18377         Use get_output_file_for_structure.
18378         (write_func_for_structure): Use get_output_file_for_structure.
18379         (INDENT): New define.
18380         (dump_pair, dump_type, dump_type_list, dump_typekind)
18381         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
18382         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
18383         functions.
18384         (seen_types): New variable.
18385         (main): New variable do_dump.  Process "-d" command line option.
18386         Call dump_everything if dump requested.
18387
18388 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18389
18390         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
18391         in a temporary instead of invoking the macro multiple times.
18392         (track_expr_p): Likewise.
18393
18394 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
18395
18396         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
18397         per new semantics.
18398         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
18399         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
18400         conditions for printing notes.
18401         * common.opt (-Wcoverage-mismatch): Allow negative, default to
18402         true, update documentation.
18403         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
18404
18405 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
18406
18407         PR c/43981
18408         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
18409         on dimen.
18410
18411 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18412
18413         PR target/43799
18414         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
18415         (*sse_prologue_save_insn1): Likewise.
18416         (SSE prologue save splitter): Likewise.
18417
18418 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
18419
18420         * tree.c (free_lang_data_in_one_sizepos): New inline function.
18421         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
18422         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
18423         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
18424         all decls.  Call it on DECL_FIELD_OFFSET of fields.
18425         (find_decls_types_r): Follow DECL_VALUE_EXPR.
18426         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
18427
18428 2010-05-04  Martin Jambor  <mjambor@suse.cz>
18429
18430         * tree-sra.c (build_access_from_expr_1): The first parameter type
18431         changed to simple tree.
18432         (build_access_from_expr): Likewise, gsi parameter was eliminated.
18433         (scan_assign_result): Renamed to assignment_mod_result, enum elements
18434         renamed as well.
18435         (build_accesses_from_assign): Removed all parameters except for a
18436         simple gimple statement.  Now returns a simple bool.
18437         (scan_function): All non-analysis parts moved to separate functions
18438         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
18439         parameters and updated both callers.
18440         (sra_modify_expr): Removed parameter data.
18441         (sra_modify_function_body): New function.
18442         (perform_intra_sra): Call sra_modify_function_body to modify the
18443         function body.
18444         (replace_removed_params_ssa_names): Parameter data changed into
18445         adjustments vector.
18446         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
18447         changed the parameter dont_convert to convert with the opposite
18448         meaning.
18449         (sra_ipa_modify_assign): Parameter data changed into adjustments
18450         vector, return value changed to bool.
18451         (ipa_sra_modify_function_body): New function.
18452         (sra_ipa_reset_debug_stmts): Updated a comment.
18453         (modify_function): Use ipa_sra_modify_function_body to modify function
18454         body.
18455
18456 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18457
18458         PR middle-end/43671
18459         * alias.c (true_dependence): Handle the same VALUE in x and mem.
18460         (canon_true_dependence): Likewise.
18461         (write_dependence_p): Likewise.
18462
18463 2010-05-04  Jan Hubicka  <jh@suse.cz>
18464
18465         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
18466         * cgraphbuild.c: Include ipa-utils.h
18467         (record_reference_ctx): New struct.
18468         (record_reference): Simplify to work on initializers; not statements.
18469         (mark_address, mark_load, mark_store): New.
18470         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18471         walk PHI nodes too.
18472         (record_references_in_initializer): Update use of record_reference.
18473         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18474         walk PHI nodes too.
18475
18476 2010-05-04  Jan Hubicka  <jh@suse.cz>
18477
18478         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
18479         node will be removed anyway.
18480         (lto_varpool_replace_node): Allow also unanalyzed nodes;
18481         relink aliases of node into prevailing node.
18482         * varpool.c (varpool_remove_node): Remove aliases properly;
18483         when removing node, remove all its aliases too; remove DECL_INITIAL
18484         of removed node; ggc_free the varpool node.
18485
18486 2010-05-04  Richard Guenther  <rguenther@suse.de>
18487
18488         PR tree-optimization/43879
18489         * tree-ssa-structalias.c (alias_get_name): Use
18490         DECL_ASSEMBLER_NAME if available.
18491         (create_function_info_for): Return the varinfo node.
18492         (ipa_pta_execute): Associate same-body aliases and extra names
18493         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
18494
18495 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18496
18497         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
18498
18499 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
18500
18501         PR bootstrap/43964
18502         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
18503         only if HONOR_REG_ALLOC_ORDER is not defined.
18504
18505 2010-05-04  Richard Guenther  <rguenther@suse.de>
18506
18507         PR tree-optimization/43949
18508         * tree-vrp.c (extract_range_from_binary_expr): Only handle
18509         TRUNC_MOD_EXPR.
18510
18511 2010-04-26  Jason Merrill  <jason@redhat.com>
18512
18513         * c.opt (-fstrict-enums): New.
18514         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
18515
18516 2010-05-03  David Ung  <davidu@mips.com>
18517             James E. Wilson  <wilson@codesourcery.com>
18518
18519         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
18520         emit the trap instruction before the divide for TUNE_74K.
18521
18522 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
18523
18524         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
18525         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
18526         based on the above, for new target hook.
18527
18528         * hooks.c (hook_bool_mode_true): New generic hook.
18529         * hooks.h (hook_bool_mode_true): Add prototype.
18530
18531         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
18532         target hook.
18533         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
18534         target hook, set to hook_bool_mode_false.
18535         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
18536         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
18537         with targetm.small_register_classes_for_mode_p.
18538         (find_reusable_reload): Likewise.
18539         (combine_reloads): Likewise.
18540         * reload1.c (reload_as_needed): Likewise.
18541         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
18542         * ifcvt.c (noce_process_if_block, check_cond_move_block,
18543         dead_or_predicable): Likewise.
18544         * regmove.c (optimize_reg_copy_1): Likewise.
18545         * calls.c (prepare_call_address): Likewise.
18546         (precompute_register_parameters): Likewise.
18547
18548         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
18549         hook definition.
18550         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
18551         implementation of the hook that considers all register classes
18552         small except for SH64.
18553         (sh_override_options): Use the new hook.
18554         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
18555         Add prototype.
18556
18557         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
18558         hook definition.
18559         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
18560         implementation of the hook that considers all register classes
18561         small for THUMB1.
18562         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
18563         Add prototype.
18564
18565         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
18566         hook definition.
18567         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
18568         implementation of the hook that considers all register classes
18569         small for MIPS16.
18570         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
18571         Add prototype.
18572
18573         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
18574         hook definition.
18575         * config/m32c/m32c.h: Likewise.
18576         * config/pdp11/pdp11.h: Likewise.
18577         * config/avr/avr.h: Likewise.
18578         * config/xtensa/xtensa.h: Likewise.
18579         * config/m68hc11/m68hc11.h: Likewise.
18580         * config/mn10300/mn10300.h: Likewise.
18581         * config/mcore/mcore.h: Likewise.
18582         * config/h8300/h8300.h: Likewise.
18583         * config/bfin/bfin.h: Likewise.
18584
18585         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
18586         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
18587
18588 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
18589
18590         * double-int.h (tree_to_double_int): Remove macro.
18591         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
18592         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
18593         (tree_to_double_int): New function.
18594         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
18595         Move ...
18596         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
18597
18598 2010-05-03  Richard Guenther  <rguenther@suse.de>
18599
18600         PR tree-optimization/43971
18601         * tree-ssa-structalias.c (get_constraint_for_1): Fix
18602         constraints in the !flag_delete_null_pointer_checks case.
18603
18604 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
18605
18606         PR debug/43972
18607         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
18608         result mode matches original rtl mode.
18609
18610 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
18611
18612         PR target/43888
18613         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
18614
18615 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18616
18617         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
18618         when processing flag options.
18619
18620 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18621
18622         * gcov-iov.c (main): Change format string placeholder
18623         from %#08x to 0x%08x.
18624         * genchecksum.c (dosum): Change format string placeholder
18625         from %#02x to 0x%02x.
18626
18627 2010-05-02  Richard Guenther  <rguenther@suse.de>
18628
18629         PR tree-optimization/43879
18630         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
18631
18632 2010-05-02  Bruno Haible  <bruno@clisp.org>
18633
18634         * doc/extend.texi (Function Attributes): Fix a typo.
18635
18636 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18637
18638         Revert:
18639         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
18640         placeholder from 0x%x to %#x.
18641         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
18642         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
18643         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
18644         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
18645         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
18646         * config/i386/i386.c (ix86_target_string): Ditto.
18647         * config/i386/i386.c (output_pic_addr_const): Ditto.
18648         (print_operand): Ditto.
18649
18650 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
18651
18652         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
18653         placeholder from 0x%x to %#x.
18654         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
18655         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
18656         (ASM_OUTPUT_DEBUG_DATA): Ditto.
18657         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
18658         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
18659         * optc-gen.awk: Ditto.
18660         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
18661         (HOST_WIDE_INT_PRINT_HEX): Ditto.
18662         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
18663         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
18664
18665 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
18666
18667         * target.h (struct calls): Add function_value_regno_p field.
18668         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
18669         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
18670         * targhooks.c (default_function_value_regno_p): New function.
18671         * targhooks.h (default_function_value_regno_p): Declare function.
18672         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
18673         * builtins.c. (apply_result_size): (Ditto.).
18674         * combine.c. (likely_spilled_retval_p): (Ditto.).
18675         * mode-switching.c. Include 'target.h'.
18676         (create_pre_exit): Use function_value_regno_p hook.
18677         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
18678         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
18679         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
18680
18681         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
18682         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
18683         (ix86_function_value_regno_p): Declare as static, change argument
18684         type to const unsigned int.
18685         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
18686
18687 2010-05-01  Richard Guenther  <rguenther@suse.de>
18688
18689         PR tree-optimization/43949
18690         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
18691         types.
18692         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
18693
18694 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
18695
18696         * rtl.h (CONST_DOUBLE_P): Define.
18697         (rtx_to_double_int): Declare.
18698         * emit-rtl.c (rtx_to_double_int): New function.
18699         * dwarf2out.c (insert_double): New function.
18700         (loc_descriptor, add_const_value_attribute): Clean up, use
18701         rtx_to_double_int and insert_double functions.
18702
18703 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
18704
18705         * doc/extend.texi (Inline): Add missing return keyword to examples.
18706         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
18707         "command-line".
18708
18709 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
18710
18711         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
18712         the variable part of the offset as well.  Use highest_pow2_factor for
18713         all alignment checks.
18714
18715 2010-04-30  Richard Guenther  <rguenther@suse.de>
18716
18717         PR tree-optimization/43879
18718         * tree-ssa-structalias.c (type_could_have_pointers): Functions
18719         can have pointers.
18720
18721 2010-04-30  Jan Hubicka  <jh@suse.cz>
18722
18723         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
18724         varpool.
18725         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
18726
18727 2010-04-30  Jan Hubicka  <jh@suse.cz>
18728
18729         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
18730         New.
18731         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
18732         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
18733         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
18734         cgraph_node_set_needs_ltrans_p): Remove.
18735
18736 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
18737
18738         * sdbout.c: Include vec.h, do not include varray.h.
18739         (deferred_global_decls, sdbout_global_decl,
18740         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
18741         * toplev.c: Do not include varray.h.
18742         (dump_memory_report): Do not dump VARRAY statistics.
18743         * gengtype.c (open_base_file): Ignore varray.h.
18744         * Makefile.in: Update for abovementioned changes.
18745         Remove all traces of varray.c and varray.h.
18746         * varray.c: Remove file.
18747         * varray.h: Remove file.
18748
18749 2010-04-30  Jan Hubicka  <jh@suse.cz>
18750
18751         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
18752         references.
18753
18754 2010-04-30  Jan Hubicka  <jh@suse.cz>
18755
18756         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
18757         needed.
18758
18759 2010-04-30  Richard Guenther  <rguenther@suse.de>
18760
18761         * tree-ssa-structalias.c (get_constraint_for_1): Generate
18762         constraints for CONSTRUCTOR.
18763
18764 2010-04-30  Richard Guenther  <rguenther@suse.de>
18765
18766         PR lto/43946
18767         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
18768         first after all lowering passes.
18769
18770 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
18771
18772         * toplev.c: Include varray.h for statistics dumping.
18773         * tree.h: Do not declare varray_head_tag.
18774         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
18775         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
18776         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
18777         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
18778         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
18779         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
18780         c-common.c, c-common.h, reg-stack.c, basic-block.h,
18781         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
18782         include varray.h.
18783         * Makefile.in: Update for abovementioned changes.
18784
18785 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
18786
18787         PR debug/43942
18788         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
18789
18790 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18791
18792         * config/picochip/picochip.c (picochip_legitimize_address): Define.
18793         Use this function to do machine-specific conversion.
18794         (picochip_legitimize_reload_address): Likewise.
18795         (picochip_legitimate_address_p): Check valid base register only if
18796         strict.
18797         (picochip_check_conditional_copy): Check for modw only if opnd is
18798         register.
18799         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
18800         to call the function in c.
18801         * config/picochip/picochip-protos.h
18802         (picochip_legitimize_reload_address): Define.
18803         * config/picochip/picochip.md (supported_compare1): Define.
18804
18805 2010-04-30  Jan Hubicka  <jh@suse.cz>
18806
18807         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
18808         (cgraph_global_info): Remove inlined.
18809         (LTO_cgraph_tag_names): Remove.
18810         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
18811         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
18812         simplify cgraph tags and document.
18813         (lto_output_node): Use only LTO_cgraph_unavail_node and
18814         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
18815         for_functions_valid, global info, process and output flags.
18816         (input_overwrite_node): Initialize estimated stack size and
18817         estimated growth.  Do not read flags we no longer store.
18818         (input_node): Likewise do not read info no longer stored.
18819         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
18820         flag.
18821
18822 2010-04-30  Richard Guenther  <rguenther@suse.de>
18823
18824         PR tree-optimization/43879
18825         * tree-ssa-structalias.c (get_constraint_for_1): Properly
18826         handle non-zero initializers.
18827
18828 2010-04-30  Richard Guenther  <rguenther@suse.de>
18829
18830         * builtins.c (fold_builtin_1): Delete free (0).
18831
18832 2010-04-29  Jan Hubicka  <jh@suse.cz>
18833
18834         * gengtype.c (open_base_files): Add lto-streamer.h
18835         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
18836         (pass_ipa_cp): GGC collect.
18837         * toplev. (compile_file): Do not output symbols.
18838         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
18839         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
18840         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
18841         * lto-section-in.c: Include ggc.h
18842         (lto_new_in_decl_state): Alloc in GGC.
18843         (lto_delete_in_decl_state): Likewise.
18844         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
18845         Collect.
18846
18847 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
18848
18849         PR target/42895
18850         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
18851         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
18852         (HONOR_REG_ALLOC_ORDER): Describe new macro.
18853         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
18854         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
18855         account only if HONOR_REG_ALLOC_ORDER is not defined.
18856         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
18857         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
18858
18859 2010-04-29  Jon Grant  <04@jguk.org>
18860
18861         * collect2.c (vflag): Change type from int to bool.
18862         (debug): Likewise.
18863         (helpflag): New global bool.
18864         (main): Set vflag and debug with boolean, not integer truth values.
18865         Accept new "--help" option and output usage text if found.
18866         * collect2.h (vflag): Update prototype.
18867         (debug): Likewise.
18868
18869 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18870
18871         PR bootstrap/43936
18872         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
18873
18874 2010-04-29  Richard Guenther  <rguenther@suse.de>
18875
18876         PR bootstrap/43935
18877         * plugin.h (invoke_plugin_callbacks): Annotate arguments
18878         with ATTRIBUTE_UNUSED.
18879
18880 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
18881
18882         PR target/43921
18883         * config/i386/i386.c (get_some_local_dynamic_name): Replace
18884         INSN_P with NONDEBUG_INSN_P.
18885         (distance_non_agu_define): Likewise.
18886         (distance_agu_use): Likewise.
18887
18888 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
18889
18890         From Dominique d'Humieres  <dominiq@lps.ens.fr>
18891         PR bootstrap/43858
18892         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
18893         test_set.
18894
18895 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
18896
18897         * plugin.h (invoke_plugin_callbacks): New inline function.
18898         * plugin.c (flag_plugin_added): New global flag.
18899         (add_new_plugin): Initialize above flag.
18900         (invoke_plugin_callbacks): Rename to ...
18901         (invoke_plugin_callbacks_full): ... this.
18902
18903 2010-04-28  Jan Hubicka  <jh@suse.cz>
18904
18905         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
18906         (lto_varpool_replace_node): New.
18907         (lto_symtab_resolve_symbols): Resolve varpool nodes.
18908         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
18909         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
18910         * cgraph.h (varpool_node_ptr): New type.
18911         (varpool_node_ptr): New vector.
18912         (varpool_node_set_def): New structure.
18913         (varpool_node_set): New type.
18914         (varpool_node_set): New vector.
18915         (varpool_node_set_element_def): New structure.
18916         (varpool_node_set_element, const_varpool_node_set_element): New types.
18917         (varpool_node_set_iterator): New type.
18918         (varpool_node): Add prev pointers, add used_from_other_partition,
18919         in_other_partition.
18920         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
18921         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
18922         varpool_get_node, varpool_remove_node): Declare.
18923         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
18924         varpool_node_set_size): New inlines.
18925         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
18926         * tree-pass.h (varpool_node_set_def): Forward declare.
18927         (ipa_opt_pass_d): Summary writting takes vnode sets too.
18928         (ipa_write_optimization_summaries): Update prototype.
18929         * ipa-cp.c (ipcp_write_summary): Update.
18930         * ipa-reference.c (ipa_reference_write_summary): Update.
18931         * lto-cgraph.c (lto_output_varpool_node): New static function.
18932         (output_varpool): New function.
18933         (input_varpool_node): New static function.
18934         (input_varpool_1): New function.
18935         (input_cgraph): Input varpool.
18936         * ipa-pure-const.c (pure_const_write_summary): Update.
18937         * lto-streamer-out.c (lto_output): Update, output varpool too.
18938         (write_global_stream): Kill WPA hack.
18939         (produce_asm_for_decls): Update.
18940         (output_alias_pair_p): Handle variables.
18941         (output_unreferenced_globals): Output only needed partition of varpool.
18942         * ipa-inline.c (inline_write_summary): Update.
18943         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
18944         cgraph.
18945         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
18946         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
18947         varpool_node_set_new, varpool_node_set_add,
18948         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
18949         debug_varpool_node_set): New functions.
18950         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
18951         (execute_one_pass): Process new decls too.
18952         (ipa_write_summaries_2): Pass around vsets.
18953         (ipa_write_summaries_1): Likewise.
18954         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
18955         to add.
18956         (ipa_write_optimization_summaries_1): Pass around vsets.
18957         (ipa_write_optimization_summaries): Likewise.
18958         * varpool.c (varpool_get_node): New.
18959         (varpool_node): Update doubly linked lists.
18960         (varpool_remove_node): New.
18961         (dump_varpool_node): More dumping.
18962         (varpool_enqueue_needed_node): Update doubly linked lists.
18963         (decide_is_variable_needed): Kill ltrans hack.
18964         (varpool_finalize_decl): Kill lto hack.
18965         (varpool_assemble_decl): Skip decls in other partitions.
18966         (varpool_assemble_pending_decls): Update doubly linkes lists.
18967         (varpool_empty_needed_queue): Likewise.
18968         (varpool_extra_name_alias): Likewise.
18969         * lto-streamer.c (lto_get_section_name): Add vars section.
18970         * lto-streamer.h (lto_section_type): Update.
18971         (output_varpool, input_varpool): Declare.
18972
18973 2010-04-28  Mike Stump  <mikestump@comcast.net>
18974
18975         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
18976
18977 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18978
18979         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
18980         record or union type with RECORD_OR_UNION_TYPE_P predicate.
18981         (lto_input_ts_type_tree_pointers): Likewise.
18982         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
18983         (lto_output_ts_type_tree_pointers): Likewise.
18984
18985 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
18986
18987         Uniquization of constants at the Tree level
18988         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
18989         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
18990         bit to the end.
18991         (tree_output_constant_def): Declare.
18992         * gimplify.c (gimplify_init_constructor): When using block copy, first
18993         uniquize the constant constructor on the RHS.
18994         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
18995         DECL_IN_CONSTANT_POOL flag.
18996         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
18997         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
18998         constant pool.
18999         (assemble_variable): Deal with symbols belonging to the tree constant
19000         pool.
19001         (get_constant_section): Add ALIGN parameter and simplify.
19002         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
19003         (assemble_constant_contents): Use the expression of the VAR_DECL.
19004         (output_constant_def_contents): Use the alignment of the VAR_DECL.
19005         (tree_output_constant_def): New global function.
19006         (mark_constant): Use the expression of the VAR_DECL.
19007         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
19008         its expression.
19009         (output_object_block): Likewise and assemble the expression.
19010
19011 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19012
19013         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
19014         hash_tree, eq_tree): New tree hash table.
19015         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
19016         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
19017         lto_orig_address_remove): Reimplement.
19018
19019 2010-04-28  Xinliang David Li  <davidxl@google.com>
19020
19021         PR c/42643
19022         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
19023         (compute_uninit_opnds_pos): New function.
19024         (is_non_loop_exit_postdominating): New function.
19025         (compute_control_dep_chain): New function.
19026         (find_pdom): New function.
19027         (convert_control_dep_chain_into_preds): New function.
19028         (find_predicates): New function.
19029         (find_control_equiv_block): New function.
19030         (collect_phi_def_edges): New function.
19031         (find_def_preds): New function.
19032         (find_dom): New function.
19033         (dump_predicates): New function.
19034         (get_cmp_code): New function.
19035         (is_value_included_in): New function.
19036         (find_matching_predicate_in_rest_chains): New function.
19037         (use_pred_not_overlap_with_undef_path_pred): New function.
19038         (is_use_properly_guarded): New function.
19039         (normalize_cond_1): New function.
19040         (is_and_or_or): New function.
19041         (normalize_cond): New function.
19042         (is_gcond_subset_of): New function.
19043         (is_subset_of_any): New function.
19044         (is_or_set_subset_of): New function.
19045         (is_and_set_subset_of): New function.
19046         (is_norm_cond_subset_of): New function.
19047         (is_pred_expr_subset_of): New function.
19048         (is_pred_chain_subset_of): New function.
19049         (is_included_in): New function.
19050         (is_superset_of): New function.
19051         (find_uninit_use): New function.
19052         (warn_uninitialized_phi): New function.
19053         (compute_possibly_undefined_names): New function.
19054         (ssa_undefined_value_p): New function.
19055         (execute_late_warn_uninitialized): New function.
19056         * tree-ssa.c (ssa_undefined_value_p): Removed.
19057         (warn_uninit): Changed to extern.
19058         (warn_uninitialized_phi): Removed.
19059         (warn_uninitialized_vars): Changed to extern.
19060         (execute_late_warn_uninitialized): Removed
19061         * tree-flow.h: Add new prototypes.
19062         * timevar.def: Add new time variable.
19063         * Makefile.in: Add new build file.
19064
19065 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
19066
19067         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
19068         type if available.
19069
19070 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19071
19072         PR target/22224
19073         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
19074
19075 2010-04-28  Martin Jambor  <mjambor@suse.cz>
19076
19077         * cgraph.h (struct cgraph_node): New field indirect_calls.
19078         (struct cgraph_indirect_call_info): New type.
19079         (struct cgraph_edge): Removed field indirect_call. New fields
19080         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
19081         (cgraph_create_indirect_edge): Declare.
19082         (cgraph_make_edge_direct): Likewise.
19083         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
19084         * ipa-prop.h (struct ipa_param_call_note): Removed.
19085         (struct ipa_node_params): Removed field param_calls.
19086         (ipa_create_all_structures_for_iinln): Declare.
19087         * cgraph.c: Described indirect edges and uids in initial comment.
19088         (cgraph_add_edge_to_call_site_hash): New function.
19089         (cgraph_edge): Search also among the indirect edges, use
19090         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
19091         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
19092         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
19093         site hash.
19094         (initialize_inline_failed): Assign a reason to indirect edges.
19095         (cgraph_create_edge_1): New function.
19096         (cgraph_create_edge): Moved some functionality to
19097         cgraph_create_edge_1.
19098         (cgraph_create_indirect_edge): New function.
19099         (cgraph_edge_remove_callee): Add an assert checking for
19100         non-indirectness.
19101         (cgraph_edge_remove_caller): Special-case indirect edges.
19102         (cgraph_remove_edge): Likewise.
19103         (cgraph_set_edge_callee): New function.
19104         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
19105         (cgraph_make_edge_direct): New function.
19106         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
19107         the declaration of the call statement matches.
19108         (cgraph_node_remove_callees): Special-case indirect edges.
19109         (cgraph_clone_edge): Likewise.
19110         (cgraph_clone_node): Clone also the indirect edges.
19111         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
19112         indirect_call, dump count of indirect_calls edges.
19113         * ipa-prop.c (iinlining_processed_edges): New variable.
19114         (ipa_note_param_call): Create indirect edges instead of
19115         creating notes.  New parameter node.
19116         (ipa_analyze_call_uses): New parameter node, pass it on to
19117         ipa_note_param_call.
19118         (ipa_analyze_stmt_uses): Likewise.
19119         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
19120         (print_edge_addition_message): Work on edges rather than on notes.
19121         (update_call_notes_after_inlining): Likewise, renamed to
19122         update_indirect_edges_after_inlining.
19123         (ipa_create_all_structures_for_iinln): New function.
19124         (ipa_free_node_params_substructures): Do not free notes.
19125         (ipa_edge_duplication_hook): Propagate bits within
19126         iinlining_processed_edges bitmap.
19127         (ipa_node_duplication_hook): Do not duplicate notes.
19128         (free_all_ipa_structures_after_ipa_cp): Renamed to
19129         ipa_free_all_structures_after_ipa_cp.
19130         (free_all_ipa_structures_after_iinln): Renamed to
19131         ipa_free_all_structures_after_iinln.
19132         (ipa_write_param_call_note): Removed.
19133         (ipa_read_param_call_note): Removed.
19134         (ipa_write_indirect_edge_info): New function.
19135         (ipa_read_indirect_edge_info): Likewise.
19136         (ipa_write_node_info): Do not stream notes, do stream information
19137         in indirect edges.
19138         (ipa_read_node_info): Likewise.
19139         (lto_ipa_fixup_call_notes): Removed.
19140         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
19141         * ipa-inline.c (pass_ipa_inline): Likewise.
19142         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
19143         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
19144         * tree-inline.c (copy_bb): Removed an unnecessary double check for
19145         is_gimple_call.
19146         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
19147         edges.
19148         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
19149         (output_cgraph): Stream also indirect edges.
19150         (lto_output_edge): Added capability to stream indirect edges.
19151         (input_edge): Likewise.
19152         (input_cgraph_1): Likewise.
19153         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
19154         of indirect edges.
19155
19156 2010-04-28  Richard Guenther  <rguenther@suse.de>
19157
19158         PR tree-optimization/43879
19159         PR tree-optimization/43909
19160         * tree-ssa-structalias.c (struct variable_info): Add
19161         only_restrict_pointers flag.
19162         (new_var_info): Initialize it.  Increment stats.total_vars here.
19163         (create_function_info_for): Do not increment stats.total_vars here.
19164         (get_function_part_constraint): Fix build with C++.
19165         (insert_into_field_list): Remove.
19166         (push_fields_onto_fieldstack): Properly merge fields.
19167         (create_variable_info_for): Split and simplify.
19168         (create_variable_info_for_1): New piece.
19169         (intra_create_variable_infos): Properly make restrict constraints
19170         from parameters.
19171
19172 2010-04-28  Richard Guenther  <rguenther@suse.de>
19173
19174         PR c++/43880
19175         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
19176
19177 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19178             Jan Hubicka  <hubicka@ucw.cz>
19179
19180         * doc/invoke.texi (-Wsuggest-attribute=const,
19181         -Wsuggest-attribute=pure): Document.
19182         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
19183         (function_always_visible_to_compiler_p,
19184         suggest_attribute, warn_function_pure, warn_function_const):
19185         New functions.
19186         (check_call): Improve debug info.
19187         (analyze_function): Do not check availability.
19188         (add_new_function): Check availability.
19189         (propagate): Output warnings.
19190         (skip_function_for_local_pure_const): New function.
19191         (local_pure_const): Use it; output warnings.
19192         * common.opt (Wsuggest-attribute=const,
19193         Wsuggest-attribute=pure): New.
19194
19195 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19196
19197         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
19198         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
19199         or DW_CFA_def_cfa_offset{,_sf}.
19200
19201 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19202
19203         * tree.h: Fix truncated long macros.
19204
19205 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
19206
19207         * collect2.c (TARGET_64BIT): Redefine to target's default.
19208         * tlink.c: Likewise.
19209         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
19210         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
19211         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
19212         for underscoring __USER_LABEL_PREFIX__.
19213         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
19214         (SUB_LINK_ENTRY32): New.
19215         (SUB_LINK_ENTRY64): New.
19216         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
19217         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
19218         (SUB_LINK_ENTRY64): New.
19219         (SUB_LINK_ENTRY): New.
19220         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
19221         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
19222         x64 target is choosen.
19223         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
19224         * configure: Regenerated.
19225         * configure.ac (leading-mingw64-underscores): Option added.
19226
19227 2010-04-27  Jan Hubicka  <jh@suse.cz>
19228
19229         * doc/invoke.texi (-fipa-profile): Document.
19230         * opts.c (decode_options): Enable ipa-profile at -O1.
19231         * timevar.def (TV_IPA_PROFILE): Define.
19232         * common.opt (fipa-profile): Add.
19233         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
19234         flag for clones.
19235         (cgraph_propagate_frequency): Handle only local ones.
19236         * tree-pass.h (pass_ipa_profile): Declare.
19237         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
19238         (pass_ipa_profile): Use TV_IPA_PROFILE.
19239         * ipa.c (ipa_profile): New function.
19240         (gate_ipa_profile): Likewise.
19241         (pass_ipa_profile): New global variable.
19242         * passes.c (pass_ipa_profile): New.
19243
19244 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
19245
19246         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
19247
19248 2010-04-27  Martin Jambor  <mjambor@suse.cz>
19249
19250         PR middle-end/43812
19251         * ipa.c (dissolve_same_comdat_group_list): New function.
19252         (function_and_variable_visibility): Call
19253         dissolve_same_comdat_group_list when comdat group contains external or
19254         newly local nodes.
19255         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
19256         lists are circular and that they contain only DECL_ONE_ONLY nodes.
19257
19258 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19259
19260         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
19261         (const_hash_1) <VECTOR_CST>: New case.
19262         (compare_constant) <VECTOR_CST>: Likewise.
19263         <ADDR_EXPR>: Deal with LABEL_REFs.
19264         (copy_constant) <VECTOR_CST>: New case.
19265
19266 2010-04-27  Jan Hubicka  <jh@suse.cz>
19267
19268         * cgraph.c (cgraph_propagate_frequency): New function.
19269         * cgraph.h (cgraph_propagate_frequency): Declare.
19270         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
19271         cgraph_propagate_frequency.
19272
19273 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19274
19275         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
19276
19277 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
19278
19279         PR target/40657
19280         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
19281         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
19282         here to determine which regs to push and how much stack to reserve.
19283
19284 2010-04-27  Jie Zhang  <jie@codesourcery.com>
19285
19286         * doc/gimple.texi (gimple_statement_with_ops): Remove
19287         addresses_taken field.
19288         (gimple_statement_with_memory_ops): Likewise.
19289
19290 2010-04-27  Jan Hubicka  <jh@suse.cz>
19291
19292         * tree-inline.c (eni_inlining_weights): Remove.
19293         (estimate_num_insns): Special case more builtins.
19294
19295 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
19296
19297         PR c/32207
19298         * c-typeck.c (build_binary_op): Move forward check for comparison
19299         pointer with null pointer constant and adjust the diagnostic message.
19300
19301 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
19302
19303         PR lto/42776
19304         * configure.ac (gcc_cv_as_section_has_align): Set if installed
19305         binutils supports extended .section directive needed by LTO, or
19306         warn if older binutils found.
19307         (LTO_BINARY_READER): New AC_SUBST'd variable.
19308         (LTO_USE_LIBELF): Likewise.
19309         * config.gcc (lto_binary_reader): New target-specific configure
19310         variable.
19311         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
19312         (LTO_USE_LIBELF): Likewise.
19313         * configure: Regenerate.
19314
19315         * collect2.c (is_elf): Rename from this ...
19316         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
19317          object files in addition to ELF-formatted ones.
19318         (scan_prog_file): Caller updated.  Also allow for LTO info marker
19319         symbol to be prefixed or not by an extra underscore.
19320
19321         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
19322         * config/i386/winnt.c: Also #include lto-streamer.h
19323         (i386_pe_asm_named_section): Specify 1-byte section alignment for
19324         LTO named sections.
19325         (i386_pe_asm_output_aligned_decl_common): Add comment.
19326         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
19327
19328 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
19329
19330         PR target/43889
19331         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
19332         Add missing earlyclobber for second alternative.
19333
19334 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
19335
19336         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
19337         bits for artificial defs at the top of the block.
19338         * fwprop.c (single_def_use_enter_block): Don't call it.
19339
19340 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
19341
19342         PR 43715
19343         * configure.ac: Use "$gcc_cv_nm -g" on darwin
19344         instead of "$gcc_cv_objdump -T".
19345         Use "-undefined dynamic_lookup" on darwin.
19346         * configure: Regenerate.
19347
19348 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
19349
19350         PR c/43893
19351         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
19352
19353 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19354
19355         * c-parser.c (struct c_token): Move location field up.
19356         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
19357         (struct c_declspecs): Convert typespec_word, storage_class, and
19358         default_int_p into bitfields.
19359         (struct c_declarator): Move loc field up.
19360
19361 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19362
19363         * cfgloop.h (struct loop): Move can_be_parallel field up.
19364         * ipa-prop.h (struct ip_node_params): Move bitfields up.
19365         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
19366         down.
19367         (struct iv_cand): Convert pos field into a bitfield.
19368         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
19369         field up.
19370         (struct _stmt_vec_info): Shuffle fields for better packing.
19371
19372 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19373
19374         * varasm.c (IN_NAMED_SECTION): Remove guard.
19375         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
19376         (IN_NAMED_SECTION_P): ...this.
19377         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
19378         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
19379
19380 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19381
19382         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
19383         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
19384         of shadowing it.  Fix comments.
19385
19386 2010-04-26  Jan Hubicka  <jh@suse.cz>
19387
19388         * cgraph.c (cgraph_create_node): Set node frequency to normal.
19389         (cgraph_clone_node): Copy function frequency.
19390         * cgraph.h (node_frequency): New enum
19391         (struct cgraph_node): Add.
19392         * final.c (rest_of_clean_state): Update.
19393         * lto-cgraph.c (lto_output_node): Output node frequency.
19394         (input_overwrite_node): Input node frequency.
19395         * tre-ssa-loop-ivopts (computation_cost): Update.
19396         * lto-streamer-out.c (output_function): Do not output function
19397         frequency.
19398         * predict.c (maybe_hot_frequency_p): Update and handle functions
19399         executed once.
19400         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
19401         attribute lookup.
19402         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
19403         (compute_function_frequency): Set noreturn functions to be executed
19404         once.
19405         (choose_function_section): Update.
19406         * lto-streamer-in.c (input_function): Do not input function frequency.
19407         * function.c (allocate_struct_function): Do not initialize function
19408         frequency.
19409         * function.h (function_frequency): Remove.
19410         (struct function): Remove function frequency.
19411         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
19412         (try_update): Update.
19413         * tree-inline.c (initialize_cfun): Do not update function frequency.
19414         * passes.c (pass_init_dump_file): Update.
19415         * i386.c (ix86_compute_frame_layout): Update.
19416         (ix86_pad_returns): Update.
19417
19418 2010-04-26  Jie Zhang  <jie@codesourcery.com>
19419
19420         PR tree-optimization/43833
19421         * tree-vrp.c (range_int_cst_p): New.
19422         (range_int_cst_singleton_p): New.
19423         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
19424         when both operands are constants.  Use range_int_cst_p in
19425         BIT_IOR_EXPR case.
19426
19427 2010-04-26  Jan Hubicka  <jh@suse.cz>
19428
19429         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
19430
19431 2010-04-26  Richard Guenther  <rguenther@suse.de>
19432
19433         PR lto/43080
19434         * gimple.c (gimple_decl_printable_name): Deal gracefully
19435         with a NULL DECL_NAME.
19436
19437 2010-04-26  Richard Guenther  <rguenther@suse.de>
19438
19439         PR lto/42425
19440         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
19441         if emitting debug information and it is either a function
19442         or a namespace decl.
19443
19444 2010-04-26  Ira Rosen  <irar@il.ibm.com>
19445
19446         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
19447         determine if the statement is vectorizable, and a macro to access it.
19448         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19449         Skip statements that can't be vectorized. If the analysis fails,
19450         mark the statement as unvectorizable if vectorizing basic block.
19451         (vect_compute_data_refs_alignment): Likewise.
19452         (vect_verify_datarefs_alignment): Skip statements marked as
19453         unvectorizable. Add print.
19454         (vect_analyze_group_access): Skip statements that can't be
19455         vectorized. If the analysis fails, mark the statement as
19456         unvectorizable if vectorizing basic block.
19457         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
19458         * tree-vect-stmts.c (vectorizable_store): Fix the number of
19459         generated stmts for SLP.
19460         (new_stmt_vec_info): Initialize the new field.
19461         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
19462         statements marked as unvectorizable.
19463
19464 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
19465
19466         * c-common.c (flag_isoc1x): New.
19467         (flag_isoc99): Update comment.
19468         * c-common.h (flag_isoc1x): New.
19469         (flag_isoc99): Update comment.
19470         * c-cppbuiltin.c (builtin_define_float_constants): Also define
19471         __<type>_DECIMAL_DIG__.
19472         * c-opts.c (set_std_c1x): New.
19473         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
19474         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
19475         * c.opt (-std=c1x, -std=gnu1x): New options.
19476         * doc/cpp.texi: Mention -std=c1x.
19477         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
19478         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
19479         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
19480         * doc/standards.texi: Mention C1X.
19481         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
19482         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
19483         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
19484         Define for C1X.
19485
19486 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
19487
19488         * config/i386/gmon-sol2.c (_mcleanup): Change format string
19489         placeholder from 0x%x to %#x.
19490         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19491         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19492         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19493         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19494         * config/i386/i386.c (ix86_target_string): Ditto.
19495         (output_pic_addr_const): Ditto.
19496         (print_operand): Ditto.
19497
19498 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
19499
19500         * combine.c (find_split_point): Add third argument.  Use it
19501         to find nested multiply-accumulate instructions.  Adjust calls.
19502         (try_combine): Adjust call to find_split_point.
19503
19504 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19505
19506         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
19507
19508 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
19509
19510         PR tree-optimization/41442
19511         * fold-const.c (merge_truthop_with_opposite_arm): New function.
19512         (fold_binary_loc): Call it.
19513
19514 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19515
19516         * toplev.c (general_init): Set default for fdiagnostics-show-option.
19517         * opts.c (common_handle_option): Allow disabling it.
19518         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
19519
19520 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
19521
19522         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
19523         between modes if both types are integral.
19524
19525 2010-04-23  Richard Guenther  <rguenther@suse.de>
19526
19527         PR tree-optimization/43572
19528         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
19529
19530 2010-04-23  Richard Guenther  <rguenther@suse.de>
19531
19532         PR lto/43455
19533         * tree-inline.c (tree_can_inline_p): Also check compatibility
19534         of return types.
19535
19536 2010-04-23  Martin Jambor  <mjambor@suse.cz>
19537
19538         PR tree-optimization/43846
19539         * tree-sra.c (struct access): New flag grp_assignment_read.
19540         (build_accesses_from_assign): Set grp_assignment_read.
19541         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
19542         (enum mark_read_status): New type.
19543         (analyze_access_subtree): Propagate grp_assignment_read, create
19544         accesses also if both direct_read and root->grp_assignment_read.
19545
19546 2010-04-23  Martin Jambor  <mjambor@suse.cz>
19547
19548         PR middle-end/43835
19549         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
19550         function does not have type attributes.
19551
19552 2010-04-23  Richard Guenther  <rguenther@suse.de>
19553
19554         PR lto/42653
19555         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
19556         of FUNCTION_DECLs.
19557
19558 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19559
19560         * sese.h (create_if_region_on_edge): Remove.
19561
19562         * sese.c (create_if_region_on_edge): Make static.
19563
19564         * tree-inline.c: Do not include ggc.h.
19565
19566         * expr.c: Do not include ggc.h.
19567
19568         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
19569         dependencies.
19570
19571 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
19572
19573         PR target/43744
19574         * config/sh/sh.c (find_barrier): Don't emit a constant pool
19575         in the middle of insns for casesi_worker_2.
19576
19577 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
19578
19579         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
19580
19581 2010-04-22  Ira Rosen  <irar@il.ibm.com>
19582
19583         PR tree-optimization/43842
19584         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
19585         loop unrolling in update of exit phis. Fix comment.
19586         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
19587         least two reduction statements in the loop before starting SLP
19588         analysis.
19589
19590 2010-04-22  Nick Clifton  <nickc@redhat.com>
19591
19592         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
19593
19594 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
19595
19596         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
19597         to simplify a + ~a.
19598
19599 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19600
19601         * tree-parloops.c (loop_parallel_p): New argument
19602         parloop_obstack.  Pass it down.
19603         (parallelize_loops): New variable parloop_obstack.  Initialize it,
19604         pass it down, free it.
19605
19606         * tree-loop-linear.c (linear_transform_loops): Pass down
19607         lambda_obstack.
19608
19609         * tree-data-ref.h (lambda_compute_access_matrices): New argument
19610         of type struct obstack *.
19611
19612         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
19613         scratch_obstack.  Initialize it, pass down, free it.
19614
19615         * lambda.h (lambda_loop_new): Remove.
19616         (lambda_matrix_new, lambda_matrix_inverse)
19617         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
19618         argument of type struct obstack *.
19619
19620         * lambda-trans.c (lambda_trans_matrix_new): New argument
19621         lambda_obstack.  Pass it down, use obstack allocation for ret.
19622         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
19623         it down.
19624
19625         * lambda-mat.c (lambda_matrix_get_column)
19626         (lambda_matrix_project_to_null): Remove.
19627         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
19628         allocation for mat.
19629         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
19630         lambda_obstack.
19631
19632         * lambda-code.c (lambda_loop_new): New function.
19633         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
19634         (lambda_compute_auxillary_space, lambda_compute_target_space)
19635         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
19636         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
19637         (build_access_matrix): New argument lambda_obstack.  Use obstack
19638         allocation for am.
19639         (lambda_compute_step_signs, lambda_compute_access_matrices): New
19640         argument lambda_obstack.  Pass it down.
19641
19642 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19643
19644         * optabs.h (expand_widening_mult): Declare.
19645
19646 2010-04-22  Richard Guenther  <rguenther@suse.de>
19647
19648         PR tree-optimization/43845
19649         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
19650         lookup the CALL_EXPR function and arguments.
19651
19652 2010-04-22  Nick Clifton  <nickc@redhat.com>
19653
19654         * config/stormy16/stormy16.c
19655         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
19656         * config/stormy16/stormy16.h: Tidy up formatting.
19657         (DONT_USE_BUILTIN_SETJMP): Remove definition.
19658         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
19659         (ineqbranchsi): Delete pattern.
19660         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
19661         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
19662         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
19663         stormy16-lib2-ucmpsi2.c.
19664
19665 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19666
19667         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
19668         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
19669         extra set merge_set_noclobber, and use it to relax the final test
19670         slightly.
19671         * df.h (df_simulate_find_noclobber_defs): Declare.
19672         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
19673         conditional defs.
19674         (df_simulate_find_noclobber_defs): New function.
19675
19676 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
19677
19678         * config/i386/i386.md: Use {} around multi-line preparation statements.
19679
19680 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19681
19682         * c-tree.h (push_init_level, pop_init_level, set_init_index)
19683         (process_init_element): New argument of type struct obstack *.
19684
19685         * c-typeck.c (push_init_level, pop_init_level, set_designator)
19686         (set_init_index, set_init_label, set_nonincremental_init)
19687         (set_nonincremental_init_from_string, find_init_member)
19688         (output_init_element, output_pending_init_elements)
19689         (process_init_element): New argument braced_init_obstack.  Pass it
19690         down.
19691         (push_range_stack, add_pending_init): New argument
19692         braced_init_obstack.  Use obstack allocation.
19693
19694         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
19695         braced_init_obstack.  Pass it down.
19696         (c_parser_braced_init): New variables ret, braced_init_obstack.
19697         Initialize obstack, pass it down and finally free it.
19698
19699 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
19700
19701         PR middle-end/29274
19702         * tree-pass.h (pass_optimize_widening_mul): Declare.
19703         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
19704         gate_optimize_widening_mul): New static functions.
19705         (pass_optimize_widening_mul): New.
19706         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
19707         <case MULT_EXPR>: Remove support for widening multiplies.
19708         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
19709         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
19710         simplify_gen_unary rather than directly building extensions.
19711         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
19712         WIDEN_MULT_EXPR.
19713         * expmed.c (expand_widening_mult): New function.
19714         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
19715
19716 2010-04-21  Jan Hubicka  <jh@suse.cz>
19717
19718         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
19719         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
19720         * lto-wpa-fixup.c: Remove.
19721         * Makefile.in (lto-wpa-fixup.o): Remove.
19722         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
19723         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
19724         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
19725
19726 2010-04-21  Jan Hubicka  <jh@suse.cz>
19727
19728         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
19729         add write_optimization_summary, read_optimization_summary.
19730         (ipa_write_summaries_of_cgraph_node_set): Remove.
19731         (ipa_write_optimization_summaries): Declare.
19732         (ipa_read_optimization_summaries): Declare.
19733         * ipa-cp.c (pass_ipa_cp): Update.
19734         * ipa-reference.c (pass_ipa_reference): Update.
19735         * ipa-pure-const.c (pass_ipa_pure_const): Update.
19736         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
19737         Update.
19738         * ipa-inline.c (pass_ipa_inline): Update.
19739         * ipa.c (pass_ipa_whole_program): Update.
19740         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
19741         * passes.c (ipa_write_summaries_1): Do not test wpa.
19742         (ipa_write_optimization_summaries_1): New.
19743         (ipa_write_optimization_summaries): New.
19744         (ipa_read_summaries): Do not test ltrans.
19745         (ipa_read_optimization_summaries_1): New.
19746         (ipa_read_optimization_summaries): New.
19747
19748 2010-04-21  Jan Hubicka  <jh@suse.cz>
19749
19750         * lto-cgraph.c (lto_output_node): Do not output comdat groups
19751         for boundary nodes.
19752         (output_cgraph): Do not arrange comdat groups for boundary nodes.
19753
19754 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19755
19756         PR debug/40040
19757         * dwarf2out.c (add_name_and_src_coords_attributes): Add
19758         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
19759
19760 2010-04-21  Jan Hubicka  <jh@suse.cz>
19761
19762         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
19763
19764 2010-04-21  Jan Hubicka  <jh@suse.cz>
19765
19766         * varpool.c (decide_is_variable_needed): Variable is always needed
19767         during ltrans.
19768
19769 2010-04-21  Jan Hubicka  <jh@suse.cz>
19770
19771         * opts.c (decode_options): Enable pure-const pass for whopr.
19772
19773 2010-04-21  Jan Hubicka  <jh@suse.cz>
19774
19775         * cgraph.c (dump_cgraph_node): Dump also assembler name.
19776         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
19777         at WPA dumping.
19778         (cgraph_decide_inlining): Do not expect callee to be removed in all
19779         cases.
19780
19781 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
19782
19783         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
19784
19785 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
19786
19787         * config/i386/i386.md (x86_shrd): Add athlon_decode and
19788         amdfam10_decode attributes.
19789
19790 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19791
19792         PR middle-end/43570
19793         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
19794         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
19795         (lower_copyprivate_clauses): Use private var in outer
19796         context instead of original var.  Make sure the types
19797         are correct for VLAs.
19798
19799 2010-04-21  Richard Guenther  <rguenther@suse.de>
19800
19801         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
19802         to non-pointer objects.
19803
19804 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
19805
19806         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
19807         last chain entry if it starts with the still current label.
19808         (add_location_or_const_value_attribute): Check that
19809         loc_list->first->next is NULL instead of comparing ->first with ->last.
19810         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
19811         to add_var_loc_to_decl.
19812
19813         * dwarf2out.c (output_call_frame_info): For dw_cie_version
19814         >= 4 add also address size and segment size fields into CIE header.
19815
19816         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
19817         long as address size is the same as sizeof (void *) and
19818         segment size is 0.
19819         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
19820         address size or segment size is unexpected, return DW_EH_PE_omit.
19821         (classify_object_over_fdes): If get_cie_encoding returned
19822         DW_EH_PE_omit, return -1.
19823         (init_object): If classify_object_over_fdes returned -1,
19824         pretend there were no FDEs at all.
19825
19826 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
19827
19828         * config/i386/i386.md (bswap<mode>2): Macroize expander from
19829         bswap{si,di}2 using SWI48 mode iterator.
19830         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
19831         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
19832         set modrm attribute of bswap insn to 0 and remove length attribute.
19833         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
19834         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
19835         set mode attribute to <MODE> and remove length attribute.
19836
19837 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
19838
19839         PR rtl-optimization/43520
19840         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
19841         zero available registers.
19842
19843 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19844
19845         * builtins.c (fold_builtin_cproj): Fold more cases.
19846
19847 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19848
19849         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
19850         (fold_builtin_1): Fold builtin cproj.
19851         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
19852         Use ATTR_CONST_NOTHROW_LIST.
19853
19854 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
19855
19856         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
19857         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
19858         ffsi2_no_cmove for !TARGET_CMOVE.
19859         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
19860         (ffssi2): Remove expander.
19861         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
19862         mode iterator.
19863         (ctz<mode>2): Ditto from ctz{si,di}2.
19864         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
19865         mode iterator.
19866         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
19867         mode iterator.
19868
19869 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
19870
19871         * dwarf2out.c (AT_linkage_name): Define.
19872         (clone_as_declaration): Handle DW_AT_linkage_name.
19873         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
19874         of DW_AT_MIPS_linkage_name.
19875         (move_linkage_attr): Likewise.
19876         (dwarf2out_finish): Likewise.
19877
19878 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
19879
19880         PR middle-end/41952
19881         * fold-const.c (fold_comparison): New folding rule.
19882
19883 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
19884
19885         * double-int.h (double_int_setbit): Declare.
19886         * double-int.c (double_int_setbit): New function.
19887         * rtl.h (immed_double_int_const): Declare.
19888         * emit-rtl.c (immed_double_int_const): New function.
19889         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
19890         and immed_double_int_const functions.
19891         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
19892         expand_copysign_bit): (Ditto.).
19893         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
19894         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
19895         * dojump.c (prefer_and_bit_test): (Ditto.).
19896         * expr.c (convert_modes, reduce_to_bit_field_precision,
19897         const_vector_from_tree): (Ditto.).
19898         * expmed.c (mask_rtx, lshift_value): (Ditto.).
19899
19900 2010-04-20  Jan Hubicka  <jh@suse.cz>
19901
19902         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
19903         (dump_cgraph_node): Dump new flags.
19904         * cgraph.h (struct cgraph_node): Add flags
19905         reachable_from_other_partition and in_other_partition.
19906         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
19907         other partition can not be removed.
19908         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
19909         the other partition must be output; silence sanity checking on
19910         leaking functions bodies from other paritition.
19911         * lto-cgraph.c (reachable_from_other_partition_p): New function.
19912         (lto_output_node): Output new flags; do not sanity check that inline
19913         clones are output; drop lto_forced_extern_inline_p code; do not mock
19914         visibility flags at partition boundaries.
19915         (add_node_to): New function.
19916         (output_cgraph): Use it to sort functions so masters appear before
19917         clones.
19918         (input_overwrite_node): Input new flags.
19919         * passes.c (ipa_write_summaries): Do not call
19920         lto_new_extern_inline_states.
19921         * lto-section-out.c (forced_extern_inline,
19922         lto_new_extern_inline_states lto_delete_extern_inline_states,
19923         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
19924         * lto-streamer.h (lto_new_extern_inline_states,
19925         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
19926         lto_forced_extern_inline_p): Kill.
19927
19928 2010-04-20  Richard Guenther  <rguenther@suse.de>
19929
19930         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
19931         from vars that can have pointers.
19932         (process_constraint): Dump useless constraints.
19933
19934 2010-04-20  Richard Guenther  <rguenther@suse.de>
19935
19936         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
19937         (dump_sa_points_to_info): Remove asserts.
19938         (init_base_vars): nothing_id isn't an escape point nor does it
19939         have pointers.
19940
19941 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
19942
19943         * tree.h (TYPE_REF_IS_RVALUE): Define.
19944         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
19945         should_move_die_to_comdat, prune_unused_types_walk): Handle
19946         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
19947         (modified_type_die, gen_reference_type_die): Emit
19948         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
19949         if TYPE_REF_IS_RVALUE and -gdwarf-4.
19950
19951 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19952
19953         PR target/43635
19954         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
19955         calls for -fpic -m31 if they have been sibcall optimized.
19956
19957 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
19958
19959         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
19960         ar.lc fixed and call-used.
19961
19962         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
19963
19964 2010-04-19  Jan Hubicka  <jh@suse.cz>
19965
19966         * opts.c (decode_options): Disable whpr incompatible passes.
19967         * lto/lto.c (lto_1_to_1_map): Skip clones.
19968         (read_cgraph_and_symbols): Do not mark everything as needed.
19969         (do_whole_program_analysis): Do map only after optimizing;
19970         set proper cgraph_state; use passmanager.
19971
19972 2010-04-19  DJ Delorie  <dj@redhat.com>
19973
19974         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
19975         POINTER_PLUS_EXPR and fix them.
19976
19977 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
19978
19979         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
19980         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
19981         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
19982         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
19983         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
19984         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
19985         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
19986         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
19987         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
19988         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
19989         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
19990
19991 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
19992
19993         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
19994         (check_cond_move_block): Likewise.
19995         (cond_move_process_if_block): Likewise.
19996         (noce_find_if_block): Improve formatting.
19997         (find_if_header): Pass 0 to memset and tweak conditions.
19998         (cond_exec_find_if_block): Fix long lines and tweak conditions.
19999
20000 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20001
20002         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
20003         for -gdwarf-4.
20004
20005         PR middle-end/43337
20006         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
20007         with non-local decl doesn't need chain.
20008
20009 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
20010
20011         * ira-color.c (allocno_reload_assign): Avoid accumulating
20012         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
20013
20014 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20015
20016         * gimple.h (create_tmp_reg): Declare.
20017         * gimplify.c (create_tmp_reg): New function.
20018         (gimplify_return_expr): Use create_tmp_reg.
20019         (gimplify_omp_atomic): Likewise.
20020         (gimple_regimplify_operands): Likewise.
20021         * tree-dfa.c (make_rename_temp): Likewise.
20022         * tree-predcom.c (predcom_tmp_var): Likewise.
20023         (reassociate_to_the_same_stmt): Likewise.
20024         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
20025         (get_replaced_param_substitute): Likewise.
20026         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20027         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
20028         * tree-ssa-pre.c (get_representative_for): Likewise.
20029         (create_expression_by_pieces): Likewise.
20030         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
20031         (create_tailcall_accumulator): Likewise.
20032
20033 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20034
20035         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
20036         new_stmt.
20037         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
20038
20039 2010-04-19  Richard Guenther  <rguenther@suse.de>
20040
20041         PR tree-optimization/43796
20042         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
20043         from SCEV in the lattice.
20044         (vrp_visit_phi_node): Dump change.
20045
20046 2010-04-19  Richard Guenther  <rguenther@suse.de>
20047
20048         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
20049         * configure: Re-generated.
20050
20051 2010-04-19  Richard Guenther  <rguenther@suse.de>
20052
20053         PR tree-optimization/43783
20054         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
20055         constant ARRAY_REF operands two and three if possible.
20056
20057 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
20058
20059         PR target/43766
20060         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
20061
20062 2010-04-19  Jie Zhang  <jie@codesourcery.com>
20063
20064         PR target/43662
20065         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
20066
20067 2010-04-19  Ira Rosen  <irar@il.ibm.com>
20068
20069         PR tree-optimization/37027
20070         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
20071         and macro to access it.
20072         (vectorizable_reduction): Add argument.
20073         (vect_get_slp_defs): Likewise.
20074         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
20075         statements for possible use in SLP.
20076         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
20077         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
20078         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
20079         add new argument.
20080         (vectorizable_reduction): Likewise.
20081         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
20082         vect_get_slp_defs.
20083         (vectorizable_type_demotion, vectorizable_type_promotion,
20084         vectorizable_store): Likewise.
20085         (vect_analyze_stmt): Update call to vectorizable_reduction.
20086         (vect_transform_stmt): Likewise.
20087         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
20088         (vect_build_slp_tree): Fix indentation. Check that there are no loads
20089         from different interleaving chains in same node.
20090         (vect_slp_rearrange_stmts): New function.
20091         (vect_supported_load_permutation_p): Allow load permutations for
20092         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
20093         inside SLP nodes if necessary.
20094         (vect_analyze_slp_instance): Handle reductions.
20095         (vect_analyze_slp): Try to build SLP instances originating from groups
20096         of reductions.
20097         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
20098         (vect_get_constant_vectors): Create initial vectors for reductions
20099         according to reduction code. Add new argument.
20100         (vect_get_slp_defs): Add new argument, pass it to
20101         vect_get_constant_vectors.
20102         (vect_schedule_slp_instance): Remove SLP tree root statements.
20103
20104 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20105
20106         * tree.h (ENUM_IS_SCOPED): Define.
20107         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
20108         for ENUM_IS_SCOPED enums.
20109
20110 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20111
20112         * fold-const.c (fold_comparison): Use ssizetype.
20113         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
20114         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
20115         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
20116         * tree-object-size.c (compute_object_sizes): Use size_type_node.
20117
20118         * tree.h (initialize_sizetypes): Remove parameter.
20119         (build_common_tree_nodes): Remove second parameter.
20120         * stor-layout.c (initialize_sizetypes): Remove parameter.
20121         Always create an unsigned type.
20122         (set_sizetype): Assert that the passed type is unsigned and simplify.
20123         * tree.c (build_common_tree_nodes): Remove second parameter.
20124         Adjust call to initialize_sizetypes.
20125         * c-decl.c (c_init_decl_processing): Remove second argument in call to
20126         build_common_tree_nodes.
20127
20128 2010-04-18  Matthias Klose  <doko@ubuntu.com>
20129
20130         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
20131
20132 2010-04-18  Ira Rosen  <irar@il.ibm.com>
20133
20134         PR tree-optimization/43771
20135         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
20136         load permutation doesn't have gaps.
20137
20138 2010-04-18  Jan Hubicka  <jh@suse.cz>
20139
20140         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
20141         (sse_prologue_save_insn expander): Use new pattern.
20142         (sse_prologue_save_insn1): New pattern and splitter.
20143         (sse_prologue_save_insn): Update to deal also with 64bit aligned
20144         blocks.
20145         * i386.c (setup_incoming_varargs_64): Do not compute jump
20146         destination here.
20147         (ix86_gimplify_va_arg): Update alignment needed.
20148         (ix86_local_alignment): Do not align all local arrays to 128bit.
20149
20150 2010-04-17  Jan Hubicka  <jh@suse.cz>
20151
20152         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
20153
20154 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20155
20156         * arm.md (negdi2): Remove redundant code to force values into a
20157         register.
20158
20159 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20160
20161         * arm/bpabi.S: Add EABI alignment attributes to objects.
20162         * arm/bpabi-v6m.S: Likewise.
20163         * arm/crti.asm: Likewise.
20164         * arm/crtn.asm: Likewise.
20165         * arm/lib1funcs.asm: Likewise.
20166         * arm/libunwind.S: Likewise.
20167
20168 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20169
20170         * arm-protos.h (tune_params): New structure.
20171         * arm.c (current_tune): New variable.
20172         (arm_constant_limit): Delete.
20173         (struct processors): Add pointer to the tune parameters.
20174         (arm_slowmul_tune): New tuning option.
20175         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
20176         (all_cores): Adjust to pick up the tuning model.
20177         (arm_constant_limit): New function.
20178         (arm_override_options): Select the appropriate tuning model.  Delete
20179         initialization of arm_const_limit.
20180         (arm_split_constant): Use the new constant-limit model.
20181         (arm_rtx_costs): Pick up the current tuning model.
20182         * arm.md (is_strongarm, is_xscale): Delete.
20183         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
20184         for Xscale variant architectures.
20185         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
20186
20187 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20188
20189         * config/arm/arm.c (arm_gen_constant): Remove unused variable
20190         can_shift.
20191         (arm_rtx_costs_1): Remove unused variable extra_cost.
20192         (arm_unwind_emit_set): Use variable offset.
20193         (thumb1_output_casesi): Remove unused variable flags.
20194
20195 2010-04-16  Jeff Law  <law@redhat.com>
20196
20197         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
20198         needing assignment rather than doing a two-phase assignment.  Remove
20199         unused variable 'm'.
20200
20201 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20202
20203         PR bootstrap/43767
20204         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
20205
20206 2010-04-16  Doug Kwan  <dougkwan@google.com>
20207
20208         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
20209         (next_operand_entry_id): New static variable.
20210         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
20211         (add_to_ops_vec): Assigned unique ID to operand entry.
20212         (struct oecount_s): New field ID.
20213         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
20214         (undistribute_ops_list): Assign unique IDs to oecounts.
20215         (init_reassoc): reset next_operand_entry_id.
20216
20217 2010-04-16  Doug Kwan  <dougkwan@google.com>
20218
20219         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
20220         missing left parenthesis.
20221
20222 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
20223
20224         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
20225         *btdi_rex64 using SWI48 mode iterator.
20226         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
20227         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
20228         *jcc_btdi_mask_rex64.
20229
20230 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
20231
20232         * double-int.h (tree_to_double_int): Convert to macro.
20233         * double-int.c (tree_to_double_int): Remove.
20234
20235 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20236
20237         PR debug/43762
20238         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
20239         with want_address 2 and in case a single element list might be
20240         possible, call it again with want_address 0.
20241
20242 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20243
20244         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
20245         case 'W' print operands for HI mode.
20246         * config/h8300/h8300.h (Y0, Y2) : New constraints.
20247         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
20248         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
20249         * config/h8300/predicate.md (bit_register_indirect_operand): New.
20250
20251         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
20252
20253         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
20254         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
20255         #xx:3 and #xx:4 mode.
20256
20257         * config/h8300/h8300.md (inverted load with HImode dest): Add
20258         support for H8300SX.
20259
20260         * config/h8300/predicate.md (bit_operand): Allow immediate values that
20261         satisfy 'U' constraint.
20262
20263 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20264
20265         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
20266         * configure: Regenerate.
20267         * config.in: Regenerate.
20268         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
20269         works.
20270
20271 2010-04-16  Richard Guenther  <rguenther@suse.de>
20272
20273         * tree.h (struct tree_decl_minimal): Move pt_uid ...
20274         (struct tree_decl_common): ... here.
20275         (DECL_PT_UID): Adjust.
20276         (SET_DECL_PT_UID): Likewise.
20277         (DECL_PT_UID_SET_P): Likewise.
20278
20279 2010-04-16  Richard Guenther  <rguenther@suse.de>
20280
20281         PR tree-optimization/43572
20282         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
20283         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
20284         * tree-flow.h (is_call_clobbered): Remove.
20285         * tree-flow-inline.h (is_call_clobbered): Likewise.
20286         * tree-dfa.c (dump_variable): Do not dump call clobber state.
20287         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
20288         (execute_return_slot_opt): Adjust.
20289         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
20290         check for call clobbered vars here.
20291         (find_tail_calls): Move tailcall verification to the
20292         proper place.
20293
20294 2010-04-16  Diego Novillo  <dnovillo@google.com>
20295
20296         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
20297
20298 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20299
20300         PR target/40603
20301         * config/arm/arm.md (cbranchqi4): New pattern.
20302         * config/arm/predicates.md (const0_operand,
20303         cbranchqi4_comparison_operator): New predicates.
20304
20305 2010-04-16  Richard Guenther  <rguenther@suse.de>
20306
20307         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
20308         (dump_gimple_stmt): Likewise.
20309
20310 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20311
20312         * recog.h (struct recog_data): New field is_operator.
20313         (struct insn_operand_data): New field is_operator.
20314         * recog.c (extract_insn): Set recog_data.is_operator.
20315         * genoutput.c (output_operand_data): Emit code to set the
20316         is_operator field.
20317         * reload.c (find_reloads): Use it rather than testing for an
20318         empty constraint string.
20319
20320         PR target/41514
20321         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
20322         If the previous insn is a cbranchsi4_insn with the same arguments,
20323         omit the compare instruction.
20324
20325         * config/arm/arm.md (addsi3_cbranch): If destination is a high
20326         register, inputs must be low registers and we need a low register
20327         scratch.  Handle alternative 2 like alternative 3.
20328
20329 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20330
20331         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
20332         don't call get_addr on both.  If one expression is a VALUE and
20333         the other a REG, check VALUE's locs if the REG isn't among them.
20334
20335 2010-04-16  Christian Bruel  <christian.bruel@st.com>
20336
20337         * config/sh/sh.h (sh_frame_pointer_required): New function.
20338         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
20339         (flag_omit_frame_pointer) Set.
20340         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
20341         (rounded_frame_size): Adjust size with outgoing_args_size.
20342         (sh_set_return_address): Must return from stack pointer.
20343         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
20344         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
20345         (ACCUMULATE_OUTGOING_ARGS): Define.
20346         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
20347         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
20348
20349 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20350
20351         PR target/43471
20352         * config/sh/sh.c (sh_legitimize_reload_address): Use
20353         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
20354         Remove a unneeded check for offset_base.
20355
20356 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20357
20358         * configure: Regenerated.
20359
20360 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20361
20362         * config/s390/s390.c (s390_call_save_register_used): Switch back
20363         to HARD_REGNO_NREGS.
20364
20365 2010-04-15  Richard Guenther  <rguenther@suse.de>
20366
20367         * alias.c (alias_set_subset_of): Handle alias-set zero
20368         child properly.
20369
20370 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
20371             Julian Brown  <julian@codesourcery.com>
20372
20373         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
20374         alternatives according to use of high and low regs.
20375         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
20376         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
20377         optimizing for size on Thumb-2.
20378
20379 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
20380
20381         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
20382
20383 2010-04-15  Richard Guenther  <rguenther@suse.de>
20384
20385         * tree-ssa-structalias.c (struct variable_info): Add
20386         is_fn_info flag.
20387         (new_var_info): Initialize it.
20388         (dump_constraints): Support printing last added constraints.
20389         (debug_constraints): Adjust.
20390         (dump_constraint_graph): Likewise.
20391         (make_heapvar_for): Check for NULL cfun.
20392         (get_function_part_constraint): New function.
20393         (get_fi_for_callee): Likewise.
20394         (find_func_aliases): Properly implement IPA PTA constraints.
20395         (process_ipa_clobber): New function.
20396         (find_func_clobbers): Likewise.
20397         (insert_into_field_list_sorted): Remove.
20398         (create_function_info_for): Properly allocate vars for IPA mode.
20399         Do not use insert_into_field_list_sorted.
20400         (create_variable_info_for): Properly generate constraints for
20401         global vars in IPA mode.
20402         (dump_solution_for_var): Always dump the solution.
20403         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
20404         (find_what_var_points_to): Adjust.
20405         (pt_solution_set): Change.
20406         (pt_solution_ior_into): New function.
20407         (pt_solution_empty_p): Export.
20408         (pt_solution_includes_global): Adjust.
20409         (pt_solution_includes_1): Likewise.
20410         (pt_solutions_intersect_1): Likewise.
20411         (dump_sa_points_to_info): Check some invariants.
20412         (solve_constraints): Move constraint dumping ...
20413         (compute_points_to_sets): ... here.
20414         (ipa_pta_execute): ... and here.
20415         (compute_may_aliases): Do not re-compute points-to info
20416         locally if IPA info is available.
20417         (ipa_escaped_pt): New global var.
20418         (ipa_pta_execute): Properly implement IPA PTA.
20419         * tree-into-ssa.c (dump_decl_set): Support dumping
20420         decls not in referenced-vars.
20421         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
20422         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
20423         (dump_points_to_solution): Likewise.
20424         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
20425         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
20426         (remap_gimple_stmt): Reset call clobber/use information if necessary.
20427         (copy_decl_to_var): Copy DECL_PT_UID.
20428         (copy_result_decl_to_var): Likewise.
20429         * tree.c (make_node_stat): Initialize DECL_PT_UID.
20430         (copy_node_stat): Copy it.
20431         * tree.h (DECL_PT_UID): New macro.
20432         (SET_DECL_PT_UID): Likewise.
20433         (DECL_PT_UID_SET_P): Likewise.
20434         (struct tree_decl_minimal): Add pt_uid member.
20435         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
20436         (pt_solution_empty_p): Declare.
20437         (pt_solution_set): Adjust.
20438         (ipa_escaped_pt): Declare.
20439         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
20440         * gimple-pretty-print.c (pp_points_to_solution): New function.
20441         (dump_gimple_call): Dump call clobber/use information.
20442         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
20443         * tree-pass.h (TDF_ALIAS): New dump option.
20444         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
20445         * doc/invoke.texi (-fipa-pta): Update documentation.
20446
20447 2010-04-15  Richard Guenther  <rguenther@suse.de>
20448
20449         * Makefile.in (OBJS-common): Add gimple-fold.o.
20450         (gimple-fold.o): New rule.
20451         * tree.h (maybe_fold_offset_to_reference,
20452         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
20453         prototypes ...
20454         * gimple.h: ... here.
20455         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
20456         may_propagate_address_into_dereference): Move prototypes ...
20457         * gimple.h: ... here.
20458         * tree-ssa-ccp.c (get_symbol_constant_value,
20459         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
20460         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
20461         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
20462         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
20463         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
20464         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
20465         gimplify_and_update_call_from_tree): Move ...
20466         * gimple-fold.c: ... here.  New file.
20467         (ccp_fold_builtin): Rename to ...
20468         (gimple_fold_builtin): ... this.
20469         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
20470
20471 2010-04-15  Richard Guenther  <rguenther@suse.de>
20472
20473         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
20474         fit_double_type, force_fit_type_double, add_double_with_sign,
20475         neg_double, mul_double_with_sign, lshift_double, rshift_double,
20476         lrotate_double, rrotate_double, div_and_round_double): Move ...
20477         * double-int.c: ... here.
20478         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
20479         add_double, neg_double, mul_double_with_sign, mul_double,
20480         lshift_double, rshift_double, lrotate_double, rrotate_double,
20481         div_and_round_double): Move prototypes ...
20482         * double-int.h: ... here.
20483
20484 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
20485
20486         PR target/43742
20487         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
20488         matching constraints to ensure inputs match the output.
20489
20490 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20491
20492         PR target/43742
20493         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
20494         in an input-only operand.
20495
20496 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
20497
20498         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
20499         (double_int_not, double_int_lshift, double_int_rshift): Declare.
20500         (double_int_negative_p): Convert to static inline function.
20501         * double-int.c (double_int_lshift, double_int_lshift): New functions.
20502         (double_int_negative_p): Remove.
20503         * tree.h (lshift_double, rshift_double):
20504         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
20505         * fold-const.c (fold_convert_const_int_from_real,
20506         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
20507         (lshift_double): Change type of arith argument to bool.
20508         (rshift_double): Change type of arith argument to bool. Correct
20509         comment.
20510         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20511
20512 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
20513
20514         PR target/21803
20515         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
20516         at the start and end of the then/else blocks, and omit them from the
20517         conversion.
20518         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
20519         argument; all callers changed.  Pass zero to old_insns_match_p instead.
20520         (flow_find_head_matching_sequence): New function.
20521         (old_insns_match_p): Check REG_EH_REGION notes for calls.
20522         * basic-block.h (flow_find_cross_jump,
20523         flow_find_head_matching_sequence): Declare functions.
20524
20525 2010-04-14  Jason Merrill  <jason@redhat.com>
20526
20527         PR c++/36625
20528         * c-common.c (attribute_takes_identifier_p): New fn.
20529         * c-common.h: Declare it.
20530
20531 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20532
20533         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
20534         splitter condition.
20535         (*udivmod<mode>4): Ditto.
20536
20537 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20538
20539         * config/i386/i386.md (maxmin_int): Rename code attribute from
20540         maxminiprefix and update all users.
20541         (maxmin_float): Ditto from maxminfprefix.
20542         (logic): Ditto from logicprefix.
20543         (absneg_mnemonic): Ditto from absnegprefix.
20544         * config/i386/mmx.md: Update all users of maxminiprefix,
20545         maxminfprefix and logicprefix for rename.
20546         * config/i386/sse.md: Ditto.
20547         * config/i386/sync.md (sync_<code><mode>): Update for
20548         logicprefix rename.
20549
20550 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20551
20552         PR 42966
20553         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
20554         warnings converted to errors.
20555
20556 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20557
20558         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
20559         used insn_type variable.
20560         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
20561         to avoid set-but-not-used warning.
20562
20563 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20564
20565         * df-core.c (df_ref_debug): Change format string placeholder
20566         from 0x%x to %#x.
20567         * dwarf2asm.c (dw2_asm_output_data_raw,
20568         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
20569         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
20570         * dwarf2out.c (output_cfi, output_cfi_directive,
20571         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
20572         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
20573         Ditto.
20574         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
20575         * print-rtl.c (print_rtx): Ditto.
20576
20577 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20578
20579         PR middle-end/42694
20580         * builtins.c (expand_builtin_pow_root): New function to expand pow
20581         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
20582         series of sqrt and cbrt calls under -ffast-math.
20583         (expand_builtin_pow): Call it.
20584
20585 2010-04-14  Michael Matz  <matz@suse.de>
20586
20587         PR tree-optimization/42963
20588         * tree-cfg.c (touched_switch_bbs): New static variable.
20589         (group_case_labels_stmt): New function broken out from ...
20590         (group_case_labels): ... here, use the above.
20591         (start_recording_case_labels): Allocate touched_switch_bbs.
20592         (end_recording_case_labels): Deallocate it, call
20593         group_case_labels_stmt.
20594         (gimple_redirect_edge_and_branch): Remember index of affected BB.
20595
20596 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20597
20598         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
20599         from insn template.
20600
20601 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20602
20603         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
20604
20605 2010-04-13  Jan Hubicka  <jh@suse.cz>
20606
20607         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
20608         of optimized out static functions.
20609         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
20610         cost computation.  Also sanity check for overflows.
20611         (update_caller_keys): Update cgraph_edge_badness call; properly
20612         update fibheap and sanity check that it is up to date.
20613         (add_new_edges_to_heap): Update cgraph_edge_badness.
20614         (cgraph_decide_inlining_of_small_function): Likewise;
20615         add sanity checking that badness in heap is up to date;
20616         improve dumping of reason; Update badness of calls to the
20617         offline copy of function currently inlined; dump badness
20618         of functions not inlined because of unit growth limits.
20619
20620 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
20621
20622         PR middle-end/32628
20623         * c-common.c (pointer_int_sum): Disregard overflow that occured only
20624         because of sign-extension change when converting to sizetype here...
20625         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
20626
20627         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
20628         the folding to constants.  Remove redundant final conversion.
20629         (fold_binary) <associate>: Do not associate if the re-association of
20630         constants alone overflows.
20631         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
20632         to the end of the list.
20633         (multiple_of_p) <COND_EXPR>: New case.
20634
20635 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20636
20637         * opt-functions.awk (opt_sanitized_name): New.
20638         (opt_enum): New.
20639         * optc-gen.awk: Use it
20640         * opth-gen.awk: Use it.
20641
20642 2010-04-13  Martin Jambor  <mjambor@suse.cz>
20643
20644         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
20645         (sra_modify_assign): Delete stmts loading dead data even if racc has no
20646         children.  Call replace_uses_with_default_def_ssa_name to handle
20647         SSA_NAES on lhs.
20648
20649 2010-04-13  Michael Matz  <matz@suse.de>
20650
20651         PR middle-end/43730
20652         * builtins.c (expand_builtin_interclass_mathfn): Also create
20653         a register if the predicate doesn't match.
20654
20655 2010-04-13  Diego Novillo  <dnovillo@google.com>
20656
20657         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
20658         * c-pch.c: Include timevar.h.
20659         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
20660         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
20661         * ggc-common.c: Include timevar.h.
20662         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
20663         * timevar.def (TV_PCH_SAVE): Define.
20664         (TV_PCH_CPP_SAVE): Define.
20665         (TV_PCH_PTR_REALLOC): Define.
20666         (TV_PCH_PTR_SORT): Define.
20667         (TV_PCH_RESTORE): Define.
20668         (TV_PCH_CPP_RESTORE): Define.
20669
20670 2010-04-13  Michael Matz  <matz@suse.de>
20671
20672         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
20673         into MINUS_EXPRs.
20674         (can_reassociate_p): New function.
20675         (break_up_subtract_bb, reassociate_bb): Use it.
20676
20677 2010-04-13  Richard Guenther  <rguenther@suse.de>
20678
20679         PR bootstrap/43737
20680         * builtins.c (c_readstr): Fix assert.
20681
20682 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
20683
20684         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
20685         when generating cltd insn.
20686
20687         (*ashl<mode>3_1): Remove special handling for register operand 2.
20688         (*ashlsi3_1_zext): Ditto.
20689         (*ashlhi3_1): Ditto.
20690         (*ashlhi3_1_lea): Ditto.
20691         (*ashlqi3_1): Ditto.
20692         (*ashlqi3_1_lea): Ditto.
20693         (*<shiftrt_insn><mode>3_1): Ditto.
20694         (*<shiftrt_insn>si3_1_zext): Ditto.
20695         (*<shiftrt_insn>qi3_1_slp): Ditto.
20696         (*<rotate_insn><mode>3_1): Ditto.
20697         (*<rotate_insn>si3_1_zext): Ditto.
20698         (*<rotate_insn>qi3_1_slp): Ditto.
20699
20700 2010-04-13  Richard Guenther  <rguenther@suse.de>
20701
20702         * tree-ssa-structalias.c (callused_id): Remove.
20703         (call_stmt_vars): New.
20704         (get_call_vi): Likewise.
20705         (lookup_call_use_vi): Likewise.
20706         (lookup_call_clobber_vi): Likewise.
20707         (get_call_use_vi): Likewise.
20708         (get_call_clobber_vi): Likewise.
20709         (make_transitive_closure_constraints): Likewise.
20710         (handle_const_call): Adjust to do per-call call-used handling.
20711         (handle_pure_call): Likewise.
20712         (find_what_var_points_to): Remove general callused handling.
20713         (init_base_vars): Likewise.
20714         (init_alias_vars): Initialize call_stmt_vars.
20715         (compute_points_to_sets): Process call-used and call-clobbered
20716         vars for call statements.
20717         (delete_points_to_sets): Free call_stmt_vars.
20718
20719 2010-04-13  Richard Guenther  <rguenther@suse.de>
20720
20721         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20722         Only add RW dependence for dependence distance zero.
20723         Adjust maximal vectorization factor according to dependences.
20724         Move alignment handling ...
20725         (vect_find_same_alignment_drs): ... here.  New function.
20726         (vect_analyze_data_ref_dependences): Adjust.
20727         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
20728         (vect_analyze_data_refs): Adjust minimal vectorization factor
20729         according to data references.
20730         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
20731         dependences before determining the vectorization factor.
20732         Analyze alignment after determining the vectorization factor.
20733         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
20734         dependences before alignment.
20735         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
20736         Adjust prototype.
20737         (vect_analyze_data_refs): Likewise.
20738         (MAX_VECTORIZATION_FACTOR): New define.
20739
20740 2010-04-13  Duncan Sands  <baldrick@free.fr>
20741
20742         * except.h (lang_eh_type_covers): Remove.
20743         * except.c (lang_eh_type_covers): Likewise.
20744
20745 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20746             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20747
20748         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
20749         * config/s390/s390.c: Replace UNTIS_PER_WORD with
20750         UNITS_PER_LONG where it is ABI relevant.
20751         (s390_return_addr_rtx): Likewise.
20752         (s390_back_chain_rtx): Likewise.
20753         (s390_frame_area): Likewise.
20754         (s390_frame_info): Likewise.
20755         (s390_initial_elimination_offset): Likewise.
20756         (save_gprs): Likewise.
20757         (s390_emit_prologue): Likewise.
20758         (s390_emit_epilogue): Likewise.
20759         (s390_function_arg_advance): Likewise.
20760         (s390_function_arg): Likewise.
20761         (s390_va_start): Likewise.
20762         (s390_gimplify_va_arg): Likewise.
20763         (s390_function_profiler): Likewise.
20764         (s390_optimize_prologue): Likewise.
20765         (s390_rtx_costs): Likewise.
20766         (s390_secondary_reload): Likewise.
20767         (s390_promote_function_mode): Likewise.
20768         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
20769         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
20770         registers available.
20771         (s390_unwind_word_mode): New function.
20772         (s390_function_value): Split 64 bit values into register pair if
20773         used as return value.
20774         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
20775         function call parameters.  Handle parallels.
20776         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
20777         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
20778         (DWARF_CIE_DATA_ALIGNMENT): New macro.
20779         (s390_expand_setmem): Remove unused variable src_addr.
20780         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
20781         deal with 64 bit registers.
20782         * config/s390/s390.h: Define __zarch__ predefined macro.
20783         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
20784         (UNITS_PER_LONG): New macro.
20785         * libjava/include/s390-signal.h: Define extended ucontext
20786         structure containing the upper halfs of the 64 bit registers.
20787
20788 2010-04-13  Simon Baldwin  <simonb@google.com>
20789
20790         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
20791
20792 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
20793
20794         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
20795         rvalue on the RHS if the LHS is of a non-renamable type.
20796         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
20797
20798 2010-04-13  Matthias Klose  <doko@ubuntu.com>
20799
20800         * gcc.c (cc1_options): Handle -iplugindir before processing
20801         the cc1 spec. Only add -iplugindir once.
20802         (cpp_unique_options): Add -iplugindir option if -fplugin* options
20803         found.
20804         * common.opt (iplugindir): Remove `Separate' property, initialize.
20805         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
20806         option.
20807         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
20808         (distclean): Remove plugin dir.
20809         * doc/invoke.texi: Document -iplugindir.
20810
20811 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
20812
20813         * doc/plugins.texi (Loading Plugins): Document short
20814         -fplugin=foo option.
20815         (Plugin API): Mention default_plugin_dir_name function.
20816
20817         * gcc.c (find_file_spec_function): Add new declaration.
20818         (static_spec_func): Use it for "find-file".
20819         (find_file_spec_function): Add new function.
20820         (cc1_options): Add -iplugindir option if -fplugin* options found.
20821
20822         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
20823
20824         * plugin.c (add_new_plugin): Updated comment, and handle short
20825         plugin name.
20826         (default_plugin_dir_name): Added new function.
20827
20828         * common.opt (iplugindir): New option to set the plugin directory.
20829
20830 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
20831
20832         * config/i386/i386.md (any_rotate): New code iterator.
20833         (rotate_insn): New code attribute.
20834         (rotate): Ditto.
20835         (SWIM124): New mode iterator.
20836         (<rotate_insn>ti3): New expander.
20837         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
20838         any_rotate code iterator.
20839         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
20840         using any_rotate code iterator and SWIM124 mode iterator.
20841         (ix86_rotlti3): New insn_and_split pattern.
20842         (ix86_rotrti3): Ditto.
20843         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
20844         ix86_rotl{di,ti}3 patterns.
20845         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
20846         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
20847         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
20848         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
20849         code iterator and SWI mode iterator.
20850         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
20851         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
20852         code iterator.
20853         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
20854         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
20855         (bswap rotatert splitter): Add splitter.
20856         (bswap splitter): Macroize splitter using any_rotate code iterator.
20857         Add insn predicate to split only for TARGET_USE_XCHGB or when
20858         optimizing function for size.
20859
20860 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20861
20862         * config/pa/pa.c (emit_move_sequence): Remove use of
20863         deleted variable flag_argument_noalias.
20864
20865 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20866
20867         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
20868         configurations.
20869         Add to unsupported targets list.
20870         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
20871         sparc*-sun-solaris2.[567]* from target lists.
20872         * configure: Regenerate.
20873         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
20874         removal.
20875         Remove Solaris 7 patch references.
20876         (Specific, sparc-sun-solaris2.7): Removed.
20877         (sparc-sun-solaris2*): Update Solaris 7 example.
20878         (sparc64-*-solaris2*): Likewise.
20879
20880 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20881
20882         * config.build (alpha*-dec-osf4*): Remove.
20883         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
20884         of obsolete configurations.
20885         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
20886         support.
20887         * config/alpha/t-osf4: Renamed to ...
20888         * config/alpha/t-osf5: ... this.
20889         * config/alpha/osf.h: Renamed to ...
20890         * config/alpha/osf5.h: ... this.
20891         Merged old osf5.h contents.
20892         Update comments.
20893         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
20894         (EXTRA_SPECS): Removed.
20895         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
20896         reflect removal of Tru64 UNIX V4.0/V5.0 support.
20897         Document that.
20898
20899 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20900
20901         * doc/contrib.texi (Contributors, Rainer Orth): Update.
20902
20903 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
20904
20905         PR/43702
20906         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
20907         __thiscall convention.
20908
20909 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20910
20911         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
20912         orig_base.
20913         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
20914
20915 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
20916
20917         * function.c (assign_parms_initialize_all): Add unused attribute
20918         to fntype.
20919
20920 2010-04-12  Richard Guenther  <rguenther@suse.de>
20921
20922         * gsstruct.def (GSS_CALL): New.
20923         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
20924         * gimple.h: Include tree-ssa-alias.h.
20925         (struct gimple_statement_call): New.
20926         (union gimple_statement_struct_d): Add gimple_call member.
20927         (gimple_call_reset_alias_info): Declare.
20928         (gimple_call_use_set): New function.
20929         (gimple_call_clobber_set): Likewise.
20930         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
20931         * gimple.c (gimple_call_reset_alias_info): New function.
20932         (gimple_build_call_1): Call it.
20933         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20934         * tree-inline.c (remap_gimple_stmt): Likewise.
20935         (expand_call_inline): Remove callused handling.
20936         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
20937         * tree-dfa.c (dump_variable): Likewise.
20938         * tree-parloops.c (parallelize_loops): Likewise.
20939         * tree-ssa.c (init_tree_ssa): Likewise.
20940         (delete_tree_ssa): Likewise.
20941         * tree-flow-inline.h (is_call_used): Remove.
20942         * tree-flow.h (struct gimple_df): Remove callused member.
20943         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
20944         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
20945         (ref_maybe_used_by_call_p_1): Simplify.
20946         (call_may_clobber_ref_p_1): Likewise.
20947         * tree-ssa-structalias.c (compute_points_to_sets): Set
20948         the call stmt used and clobbered sets.
20949         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
20950         (find_tail_calls): Verify the tail call.
20951
20952 2010-04-12  Richard Guenther  <rguenther@suse.de>
20953
20954         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
20955         single-iteration always-inline inlining.
20956         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
20957         (cgraph_decide_inlining): Do not handle always-inline specially.
20958         (try_inline): Remove always-inline cycle detection special case.
20959         Do not recurse on always-inlines.
20960         (cgraph_early_inlining): Do not iterate if not optimizing.
20961         (cgraph_gate_early_inlining): remove.
20962         (pass_early_inline): Run unconditionally.
20963         (gate_cgraph_decide_inlining): New function.
20964         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
20965         not inlining or optimizing.
20966         (cgraph_decide_inlining_of_small_functions): Also consider
20967         always-inline functions.
20968         (cgraph_default_inline_p): Return true for nodes which should
20969         disregard inline limits.
20970         (estimate_function_body_sizes): Assume zero size and time for
20971         nodes which are marked as disregarding inline limits.
20972         (cgraph_decide_recursive_inlining): Do not perform recursive
20973         inlining on always-inline nodes.
20974
20975 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
20976
20977         PR bootstrap/43699
20978         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
20979         for exprs satisfying handled_component_p.
20980
20981 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
20982
20983         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
20984         non-constant aggregate elements.
20985
20986         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
20987         is a real initialization.
20988
20989 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
20990
20991         PR c/36774
20992         * c-decl.c (start_function): Move forward check for nested function.
20993
20994 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
20995
20996         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
20997         * config/sh/sh.c: Include reload.h.
20998         (sh_legitimize_reload_address): New.
20999         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
21000         sh_legitimize_reload_address.
21001
21002 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21003
21004         * config/sh/sh.md (*movqi_pop): New insn pattern.
21005         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
21006
21007 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21008
21009         * config/i386/i386.md (any_shiftrt): New code iterator.
21010         (shiftrt_insn): New code attribute.
21011         (shiftrt): Ditto.
21012         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
21013         using any_shiftrt code iterator.
21014         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
21015         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
21016         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
21017         pattern from corresponding peephole2 patterns.
21018         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
21019         using any_shiftrt code iterator.
21020         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
21021         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
21022         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
21023         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
21024         *{ashr,lshr}<mode>3_cmp_zext.
21025         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
21026
21027 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21028
21029         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
21030         scratch register.
21031         (*lshr<mode>3_cconly): Ditto.
21032
21033 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21034
21035         * config/i386/i386.md (lshr<mode>3): Macroize expander from
21036         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21037         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21038         pattern from *lshr{di,ti}3_1 and corresponding splitters using
21039         DWI mode iterator.
21040         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21041         from corresponding peephole2 patterns.
21042         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
21043         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
21044         and *lshrdi3_1_rex64 using SWI mode iterator.
21045         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
21046         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
21047         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
21048         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
21049         and *lshrdi3_cmp_rex64 using SWI mode iterator.
21050         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
21051         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
21052         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
21053         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
21054         SWI mode iterator.
21055
21056 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
21057
21058         * config/i386/i386.md (ashr<mode>3): Macroize expander from
21059         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21060         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21061         pattern from *ashr{di,ti}3_1 and corresponding splitters using
21062         DWI mode iterator.
21063         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21064         from corresponding peephole2 patterns.
21065         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
21066         (ashrsi3_cvt): Rename from ashrsi3_31.
21067         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
21068         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
21069         and x86_64_shift_adj_3 using SWI48 mode iterator.
21070         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
21071         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
21072         and *ashrdi3_1_rex64 using SWI mode iterator.
21073         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
21074         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
21075         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
21076         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
21077         and *ashrdi3_cmp_rex64 using SWI mode iterator.
21078         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
21079         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
21080         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
21081         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
21082         SWI mode iterator.
21083         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
21084         * config/i386/i386.c (ix86_split_ashr): Update for renamed
21085         x86_shift<mode>_adj_3 expanders.
21086
21087 2010-04-10  Wei Guozhi  <carrot@google.com>
21088
21089         PR target/42601
21090         * config/arm/arm.c (arm_pic_static_addr): New function.
21091         (legitimize_pic_address): Call arm_pic_static_addr when it detects
21092         a static symbol.
21093         (arm_output_addr_const_extra): Output expression for new pattern.
21094         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
21095
21096 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
21097
21098         * ira-costs.c (record_reg_classes): Ignore alternatives that are
21099         not enabled.
21100
21101         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
21102         * web.c: Include "insn-config.h" and "recog.h".
21103         (union_match_dups): New function.
21104         (web_main): Call it.
21105         (union_defs): Don't try to recognize match_dups.
21106
21107         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
21108         if doing so would replace the entire pattern.
21109
21110 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21111
21112         PR target/43707
21113         PR target/43709
21114         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
21115         and splitter pattern.  Change splitter operand 1 predicate to
21116         nonmemory_operand.
21117
21118 2010-04-09  Martin Jambor  <mjambor@suse.cz>
21119
21120         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
21121         lattices are addresses of CONST_DECLs with the same initial value.
21122         (ipcp_print_all_lattices): Print values of CONST_DECLs.
21123         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
21124
21125 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
21126             Bernd Schmidt  <bernds@codesourcery.com>
21127
21128         * loop-invariant.c (replace_uses): New static function.
21129         (move_invariant_reg): Use it to ensure we can replace the uses.
21130
21131 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21132
21133         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
21134         function template.
21135         (picochip_override_options): Enable section anchors only above -O1.
21136         (picochip_reorg): Fixed a couple of build warnings.
21137
21138 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21139
21140         * configure.ac (plugin -rdynamic test): Log result.
21141         * configure: Regenerate.
21142         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
21143         (RDYNAMIC_SPEC): Define.
21144         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
21145
21146 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21147
21148         * configure.ac: Determine Sun ld version numbers.
21149         (comdat_group): Restrict GNU ld version checks to gld.
21150         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
21151         (enable_comdat): Support --enable-comdat.
21152         * configure: Regenerate.
21153         * doc/install.texi (Configuration): Document --enable-comdat.
21154
21155 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21156
21157         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
21158         * config/sol2-gld.h: ... here.
21159         * config.gcc (sparc*-*-solaris2*): Reflect this.
21160         (i[34567]86-*-solaris2*): Use it.
21161
21162 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
21163
21164         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
21165         setup_clocks_p.
21166         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
21167
21168 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21169
21170         PR 42965
21171         * diagnostic.c (diagnostic_initialize): Initialize
21172         some_warnings_are_errors.
21173         (diagnostic_finish): New.
21174         (diagnostic_action_after_output): Call it before exiting.
21175         (diagnostic_report_diagnostic): Do not print message here. Set
21176         some_warnings_are_errors.
21177         * diagnostic.h (diagnostic_context): Delete
21178         issue_warnings_are_errors_message. Add some_warnings_are_errors.
21179         (diagnostic_finish): Declare.
21180         * toplev.c (toplev_main): Call it before exit.
21181
21182 2010-04-09  Jason Merrill  <jason@redhat.com>
21183
21184         PR c++/42623
21185         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
21186         for incomplete type.
21187
21188         PR c++/41788
21189         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
21190         based on a warning flag.
21191
21192 2010-04-09  Richard Guenther  <rguenther@suse.de>
21193
21194         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
21195
21196 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
21197
21198         PR bootstrap/43684
21199         * varasm.c (default_assemble_visibility): Wrap vars that are
21200         set, but unused, by targets without GAS.
21201         * config/rs6000/rs6000.c (paired_emit_vector_compare):
21202         Remove set, but unused, vars.
21203         (rs6000_legitimize_tls_address): Likewise.
21204         (altivec_expand_dst_builtin): Likewise.
21205         * config/darwin.c (machopic_classify_symbol): Likewise.
21206         (machopic_indirection_name): Likewise.
21207
21208 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21209
21210         * config/i386/i386.md (DWI): New mode iterator.
21211         (S): New mode attribute.
21212         (shift_operand): Ditto.
21213         (shift_immediate_operand): Ditto.
21214         (ashl_input_operand): Ditto.
21215         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
21216         using SDWIM mode iterator.
21217         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21218         pattern from *ashl{di,ti}3_1 and corresponding splitters using
21219         DWI mode iterator.
21220         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
21221         from corresponding peephole2 patterns.
21222         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
21223         and x86_64_shift_adj_1 using SWI48 mode iterator.
21224         (x86_shift<mode>_adj_2): Ditto.
21225         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
21226         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
21227         using SWI48 mode iterator.
21228         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
21229         *ashldi3_cmp_rex64 using SWI mode iterator.
21230         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
21231         *ashldi3_cconly_rex64 using SWI mode iterator.
21232         * config/i386/i386.c (ix86_split_ashl): Update for renamed
21233         x86_shift<mode>_adj_{1,2}.
21234         (ix86_split_ashr): Ditto.
21235         (ix86_split_lshr): Ditto.
21236
21237 2010-04-09  Richard Guenther  <rguenther@suse.de>
21238
21239         * target.h (builtin_conversion): Pass in input and output types.
21240         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
21241         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
21242         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
21243         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
21244
21245         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
21246         Handle AVX modes.
21247         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
21248
21249 2010-04-09  Richard Guenther  <rguenther@suse.de>
21250
21251         PR target/43152
21252         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
21253
21254 2010-04-09  Richard Guenther  <rguenther@suse.de>
21255
21256         * tree-vectorizer.h (struct _stmt_vec_info): Document
21257         that vectype is the type of the LHS.
21258         (supportable_widening_operation, supportable_narrowing_operation):
21259         Get both input and output vector types as arguments.
21260         (vect_is_simple_use_1): Declare.
21261         (get_same_sized_vectype): Likewise.
21262         * tree-vect-loop.c (vect_determine_vectorization_factor):
21263         Set STMT_VINFO_VECTYPE to the vector type of the def.
21264         (vectorizable_reduction): Adjust.
21265         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
21266         Adjust.  Specify the output vector type.
21267         (vect_pattern_recog_1): Adjust.
21268         * tree-vect-stmts.c (get_same_sized_vectype): New function.
21269         (vectorizable_call): Adjust.
21270         (vectorizable_conversion): Likewise.
21271         (vectorizable_operation): Likewise.
21272         (vectorizable_type_demotion): Likewise.
21273         (vectorizable_type_promotion): Likewise.
21274         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
21275         the def.
21276         (vect_is_simple_use_1): New function.
21277         (supportable_widening_operation): Get both input and output
21278         vector types.
21279         (supportable_narrowing_operation): Likewise.
21280         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
21281
21282 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
21283
21284         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
21285         __thiscall and _thiscall as predefined macros.
21286         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
21287         thiscall attribute handling.
21288         (ix86_comp_type_attributes): Likewise.
21289         (ix86_function_regparm): Likewise.
21290         (ix86_return_pops_args): Likewise.
21291         (init_cumulative_args): Likewise.
21292         (find_drap_reg): Likewise.
21293         (ix86_static_chain): Likewise.
21294         (x86_this_parameter): Likewise.
21295         (x86_output_mi_thunk): Likewise.
21296         (ix86_attribute_table): Add description for thiscall attribute.
21297         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
21298         * doc/extend.texi: Add documentation for thiscall.
21299
21300 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21301
21302         PR c++/28584
21303         * c.opt (Wint-to-pointer-cast): Available in C++.
21304         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
21305
21306 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21307
21308         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
21309         * calls.c (expand_call): Pass the function type to aggregate_value_p.
21310         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
21311         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
21312         function type instead.  Reorder and simplify checks.
21313
21314         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
21315
21316 2010-04-08  Jing Yu  <jingyu@google.com>
21317             Zdenek Dvorak  <ook@ucw.cz>
21318
21319         PR tree-optimization/42720
21320         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
21321         loop unswitch conditions here from ...
21322         (tree_unswitch_single_loop): ... here.
21323
21324 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21325
21326         * tree-if-conv.c: Fix comments and simplify logic.
21327
21328 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21329
21330         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
21331         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
21332         (main_tree_if_conversion): Update call to tree_if_conversion.
21333
21334 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21335
21336         PR 42485
21337         * doc/invoke.texi (-b,-V): Delete.
21338         * doc/tm.texi: Do not mention -b.
21339         * gcc.c (display_help): Delete -b and -V.
21340         (process_command): Delete -b and -V.
21341         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
21342
21343 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
21344             Wolfgang Gellerich  <gellerich@de.ibm.com>
21345
21346         Implement target hook for loop unrolling
21347         * target.h (loop_unroll_adjust): Add a new target hook function.
21348         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
21349         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
21350         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
21351         (s390_loop_unroll_adjust): Implement the new target hook for s390.
21352         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
21353         target hook.
21354         (decide_unroll_stupid): Likewise.
21355
21356 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21357
21358         PR target/43643
21359         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
21360
21361 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21362
21363         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
21364         (Specific, *-*-solaris2*): Likewise.
21365         Don't prefer Sun as over GNU as.
21366
21367 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
21368
21369         * config/s390/s390.c (override_options): Adjust the z10 defaults
21370         for max-unroll-times, max-completely-peeled-insns
21371         and max-completely-peel-times.
21372
21373 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21374
21375         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
21376         instructions for z10.
21377         (s390_expand_setmem): Likewise.
21378         (s390_expand_cmpmem): Likewise.
21379
21380 2010-04-08  Richard Guenther  <rguenther@suse.de>
21381
21382         PR tree-optimization/43679
21383         * tree-ssa-pre.c (eliminate): Only propagate copies.
21384
21385 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21386
21387         PR bootstrap/43681
21388         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
21389         set but not used variable warning.
21390
21391 2010-04-08  Wei Guozhi  <carrot@google.com>
21392
21393         PR target/41653
21394         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
21395         (arm_size_rtx_costs): Call the new function when optimized for size.
21396
21397 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21398
21399         PR debug/43670
21400         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
21401         op0 is not a MEM, just return NULL instead of assertion
21402         failure.
21403         (discover_nonconstant_array_refs): Don't walk debug stmts.
21404
21405 2010-04-08  Doug Kwan  <dougkwan@google.com>
21406
21407         * configure.ac: Recognize gold and do not use its version number
21408         to test ld features.
21409         * configure: Regenerate.
21410
21411 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
21412
21413         PR middle-end/40815
21414         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
21415         (negate_value): Move code to push elements to broken_up_substracts ...
21416         (eliminate_plus_minus_pair): ... here.  Push operands that have no
21417         negative pair to plus_negates.
21418         (repropagate_negates, init_reassoc, fini_reassoc): Update.
21419
21420 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21421
21422         * doc/install.texi (Configuration): Move description of
21423         --enable-lto, --with-libelf*, --enable-gold from Java section to
21424         general section.
21425
21426         * doc/generic.texi (Working with declarations)
21427         (Function Properties, C and C++ Trees): Fix typos.
21428         * doc/sourcebuild.texi (Top Level): Likewise.
21429
21430 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21431
21432         PR c/18624
21433         * tree.h (DECL_READ_P): Define.
21434         (struct tree_decl_common): Add decl_read_flag.
21435         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
21436         a set but not used warning.
21437         (merge_decls): Merge DECL_READ_P flag.
21438         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
21439         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
21440         * c-common.c (handle_used_attribute, handle_unused_attribute):
21441         Likewise.
21442         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
21443         New prototypes.
21444         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
21445         New functions.
21446         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
21447         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
21448         c_parser_binary_expression, c_parser_cast_expression,
21449         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
21450         Call default_function_array_read_conversion instead of
21451         default_function_array_conversion where needed.
21452         (c_parser_unary_expression, c_parser_conditional_expression,
21453         c_parser_postfix_expression_after_primary, c_parser_initelt):
21454         Likewise.  Call mark_exp_read where needed.
21455         (c_parser_statement_after_labels, c_parser_asm_operands,
21456         c_parser_typeof_specifier, c_parser_sizeof_expression,
21457         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
21458         where needed.
21459         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
21460         New.
21461         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
21462         (warn_unused_but_set_parameter): Default to warn_unused
21463         && extra_warnings.
21464         * doc/invoke.texi: Document -Wunused-but-set-variable and
21465         -Wunused-but-set-parameter.
21466
21467         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
21468         used count variable.
21469         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
21470         when operandN variables aren't used in the body of the expander
21471         or splitter.
21472         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
21473         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
21474         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
21475         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
21476         FOR_EACH_IMM_USE_ON_STMT): Likewise.
21477         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
21478         * tree.c (PROCESS_ARG): Likewise.
21479
21480 2010-04-07  Simon Baldwin  <simonb@google.com>
21481
21482         * diagnostic.h (diagnostic_override_option_index): New macro to
21483         set a diagnostic's option_index.
21484         * c-tree.h (c_cpp_error): Add warning reason argument.
21485         * opts.c (_warning_as_error_callback): New.
21486         (register_warning_as_error_callback): Store callback for
21487         warnings enabled via enable_warning_as_error.
21488         (enable_warning_as_error): Call callback, minor code tidy.
21489         * opts.h (register_warning_as_error_callback): Declare.
21490         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
21491         response to -Werror=.
21492         (c_common_init_options): Register warning_as_error_callback in opts.c.
21493         * common.opt: Add -Wno-cpp option.
21494         * c-common.c (struct reason_option_codes_t): Map cpp warning
21495         reason codes to gcc option indexes.
21496         * (c_option_controlling_cpp_error): New function, lookup the gcc
21497         option index for a cpp warning reason code.
21498         * (c_cpp_error): Add warning reason argument, call
21499         c_option_controlling_cpp_error for diagnostic_override_option_index.
21500         * doc/invoke.texi: Document -Wno-cpp.
21501
21502 2010-04-07  Richard Guenther  <rguenther@suse.de>
21503
21504         * ipa-reference.c (mark_load): Use get_base_address.
21505         (mark_store): Likewise.
21506
21507         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
21508         inserting GIMPLE_NOPs into the IL.
21509         * tree-ssa-structalias.c (get_constraint_for_component_ref):
21510         Explicitly strip handled components and indirect references.
21511
21512         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
21513         folding address expressions.
21514         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
21515         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
21516         operand_equal_p to compare decls.
21517         (ptr_deref_may_alias_decl_p): Likewise.
21518         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
21519         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
21520         Handle reversed comparison ops.
21521         * tree-sra.c (asm_visit_addr): Use get_base_address.
21522         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
21523         * ipa-reference.c (mark_address): Use get_base_address.
21524
21525 2010-04-07  Richard Guenther  <rguenther@suse.de>
21526
21527         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
21528         Propagate constants everywhere.
21529
21530 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21531
21532         PR debug/43516
21533         * tree.c (MAX_INT_CACHED_PREC): Define.
21534         (nonstandard_integer_type_cache): New array.
21535         (build_nonstandard_integer_type): Cache results for precision
21536         <= MAX_INT_CACHED_PREC.
21537
21538 2010-04-07  Richard Guenther  <rguenther@suse.de>
21539
21540         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
21541         -fargument-noalias-global, -fargument-noalias-anything): Remove.
21542         * common.opt: Likewise.
21543         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
21544         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
21545         (nonoverlapping_memrefs_p): Likewise.
21546         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
21547         * opts.c (common_handle_option): Handle OPT_fargument_alias,
21548         OPT_fargument_noalias, OPT_fargument_noalias_anything and
21549         OPT_fargument_noalias_global for backward compatibility.
21550
21551 2010-04-07  Richard Guenther  <rguenther@suse.de>
21552
21553         PR tree-optimization/43270
21554         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
21555         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
21556         * tree-ssa-pre.c (phi_translate_1): Adjust.
21557         (fully_constant_expression): Split out vn_reference handling to ...
21558         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
21559         Fold reads from constant strings.
21560         (vn_reference_lookup): Handle fully constant references.
21561         (vn_reference_lookup_pieces): Likewise.
21562         * Makefile.in (expmed.o-warn): Add -Wno-error.
21563
21564 2010-04-07  Martin Jambor  <mjambor@suse.cz>
21565
21566         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
21567
21568 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
21569
21570         PR driver/41594
21571         * gcc.c: Add -static-libstdc++ to list of recognized options.
21572
21573 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21574
21575         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
21576
21577 2010-04-07  Richard Guenther  <rguenther@suse.de>
21578
21579         PR middle-end/42617
21580         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
21581         bases build simple mem attributes to retain points-to information.
21582
21583 2010-04-07  Richard Guenther  <rguenther@suse.de>
21584
21585         PR middle-end/42617
21586         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
21587         preserve points-to related information.
21588
21589 2010-04-07  Richard Guenther  <rguenther@suse.de>
21590
21591         PR middle-end/42617
21592         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
21593         discard plain indirect references.
21594         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
21595         * tree.c (tree_nop_conversion): Likewise.
21596
21597 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
21598
21599         PR debug/43628
21600         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
21601
21602 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
21603
21604         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
21605         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
21606
21607 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21608
21609         * tree-if-conv.c: Fix indentation and comments.
21610
21611 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21612
21613         * tree-if-conv.c: Sort static functions in topological order.
21614
21615 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
21616
21617         * tree-if-conv.c: Fix indentation and comments.
21618
21619 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21620
21621         PR middle-end/43519
21622         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
21623         lang_hooks.types.type_for_size instead of
21624         build_nonstandard_integer_type.
21625         When converting an unsigned type to signed, double its precision.
21626         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
21627         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
21628         (graphite_create_new_loop_guard): When ub + 1 wraps around,
21629         use lb <= ub.
21630
21631 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21632
21633         PR middle-end/43519
21634         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
21635         POINTER_PLUS_EXPR for pointer types.
21636
21637 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21638
21639         PR middle-end/43519
21640         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
21641         * graphite-clast-to-gimple.c: Include langhooks.h.
21642         (max_signed_precision_type): New.
21643         (max_precision_type): Takes two types as arguments.
21644         (precision_for_value): New.
21645         (precision_for_interval): New.
21646         (gcc_type_for_interval): New.
21647         (gcc_type_for_value): New.
21648         (gcc_type_for_clast_term): New.
21649         (gcc_type_for_clast_red): New.
21650         (gcc_type_for_clast_bin): New.
21651         (gcc_type_for_clast_expr): Split up into several functions.
21652         (gcc_type_for_clast_eq): Rewritten.
21653         (compute_bounds_for_level): New.
21654         (compute_type_for_level_1): New.
21655         (compute_type_for_level): New.
21656         (gcc_type_for_cloog_iv): Removed.
21657         (gcc_type_for_iv_of_clast_loop): Rewritten.
21658         (graphite_create_new_loop): Compute the lower and upper bound types
21659         with gcc_type_for_clast_expr.
21660         (graphite_create_new_loop_guard): Same.
21661         (find_cloog_iv_in_expr): Removed.
21662         (compute_cloog_iv_types_1): Removed.
21663         (compute_cloog_iv_types): Removed.
21664         (gloog): Do not call compute_cloog_iv_types.
21665         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
21666         GBB_CLOOG_IV_TYPES.
21667         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
21668         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
21669         (GBB_CLOOG_IV_TYPES): Removed.
21670
21671 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21672
21673         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
21674         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
21675         (detect_commutative_reduction): Same.
21676
21677 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21678
21679         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
21680         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
21681         argument.
21682         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
21683         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
21684         (rewrite_commutative_reductions_out_of_ssa): Same.
21685         * passes.c (execute_function_todo): Call verify_ssa for every pass
21686         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
21687         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
21688         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
21689         with an extra argument.
21690         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
21691         verify_ssa only when the extra argument is true.
21692         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
21693         with an extra argument.
21694         (tree_transform_and_unroll_loop): Same.
21695
21696 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
21697
21698         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
21699         for all the passes of the LNO having LOOP_CLOSED_SSA.
21700         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
21701         * tree-loop-distribution.c (pass_loop_distribution): Same.
21702         * tree-pass.h (TODO_verify_loops): Removed.
21703         * tree-ssa-loop.c (pass_tree_loop_init): Same.
21704         (pass_lim): Same.
21705         (pass_tree_unswitch): Same.
21706         (pass_predcom): Same.
21707         (pass_vectorize): Same.
21708         (pass_linear_transform): Same.
21709         (pass_graphite_transforms): Same.
21710         (pass_iv_canon): Same.
21711         (pass_complete_unroll): Same.
21712         (pass_complete_unrolli): Same.
21713         (pass_parallelize_loops): Same.
21714         (pass_loop_prefetch): Same.
21715         (pass_iv_optimize): Same.
21716
21717 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
21718
21719         PR middle-end/32824
21720         * passes.c (init_optimization_passes): Move pass_lim before
21721         pass_copy_prop and pass_dce_loop.
21722
21723 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
21724
21725         PR target/43667
21726         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
21727         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
21728         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
21729         MULTI_* defines for 4 argument vpermil2p* builtins.
21730
21731 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
21732
21733         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
21734         * config/i386/i386.c (x86_maybe_negate_const_int): New.
21735         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
21736         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
21737         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
21738         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
21739         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
21740         Use x86_maybe_negate_const_int to output insn mnemonic.
21741         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
21742         check from instruction predicate.  Update comments.
21743         * config/i386/sync.md (sync_add<mode>): Use
21744         x86_maybe_negate_const_int to output insn mnemonic.
21745
21746 2010-04-06  Jan Hubicka  <jh@suse.cz>
21747
21748         PR tree-optimization/42906
21749         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
21750         IGNORE_SELF argument.  Set visited_control_parents for fully
21751         processed BBs.
21752         (find_obviously_necessary_stmts): Update call of
21753         mark_control_dependent_edges_necessary.
21754         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
21755
21756 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
21757
21758         * config/i386/i386.md: Remove comment about 'e' and 'E'
21759         operand modifier.
21760
21761 2010-04-06  Richard Guenther  <rguenther@suse.de>
21762
21763         PR tree-optimization/43627
21764         * tree-vrp.c (extract_range_from_unary_expr): Widenings
21765         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
21766         not varying.
21767
21768 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
21769
21770         * BASE-VER: Change to 4.6.0.
21771
21772         PR target/43638
21773         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
21774         handling.
21775
21776 2010-04-06  Richard Guenther  <rguenther@suse.de>
21777
21778         PR middle-end/43661
21779         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
21780
21781 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21782
21783         * doc/invoke.texi (Optimize Options): Document that LTO
21784         won't remove object access purely due to incompatible
21785         declarations.
21786
21787 2010-04-04  Matthias Klose  <doko@ubuntu.com>
21788
21789         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
21790         Initialize variable.
21791
21792 2010-04-03  Richard Guenther  <rguenther@suse.de>
21793
21794         PR middle-end/42509
21795         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
21796         require a non-NULL MEM_OFFSET.
21797
21798 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
21799
21800         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
21801         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
21802         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
21803         config/alpha/predicates.md, config/arm/arm.md,
21804         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
21805         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
21806         config/darwin9.h, config/darwin.c, config/darwin.h,
21807         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
21808         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
21809         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
21810         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
21811         config/mips/mips.md, config/mn10300/mn10300.c,
21812         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
21813         config/rs6000/aix.h, config/rs6000/dfp.md,
21814         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
21815         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
21816         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
21817         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
21818         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
21819         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
21820         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
21821         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
21822         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
21823         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
21824         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
21825         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
21826         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
21827         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
21828         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
21829         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
21830         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
21831         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
21832         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
21833         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
21834         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
21835         opt-functions.awk, opth-gen.awk, params.def, passes.c,
21836         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
21837         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
21838         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
21839         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
21840         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
21841         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
21842         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
21843         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
21844         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
21845         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
21846         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
21847         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
21848         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
21849         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
21850
21851 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21852
21853         PR other/43620
21854         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
21855         * aclocal.m4: Regenerate.
21856
21857 2010-04-02  Richard Guenther  <rguenther@suse.de>
21858
21859         PR tree-optimization/43629
21860         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
21861         if we have seen a constant value.
21862
21863 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
21864
21865         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
21866
21867 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
21868
21869         PR target/43469
21870         * arm.c (legitimize_tls_address): Adjust call to
21871         gen_tls_load_dot_plus_four.
21872         (arm_note_pic_base): New function.
21873         (arm_cannot_copy_insn_p): Use it.
21874         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
21875         constraint.
21876
21877 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21878
21879         PR bootstrap/43531
21880
21881         Revert:
21882         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21883
21884         * Makefile.in ($(out_object_file)): Depend on
21885         gt-$(basename $(notdir $(out_file))).h.
21886
21887 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
21888
21889         * config.gcc (lm32-*-rtems*): Add t-lm32.
21890
21891 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
21892
21893         * config.gcc: Add lm32-*-rtems*.
21894         * config/lm32/rtems.h: New file.
21895
21896 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
21897
21898         PR target/42609
21899         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
21900
21901 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
21902
21903         * dwarf2out.c (output_compilation_unit_header): For
21904         -gdwarf-4 use version 4 instead of version 3.
21905         (output_line_info): For version 4 and above emit additional
21906         maximum ops per insn header field.
21907         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
21908
21909         * dwarf2out.c (is_c_family, is_java): Remove.
21910         (lower_bound_default): New function.
21911         (add_bound_info, gen_descr_array_type_die): Use it.
21912
21913 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
21914
21915         PR debug/43325
21916         * dwarf2out.c (gen_variable_die): Allow debug info for variable
21917         re-declaration when it happens in a function.
21918
21919 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
21920
21921         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
21922         (cgraph_remove_function_insertion_hook): Same.
21923         (cgraph_call_function_insertion_hooks): Same.
21924
21925 2010-04-01  Richard Guenther  <rguenther@suse.de>
21926
21927         PR middle-end/43614
21928         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
21929         and TREE_THIS_VOLATILE.
21930         (copy_ref_info): Likewise.
21931         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
21932         * tree.c (build6_stat): Ignore side-effects of all but arg5
21933         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
21934         TARGET_MEM_REF.
21935
21936 2010-04-01  Richard Guenther  <rguenther@suse.de>
21937
21938         PR tree-optimization/43607
21939         * ipa-type-escape.c (check_call): Do not access non-existing
21940         arguments.
21941
21942 2010-04-01  Richard Guenther  <rguenther@suse.de>
21943
21944         PR middle-end/43602
21945         Revert
21946         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
21947                     Jack Howarth  <howarth@bromo.med.uc.edu>
21948
21949         * tree-profile.c (tree_init_ic_make_global_vars): Make static
21950         variables TLS.
21951
21952 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21953
21954         * doc/install.texi (Prerequisites): Document libelf usability on
21955         IRIX 5/6 and Solaris 2.
21956         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
21957         Update GNU as, GNU ld requirements.
21958         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
21959         Document Sun Studio compiler download.
21960         Update and simplify as, ld recommendations.
21961         (Specific, *-*-solaris2.7): Note obsoletion, removal.
21962
21963 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21964
21965         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
21966         with_tune_32 to pentium4.
21967
21968 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
21969
21970         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
21971
21972 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21973
21974         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
21975         obsoletion, removal.
21976         Update IDO URL.
21977         Document GNU as requirement.
21978         Update configure requirements.
21979         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
21980         Recomment IRIX 6.5.18+.
21981         Document IDF/IDL requirement.
21982         Document GNU as requirement.
21983         Document GNU ld bootstrap failure.
21984         Remove freeware.sgi.com reference.
21985
21986 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21987
21988         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
21989         UNIX V4.0, V5.0 obsoletion, removal.
21990         Remove --with-gc=simple reference.
21991         Update VM requirements during bootstrap.
21992         Remove -oldas bootstrap description.
21993         Update binutils reference.
21994         Remove comparison failure note.
21995
21996 2010-03-31  Richard Guenther  <rguenther@suse.de>
21997             Zdenek Dvorak  <ook@ucw.cz>
21998             Sebastian Pop  <sebastian.pop@amd.com>
21999
22000         PR middle-end/43464
22001         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
22002         with multiple arguments.
22003         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
22004
22005 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22006
22007         * graphite-dependences.c (print_pddr): Call print_pdr with an
22008         extra argument.
22009         * graphite-poly.c (debug_pdr): Add an extra argument for the
22010         verbosity level.
22011         (print_pdr): Same.
22012         (print_pbb_domain): Same.
22013         (print_pbb): Same.
22014         (print_scop_context): Same.
22015         (print_scop): Same.
22016         (print_cloog): Same.
22017         (debug_pbb_domain): Same.
22018         (debug_pbb): Same.
22019         (print_pdrs): Same.
22020         (debug_pdrs): Same.
22021         (debug_scop_context): Same.
22022         (debug_scop): Same.
22023         (debug_cloog): Same.
22024         (print_scop_params): Same.
22025         (debug_scop_params): Same.
22026         (print_iteration_domain): Same.
22027         (print_iteration_domains): Same.
22028         (debug_iteration_domain): Same.
22029         (debug_iteration_domains): Same.
22030         (print_scattering_function): Same.
22031         (print_scattering_functions): Same.
22032         (debug_scattering_function): Same.
22033         (debug_scattering_functions): Same.
22034         * graphite-poly.h (debug_pdr): Update declaration.
22035         (print_pdr): Same.
22036         (print_pbb_domain): Same.
22037         (print_pbb): Same.
22038         (print_scop_context): Same.
22039         (print_scop): Same.
22040         (print_cloog): Same.
22041         (debug_pbb_domain): Same.
22042         (debug_pbb): Same.
22043         (print_pdrs): Same.
22044         (debug_pdrs): Same.
22045         (debug_scop_context): Same.
22046         (debug_scop): Same.
22047         (debug_cloog): Same.
22048         (print_scop_params): Same.
22049         (debug_scop_params): Same.
22050         (print_iteration_domain): Same.
22051         (print_iteration_domains): Same.
22052         (debug_iteration_domain): Same.
22053         (debug_iteration_domains): Same.
22054         (print_scattering_function): Same.
22055         (print_scattering_functions): Same.
22056         (debug_scattering_function): Same.
22057         (debug_scattering_functions): Same.
22058
22059 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22060
22061         * graphite-poly.c (print_scattering_function_1): New.
22062         (print_scattering_function): Call it.
22063         (print_scop_params): Remove spaces at the end of lines.
22064         (print_cloog): New.
22065         (debug_cloog): New.
22066         * graphite-poly.h (print_cloog): Declared.
22067         (debug_cloog): Declared.
22068
22069 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22070
22071         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
22072         in loop->header.
22073         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
22074         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
22075         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
22076         to switch between adding the IV bump in loop->latch or in loop->header.
22077
22078 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22079
22080         * graphite-poly.c (print_scattering_function): Pretty print following
22081         the scoplib format.
22082         (print_pdr): Same.
22083         (print_pbb_domain): Same.
22084         (dump_gbb_cases): Same.
22085         (dump_gbb_conditions): Same.
22086         (print_pdrs): Same.
22087         (print_pbb): Same.
22088         (print_scop_params): Same.
22089         (print_scop_context): Same.
22090         (print_scop): Same.
22091         (print_pbb_body): New.
22092         (lst_indent_to): New.
22093         (print_lst): Start new lines with a #.
22094         * graphite-poly.h (pbb_bb): New.
22095         (pbb_index): Use pbb_bb.
22096         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
22097         disjuncts.
22098         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
22099
22100 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22101
22102         * dwarf2out.c (size_of_die): For -gdwarf-4 use
22103         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
22104         and 0 instead of 1 for dw_val_class_flag.
22105         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
22106         dw_val_class_range_list, dw_val_class_loc_list,
22107         dw_val_class_lineptr and dw_val_class_macptr, use
22108         DW_FORM_flag_present for dw_val_class_flag and
22109         DW_FORM_exprloc for dw_val_class_loc.
22110         (output_die): For -gdwarf-4 print dw_val_class_loc
22111         size as uleb128 instead of 1 or 2 bytes and don't print
22112         anything for dw_val_class_flag.
22113
22114         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
22115         instead of cselib_lookup following by tweaking locs->setting_insn.
22116
22117         PR bootstrap/43596
22118         * cselib.c (cselib_process_insn): Clear cselib_current_insn
22119         even before returning from label, setjmp call or volatile asm
22120         handling.
22121
22122 2010-03-31  Richard Guenther  <rguenther@suse.de>
22123
22124         PR middle-end/43600
22125         * cgraphunit.c (cgraph_output_in_order): Do not allocate
22126         temporary data on stack.
22127
22128 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22129
22130         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
22131         (PUSHSECTION_ASM_OP): Remove.
22132         (POPSECTION_ASM_OP): Remove.
22133         (PUSHSECTION_FORMAT): Remove.
22134         * config/sol2.h (PUSHSECTION_FORMAT): Define.
22135         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
22136         * config/sol2.c (solaris_output_init_fini): Use it.
22137
22138 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22139
22140         PR 43574
22141         * opt-functions.awk (var_type_struct): Use signed char type
22142         for simple variables.
22143
22144 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22145
22146         * config/sol2.c: Include output.h.
22147         (solaris_assemble_visibility): New function.
22148         * config/t-sol2 (sol2.o): Add output.h dependency.
22149         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
22150         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
22151         Redefine.
22152
22153 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22154
22155         PR target/43580
22156         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
22157         V2SImode or XFmode on PRE_DEC.
22158
22159         PR debug/43557
22160         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
22161         BLKmode.
22162
22163 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22164
22165         PR 43562
22166         * reload.h (caller_save_initialized_p): Declare.
22167         * toplev.c (backend_init_target): Don't call
22168         init_caller_save but set caller_save_initialized_p to false.
22169         * caller-save.c (caller_save_initialized_p): Define.
22170         (init_caller_save): Check caller_save_initialized_p.
22171         * ira.c (ira): Call init_caller_save if flag_caller_saves.
22172
22173 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22174
22175         PR target/39048
22176         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
22177         and soft-fp/t-softfp to tmake_file.
22178         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
22179         (LIBGCC2_TF_CEXT): Define.
22180         (TF_SIZE): Define.
22181
22182 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
22183
22184         PR debug/42977
22185         * cselib.c (n_useless_values): Document handling of debug locs.
22186         (n_useless_debug_values, n_debug_values): New variables.
22187         (new_elt_loc_list): Don't add to debug values, keep count.
22188         (promote_debug_loc): New.
22189         (cselib_reset_table): Zero new variables.
22190         (entry_and_rtx_equal_p): Promote debug locs.
22191         (discard_useless_locs): Increment n_useless_debug_values for
22192         debug values.
22193         (remove_useless_values): Adjust n_useless_values and n_debug_values
22194         with n_useless_debug_values.
22195         (add_mem_for_addr): Promote debug locs.
22196         (cselib_lookup_mem): Likewise.
22197         (cselib_lookup_addr): Renamed to...
22198         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
22199         (cselib_log_lookup): ... this.  Turn into...
22200         (cselib_lookup_addr): ... new wrapper.
22201         (cselib_lookup_from_insn): New.
22202         (cselib_invalidate_regno): Increment n_useless_debug_values for
22203         debug values.
22204         (cselib_invalidate_mem): Likewise.
22205         (cselib_process_insn): Take n_deleted and n_debug_values into
22206         account to guard remove_useless_value call.
22207         (cselib_finish): Zero n_useless_debug_values.
22208         * cselib.h (cselib_lookup_from_insn): Declare.
22209         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
22210         (sched_analyze_2): Likewise.
22211
22212 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
22213
22214         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
22215         functions.
22216         (adjust_mems): Replace narrowing SUBREG of expression containing
22217         just PLUS, MINUS, MULT and ASHIFT of registers and constants
22218         with operations in the narrower mode.
22219
22220         PR debug/43593
22221         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
22222         regs_invalidated_by_call instead all call_used_reg_set registers.
22223
22224 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
22225
22226         PR middle-end/43430
22227         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
22228         pointer comparisons with types_compatible_p.
22229         * tree-vect-stmts.c (vectorizable_call): Same.
22230         (vectorizable_condition): Same.
22231
22232 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22233
22234         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
22235         stack check if the mask would be zero.
22236
22237 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22238             Jack Howarth  <howarth@bromo.med.uc.edu>
22239
22240         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22241         variables TLS.
22242
22243 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
22244
22245         PR other/25232
22246         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
22247         and __unordtf2.
22248         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
22249         Include ___unordxf2 and ___unordtf2.
22250         * config/i386/libgcc-glibc.ver: Do not define inheritance from
22251         GCC_4.4.0 here.
22252
22253 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
22254
22255         * config/lm32/t-lm32: New file.
22256         * config.gcc: Use the above file when targetting lm32.
22257
22258 2010-03-28  Duncan Sands  <baldrick@free.fr>
22259
22260         * Makefile.in (PLUGIN_HEADERS): Add except.h.
22261
22262 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22263
22264         PR middle-end/43431
22265         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
22266         Improve vectorization cost model diagnostic.
22267
22268 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22269
22270         PR middle-end/43436
22271         * tree-vect-data-refs.c (vect_analyze_data_refs): When
22272         compute_data_dependences_for_loop returns false, early exit
22273         and output an extra diagnostic for the failed data reference
22274         analysis.
22275
22276 2010-03-29  Richard Guenther  <rguenther@suse.de>
22277
22278         PR tree-optimization/43560
22279         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
22280         (can_sm_ref_p): Treat stores to readonly locations as trapping.
22281
22282 2010-03-29  Jie Zhang  <jie@codesourcery.com>
22283
22284         PR 43564
22285         * toplev.c (process_options): Set optimization_default_node
22286         and optimization_current_node.
22287         * opts.c (decode_options): Don't set optimization_default_node
22288         and optimization_current_node.
22289
22290 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
22291
22292         * config/rtems.h: Abandon -qrtems_debug.
22293
22294 2010-03-28  Jan Hubicka  <jh@suse.cz>
22295
22296         PR tree-optimization/43505
22297         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
22298         map should not be copied.
22299
22300 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22301
22302         PR middle-end/41674
22303         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
22304         cdtors, set DECL_PRESERVE_P.
22305         * ipa.c (cgraph_externally_visible_p): Return true if declaration
22306         should be preseved.
22307
22308 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
22309
22310         PR tree-optimization/43528
22311         * stor-layout.c (place_field): Check that constant fits into
22312         unsigned HWI when skipping calculation of MS bitfield layout.
22313
22314 2010-03-27  Jan Hubicka  <jh@suse.cz>
22315
22316         PR middle-end/43391
22317         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
22318         notice_global_symbol work.
22319
22320 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
22321
22322         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
22323         instead of dwarf2out_decl.
22324         (struct var_loc_node): Remove section_label field.
22325         (dwarf2out_function_decl): New function.
22326         (dwarf2out_var_location): Don't set section_label field.
22327         (dwarf2out_begin_function): Don't empty decl_loc_table here.
22328
22329 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22330
22331         PR tree-optimization/43544
22332         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
22333         First argument for builtin vectorized function hook is now a
22334         tree to be able to distinguish between machine specific and
22335         standard builtins.
22336         * targhooks.c (default_builtin_vectorized_function): Ditto.
22337         * targhooks.h (default_builtin_vectorized_function): Ditto.
22338         * target.h (struct gcc_target): Ditto.
22339         * tree-vect-stmts.c (vectorizable_function): Ditto.
22340         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
22341         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
22342         Ditto.
22343
22344 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
22345
22346         PR c/43381
22347         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
22348         nested binding iff it is a FUNCTION_DECL.
22349         (store_parm_decls_newstyle): Pass nested=true to bind for
22350         FUNCTION_DECLs amongst parameters.
22351
22352 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22353
22354         * var-tracking.c (vt_expand_loc_callback): Don't run
22355         cselib_expand_value_rtx_cb in dummy mode if
22356         cselib_dummy_expand_value_rtx_cb returned false.
22357
22358         * var-tracking.c (emit_note_insn_var_location): For one part
22359         notes with offset 0, don't add EXPR_LIST around the location.
22360         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
22361         add_location_or_const_value_attribute): Adjust for that change.
22362
22363         PR debug/43540
22364         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
22365         into first operand and location into second.
22366         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
22367         dw_cfi_oprnd_loc for DW_CFA_expression.
22368         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
22369         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
22370         assume first argument is regnum and second argument is location.
22371
22372 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22373
22374         PR target/42113
22375         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
22376         of scratch register to DImode.  Split to DImode comparison operator.
22377         Use SImode subreg of scratch register in the multiplication.
22378         (*cmp_sadd_sidi): Ditto.
22379         (*cmp_ssub_si): Ditto.
22380         (*cmp_ssub_sidi): Ditto.
22381
22382 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22383
22384         PR target/43524
22385         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
22386         Remove invalid assert and wrong comment.
22387
22388 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22389
22390         PR debug/43516
22391         * flags.h (final_insns_dump_p): New extern.
22392         * final.c (final_insns_dump_p): New variable.
22393         (rest_of_clean_state): Set it before -fdump-final-insns=
22394         dumping, clear afterwards.
22395         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
22396         MEM_ALIAS_SET on MEMs.
22397
22398 2010-03-26  David S. Miller  <davem@davemloft.net>
22399
22400         * configure.ac: Fix sparc GOTDATA_OP bug check.
22401         * configure: Rebuild.
22402
22403 2010-03-26  Alan Modra  <amodra@gmail.com>
22404
22405         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
22406
22407 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22408
22409         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
22410         TLS_SECTION_ASM_FLAG.
22411
22412 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
22413
22414         PR bootstrap/43511
22415         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
22416         Clear first_function_block_is_cold.
22417
22418         PR c/43385
22419         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
22420         argument if the argument is truth_value_p.
22421
22422 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22423
22424         * config/rs6000/constraints.md: Update copyright year for my changes.
22425
22426         PR target/43484
22427         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
22428         used in reg+reg addressing, swap registers.
22429
22430 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22431
22432         PR debug/43293
22433         * target.h (struct gcc_target): Add code_end hook.
22434         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
22435         if not yet defined.
22436         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
22437         * toplev.c (compile_file): Call targetm.asm_out.code_end
22438         hook before unwind info/debug info output.
22439         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
22440         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
22441         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22442         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
22443         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22444         * config/i386/i386.c (ix86_file_end): Renamed to...
22445         (ix86_code_end): ... this.  Make static.  Don't call
22446         file_end_indicate_exec_stack.  Emit unwind info using
22447         final_start_function/final_end_function.
22448         (darwin_x86_file_end): Remove.
22449         (TARGET_ASM_CODE_END): Define.
22450         * config/i386/i386.h (TARGET_ASM_FILE_END,
22451         NEED_INDICATE_EXEC_STACK): Don't define.
22452         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
22453         (TARGET_ASM_FILE_END): Define to darwin_file_end.
22454         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
22455         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
22456
22457         PR target/43498
22458         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
22459         at the beginning and final_end_function at the end.
22460         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
22461
22462 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22463
22464         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
22465         and Sun as TLS syntax.
22466         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
22467         * configure: Regenerate.
22468         * config.in: Regenerate.
22469         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
22470         (default_elf_asm_named_section): Use it.
22471         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
22472         (i386_output_dwarf_dtprel): Likewise.
22473         (output_addr_const_extra): Likewise.
22474         (output_pic_addr_const): Lowercase @GOTTPOFF.
22475         (output_addr_const_extra): Likewise.
22476         (output_pic_addr_const): Lowercase @GOTNTPOFF.
22477         (output_addr_const_extra): Likewise.
22478         (output_pic_addr_const): Lowercase @INDNTPOFF.
22479         (output_addr_const_extra): Likewise.
22480         (output_pic_addr_const): Lowercase @NTPOFF.
22481         (output_addr_const_extra): Likewise.
22482         (output_pic_addr_const): Lowercase @TPOFF.
22483         (output_addr_const_extra): Likewise.
22484         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
22485         (*tls_global_dynamic_64): Likewise.
22486         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
22487         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
22488
22489         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
22490         (ASM_OUTPUT_TLS_COMMON): Use it.
22491         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
22492
22493         PR target/38118
22494         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
22495         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22496         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
22497         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
22498         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22499         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
22500
22501 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22502
22503         * config/i386/i386.c (override_options): Don't accept
22504         -mtls-dialect=sun any longer.
22505         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
22506         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
22507         (*tls_local_dynamic_base_32_sun): Likewise.
22508         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22509
22510 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22511
22512         PR debug/43508
22513         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22514         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
22515
22516         PR debug/43479
22517         * ira.c (adjust_cleared_regs): New function.
22518         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
22519
22520         PR debug/19192
22521         PR debug/43479
22522         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
22523         from gimple_block.
22524         * expr.c (expand_expr_real): Restore previous
22525         curr_insn_source_location and curr_insn_block after
22526         expand_expr_real_1 call.
22527         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
22528         instead of expand_expr_real_1.
22529
22530 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
22531
22532         PR rtl-optimization/43413
22533         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
22534         hard regs too.
22535
22536 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
22537
22538         PR target/43348
22539         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
22540         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
22541
22542 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
22543
22544         * config/i386/i386.c (ix86_target_string): Add -mfma.
22545         Fix a typo in comment.
22546
22547 2010-03-22  Mike Stump  <mikestump@comcast.net>
22548
22549         PR target/23071
22550         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
22551         Don't overly align based upon packed packed fields.
22552
22553 2010-03-22  Jason Merrill  <jason@redhat.com>
22554
22555         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
22556         Use () rather than [], and move before the element type.
22557
22558 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22559
22560         * doc/configfiles.texi (Configuration Files): Removed
22561         fixinc/Makefile*, intl/Makefile.*.
22562         * doc/makefile.texi: Fixed markup. Abstract from version
22563         control system used.
22564         (Makefile): Removed obsolete java/parse.y example.
22565         * doc/sourcebuild.texi: Likewise.
22566         (Top Level): Added config, gnattools, libdecnumber, libgcc,
22567         libgomp, libssp.  Removed fastjar.
22568         (Miscellaneous Docs): Clarify location.
22569         Added COPYING3, COPYING3.LIB.
22570         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
22571
22572 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22573
22574         PR target/38085
22575         * config/i386/i386.c (x86_function_profiler)
22576         [!NO_PROFILE_COUNTERS]: Fix typo.
22577         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
22578         instead of callq.
22579
22580 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
22581             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22582
22583         * doc/sourcebuild.texi (Test Directives): Split into six
22584         subsections, with most of the current text in new subsections
22585         Directives, Selectors, and Final Actions.
22586         (Directives): Split list of test directives into multiple
22587         subsubsections.
22588         (Selectors): Describe use and syntax of selectors.
22589         (Effective-Target Keywords): Describe all existing keywords.
22590         (Add Options): Describe features for dg-add-options.
22591         (Require Support): Describe variants of dg-require-support.
22592         (Final Actions): Describe commands to use in dg-final.
22593
22594 2010-03-22  Michael Matz  <matz@suse.de>
22595
22596         PR middle-end/43475
22597         * recog.c (validate_replace_rtx_group): Replace also in
22598         REG_EQUAL and REG_EQUIV notes.
22599
22600 2010-03-22  Richard Guenther  <rguenther@suse.de>
22601
22602         PR tree-optimization/43390
22603         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
22604         sure vector extracts are type correct.
22605
22606 2010-03-22  Richard Guenther  <rguenther@suse.de>
22607
22608         PR middle-end/40106
22609         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
22610         x * sqrt (x) even when optimizing for size if the target
22611         has native support for sqrt.
22612
22613 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
22614
22615         * varasm.c (make_decl_rtl_for_debug): Also clear
22616         flag_mudflap for the duration of make_decl_rtl call.
22617
22618         PR debug/43443
22619         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
22620         locs from preserved VALUEs.
22621
22622 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22623
22624         PR middle-end/42718
22625         * pa.md (movmemsi): Set align to one if zero.
22626         (movmemdi): Likewise.
22627
22628 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
22629
22630         PR target/42321
22631         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
22632         with their corresponding prologue pushes.
22633
22634 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
22635
22636         PR target/43156
22637         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
22638         at the begining or end.
22639         (spu_expand_epilogue): Likewise.
22640
22641 2010-03-20  Richard Guenther  <rguenther@suse.de>
22642
22643         PR rtl-optimization/43438
22644         * combine.c (make_extraction): Properly zero-/sign-extend an
22645         extraction of the low part of a CONST_INT.  Also handle
22646         CONST_DOUBLE.
22647
22648 2010-03-19  Mike Stump  <mikestump@comcast.net>
22649
22650         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
22651         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
22652         (override_options): Use SUBTARGET32_DEFAULT_CPU.
22653
22654 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
22655
22656         PR c/43211
22657         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
22658         an error.
22659
22660 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
22661
22662         PR rtl-optimization/42258
22663         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
22664         use that may match DEF.
22665
22666         PR target/40697
22667         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
22668         the cost of loading the constant rather than assuming
22669         COSTS_N_INSNS (1).
22670         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
22671         outer code is AND, do the same tests as the andsi3 expander and
22672         return COSTS_N_INSNS (1) if and is cheap.
22673
22674         * optabs.c (avoid_expensive_constant): Fix formatting.
22675
22676 2010-03-19  Michael Matz  <matz@suse.de>
22677
22678         PR c++/43116
22679         * attribs.c (decl_attributes): When rebuilding a function pointer
22680         type use the same qualifiers as the original pointer type.
22681
22682 2010-03-19  Martin Jambor  <mjambor@suse.cz>
22683
22684         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
22685         and is_gimple_ip_invariant_address.
22686
22687 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22688
22689         Revert
22690         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22691
22692         * config/arm/arm.c (arm_override_options): Turn off
22693         flag_dwarf2_cfi_asm for AAPCS variants.
22694
22695 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22696
22697         PR target/43399
22698         * config/arm/arm.c (emit_multi_reg_push): Update comments.
22699         Use PRE_MODIFY instead of PRE_DEC.
22700         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
22701         (vfp_emit_fstmd): Likewise.
22702
22703 2010-03-19  Michael Matz  <matz@suse.de>
22704
22705         PR target/43305
22706         * builtins.c (expand_builtin_interclass_mathfn,
22707         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
22708         if that fails.
22709
22710 2010-03-19  Richard Guenther  <rguenther@suse.de>
22711
22712         PR tree-optimization/43415
22713         * tree-ssa-pre.c (phi_translate): Split out worker to ...
22714         (phi_translate_1): ... this.
22715         (phi_translate): Move all caching here.  Cache all NARY
22716         and REFERENCE translations.
22717
22718 2010-03-19  David S. Miller  <davem@davemloft.net>
22719
22720         With help from Eric Botcazou.
22721         * config/sparc/sparc.c: Include dwarf2out.h.
22722         (emit_pic_helper): Delete.
22723         (pic_helper_symbol_name): Delete.
22724         (pic_helper_emitted_p): Delete.
22725         (pic_helper_needed): New.
22726         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
22727         (get_pc_thunk_name): New.
22728         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
22729         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
22730         Set pic_helper_needed to true.  Don't call emit_pic_helper.
22731         (sparc_expand_prologue): Update load_pic_register call.
22732         (sparc_output_mi_thunk): Likewise.
22733         (sparc_file_end): Emit a hidden comdat symbol for the PIC
22734         thunk if possible.  Output CFI information as needed.
22735
22736 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
22737             Jack Howarth  <howarth@bromo.med.uc.edu>
22738
22739         PR target/36399
22740         * config/i386/i386.h: Fix ABI on darwin x86-32.
22741
22742 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
22743
22744         * tree.h: Declare make_decl_rtl_for_debug.
22745         * varasm.c (make_decl_rtl_for_debug): New.
22746         * dwarf2out.c (rtl_for_decl_location): Call it.
22747         * cfgexpand.c (expand_debug_expr): Call it.
22748
22749 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
22750
22751         PR bootstrap/43399
22752         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
22753         mem_mode.
22754
22755         PR bootstrap/43403
22756         * var-tracking.c (vt_init_cfa_base): Do nothing if
22757         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
22758
22759 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
22760
22761         PR debug/42873
22762         * var-tracking.c (canonicalize_vars_star): New.
22763         (dataflow_post_merge_adjust): Use it.
22764
22765 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
22766
22767         PR debug/43058
22768         * var-tracking.c (non_suitable_const): New function.
22769         (add_uses): For DEBUG_INSNs with constants, don't record any
22770         value, instead just the constant value itself.
22771         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
22772         is not VAR_LOC_UNKNOWN_P, set var to the constant.
22773         (emit_notes_in_bb): Likewise.
22774         (emit_note_insn_var_location): For onepart variables if
22775         cur_loc is a VOIDmode constant, use DECL_MODE.
22776
22777 2010-03-18  Martin Jambor  <mjambor@suse.cz>
22778
22779         PR middle-end/42450
22780         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
22781         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
22782         all non-clones.  Moved call redirection...
22783         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
22784         (cgraph_materialize_all_clones): Dispose of all
22785         combined_args_to_skip bitmaps.
22786         (verify_cgraph_node): Do not check for edges pointing to wrong
22787         nodes in inline clones.
22788         * tree-inline.c (copy_bb): Call
22789         cgraph_redirect_edge_call_stmt_to_callee.
22790         * ipa.c (cgraph_remove_unreachable_nodes): Call
22791         cgraph_node_remove_callees even when there are used clones.
22792
22793 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
22794
22795         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
22796
22797 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
22798
22799         PR target/43383
22800         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
22801         for 32bit.
22802
22803 2010-03-18  Michael Matz  <matz@suse.de>
22804
22805         PR middle-end/43419
22806         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
22807         into sqrt(x) if we need to preserve signed zeros.
22808
22809 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
22810             Eric Botcazou  <ebotcazou@adacore.com>
22811
22812         PR rtl-optimization/43360
22813         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
22814         note if we don't know its invariant status.
22815
22816 2010-03-18  Michael Matz  <matz@suse.de>
22817
22818         PR tree-optimization/43402
22819         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
22820         PHI chains of ssa names registered for update.
22821
22822 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
22823
22824         PR target/42427
22825         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
22826         non-offsettable and pre_modify update addressing.
22827         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
22828         and "2" alternatives "#".
22829         (*movdd_softfloat32): Make all alternatives "#";
22830         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
22831         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
22832         (*movdf_softfloat32): Make all alternatives "#";
22833         (movdi): Use the new DIFD mode iterator to create a common splitter
22834         for movdi, movdf and movdd patterns.
22835
22836 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
22837
22838         * common.opt (dumpdir): Remove redundant tab.
22839
22840 2010-03-17  Martin Jambor  <mjambor@suse.cz>
22841
22842         PR tree-optimization/43347
22843         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
22844         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
22845
22846 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
22847
22848         PR rtl-optimization/42216
22849         * regrename.c (create_new_chain): New function, broken out from...
22850         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
22851         appending a use to an empty chain.
22852         (build_def_use): Remove previous changes that convert OP_INOUT to
22853         OP_OUT operands; instead detect the case where an OP_INOUT operand
22854         uses a previously untracked register and create an empty chain for it.
22855
22856 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22857
22858         * doc/extend.texi (Function Attributes): Rewrite unfinished
22859         sentence in ms_abi documentation.
22860
22861 2010-03-17  Alan Modra  <amodra@gmail.com>
22862
22863         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
22864         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
22865         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
22866         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
22867
22868 2010-03-16  Richard Henderson  <rth@redhat.com>
22869
22870         PR middle-end/43365
22871         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
22872         (lower_try_finally): Save and restore eh_seq around the expansion
22873         of the try-finally.
22874
22875 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
22876
22877         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
22878         statements before splitting block.
22879
22880 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22881
22882         * doc/sourcebuild.texi (Testsuites): Fix markup.
22883         Use pathnames relative to gcc/testsuite.
22884         (Test Directives): Move description of how timeout is determined.
22885         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
22886         (C Tests): Correct gcc.misc-tests directory.
22887         Framework tests now live in gcc.test-framework.
22888
22889 2010-03-16  Richard Guenther  <rguenther@suse.de>
22890
22891         PR middle-end/43379
22892         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
22893         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
22894
22895 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
22896             Alexandre Oliva  <aoliva@redhat.com>
22897
22898         PR tree-optimization/42917
22899         * lambda-code.c (remove_iv): Skip debug statements.
22900         (lambda_loopnest_to_gcc_loopnest): Likewise.
22901         (not_interesting_stmt): Debug statements are not interesting.
22902
22903 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
22904
22905         PR debug/43051
22906         PR debug/43092
22907         * cselib.c (cselib_preserve_constants,
22908         cfa_base_preserved_val): New static variables.
22909         (preserve_only_constants): New function.
22910         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
22911         clear its REG_VALUES.  If cselib_preserve_constants, don't
22912         empty the whole hash table, but preserve there VALUEs with constants,
22913         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
22914         (cselib_preserve_cfa_base_value): New function.
22915         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
22916         (cselib_init): Change argument to int bitfield.  Set
22917         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
22918         is in it.
22919         (cselib_finish): Clear cselib_preserve_constants and
22920         cfa_base_preserved_val.
22921         * cselib.h (enum cselib_record_what): New enum.
22922         (cselib_init): Change argument to int.
22923         (cselib_preserve_cfa_base_value): New prototype.
22924         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
22925         * dse.c (dse_step1): Likewise.
22926         * cfgcleanup.c (thread_jump): Likewise.
22927         * sched-deps.c (sched_analyze): Likewise.
22928         * gcse.c (local_cprop_pass): Likewise.
22929         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
22930         If FN is non-NULL, call the callback always and whenever it returns
22931         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
22932         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
22933         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
22934         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
22935         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
22936         * var-tracking.c: Include recog.h.
22937         (bb_stack_adjust_offset): Remove.
22938         (vt_stack_adjustments): Don't call it, instead just gather the
22939         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
22940         (adjust_stack_reference): Remove.
22941         (compute_cfa_pointer): New function.
22942         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
22943         (struct adjust_mem_data): New type.
22944         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
22945         functions.
22946         (get_address_mode): New function.
22947         (replace_expr_with_values): Use it.
22948         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
22949         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
22950         (adjust_sets): Remove.
22951         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
22952         Use get_address_mode.
22953         (get_adjusted_src): Remove.
22954         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
22955         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
22956         (add_with_sets): Don't call adjust_sets.
22957         (fp_setter, vt_init_cfa_base): New functions.
22958         (vt_initialize): Change return type to bool.  Move most of pool etc.
22959         initialization to the beginning of the function from end.  Pass
22960         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
22961         If !frame_pointer_needed, call vt_stack_adjustment before mos
22962         vector is filled, call vt_init_cfa_base if argp/framep has been
22963         eliminated to sp.  If frame_pointer_needed and argp/framep has
22964         been eliminated to hard frame pointer, set
22965         hard_frame_pointer_adjustment and call vt_init_cfa_base after
22966         encountering fp setter in the prologue.  For MO_ADJUST, call
22967         log_op_type before pusing the op into mos vector, not afterwards.
22968         Call adjust_insn before cselib_process_insn/add_with_sets,
22969         call cancel_changes (0) afterwards.
22970         (variable_tracking_main_1): Adjust for vt_initialize calling
22971         vt_stack_adjustments and returning whether it succeeded or not.
22972
22973 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
22974
22975         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
22976         debug statements.
22977
22978 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
22979
22980         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
22981         has been set.
22982         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
22983         drap_reg has not been set.
22984
22985 2010-03-15  Michael Matz  <matz@suse.de>
22986
22987         PR middle-end/43300
22988         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
22989         use it to expand block copies.
22990         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
22991         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
22992         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
22993
22994 2010-03-15  Richard Guenther  <rguenther@suse.de>
22995
22996         PR tree-optimization/43367
22997         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
22998         elimination check.
22999
23000 2010-03-15  Richard Guenther  <rguenther@suse.de>
23001
23002         PR tree-optimization/43317
23003         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
23004
23005 2010-03-15  Martin Jambor  <mjambor@suse.cz>
23006
23007         PR tree-optimization/43141
23008         * tree-sra.c (create_abstract_origin): New function.
23009         (modify_function): Call create_abstract_origin.
23010
23011 2010-03-15  Chris Demetriou  <cgd@google.com>
23012
23013         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
23014         wasn't copied.
23015
23016 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23017
23018         PR middle-end/43354
23019         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
23020         call insert_out_of_ssa_copy for default definitions.
23021
23022 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23023
23024         * graphite-clast-to-gimple.c (my_long_long): Defined.
23025         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
23026         * graphite-sese-to-poly.c (my_long_long): Defined.
23027         (scop_ivs_can_be_represented): Use it.
23028
23029 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23030
23031         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
23032         graphite-max-bbs-per-function, and loop-block-tile-size.
23033         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
23034         with "maximum".
23035         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
23036
23037 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23038
23039         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
23040         forward declaration.
23041         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
23042         (add_upper_bounds_from_estimated_nit): New.
23043         (build_loop_iteration_domains): Use it.
23044
23045 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23046
23047         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
23048
23049 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23050
23051         PR middle-end/43306
23052         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
23053         should be an INTEGER_CST.  Also handle CASE_CONVERT.
23054
23055 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23056
23057         * graphite.c (graphite_initialize): To bound the number of bbs per
23058         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
23059         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
23060         * doc/invoke.texi: Document it.
23061
23062 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23063
23064         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
23065         * graphite-sese-to-poly.h (build_poly_scop): Same.
23066
23067 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23068
23069         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
23070         the number of parameters in the scop.  Use as an upper bound
23071         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
23072         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
23073         * doc/invoke.texi: Document it.
23074
23075 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
23076
23077         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
23078         * doc/c-tree.texi: Remove.
23079         * doc/generic.texi: Merge c-tree.texi here.
23080         * doc/gccint.texi (Trees): Remove menu entry.
23081         (c-tree.texi): Remove @include.
23082         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
23083         * doc/languages.texi (Reading RTL): Ditto.
23084
23085 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
23086
23087         PR target/42869
23088         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
23089
23090 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23091
23092         PR middle-end/42431
23093         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
23094         code added to work around reload clobbering CONST insns.
23095
23096 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
23097
23098         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
23099         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
23100         (cselib_preserve_only_values): Remove retain argument, don't
23101         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
23102         * cselib.h (cselib_preserve_only_values): Remove retain argument.
23103         * var-tracking.c (micro_operation): Move insn field before union.
23104         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
23105         (struct variable_tracking_info_def): Remove n_mos field, change
23106         mos into a vector of micro_operations.
23107         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
23108         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
23109         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
23110         changing into a vector.
23111         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
23112         come before all other uops generated by add_stores.
23113         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
23114         argument removal.
23115         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
23116         a vector.  Run just one pass over the bbs instead of separate counting
23117         and computation phase.
23118         (vt_finalize): Free VTI (bb)->mos vector instead of array.
23119
23120         PR debug/43329
23121         * tree-inline.c (remap_decls): Put old_var rather than origin_var
23122         into *nonlocalized_list vector.
23123         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
23124         even if origin is non-NULL.
23125         (gen_variable_die): Likewise.
23126         (process_scope_var): Don't change origin.
23127         (gen_decl_die): Likewise.
23128         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
23129         before adding new edges instead of after it, fix moving over
23130         debug stmts.
23131
23132 2010-03-11  David S. Miller  <davem@davemloft.net>
23133
23134         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
23135         of four.
23136         * configure: Rebuild.
23137
23138 2010-03-11  Martin Jambor  <mjambor@suse.cz>
23139
23140         PR tree-optimization/43257
23141         * tree.c (assign_assembler_name_if_neeeded): New function.
23142         (free_lang_data_in_cgraph): Assembler name assignment moved to the
23143         above new function.
23144         * tree.h (assign_assembler_name_if_neeeded): Declare.
23145         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
23146         the function if needed.
23147
23148 2010-03-11  Chris Demetriou  <cgd@google.com>
23149
23150         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
23151         include/stdint-gcc.h, and include/stdint.h world-readable.
23152
23153 2010-03-11  Richard Guenther  <rguenther@suse.de>
23154
23155         PR tree-optimization/43255
23156         * tree-vrp.c (process_assert_insertions_for): Do not insert
23157         asserts for trivial conditions.
23158
23159 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23160
23161         PR tree-optimization/43280
23162         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
23163         generation.  Move calculation of size out of the if branch.
23164         (find_bswap): Modify compare number generation.
23165
23166 2010-03-11  Richard Guenther  <rguenther@suse.de>
23167
23168         PR lto/43200
23169         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
23170         (input_gimple_stmt): Fixup handled component types during
23171         operand read.  Also fix up decls in ADDR_EXPRs.
23172
23173 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
23174
23175         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
23176         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
23177
23178 2010-03-10  Jan Hubicka  <jh@suse.cz>
23179
23180         PR c/43288
23181         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
23182         * varasm.c (get_variable_section): Don't do that here...
23183         (make_decl_rtl): ... and here.
23184         (do_assemble_alias): Produce decl RTL.
23185         (assemble_alias): Likewise.
23186
23187 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23188
23189         PR debug/43290
23190         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
23191         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
23192         of fde->vdrap_reg.
23193         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
23194         (based_loc_descr): Only express drap or vdrap regno based expressions
23195         using DW_OP_fbreg when not optimizing.
23196         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
23197         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
23198         REG_CFA_SET_VDRAP note.
23199
23200 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
23201
23202         PR tree-optimization/43236
23203         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
23204         error in calculation of base address in reverse iteration case.
23205         (generate_builtin): Take number of latch executions if the statement
23206         is in the latch.
23207
23208 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
23209
23210         PR middle-end/42859
23211         * tree-eh.c: Include pointer-set.h.
23212         (lower_eh_dispatch): Filter out duplicate case labels and
23213         remove the unneeded edge when the label is unused.  Return
23214         true when some edges are removed.
23215         (execute_lower_eh_dispatch): When any lowering resulted in
23216         removing an edge, also delete unreachable blocks.
23217
23218 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23219
23220         PR bootstrap/43287
23221         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23222         UNSPEC_MACHOPIC_OFFSET.
23223
23224 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
23225
23226         PR target/43294
23227         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
23228         (m68k_delegitimize_address): New function.
23229
23230 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
23231
23232         PR debug/43299
23233         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
23234
23235         PR debug/43299
23236         * var-tracking.c (adjust_sets): New function.
23237         (count_with_sets, add_with_sets): Use it.
23238         (get_adjusted_src): New inline function.
23239         (add_stores): Use it.
23240
23241         PR debug/43304
23242         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
23243         call cselib_dummy_expand_value_rtx_cb instead of
23244         cselib_expand_value_rtx_cb.
23245
23246         PR debug/43293
23247         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
23248         * config/i386/i386.c: Include debug.h and dwarf2out.h.
23249         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
23250         and .cfi_endproc around the pic thunks.
23251         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
23252         all queued unwind info register saves are saved before the call.
23253         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
23254         considered as sp-=4 for unwind info and the pop as sp+=4 which
23255         also clobbers dest, but doesn't actually restore it.
23256
23257         PR debug/43290
23258         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
23259         RTX_FRAME_RELATED_P.
23260
23261 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23262
23263         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
23264         whitespaces in output template.
23265
23266 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23267
23268         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
23269         out array boundary.
23270
23271 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23272
23273         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
23274         builtins.exp in a separate job.
23275
23276 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23277
23278         * graphite-sese-to-poly.c (add_param_constraints): Use
23279         lower_bound_in_type and upper_bound_in_type.
23280
23281 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23282
23283         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
23284         instead of unsigned_type_node.
23285
23286 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23287             Reza Yazdani  <reza.yazdani@amd.com>
23288
23289         PR middle-end/43065
23290         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
23291         on pointer type parameters.
23292
23293 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23294
23295         PR middle-end/42644
23296         PR middle-end/42130
23297         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
23298         handle conversions from pointer to integers.
23299         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
23300         induction variable, to be able to work with code generated by CLooG.
23301         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
23302         (build_poly_scop): Bail out if we cannot codegen a loop.
23303
23304 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23305
23306         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
23307         code generation with gloog_error.
23308
23309 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23310
23311         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
23312         Call fold_convert on all the returned values.
23313         (expand_scalar_variables_expr): Pass to
23314         expand_scalar_variables_ssa_name the type of the resulting expression.
23315
23316 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23317
23318         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
23319         ppl_min_for_le_pointset.
23320         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
23321         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
23322
23323 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23324
23325         * graphite-dependences.c (map_into_dep_poly): Removed.
23326         (dependence_polyhedron_1): Use combine_context_id_scat.
23327
23328 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23329
23330         * graphite-poly.h (struct poly_scattering): Add layout documentation.
23331         (struct poly_bb): Same.
23332         (combine_context_id_scat): New.
23333
23334 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23335
23336         PR middle-end/42326
23337         * sese.c (name_defined_in_loop_p): Return false for default
23338         definitions.
23339
23340 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23341
23342         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
23343         and clean up the logic.
23344
23345 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23346
23347         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
23348         early return.
23349
23350 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23351
23352         * var-tracking.c (remove_cselib_value_chains): Define only for
23353         ENABLE_CHECKING.
23354         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
23355         delete_slot_part, emit_notes_for_differences_1): Don't call
23356         remove_cselib_value_chains here.
23357         (set_slot_part, emit_notes_for_differences_2): Don't call
23358         add_cselib_value_chains here.
23359         (preserved_values): New vector.
23360         (preserve_value): New function.
23361         (add_uses, add_stores, vt_add_function_parameters): Use it
23362         instead of cselib_preserve_value.
23363         (changed_values_stack): New vector.
23364         (check_changed_vars_0): New function.
23365         (check_changed_vars_1, check_changed_vars_2): Use it.
23366         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
23367         changed_values_stack VALUEs.
23368         (vt_emit_notes): For all preserved_values call
23369         add_cselib_value_chains.  If ENABLE_CHECKING call
23370         remove_cselib_value_chains before verifying value_chains is empty.
23371         Initialize and free changed_values_stack.
23372         (vt_initialize): Initialize preserved_values.
23373         (vt_finalize): Free preserved_values.
23374
23375 2010-03-08  Richard Guenther  <rguenther@suse.de>
23376
23377         PR tree-optimization/43269
23378         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
23379         region detection.
23380
23381 2010-03-08  Martin Jambor  <mjambor@suse.cz>
23382
23383         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
23384         (ipa_is_param_called): Removed.
23385         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
23386         (ipa_print_node_params): Do not print the called flag.
23387         (ipa_write_node_info): Do not stream the called flag.
23388         (ipa_read_node_info): Likewise.
23389
23390 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
23391
23392         PR debug/43176
23393         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
23394         * cselib.c (struct expand_value_data): Add dummy field.
23395         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
23396         dummy to false.
23397         (cselib_dummy_expand_value_rtx_cb): New function.
23398         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
23399         any rtl.
23400         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
23401         * var-tracking.c: Include pointer-set.h.
23402         (variable): Change n_var_parts to char from int.  Add
23403         cur_loc_changed and in_changed_variables fields.
23404         (variable_canonicalize): Remove.
23405         (shared_var_p): New inline function.
23406         (unshare_variable): Maintain cur_loc_changed and
23407         in_changed_variables fields.  If var was in changed_variables,
23408         replace it there with new_var.  Just copy cur_loc instead of
23409         resetting it to something else.
23410         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
23411         (dataflow_set_union): Don't call variable_canonicalize.
23412         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
23413         of their DEBUG_EXPR_TREE_DECLs.
23414         (canonicalize_loc_order_check): Verify that cur_loc is NULL
23415         and in_changed_variables and cur_loc_changed is false.
23416         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
23417         and cur_loc_changed.  Don't update cur_loc here.
23418         (variable_merge_over_src): Don't call variable_canonicalize.
23419         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
23420         removing loc that is equal to cur_loc, clear cur_loc,
23421         set cur_loc_changed and ensure variable_was_changed is called.
23422         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
23423         compare pointers in cur_loc check, if it is equal to loc,
23424         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
23425         (variable_different_p): Remove compare_current_location argument,
23426         don't compare cur_loc.
23427         (dataflow_set_different_1): Adjust variable_different_p caller.
23428         (variable_was_changed): If dv had some var in changed_variables
23429         already, reset in_changed_variables flag for it and propagate
23430         cur_loc_changed over to the new variable.  On empty var
23431         always set cur_loc_changed.  Set in_changed_variables on whatever
23432         var is added to changed_variables.
23433         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
23434         Use shared_var_p.  When removing loc that is equal to cur_loc,
23435         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
23436         end, don't set it to something else, just call variable_was_changed.
23437         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
23438         loc being removed, clear cur_loc and set cur_loc_changed.
23439         Set cur_loc_changed if all locations have been removed.
23440         (struct expand_loc_callback_data): New type.
23441         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
23442         allocated.  Always create SUBREGs if simplify_subreg failed.
23443         Prefer to use cur_loc, when that fails and still in
23444         changed_variables (and seen first time) recompute it.  Set
23445         cur_loc_changed of variables which had to change cur_loc and
23446         compute elcd->cur_loc_changed if any of the subexpressions used
23447         had to change cur_loc.
23448         (vt_expand_loc): Adjust to pass arguments in
23449         expand_loc_callback_data structure.
23450         (vt_expand_loc_dummy): New function.
23451         (emitted_notes): New variable.
23452         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
23453         that weren't used for any other decl in current
23454         emit_notes_for_changes call call vt_expand_loc_dummy to update
23455         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
23456         first loc_chain location if NULL before.  Always use just
23457         cur_loc instead of first loc_chain location.  When cur_loc_changed
23458         is false, when not --enable-checking=rtl just don't emit any note.
23459         When rtl checking, compute the note and assert it is the same
23460         as previous note.  Clear cur_loc_changed and in_changed_variables
23461         at the end before removing from changed_variables.
23462         (check_changed_vars_3): New function.
23463         (emit_notes_for_changes): Traverse changed_vars to call
23464         check_changed_vars_3 on each changed var.
23465         (emit_notes_for_differences_1): Clear cur_loc_changed and
23466         in_changed_variables.  Recompute cur_loc of new_var.
23467         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
23468         (vt_emit_notes): Initialize and destroy emitted_notes.
23469
23470 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
23471
23472         PR rtl-optimization/42220
23473         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
23474         Use verify_reg_tracked to determine if we should use OP_OUT rather
23475         than OP_INOUT.
23476         (build_def_use): If we see an in-out operand for a register that we
23477         know nothing about, treat is an output if possible, fail the block if
23478         not.
23479
23480 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23481
23482         PR debug/42897
23483         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
23484         permanently.
23485
23486 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23487
23488         PR debug/42897
23489         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
23490         uses of relevant DEFs that are dead outside the loop too.
23491
23492 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23493
23494         * var-tracking.c (dataflow_set_merge): Swap src and src2.
23495         Reverted:
23496         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
23497         PR debug/41371
23498         * var-tracking.c (values_to_unmark): New variable.
23499         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
23500         values_to_unmark vector.  Moved body to...
23501         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
23502         instead queue it into values_to_unmark vector.
23503         (vt_find_locations): Free values_to_unmark vector.
23504
23505 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
23506
23507         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
23508         (site.exp): Export them when plugins are enabled.
23509
23510 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
23511
23512         PR middle-end/42326
23513         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
23514         that contain scevs.
23515         (chrec_fold_multiply): Same.
23516
23517 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23518
23519         PR c/43248
23520         * c-decl.c (build_compound_literal): Return early if init is
23521         an error_mark_node.
23522
23523 2010-03-04  Martin Jambor  <mjambor@suse.cz>
23524
23525         PR tree-optimization/43164
23526         PR tree-optimization/43191
23527         * tree-sra.c (type_consists_of_records_p): Reject records with
23528         zero-size bit-fields at the end.
23529
23530 2010-03-04  Mike Stump  <mikestump@comcast.net>
23531
23532         * Makefile.in (TAGS): Remove *.y.
23533
23534 2010-03-04  Richard Guenther  <rguenther@suse.de>
23535
23536         PR tree-optimization/40761
23537         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
23538         in reverse order.
23539         (my_rev_post_order_compute): New function.
23540         (init_pre): Call it.
23541
23542 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23543
23544         PR middle-end/43209
23545         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
23546         decrease the cost of an IV candidate when the cost is infinite.
23547
23548 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23549
23550         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
23551         Use '3DNow!' for the extension of that name, ensure normal space
23552         after the string.
23553         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
23554
23555 2010-03-03  Jeff Law  <law@redhat.com>
23556
23557         * PR middle-end/32693
23558         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
23559         than gen_rtx_SUBREG.
23560         (extract_bit_field_1): Likewise.
23561
23562 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
23563
23564         * doc/sourcebuild.texi (Test directives): Document that arguments
23565         include-opts and exclude-opts are now optional for dg-skip-if,
23566         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
23567
23568 2010-03-03  Jason Merrill  <jason@redhat.com>
23569
23570         PR c++/12909
23571         * cgraph.h (varpool_node): Add extra_name field.
23572         * varpool.c (varpool_extra_name_alias): New.
23573         (varpool_assemble_decl): Emit extra name aliases.
23574         (varpool_mark_needed_node): Look past an extra name alias.
23575         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
23576         * lto-streamer-in.c (lto_input_tree): Read it.
23577         * lto-streamer-out.c (output_unreferenced_globals): Write it.
23578
23579 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
23580
23581         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
23582         (sparc*-*-solaris2*): ...this.
23583
23584 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
23585
23586         PR debug/43229
23587         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
23588         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
23589         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
23590         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
23591
23592         PR debug/43237
23593         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
23594         fallthrough to default handling, just with want_address 0 instead of 2.
23595         For single element lists, add_AT_loc directly, otherwise create an
23596         artificial variable DIE and stick location list to it.
23597
23598         PR debug/43177
23599         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
23600         (VAL_EXPR_HAS_REVERSE): Define.
23601         (reverse_op): New function.
23602         (add_stores): For reversible operations add an extra MO_VAL_USE.
23603
23604 2010-03-02  Jason Merrill  <jason@redhat.com>
23605
23606         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
23607
23608 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
23609
23610         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
23611         (sparc64-*-linux*): Likewise.
23612         (sparc64-*-solaris2*): Include assembler files before linker ones.
23613         (sparc-*-solaris2*): Simplify and reorder to match previous case.
23614         * config/sparc/gas.h: Delete.
23615         * config/sparc/sol2-64.h: Add copyright notice.
23616         * config/sparc/sol2-gas-bi.h: Likewise.
23617         * config/sparc/sol2-gld.h: Likewise.
23618         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
23619         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
23620         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
23621         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
23622         (sparc_elf_asm_named_section): Rename into...
23623         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
23624
23625 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
23626
23627         * config/alpha/alpha.c (override_options): Fix -mtune error message.
23628
23629 2010-03-02  Jeff Law  <law@redhat.com>
23630
23631         PR middle-end/42431
23632         * reload1.c (rtx_p, substitute_stack): Declare.
23633         (substitute): Record addresses of changed rtxs.
23634         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
23635         Restore the original rtx when complete.
23636         (reload): Free subsitute_stack when complete.
23637
23638 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
23639
23640         * doc/gccint.texi (menu): Add Testsuites as a chapter.
23641         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
23642         new chapter.
23643         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
23644         LTO Testing, gcov Testing, profopt Testing, compat Testing,
23645         Torture Tests): Change from subsection to section.
23646
23647 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
23648             Steven Bosscher  <steven@gcc.gnu.org>
23649
23650         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
23651         instead of bb.
23652
23653 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
23654
23655         PR middle-end/42640
23656         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
23657         the assignment from the new induction variable to the assignment
23658         of the value from the original loop PHI function.
23659
23660 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
23661             Daniel Jacobowitz  <dan@codesourcery.com>
23662
23663         * doc/sourcebuild.texi (Test directives): Clarify options to
23664         dg-skip-if.
23665
23666 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23667
23668         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
23669         Disable cfi directives unless GCC and gas agree on using read-only
23670         .eh_frame sections for 64-bit.
23671         * configure: Regenerate.
23672
23673 2010-03-01  Richard Guenther  <rguenther@suse.de>
23674
23675         PR tree-optimization/43220
23676         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
23677         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
23678
23679 2010-03-01  Richard Guenther  <rguenther@suse.de>
23680             Martin Jambor  <mjambor@suse.cz>
23681
23682         PR middle-end/41250
23683         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
23684         gimplified parameters.
23685
23686 2010-03-01  Christian Bruel  <christian.bruel@st.com>
23687
23688         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
23689
23690 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
23691
23692         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
23693
23694 2010-03-01  Richard Guenther  <rguenther@suse.de>
23695
23696         PR middle-end/43213
23697         * expr.c (expand_assignment): Use the alias-oracle to tell
23698         if the rhs aliases the result decl.
23699
23700 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23701
23702         PR pch/14940
23703         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
23704         to sol_gt_pch_get_address.
23705         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
23706         64-bit, SPARC and x86.
23707         (sol_gt_pch_get_address): New function.
23708
23709 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
23710
23711         * toplev.h (inform_n, error_n): Declare.
23712         * diagnostic.c (inform_n, error_n): New function.
23713
23714 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
23715
23716         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
23717         has no rtl yet when processing local_decls, queue it and recheck
23718         if deferred stack allocation hasn't assigned it rtl.
23719
23720 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
23721
23722         * config/sh/sh.c (unspec_bbr_uid): New.
23723         (gen_block_redirect): Use it instead of INSN_UID.
23724         (gen_far_branch): Likewise.
23725
23726 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
23727
23728         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
23729         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
23730
23731 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23732
23733         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
23734         (Warning Options): -Wno-conversion-null is valid for
23735         Objective-C++ as well.
23736         * doc/tm.texi (Named Address Spaces): Likewise.
23737         * doc/plugins.texi (Plugins): Replace TABs with spaces.
23738         * doc/tree-ssa.texi (Tree SSA): Likewise.
23739
23740 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23741
23742         PR bootstrap/43202
23743         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
23744         by default.  Don't set the default arch for
23745         i[34567]86-*-darwin*|x86_64-*-darwin*.
23746
23747 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23748
23749         PR bootstrap/43202
23750         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
23751         default.  Set the default 32bit/64bit archs with $with_arch
23752         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
23753
23754 2010-02-27  Richard Guenther  <rguenther@suse.de>
23755
23756         PR tree-optimization/43186
23757         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
23758         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
23759         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
23760         unroller iterations.
23761
23762 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
23763
23764         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
23765         required and i[34567]86-*-* targets don't support 64bit ISA.
23766
23767 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
23768
23769         PR ada/43096
23770         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
23771         the same alias set.
23772
23773 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
23774
23775         * config.gcc: Set the default arch at least to Prescott for
23776         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
23777         if SSE math is enabled.
23778
23779 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23780
23781         * diagnostic.c (diagnostic_initialize): Update.
23782         (diagnostic_report_diagnostic): Test inhibit_notes_p for
23783         informative notes.
23784         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
23785         (diagnostic_inhibit_notes): New.
23786         * toplev.c (process_options): inhibit notes with -fcompare-debug.
23787
23788 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23789
23790         PR c/20631
23791         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
23792         * doc/standards.texi: Likewise.
23793         * doc/extend.texi: Likewise.
23794         * doc/trouble.texi: Likewise.
23795         * doc/cppopts.texi: Likewise.
23796         * doc/install.texi: Likewise.
23797         * c.opt (std=c90,std=gnu90): New options.
23798         * c-opts.c (c_common_handle_option): Handle them.
23799
23800 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23801
23802         PR c/24577
23803         * c-decl.c (undeclared_variable): Use an informative note.
23804
23805 2010-02-26  Richard Guenther  <rguenther@suse.de>
23806
23807         PR tree-optimization/43186
23808         * gimple.h (gimple_fold): Remove.
23809         * gimple.c (gimple_fold): Remove.  Inline into single user ...
23810         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
23811         Try harder for conditions.
23812
23813 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
23814
23815         PR debug/43190
23816         * function.c (used_types_insert): Don't skip through named pointer
23817         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
23818         and it is different from the main variant's type.
23819
23820 2010-02-26  Nick Clifton  <nickc@redhat.com>
23821
23822         * config/rx/rx.md (sminsi3): Remove bogus alternative.
23823
23824 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
23825
23826         * config.gcc: Support --with-fpmath=sse for x86.
23827
23828         * config/i386/ssemath.h: New.
23829
23830         * doc/install.texi (--with-fpmath=sse): Documented.
23831
23832 2010-02-26  Richard Guenther  <rguenther@suse.de>
23833
23834         PR tree-optimization/43188
23835         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
23836         vector types of over-aligned element type.
23837
23838 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
23839
23840         PR target/43175
23841         * config/i386/i386.c (expand_vec_perm_blend): Use correct
23842         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
23843
23844 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
23845
23846         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
23847
23848 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
23849
23850         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
23851         * var-tracking.c: Include diagnostic.h.
23852         (debug_dv): New function.
23853         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
23854
23855         PR debug/43160
23856         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
23857         (add_value_chain, add_value_chains, remove_value_chain,
23858         remove_value_chains): Handle DEBUG_EXPRs.
23859         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
23860
23861         PR debug/43161
23862         * regcprop.c (struct queued_debug_insn_change): New type.
23863         (struct value_data_entry): Add debug_insn_changes field.
23864         (struct value_data): Add n_debug_insn_changes field.
23865         (debug_insn_changes_pool): New variable.
23866         (free_debug_insn_changes, apply_debug_insn_changes,
23867         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
23868         (kill_value_one_regno): Call free_debug_insn_changes if needed.
23869         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
23870         fields.
23871         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
23872         changes for them.
23873         (copyprop_hardreg_forward_1): Don't call apply_change_group for
23874         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
23875         changes, call cprop_find_used_regs via note_stores.
23876         (copyprop_hardreg_forward): When copying vd from predecessor
23877         which has any queued DEBUG_INSN changes, make sure the pointers are
23878         cleared.  At the end call df_analyze and then if there are any
23879         DEBUG_INSN changes queued at the end of some basic block for still
23880         live registers, apply them.
23881         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
23882
23883 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
23884
23885         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
23886         (arm*-*-*): Ditto.
23887
23888 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
23889
23890         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
23891         targets.  Set the default with_cpu/with_arch from arch/cpu.
23892         Allow x86-64 and native for with_cpu/with_arch.
23893
23894 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
23895
23896         * ebitmap.c: Change calls to verify_popcount with calls to
23897         sbitmap_verify_popcount.
23898         (ebitmap_clear_bit): Fixed map->cacheindex test and
23899         map>cache update when bit clearing results in an empty
23900         element.
23901
23902 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
23903
23904         PR target/43154
23905         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
23906         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
23907         and support both V2DF and V2DI modes.
23908         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
23909         support both V2DF and V2DI modes.
23910         (general): Delete trailing whitespace from a few patterns.
23911
23912         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23913         V2DF/V2DI interleave high/low builtins.
23914
23915         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
23916         new VSX builtins.
23917
23918         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
23919         interleave high/low functions.
23920
23921 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
23922
23923         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
23924         #pragma extern_prefix.
23925
23926 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
23927
23928         PR debug/43166
23929         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
23930         BLKmode, assert op0 is a MEM and just adjust its mode.
23931
23932         PR debug/43165
23933         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
23934         if bitpos isn't multiple of mode's bitsize.
23935
23936 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23937
23938         * c.opt (-ftemplate-depth=): New.
23939         (-ftemplate-depth-): Deprecate.
23940         * optc-gen.awk: Handle -ftemplate-depth=.
23941         * opth-gen.awk: Likewise.
23942         * c-opts.c (c_common_handle_option): Likewise.
23943         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
23944
23945 2010-02-24  Jason Merrill  <jason@redhat.com>
23946
23947         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
23948
23949 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23950
23951         * cfg.c (alloc_aux_for_block): Remove inline.
23952         (alloc_aux_for_edge): Likewise.
23953
23954 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23955
23956         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
23957
23958 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23959
23960         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
23961         * config/i386/sol2-gas.h: New file.
23962         * config.gcc (i[34567]86-*-solaris2*): Use it.
23963
23964 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23965
23966         PR c/43128
23967         * c-typeck.c (ep_convert_and_check): New.
23968         (build_conditional_expr): Use it.
23969         (build_binary_op): Likewise.
23970
23971 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
23972
23973         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
23974
23975         PR debug/43150
23976         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
23977         bounds even for -O+.
23978         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
23979         expr needs to have DECL_NAME set.
23980
23981 2010-02-24  Nick Clifton  <nickc@redhat.com>
23982
23983         * config/mep/mep.c: Include gimple.h.
23984         (mep_function_uses_sp): Delete unused function.
23985         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
23986         parameters.  Use unsigned integers to count args.  Return a
23987         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
23988
23989 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
23990
23991         PR target/43107
23992         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
23993         greater or equal to nelt instead of 2 * nelt.
23994         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
23995         with nelt - 1.
23996
23997 2010-02-23  Jason Merrill  <jason@redhat.com>
23998
23999         PR debug/42800
24000         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
24001         in cfun->local_decls even if they have register types.
24002
24003         PR c++/42837
24004         * stor-layout.c (place_field): Don't warn about unnecessary
24005         DECL_PACKED if the type is packed.
24006
24007 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24008
24009         PR target/43139
24010         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
24011         GOTOFF relocs, even when the base reg isn't pic pointer.
24012
24013 2010-02-23  Michael Matz  <matz@suse.de>
24014
24015         PR debug/43077
24016         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
24017         (expand_gimple_basic_block): Generate and use debug temps if there
24018         are debug uses left after the last real use of TERed ssa names.
24019         Unlink debug immediate uses when they are expanded.
24020
24021 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24022
24023         PR 43123
24024         * config/i386/i386.c (override_options): Reorganise to provide
24025         better error messages.
24026
24027 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24028
24029         PR middle-end/43083
24030         * graphite-scop-detection.c (create_single_exit_edge): Move
24031         the call to find_single_exit_edge to....
24032         (create_sese_edges): ...here.  Don't handle multiple edges
24033         exiting the function.
24034         (build_graphite_scops): Don't handle multiple edges
24035         exiting the function.
24036
24037 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24038
24039         PR middle-end/43097
24040         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
24041         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
24042
24043 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24044
24045         PR middle-end/43026
24046         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
24047
24048 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24049
24050         PR c++/43126
24051         * c-typeck.c (convert_arguments): Print declaration location.
24052         * c-common.c (validate_nargs): Rename as
24053         builtin_function_validate_nargs.
24054         (check_builtin_function_arguments): Update.
24055
24056 2010-02-22  Richard Guenther  <rguenther@suse.de>
24057
24058         PR lto/43045
24059         * tree-inline.c (declare_return_variable): Use the type of
24060         the call stmt lhs if available.
24061
24062 2010-02-22  Duncan Sands  <baldrick@free.fr>
24063
24064         * passes.c (register_pass): Always consider all pass lists when
24065         ref_pass_instance_number is zero.
24066
24067 2010-02-22  Richard Guenther  <rguenther@suse.de>
24068
24069         PR tree-optimization/42749
24070         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
24071         parameter.  Do arithmetic in the original type.
24072         (update_accumulator_with_ops): Likewise.
24073         (adjust_accumulator_values): Adjust.
24074
24075 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24076
24077         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
24078         (QI to BLKmode splitter): New splitter.
24079
24080 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
24081
24082         * config/i386/i386.c (initial_ix86_tune_features): Turn on
24083         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
24084
24085 2010-02-22  Richard Guenther  <rguenther@suse.de>
24086
24087         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
24088
24089 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
24090
24091         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
24092         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
24093         ($(T)crti.o, $(T)crtn.o): Remove rules.
24094
24095 2010-02-21  Tobias Burnus  <burnus@net-b.de>
24096
24097         PR fortran/35259
24098         * doc/invoke.texi (-fassociative-math): Document that this
24099         option is automatically enabled for Fortran.
24100
24101 2010-02-20  David S. Miller  <davem@davemloft.net>
24102
24103         * configure.ac: Test if linker and assembler properly support
24104         GOTDATA_OP relocations.
24105         * configure: Rebuild.
24106         * config.in: Likewise.
24107         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
24108         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
24109         (movsi_high_pic): Likewise.
24110         (movdi_lo_sum_pic): Likewise.
24111         (movdi_high_pic): Likewise.
24112         (movsi_pic_gotdata_op): New pattern.
24113         (movdi_pic_gotdata_op): Likewise.
24114         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
24115         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
24116
24117 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
24118
24119         PR target/43067
24120         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
24121         attribute to ssemul.
24122         (xop_mulv2div2di3_high): Ditto.
24123
24124 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24125
24126         PR c++/35669
24127         * c.opt (Wconversion-null): New option.
24128         * doc/invoke.texi (Wconversion-null): Document.
24129
24130 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24131
24132         * common.opt (Wlarger-than-): Add Undocumented.
24133
24134 2010-02-19  Mike Stump  <mikestump@comcast.net>
24135
24136         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
24137
24138 2010-02-19  Jason Merrill  <jason@redhat.com>
24139
24140         PR target/40332
24141         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
24142         * configure: Likewise.
24143
24144 2010-02-20  Alan Modra  <amodra@gmail.com>
24145
24146         PR middle-end/42344
24147         * cgraph.h (cgraph_make_decl_local): Declare.
24148         * cgraph.c (cgraph_make_decl_local): New function.
24149         (cgraph_make_node_local): Use it.
24150         * cgraphunit.c (cgraph_function_versioning): Likewise.
24151         * ipa.c (function_and_variable_visibility): Likewise.
24152
24153 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24154
24155         PR bootstrap/43121
24156         * except.c (sjlj_emit_function_enter): Don't call
24157         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
24158         directly.
24159         * rtl.h (add_reg_br_prob_note): Remove prototype.
24160
24161 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24162
24163         PR 41779
24164         * c-common.c (conversion_warning): Remove widening conversions
24165         before checking the conversion of integers to reals.
24166
24167 2010-02-19  Mike Stump  <mikestump@comcast.net>
24168
24169         PR middle-end/43125
24170         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
24171
24172         PR objc/43061
24173         * cgraphunit.c (process_function_and_variable_attributes): Check
24174         DECL_PRESERVE_P instead of looking up attribute "used".
24175         * ipa-pure-const.c (check_decl): Likewise.
24176         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
24177         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
24178         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
24179         instead of attribute "used".
24180         * config/sol2-c.c (solaris_pragma_init): Likewise.
24181         (solaris_pragma_fini): Likewise.
24182
24183 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24184
24185         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
24186         Use XCNEW instead of xcalloc.
24187         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
24188         XNEW instead of xmalloc.
24189         (get_fields): Use XNEWVEC instead of xmalloc.
24190
24191         PR debug/43084
24192         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
24193         populate vars array.
24194         (create_new_general_access): For debug stmts just reset value.
24195         (get_stmt_accesses): For accesses within debug stmts just record them
24196         using add_access_to_acc_sites instead of preventing the peeling or
24197         counting them as accesses.
24198
24199         PR middle-end/42233
24200         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
24201
24202 2010-02-19  Richard Guenther  <rguenther@suse.de>
24203
24204         PR tree-optimization/42916
24205         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
24206         instructions.
24207
24208 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
24209
24210         * configure.ac: Replace all uses of changequote in macro arguments
24211         with proper quoting.
24212
24213 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24214
24215         PR middle-end/42233
24216         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
24217
24218 2010-02-19  Richard Guenther  <rguenther@suse.de>
24219
24220         PR tree-optimization/42944
24221         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
24222         test for aliasing with errno.
24223
24224 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24225
24226         PR middle-end/42233
24227         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
24228         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
24229         * dojump.c: Include output.h.
24230         (inv): New inline function.
24231         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
24232         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
24233         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
24234         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
24235         argument, pass it down to other calls.
24236         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
24237         add REG_BR_PROB note to the conditional jump.
24238         * cfgexpand.c (add_reg_br_prob_note): Removed.
24239         (expand_gimple_cond): Don't call it, add the probability
24240         as last argument to jumpif_1/jumpifnot_1.
24241         * Makefile.in (dojump.o): Depend on output.h.
24242         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
24243         callers.
24244         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
24245         * stmt.c (do_jump_if_equal): Likewise.
24246         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
24247         * loop-unswitch.c (compare_and_jump_seq): Likewise.
24248         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
24249         Likewise.
24250         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
24251         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
24252         jumpifnot_1 callers.
24253         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
24254         callers.
24255         (store_expr): Adjust jumpifnot caller.
24256         (store_constructor): Adjust jumpif caller.
24257
24258         PR middle-end/42233
24259         * gimplify.c (gimple_boolify): For __builtin_expect call
24260         gimple_boolify also on its first argument.
24261
24262 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
24263
24264         * configure.ac (gnu-unique-object): Wrap regexps using [] in
24265         changequote block.
24266         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
24267         * configure: Regenerated.
24268
24269 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24270
24271         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
24272         lang_hooks.types_compatible_p instead of comptypes.
24273
24274 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24275
24276         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
24277         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
24278         if __prefer_thumb__ is defined.
24279
24280 2010-02-18  Martin Jambor  <mjambor@suse.cz>
24281
24282         PR tree-optimization/43066
24283         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
24284         array with zero-sized element type.
24285
24286 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
24287
24288         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
24289         rtx, allocate struct var_loc_node here and return it to the
24290         caller, and only if it is actually needed.
24291         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
24292         move it earlier and return immediately if it returns NULL.
24293
24294 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
24295
24296         * config/sparc/gas.h: New file.  Restore
24297         TARGET_ASM_NAMED_SECTION to its ELF default.
24298         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
24299         check !HAVE_GNU_AS.
24300         * config/sparc/sparc.c (sparc_elf_asm_named_section):
24301         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
24302         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
24303         after sparc/sysv4.h.
24304
24305 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
24306
24307         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
24308
24309 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
24310
24311         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
24312         patterns from predicated pattern.
24313
24314 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
24315
24316         PR target/43103
24317         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
24318         for insn mnemonic suffix.
24319
24320 2010-02-17  Richard Guenther  <rguenther@suse.de>
24321
24322         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
24323         to loop PHI nodes.
24324
24325 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
24326
24327         PR debug/42918
24328         * caller-save.c (save_call_clobbered_regs): If BB ends with
24329         a DEBUG_INSN, move any notes in between last real insn and the last
24330         DEBUG_INSN after the last DEBUG_INSN.
24331
24332 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
24333
24334         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
24335         Fix return type.  Fix argument type.  Explain meaning of return value.
24336
24337 2010-02-16  Richard Guenther  <rguenther@suse.de>
24338
24339         PR tree-optimization/41043
24340         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
24341         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
24342         statements ...
24343         (vrp_visit_phi_node): ... but only for loop PHI nodes.
24344
24345 2010-02-16  Ira Rosen  <irar@il.ibm.com>
24346
24347         PR tree-optimization/43074
24348         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
24349         * tree-vect-loop.c (vect_analyze_loop_operations): Add
24350         vectorizable cycles in hybrid SLP check.
24351         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
24352
24353 2010-02-16  Richard Guenther  <rguenther@suse.de>
24354
24355         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
24356         (true_dependence): If memrefs_conflict_p computes must-alias
24357         trust it.  Move TBAA check after offset-based disambiguation.
24358         (canon_true_dependence): Likewise.
24359
24360 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
24361
24362         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
24363         * doc/invoke.texi: Document it.
24364         * var-tracking.c: Include toplev.h and params.h.
24365         (vt_find_locations): Return bool indicating success.  Compute
24366         hash sizes unconditionally.  Check new parameter, report.
24367         (variable_tracking_main_1): Check vt_find_locations results and
24368         retry.  Renamed from...
24369         (variable_tracking_main): ... this.  New wrapper to preserve
24370         flag_var_tracking_assignments.
24371         * Makefile.in (var-tracking.o): Adjust dependencies.
24372
24373 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
24374             Jakub Jelinek  <jakub@redhat.com>
24375
24376         PR target/42854
24377         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
24378         if weak_import attribute is present.
24379         * config/darwin.c (machopic_select_section): Likewise.
24380
24381 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
24382
24383         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
24384         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
24385         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
24386         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
24387
24388         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
24389         types.
24390
24391         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24392         Fix argument types.
24393
24394         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
24395         Rewrite text to refer to the names.
24396
24397 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
24398
24399         * config/i386/i386-builtin-types.def
24400         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
24401         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
24402         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
24403         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
24404         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
24405         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
24406         IX86_BUILTIN_VPERMIL2PS256.
24407         (MULTI_ARG_4_DF2_DI_I): Defined.
24408         (MULTI_ARG_4_DF2_DI_I1): Defined.
24409         (MULTI_ARG_4_SF2_SI_I): Defined.
24410         (MULTI_ARG_4_SF2_SI_I1): Defined.
24411         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
24412         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
24413         __builtin_ia32_vpermil2ps256.
24414         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24415         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24416         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
24417         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24418         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24419         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
24420         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
24421         CODE_FOR_xop_vpermil2v8sf3.
24422         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
24423         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
24424         * config/i386/xopintrin.h (_mm_permute2_pd): New.
24425         (_mm256_permute2_pd): New.
24426         (_mm_permute2_ps): New.
24427         (_mm256_permute2_ps): New.
24428
24429 2010-02-15  Nick Clifton  <nickc@redhat.com>
24430
24431         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
24432         boolean parameters.  Use emit_jump_insn when emitting a pop
24433         instruction containing a return insn.
24434         (push): Use 'true' rather than '1' as second parameter to F.
24435         (h8300_expand_prologue): Likewise.
24436         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
24437         (h8300_expand_epilogue): Likewise.
24438
24439 2010-02-15  Richard Guenther  <rguenther@suse.de>
24440
24441         PR middle-end/43068
24442         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
24443         if that is zero.
24444
24445 2010-02-15  Nick Clifton  <nickc@redhat.com>
24446
24447         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
24448         delta.
24449
24450 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
24451
24452         * intl.c (fake_ngettext): New function.
24453         * intl.h (fake_ngettext): Declare.
24454         (ngettext): Define macro.
24455         * collect2.c (notice_translated): New function.
24456         (main): Use notice_translated and ngettext.
24457         * collect2.h (notice_translated): Declare.
24458
24459 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
24460
24461         * reorg.c (delete_computation): Comment fixes.
24462         * caller-save.c (setup_save_areas): Idem.
24463         * sel-sched-dump.c (dump_lv_set): Idem.
24464         * rtl.def: Idem.
24465
24466 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24467
24468         * config/s390/s390.c (s390_sched_init): New function.
24469         (TARGET_SCHED_INIT): Target hook defined.
24470
24471 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
24472             Jack Howarth  <howarth@bromo.med.uc.edu>
24473             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
24474
24475         PR target/42982
24476         Partial revert of unintended change in fix for PR41605.
24477         * config/darwin.h: Fix typo.
24478         * config/darwin9.h: Same.
24479
24480 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
24481
24482         * c-pch.c (pch_init): Clear v.
24483
24484 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24485
24486         PR middle-end/42930
24487         * graphite-scop-detection.c (graphite_can_represent_scev): Call
24488         graphite_can_represent_init for MULT_EXPR.
24489
24490 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24491
24492         PR middle-end/42914
24493         PR middle-end/42530
24494         * graphite-sese-to-poly.c (remove_phi): New.
24495         (translate_scalar_reduction_to_array): Call remove_phi.
24496
24497 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24498
24499         PR middle-end/42771
24500         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
24501         * graphite-clast-to-gimple.h (gloog): Update declaration.
24502         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
24503         * graphite-poly.h (struct poly_bb): Add missing comments.
24504         (struct scop): Add poly_scop_p field.
24505         (POLY_SCOP_P): New.
24506         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
24507         * graphite.c (graphite_transform_loops): Build the polyhedral
24508         representation for each scop before code generation.
24509         * sese.c (rename_variables_in_operand): Removed.
24510         (rename_variables_in_expr): Return the renamed expression.
24511         (rename_sese_parameters): New.
24512         * sese.h (rename_sese_parameters): Declared.
24513
24514 2010-02-11  Richard Guenther  <rguenther@suse.de>
24515
24516         PR tree-optimization/42998
24517         * tree-ssa-pre.c (create_expression_by_pieces): Treat
24518         POINTER_PLUS_EXPR properly.
24519
24520 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24521             Changpeng Fang  <changpeng.fang@amd.com>
24522
24523         PR middle-end/40886
24524         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
24525         the cost of an IV candidate when the IV is used in a test against zero.
24526
24527         * gcc.dg/tree-ssa/ivopts-3.c: New.
24528
24529 2010-02-11  Richard Guenther  <rguenther@suse.de>
24530
24531         PR lto/41664
24532         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
24533         pointer-vs-decl case by swapping refs.  Handle some cases
24534         of pointer-vs-decl disambiguations more conservatively.
24535         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
24536         to false after expanding.
24537
24538 2010-02-11  Richard Guenther  <rguenther@suse.de>
24539
24540         PR driver/43021
24541         * gcc.c (process_command): Handle LTO file@offset case more
24542         appropriately.
24543
24544 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
24545
24546         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
24547         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
24548         of DEBUG_INSNs.
24549         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
24550
24551         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
24552         if MEM's mode size isn't DWARF2_ADDR_SIZE.
24553         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
24554         Optimize eq/ne comparisons when both arguments are known to be
24555         zero-extended.
24556         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
24557         Don't mask operands unnecessarily if they are known to be already
24558         zero-extended.
24559
24560 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
24561
24562         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
24563         instead of loop.
24564
24565 2010-02-10  Richard Guenther  <rguenther@suse.de>
24566
24567         PR tree-optimization/43017
24568         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
24569         for wrapping signed arithmetic.
24570
24571 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
24572
24573         PR debug/43010
24574         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
24575         if no debug info should be emitted for it.
24576
24577 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24578
24579         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
24580         note when flag_exceptions is set.
24581
24582 2010-02-10  Duncan Sands  <baldrick@free.fr>
24583
24584         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
24585
24586 2010-02-10  Richard Guenther  <rguenther@suse.de>
24587
24588         PR c/43007
24589         * tree.c (get_unwidened): Handle constants.
24590         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
24591
24592 2010-02-10  Martin Jambor  <mjambor@suse.cz>
24593
24594         PR lto/42985
24595         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
24596         check for variable argument counts independently.
24597
24598 2010-02-10  Christian Bruel  <christian.bruel@st.com>
24599
24600         PR target/42841
24601         * config/sh/sh.c (find_barrier): Increase length for non delayed
24602         conditional branches.
24603
24604 2010-02-10  Christian Bruel  <christian.bruel@st.com>
24605
24606         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
24607
24608 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
24609
24610         * builtins.c (set_builtin_user_assembler_name): Also handle
24611         ffs if int is smaller than word.
24612
24613 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
24614
24615         PR middle-end/42973
24616         * ira-conflicts.c (get_dup): Remove.
24617         (process_reg_shuffles): Add new parameter.  Use it as an
24618         additional guard for copy generation.
24619         (add_insn_allocno_copies): Rewrite.
24620
24621 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
24622
24623         * common.opt (fsched2-use-traces): Preserved for backward
24624         compatibility.
24625         * doc/invoke.texi: Remove the documentation about option
24626         -fsched2-use-traces.
24627         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
24628         flag_sched2_use_traces.
24629         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
24630         the backward compatibility flag section.
24631
24632 2010-02-09  Richard Guenther  <rguenther@suse.de>
24633
24634         PR tree-optimization/43008
24635         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
24636         make HEAP variables initialized from global memory if they
24637         are not known builtin functions.
24638         (find_func_aliases): Adjust.
24639
24640 2010-02-09  Richard Guenther  <rguenther@suse.de>
24641
24642         PR tree-optimization/43000
24643         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
24644         arithmetic manually.
24645
24646 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
24647
24648         PR tree-optimization/42931
24649         * tree-loop-linear.c (try_interchange_loops): Don't call
24650         double_int_mul if estimated_loop_iterations failed.
24651
24652 2010-02-08  Martin Jambor  <mjambor@suse.cz>
24653
24654         PR middle-end/42898
24655         * tree-sra.c (build_accesses_from_assign): Do not mark in
24656         should_scalarize_away_bitmap if stmt has volatile ops.
24657         (sra_modify_assign): Do not process assigns piecemeal if if stmt
24658         has volatile ops.
24659
24660 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
24661
24662         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
24663
24664 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
24665
24666         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
24667         before the pattern.
24668
24669 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
24670
24671         PR middle-end/42946
24672         * df-core.c (df_finish_pass): Change type of saved_flags to int.
24673
24674 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
24675
24676         PR middle-end/42988
24677         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
24678         to unknown_dependence.
24679         (graphite_legal_transform_dr): Handle the unknown_dependence.
24680         (graphite_carried_dependence_level_k): Same.
24681
24682 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
24683
24684         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
24685
24686 2010-02-07  Richard Guenther  <rguenther@suse.de>
24687
24688         PR middle-end/42991
24689         * expr.c (get_inner_reference): Always initialize *pbitsize.
24690
24691 2010-02-07  Richard Guenther  <rguenther@suse.de>
24692
24693         PR middle-end/42956
24694         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
24695         new ARRAY_REFs on variable size element or minimal index arrays.
24696         Complete.
24697         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
24698         gimple_fold_indirect_ref.
24699
24700 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
24701
24702         PR target/42957
24703         * arm.c (arm_override_options): Just return if the user has specified
24704         an invalid fpu name.
24705
24706 2010-02-03  Jason Merrill  <jason@redhat.com>
24707
24708         PR c++/42870
24709         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
24710         i386_pe_maybe_record_exported_symbol.
24711
24712 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
24713
24714         PR target/42924
24715         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
24716         (pa_delegitimize_address): New function.
24717
24718 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
24719
24720         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
24721         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
24722
24723 2010-02-05  Richard Guenther  <rguenther@suse.de>
24724
24725         PR lto/42762
24726         * lto-streamer-in.c (get_resolution): Deal with references
24727         to undefined functions.
24728
24729 2010-02-05  Richard Guenther  <rguenther@suse.de>
24730
24731         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
24732         (fold_const_aggregate_ref): Likewise.
24733         (ccp_fold_stmt): Substitute loads.
24734         (maybe_fold_reference): Verify types before substituting.
24735         Unshare properly.
24736         (fold_gimple_assign): Unshare properly.
24737         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
24738
24739 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
24740
24741         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
24742         for rs6000_gen_cell_microcode.
24743
24744 2010-02-04  Richard Guenther  <rguenther@suse.de>
24745
24746         PR rtl-optimization/42952
24747         * dse.c (const_or_frame_p): Remove MEM handling.
24748
24749 2010-02-04  Nick Clifton  <nickc@redhat.com>
24750
24751         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
24752         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
24753         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
24754         (mn10300_asm_output_mi_thunk): New function.
24755         (mn10300_can_output_mu_thunk): New function.
24756         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
24757         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
24758         (FUNCTION_ARG): Delete incorrect comment.
24759
24760 2010-02-03  Jason Merrill  <jason@redhat.com>
24761
24762         PR c++/40138
24763         * fold-const.c (operand_equal_p): Handle erroneous types.
24764
24765 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
24766
24767         * config/h8300/h8300.md (can_delay): Fix attibute condition.
24768
24769 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
24770
24771         PR rtl-optimization/42941
24772         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
24773         of xmalloc.
24774
24775 2010-02-03  Jason Merrill  <jason@redhat.com>
24776
24777         PR c++/35652
24778         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
24779
24780 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
24781
24782         PR debug/42896
24783         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
24784         (cselib_reset_table): Renamed from...
24785         (cselib_reset_table_with_next_value): ... this.
24786         (cselib_get_next_uid): Renamed from...
24787         (cselib_get_next_unknown_value): ... this.
24788         * cselib.c (next_uid): Renamed from...
24789         (next_unknown_value): ... this.
24790         (cselib_clear_table): Adjust.
24791         (cselib_reset_table): Adjust.  Renamed from...
24792         (cselib_reset_table_with_next_value): ... this.
24793         (cselib_get_next_uid): Adjust.  Renamed from...
24794         (cselib_get_next_unknown_value): ... this.
24795         (get_value_hash): Use hash.
24796         (cselib_hash_rtx): Likewise.
24797         (new_cselib_val): Adjust.  Set and dump uid.
24798         (cselib_lookup_mem): Pass next_uid as hash.
24799         (cselib_subst_to_values): Likewise.
24800         (cselib_log_lookup): Dump uid.
24801         (cselib_lookup): Pass next_uid as hash.  Adjust.
24802         (cselib_process_insn): Adjust.
24803         (cselib_init): Initialize next_uid.
24804         (cselib_finish): Adjust.
24805         (dump_cselib_table): Likewise.
24806         * dse.c (canon_address): Dump value uid.
24807         * print-rtl.c (print_rtx): Print value uid.
24808         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
24809         (dvuid): New type.
24810         (dv_uid): New function, sort of renamed from...
24811         (dv_htab_hash): ... this, reimplemented in terms of it and...
24812         (dv_uid2hash): ... this.  New.
24813         (variable_htab_eq): Drop excess assertions.
24814         (tie_break_pointers): Removed.
24815         (canon_value_cmp): Compare uids.
24816         (variable_post_merge_New_vals): Print uids.
24817         (vt_add_function_parameters): Adjust.
24818         (vt_initialize): Reset table.  Adjust.
24819
24820 2010-02-03  Richard Guenther  <rguenther@suse.de>
24821
24822         PR tree-optimization/42944
24823         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
24824         (call_may_clobber_ref_p_1): Likewise.  Properly handle
24825         malloc and calloc clobbering errno.
24826
24827 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
24828
24829         * doc/invoke.texi: Fix name of sched1 dump.
24830
24831         * opts.c (decode_options): Set flag_tree_switch_conversion
24832         only conditionally on optimize >= 2.
24833
24834         * gcse.c: Assorted comment fixes in pass description.
24835
24836 2010-02-03  Anthony Green  <green@moxielogic.com>
24837
24838         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
24839         nop padding in order to maintain alignment of storage location of
24840         target function address.
24841         (moxie_trampoline_init): Store target function address at newly
24842         aligned location.
24843         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
24844         to 32.
24845         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
24846
24847 2010-02-03  Richard Guenther  <rguenther@suse.de>
24848
24849         PR middle-end/42927
24850         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
24851
24852 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24853
24854         * config.gcc: Reenable check for obsolete targets.
24855         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
24856         mips-sgi-irix6.[0-4]*.
24857
24858 2010-02-02  Nick Clifton  <nickc@redhat.com>
24859
24860         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
24861         constant size of 4 as being the same as 0.
24862         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
24863         can take values in the range 0..4.
24864
24865 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
24866
24867         PR java/41991
24868         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
24869         as _darwin10_Unwind_FindEnclosingFunction().
24870         * libgcc-libsystem.ver: New.
24871
24872 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
24873
24874         PR target/41399
24875         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
24876         implicitly set registers.
24877
24878 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
24879
24880         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
24881         (arm_override_options): Allow automatic selection of the thread
24882         pointer register if thumb2.
24883         (legitimize_pic_address): Improve code sequences for Thumb2.
24884         (arm_call_tls_get_addr): Likewise.
24885         (legitimize_tls_address): Likewise.
24886         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
24887         (pic_load_addr_32bit): ... this.  New named pattern.
24888         * thumb2.md (pic_load_addr_thumb2): Delete.
24889         (pic_load_dot_plus_four): Delete.
24890         (tls_load_dot_plus_four): New named pattern.
24891
24892 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24893
24894         PR libgomp/29986
24895         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
24896         Document fix for TLS bug.
24897
24898 2010-01-31  Richard Guenther  <rguenther@suse.de>
24899
24900         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
24901         conservatively correct.
24902
24903 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24904
24905         PR target/42850
24906         Revert:
24907         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24908
24909         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
24910
24911 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24912
24913         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
24914
24915 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
24916
24917         * config.gcc: Adjust order of makefile fragments for mingw targets.
24918
24919 2010-01-31  Richard Guenther  <rguenther@suse.de>
24920
24921         PR middle-end/42898
24922         * gimplify.c (gimplify_init_constructor): For volatile LHS
24923         initialize a temporary.
24924
24925 2010-01-31  Matthias Klose  <doko@ubuntu.com>
24926
24927         * configure.ac: Fix __stack_chk_fail check for cross builds configured
24928         --with-headers
24929         * configure: Regenerate.
24930
24931 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
24932
24933         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24934         the same alias set and their sizes different constantness.
24935         (aliasing_component_refs_p): Revert 2009-10-24 change.
24936
24937 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24938
24939         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
24940         unused.
24941
24942 2010-01-29  Richard Guenther  <rguenther@suse.de>
24943
24944         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
24945         Assert we successfully updated the call.
24946
24947 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
24948
24949         PR rtl-optimization/42889
24950         * df.h (df_set_bb_dirty_nonlr): New prototype.
24951         * df-core.c (df_set_bb_dirty_nonlr): New function.
24952         * df-scan.c (df_insn_rescan): Call it instead of
24953         df_set_bb_dirty for DEBUG_INSNs.
24954
24955 2010-01-29  Richard Guenther  <rguenther@suse.de>
24956
24957         PR middle-end/37448
24958         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
24959         quadratic behavior in most cases.
24960
24961 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
24962
24963         PR target/42891
24964         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
24965         in the call to gen_x86_movsicc_0_m1.
24966
24967 2010-01-28  Richard Guenther  <rguenther@suse.de>
24968
24969         PR tree-optimization/42871
24970         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
24971
24972 2010-01-28  Richard Guenther  <rguenther@suse.de>
24973
24974         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
24975         into call arguments.
24976
24977 2010-01-28  Richard Guenther  <rguenther@suse.de>
24978
24979         PR middle-end/42883
24980         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
24981         the forwarder if the destination is an EH landing pad.
24982
24983 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
24984
24985         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
24986         block list passed to gimple_duplicate_sese_tail.
24987         (parallelize_loops): Avoid parallelization when the function
24988         has_nonlocal_label.
24989         Avoid parallelization when the preheader is IRREDUCIBLE.
24990         Try to optimize when estimated_loop_iterations_int is unresolved.
24991         Add the loop's location to the dump file.
24992         * tree-cfg.c (add_phi_args_after_redirect): Remove.
24993         (gimple_duplicate_sese_tail): Remove the check for the latch.
24994         Redirect nexits to the exit block.
24995         Remove handling of the incoming edges to the latch.
24996         Redirect the backedge from the copied latch to the exit bb.
24997
24998 2010-01-28  Michael Matz  <matz@suse.de>
24999
25000         PR target/42881
25001         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
25002         Wrap force_reg into a sequence, emit it before user.
25003
25004 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
25005
25006         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
25007         (arm_rev): New.
25008         (arm_legacy_rev): Likewise.
25009         (thumb_legacy_rev): Likewise.
25010
25011 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25012
25013         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
25014         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
25015         on MEM's address failed, try avoid_constant_pool_reference and
25016         recurse if it returned something different.
25017         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
25018         address, try avoid_constant_pool_reference and recurse if it
25019         returned something different.
25020         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
25021         address and avoid_constant_pool_reference returned something
25022         different, don't set have_address.
25023
25024 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
25025
25026         PR debug/42861
25027         * var-tracking.c (val_store): Add modified argument, obey it.
25028         Adjust callers.
25029         (count_uses): Move down logging of main.
25030         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
25031         don't need resolution.
25032         (emit_notes_in_bb): Likewise.
25033
25034 2010-01-27  Richard Guenther  <rguenther@suse.de>
25035
25036         PR middle-end/42878
25037         * tree-inline.c (remap_decl): Delay remapping of SSA name
25038         default definitions until we need them.
25039
25040 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25041
25042         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25043         (rs6000_delegitimize_address): New function.
25044
25045         * config/s390/s390.c (s390_delegitimize_address): Call
25046         delegitimize_mem_from_attrs.
25047
25048         PR middle-end/42874
25049         * tree-inline.c (cannot_copy_type_1): Removed.
25050         (copy_forbidden): Don't forbid copying of functions containing
25051         records/unions with variable length fields.
25052
25053 2010-01-27  Christian Bruel  <christian.bruel@st.com>
25054
25055         Revert:
25056         PR target/42841
25057         * config/sh/sh.c (find_barrier): Increase length for non delayed
25058         conditional branches.
25059
25060 2010-01-27  Matthias Klose  <doko@ubuntu.com>
25061
25062         * configure.ac (gnu-unique-object): Fix ldd version check.
25063         * configure: Regenerate.
25064
25065 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25066
25067         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
25068         HAVE_GNU_AS value.
25069         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
25070         Test for HAVE_GNU_AS value.
25071
25072 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25073
25074         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
25075         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
25076         INT64_TYPE): Define.
25077         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
25078         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
25079         INT_LEAST64_TYPE): Define.
25080         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
25081         UINT_LEAST64_TYPE): Define.
25082         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
25083         INT_FAST64_TYPE): Define.
25084         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
25085         UINT_FAST64_TYPE): Define.
25086         (INTMAX_TYPE, UINTMAX_TYPE): Define.
25087         (INTPTR_TYPE, UINTPTR_TYPE): Define.
25088         (SIG_ATOMIC_TYPE): Define.
25089
25090 2010-01-26  Richard Guenther  <rguenther@suse.de>
25091
25092         * df-scan.c (df_scan_set_bb_info): Remove assert.
25093         (df_insn_rescan_debug_internal): Merge asserts.
25094         (df_install_ref): Likewise.
25095         (df_mark_reg): Use bitmap_set_range.
25096         (df_hard_reg_used_p): Remove assert.
25097         (df_hard_reg_used_count): Likewise.
25098
25099 2010-01-26  Richard Guenther  <rguenther@suse.de>
25100
25101         PR rtl-optimization/42685
25102         * web.c (web_main): Ignore DEBUG_INSNs.
25103
25104 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
25105
25106         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
25107
25108         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
25109         Fix types of fndecl and arglist parameters.
25110
25111 2010-01-26  Richard Guenther  <rguenther@suse.de>
25112
25113         PR middle-end/42806
25114         * tree-eh.c (unsplit_eh): Skip debug insns.
25115
25116 2010-01-26  Richard Guenther  <rguenther@suse.de>
25117
25118         PR tree-optimization/42250
25119         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
25120
25121 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
25122
25123         PR fortran/42866
25124         * omp-low.c (expand_omp_sections): Only use single_pred if
25125         l2_bb is single_pred_p.
25126
25127 2010-01-25  Christian Bruel  <christian.bruel@st.com>
25128
25129         PR target/42841
25130         * config/sh/sh.c (find_barrier): Increase length for non delayed
25131         conditional branches.
25132         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
25133
25134 2010-01-24  David S. Miller  <davem@davemloft.net>
25135
25136         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
25137         define if not using GAS.
25138         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25139         Likewise.  Delete SECTION_MERGE code, which is only applicable
25140         when using GAS.
25141
25142 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
25143
25144         PR c++/42748
25145         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
25146         mangling of va_list in system headers.
25147
25148 2010-01-23  Toon Moene  <toon@moene.org>
25149
25150         * tree-predcom.c (combine_chains): Return NULL, not false.
25151
25152 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
25153
25154         * tree-loop-distribution.c (distribute_loop): Fix declaration and
25155         initialization of variable res to agree with return type.
25156
25157 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
25158
25159         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
25160         * tree-sra.c: Add include of expr.h.
25161
25162 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
25163
25164         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
25165         insert the debug stmt on the single non-EH edge from the stmt.
25166
25167 2010-01-22  Richard Henderson  <rth@redhat.com>
25168
25169         PR tree-opt/42833
25170         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
25171         the RHS until after generate_subtree_copies has insertted its
25172         code before the current statement.
25173
25174 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
25175
25176         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
25177
25178         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
25179
25180 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25181
25182         PR tree-optimization/42585
25183         * tree-sra.c (struct access): New field grp_total_scalarization.
25184         (dump_access): Dump the new field.
25185         (should_scalarize_away_bitmap): New variable.
25186         (cannot_scalarize_away_bitmap): Likewise.
25187         (sra_initialize): Allocate new bitmaps.
25188         (sra_deinitialize): Free new bitmaps.
25189         (create_access_1): New function.
25190         (create_access): Parts moved to create_access_1.
25191         (type_consists_of_records_p): New function.
25192         (completely_scalarize_record): Likewise.
25193         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
25194         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
25195         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
25196         access.
25197         (analyze_all_variable_accesses): Completely scalarize small eligible
25198         records.
25199
25200 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25201
25202         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
25203
25204 2010-01-21  Andrew Haley  <aph@redhat.com>
25205
25206         * gcc.c (process_command): Move lang_specific_driver before
25207         setting cc_libexec_prefix.
25208
25209 2010-01-21  Richard Guenther  <rguenther@suse.de>
25210
25211         PR middle-end/19988
25212         * fold-const.c (negate_expr_p): Pretend only negative
25213         real constants are easily negatable.
25214
25215 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
25216             Jason Merrill  <jason@redhat.com>
25217
25218         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
25219         (TYPE_TRANSPARENT_AGGR): this, for union and record.
25220         * calls.c (initialize argument_information): Handle it.
25221         * c-common.c (handle_transparent_union_attribute): Use new name.
25222         * c-decl.c (finish_struct): Ditto.
25223         * c-typeck.c (type_lists_compatible_p): Ditto.
25224         (convert_for_assignment): Use new name and also handle record.
25225         * function.c (aggregate_value_p): Handle it.
25226         (pass_by_reference): Ditto.
25227         (assign_parm_data_types): Ditto.
25228         * print-tree.c (print_node): Ditto.
25229         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
25230         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
25231         * tree.c (first_field): New fn.
25232
25233 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
25234
25235         PR target/42818
25236         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
25237         even when linking statically, for now.
25238
25239 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25240
25241         PR debug/42715
25242         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
25243         without a cselib val.
25244         (count_uses): Accept MO_VAL_SET with no val on stores.
25245         (add_stores): Likewise.
25246
25247 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25248
25249         * var-tracking.c (check_value_val): Add a compile time assertion.
25250         (dv_is_decl_p): Simplify.
25251         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
25252         gcc_assert if ENABLE_CHECKING.
25253
25254 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25255
25256         PR debug/42782
25257         * var-tracking.c: Include tree-flow.h.
25258         (mem_dies_at_call): New.
25259         (dataflow_set_preserve_mem_locs): Use it.
25260         (dataflow_set_remove_mem_locs): Likewise.
25261         (dump_var): Renamed from dump_variable.  Adjust all callers.
25262         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
25263         * Makefile.in (var-tracking.o): Adjust deps.
25264
25265 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
25266
25267         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
25268
25269 2010-01-20  Richard Guenther  <rguenther@suse.de>
25270
25271         PR tree-optimization/42717
25272         * tree-ssa-dce.c (get_live_post_dom): Remove.
25273         (forward_edge_to_pdom): Take an arbitrary edge to copy
25274         degenerate PHI args from.
25275         (remove_dead_stmt): Use the first post-dominator even if it
25276         does not contain live statements as redirection destination.
25277
25278 2010-01-20  Richard Guenther  <rguenther@suse.de>
25279
25280         * tree-inline.c (estimate_num_insns): Handle EH builtins.
25281
25282 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25283
25284         * sel-sched.c (create_speculation_check): Remove set but not used
25285         variable twin.
25286         (try_transformation_cache): Remove set but not used variable ds.
25287         (calculate_privileged_insns): Remove set but not used variables
25288         cur_insn and min_spec_insn.
25289         (find_best_expr): Remove set but not used variable avail_n.
25290         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
25291         variable e.
25292         * cgraphunit.c (assemble_thunk): Remove set but not used variable
25293         false_label.
25294         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
25295         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
25296         new_scop_exit_edge.
25297
25298 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
25299
25300         PR bootstrap/42786
25301         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
25302         cpu types.  Add support for *-sse3 cpu types.
25303         (x86_64-*-*): Ditto.
25304
25305 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25306
25307         PR middle-end/42803
25308         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
25309         argument, call initializer_constant_valid_p_1 instead of
25310         initializer_constant_valid_p, pass CACHE to it, return NULL
25311         immediately if first call returns NULL.
25312         (initializer_constant_valid_p_1): New function.
25313         (initializer_constant_valid_p): Use it.
25314
25315 2010-01-20  Thomas Quinot  <quinot@adacore.com>
25316
25317         * tree.def (PLACEHOLDER_EXPR): Fix comment.
25318
25319 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25320
25321         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
25322         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
25323         (loc_list_from_tree): Don't handle unsigned division.  Handle
25324         signed modulo using DW_OP_{over,over,div,mul,minus}.
25325         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
25326         modulo instead of signed.
25327
25328 2010-01-20  DJ Delorie  <dj@redhat.com>
25329
25330         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
25331         (Fpa): Pass it
25332         (h8300_emit_stack_adjustment): Propogate it.
25333         (push): Pass it.
25334         (h8300_expand_prologue): Likewise.
25335         (h8300_expand_epilogue): Likewise.
25336
25337 2010-01-19  Michael Matz  <matz@suse.de>
25338
25339         PR tree-optimization/41783
25340         * tree-data-ref.c (toplevel): Include flags.h.
25341         (dump_data_dependence_relation):  Also dump the inputs if the
25342         result will be unknown.
25343         (split_constant_offset_1): Look through some conversions.
25344         * tree-predcom.c (determine_roots_comp): Restart a new chain if
25345         the offset from last element is too large.
25346         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
25347         (reassociate_to_the_same_stmt): Handle vector registers.
25348         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
25349         (e.g. conversions).
25350         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
25351         wide_prolog_niters argument, emit widening instructions.
25352         (vect_do_peeling_for_alignment): Adjust caller, use widened
25353         variant of the iteration cound.
25354         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
25355
25356 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25357
25358         PR target/38697
25359         * config/arm/neon-testgen.m (emit_automatics): New parameter
25360         features. Adjust for Fixed_return_reg feature.
25361         (test_intrinsic): Call emit_automatics with new feature.
25362         * config/arm/neon.ml: Update copyright years.
25363         (features): New Fixed_return_reg feature.
25364         (ops): Update feature for Vget_low.
25365
25366 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
25367
25368         PR tree-optimization/42719
25369         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
25370         stmt uses.
25371
25372         PR debug/42728
25373         * fwprop.c (all_uses_available_at): Return false if def_set dest
25374         is a REG that is used in def_insn.
25375
25376 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
25377
25378         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
25379
25380         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
25381         Add argument names.
25382
25383         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
25384
25385         * target.h (struct gcc_target) <secondary_reload>: Change type
25386         of last argument to secondary_reload_info *.
25387
25388 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
25389
25390         PR target/42774
25391         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
25392         memory references with unaligned offsets.  Remove CQImode handling.
25393         (unaligned_memory_operand): Return 1 for memory references with
25394         unaligned offsets.  Remove CQImode handling.
25395
25396 2010-01-18  Richard Guenther  <rguenther@suse.de>
25397
25398         PR middle-end/39954
25399         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
25400         builtin calls.
25401
25402 2010-01-18  Richard Guenther  <rguenther@suse.de>
25403
25404         PR tree-optimization/42781
25405         * tree-ssa-structalias.c (find_what_var_points_to): Skip
25406         restrict processing only if the original variable was artificial.
25407
25408 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
25409
25410         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
25411         find number of popped argument bytes.
25412
25413         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
25414         Fix the text that describes the return value for invalid insns.
25415
25416         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
25417
25418         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
25419         Clarify what 'cost of the -dependence' is.  Fix quoting.
25420
25421         * toplev.c (default_get_pch_validity): Rename argument to "sz".
25422         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
25423
25424 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
25425
25426         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25427         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
25428
25429 2010-01-17  Richard Guenther  <rguenther@suse.de>
25430
25431         PR middle-end/42248
25432         * function.c (split_complex_args): Take a VEC to modify.
25433         (assign_parms_augmented_arg_list): Build a VEC instead of
25434         a chain of PARM_DECLs.
25435         (assign_parms_unsplit_complex): Take a VEC of arguments.
25436         Do not fixup unmodified parms.
25437         (assign_parms): Deal with the VEC.
25438         (gimplify_parameters): Likewise.
25439
25440 2010-01-17  Richard Guenther  <rguenther@suse.de>
25441
25442         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
25443         node existence check.
25444         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
25445         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
25446         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
25447         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
25448         (gimple_execute_on_growing_pred): Likewise.
25449
25450 2010-01-17  Richard Guenther  <rguenther@suse.de>
25451
25452         PR tree-optimization/42773
25453         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
25454         (compute_antic_aux): Likewise.
25455         (compute_partial_antic_aux): Likewise.
25456
25457 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
25458
25459         PR debug/42767
25460         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
25461         and US_TRUNCATE.
25462
25463 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
25464
25465         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
25466         appearance.
25467
25468         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
25469         Fix markup for strict argument.
25470
25471         (TARGET_SCHED_REORDER2): Fix argument types.
25472
25473         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
25474         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
25475
25476         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
25477         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
25478
25479         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
25480         Add argument name.
25481
25482         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
25483         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
25484         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
25485         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
25486         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
25487
25488         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
25489
25490         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
25491
25492         (TARGET_ASM_RELOC_RW_MASK): Add return type.
25493         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
25494
25495         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
25496
25497         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
25498         Use prototype.
25499
25500         (TARGET_ASM_NAMED_SECTION): Fix argument list.
25501
25502         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
25503         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
25504
25505         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
25506
25507         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
25508
25509         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
25510         referring to it.  Fix language.
25511
25512         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
25513
25514         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
25515
25516         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
25517
25518         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
25519
25520         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
25521         '@var{stream}.  Remove stray 'and'.
25522
25523         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
25524
25525         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
25526
25527         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
25528
25529         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
25530         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
25531
25532         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
25533         Fix description of return value.
25534         Rename argument "sz" to "len."
25535
25536         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
25537         Clarify meaning of 'true' return value.
25538
25539         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
25540
25541         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
25542         rep_mode versus mode_rep.
25543
25544         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
25545
25546         (TARGET_BUILTIN_DECL): Fix name.
25547
25548         (TARGET_COMMUTATIVE_P): Fix type of first argument.
25549
25550         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
25551
25552         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
25553
25554         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
25555
25556         (TARGET_RELAXED_ORDERING): Use @deftypevr.
25557
25558         (TARGET_GET_DRAP_RTX): Note that this is a hook.
25559         Clarify language.
25560
25561         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
25562         Rename argument tm_fn to md_fn.
25563
25564         (TARGET_OPTION_PRINT): Fix argument list.
25565
25566 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
25567
25568         PR target/42664
25569         * config/i386/i386.c (ix86_fixup_binary_operands):
25570         Revert FMA4 fixup of operands.
25571
25572 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25573
25574         PR gcc/42525
25575         * Makefile.in (write_entries_to_file, install-plugin):
25576         Use \012 instead of \n with tr.
25577
25578 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
25579
25580         * configure.ac (HAVE_AS_REF): New C macro.
25581         * configure: Regenerate.
25582         * config.in: Likewise.
25583         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
25584         if HAVE_AS_REF.
25585         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
25586         if HAVE_AS_REF.
25587
25588 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
25589
25590         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
25591
25592         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
25593
25594         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
25595
25596         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
25597
25598         (TARGET_IN_SMALL_DATA_P): Fix argument type.
25599
25600         (TARGET_BINDS_LOCAL_P): Fix argument type.
25601
25602         (TARGET_ASM_FILE_END): Use prototype.
25603
25604         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
25605
25606         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
25607
25608         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
25609
25610         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
25611
25612         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
25613         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
25614
25615         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
25616         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
25617
25618         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
25619         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
25620         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
25621         (TARGET_ADDR_SPACE_CONVERT): Likewise.
25622
25623         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
25624
25625         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
25626
25627         (TARGET_INIT_BUILTINS): Use prototype.
25628
25629         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
25630         Put 'const char *' in braces.  Fix parameter types.
25631         (TARGET_INVALID_CONVERSION): Fix parameter types.
25632         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
25633         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
25634
25635         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
25636         Fix argument type.
25637
25638         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
25639
25640         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
25641
25642 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
25643
25644         * doc/tm.texi (TARGET_HELP): Fix return type.
25645
25646         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
25647         in braces.  Fix argument types.
25648
25649         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
25650
25651         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
25652
25653         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
25654
25655         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
25656         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
25657
25658         (TARGET_MANGLE_TYPE): Fix argument types.
25659
25660         (TARGET_IRA_COVER_CLASSES): Use prototype.
25661
25662         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
25663
25664         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
25665
25666         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
25667
25668         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
25669
25670         (TARGET_CALLEE_COPIES): Fix argument types.
25671
25672         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
25673
25674         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
25675
25676         (TARGET_FUNCTION_VALUE): Fix argument types.
25677
25678         (TARGET_RETURN_IN_MSB): Fix argument type.
25679
25680         (TARGET_RETURN_IN_MEMORY): Fix argument types.
25681
25682         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
25683
25684         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
25685
25686         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
25687         agree with return type.
25688
25689         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
25690
25691 2010-01-15  Jing Yu  <jingyu@google.com>
25692
25693         PR rtl-optimization/42691
25694         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
25695         a pseudo to a constant and are merged, and adjust comments.
25696
25697 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
25698
25699         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
25700
25701 2010-01-15  Richard Guenther  <rguenther@suse.de>
25702
25703         PR middle-end/42739
25704         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
25705         labels of computed or non-local gotos to the destination.
25706         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
25707         landing pad label is the first label.
25708
25709 2010-01-15  Richard Guenther  <rguenther@suse.de>
25710
25711         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
25712
25713 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
25714
25715         PR target/42747
25716         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
25717         to allow generation of the xssqrtdp instruction on power7.
25718         (sqrtdf2_fpr): Ditto.
25719
25720 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25721
25722         PR middle-end/42674
25723         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
25724         functions with noreturn attribute.
25725
25726         PR c++/42608
25727         * varasm.c (declare_weak): Add weak attribute to decl if it
25728         doesn't have one already.
25729         (assemble_external): Only add decls to weak_decls if they also
25730         have weak attribute.
25731
25732 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
25733
25734         * var-tracking.c (var_reg_delete): Don't delete the association
25735         between REGs and values or one-part variables if the register
25736         isn't clobbered.
25737
25738 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25739
25740         PR debug/42657
25741         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
25742         because its first operand is a non-localized variable.
25743
25744 2010-01-14  Martin Jambor  <mjambor@suse.cz>
25745
25746         PR tree-optimization/42706
25747         * tree-sra.c (encountered_recursive_call): New variable.
25748         (encountered_unchangable_recursive_call): Likewise.
25749         (sra_initialize): Initialize both new variables.
25750         (callsite_has_enough_arguments_p): New function.
25751         (scan_function): Call decl and flags check only for IPA-SRA, check
25752         whether there is a recursive call and whether it has enough arguments.
25753         (all_callers_have_enough_arguments_p): New function.
25754         (convert_callers): Look for recursive calls only when
25755         encountered_recursive_call is set.
25756         (ipa_early_sra): Bail out either if
25757         !all_callers_have_enough_arguments_p or
25758         encountered_unchangable_recursive_call.
25759
25760 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25761
25762         * sel-sched.c: Add 2010 to copyright years.
25763         * sel-sched-ir.c: Likewise.
25764         * sel-sched-ir.h: Likewise.
25765
25766 2010-01-14  Martin Jambor  <mjambor@suse.cz>
25767
25768         PR tree-optimization/42714
25769         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
25770         constructors specially.
25771
25772 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25773
25774         * config/i386/drivers-i386.c (detect_caches_intel):
25775         Add l2sizekb parameter and fill in.
25776         (host_detect_local_cpu): Add l2sizekb, fill in.
25777         Add Atom small cache heuristic.
25778
25779 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25780
25781         * config/i386/drivers-i386.c (detect_caches_cpuid4):
25782         Add level3 parameter and fill in.
25783         (detect_caches_intel): Handle level3 cache.
25784
25785 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25786
25787         * config/i386/drivers-i386.c (host_detect_local_cpu):
25788         Fix core duo detection.
25789
25790 2010-01-14  Andi Kleen  <ak@linux.intel.com>
25791
25792         * config/i386/drivers-i386.c (host_detect_local_cpu):
25793         Fix Atom detection.
25794
25795 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25796
25797         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
25798         (rs6000_variable_issue_1): this.  Use...
25799         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
25800
25801 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25802
25803         * sel-sched-ir.c (sel_restore_other_notes): Rename to
25804         sel_restore_notes.  Update all callers.  Call reemit_notes
25805         for all insns.
25806
25807 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25808
25809         PR rtl-optimization/42246
25810         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
25811         loops.
25812
25813 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25814
25815         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
25816         all successors is the same as number of successors in current region.
25817
25818 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25819
25820         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
25821         to rename is not separable.  Otherwise check that its LHS is not NULL.
25822
25823 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25824
25825         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
25826
25827 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25828
25829         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
25830         available registers when failed to discover LHS register class.
25831         Fix indentation.  Update comment.
25832
25833 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25834             Alexander Monakov  <amonakov@ispras.ru>
25835
25836         PR rtl-optimization/42389
25837         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
25838         to can_issue_more.
25839         (advance_state_on_fence): Likewise.
25840         (sel_target_adjust_priority): Print debug output only when
25841         sched_verbose >= 4, not 2.
25842         (get_expr_cost): Do not issue all unique insns on the next cycle.
25843         (fill_insns): Initialize can_issue_more from the value saved
25844         with the fence.
25845         * sel-sched-ir.c (flist_add): New parameter issue_more.
25846         Init FENCE_ISSUE_MORE with it.
25847         (merge_fences): Likewise.
25848         (init_fences): Update call to flist_add.
25849         (add_to_fences, add_clean_fence_to_fences)
25850         (add_dirty_fence_to_fences): Likewise.
25851         (move_fence_to_fences): Update call to merge_fences.
25852         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
25853         sched groups.
25854         * sel-sched-ir.h (struct _fence): New field issue_more.
25855         (FENCE_ISSUE_MORE): New accessor macro.
25856
25857 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25858
25859         PR rtl-optimization/42388
25860         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
25861         that have no predecessors nor successors.  Do not call move_bb_info
25862         for empty blocks outside of current region.
25863
25864 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25865
25866         PR rtl-optimization/42294
25867         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
25868         * sel-sched.c (move_exprs_to_boundary): Transitively add all
25869         originators' originators.
25870
25871 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
25872
25873         PR rtl-optimization/39453
25874         PR rtl-optimization/42246
25875         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
25876         for pipelining_p.
25877         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
25878
25879 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25880             Alexander Monakov  <amonakov@ispras.ru>
25881
25882         PR middle-end/42245
25883         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
25884         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
25885         argument.  Update all callers.
25886         (tidy_control_flow): ... and here.  Recompute topological order
25887         of basic blocks in region if necessary.
25888         (sel_redirect_edge_and_branch): Change return type.  Return true
25889         if topological order might have been invalidated.
25890         (purge_empty_blocks): Export and move from...
25891         * sel-sched.c (purge_empty_blocks): ... here.
25892         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
25893         (maybe_tidy_empty_bb): Delete prototype.
25894         (purge_empty_blocks): Declare.
25895
25896 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
25897
25898         PR rtl-optimization/42249
25899         * sel-sched.c (try_replace_dest_reg): When chosen register
25900         and original register is the same, do not bail out early, but
25901         still check all original insns for validity of replacing destination
25902         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
25903         in this case.
25904
25905 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
25906
25907         PR c/42721
25908         Port from no-undefined-overflow branch:
25909         2009-03-09  Richard Guenther  <rguenther@suse.de>
25910
25911         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
25912
25913 2010-01-14  Richard Guenther  <rguenther@suse.de>
25914
25915         PR lto/42665
25916         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
25917
25918 2010-01-14  Ira Rosen  <irar@il.ibm.com>
25919
25920         PR tree-optimization/42709
25921         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
25922         as scalar type in creation of constant vector operand.
25923
25924 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25925
25926         PR testsuite/42414
25927         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
25928         (check-parallel-%): Match `testsuite' directory component only
25929         at the end.
25930
25931 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
25932
25933         PR translation/39521
25934         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
25935         strings with _().
25936
25937 2010-01-13  Richard Guenther  <rguenther@suse.de>
25938
25939         PR tree-optimization/42730
25940         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
25941         offset zero.
25942
25943 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
25944
25945         PR target/pr42542
25946         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
25947         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
25948         them signed.
25949
25950 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
25951
25952         * config/bfin/libgcc-bfin.ver: Regenerate based on current
25953         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
25954         ___umulsi3_highpart.
25955
25956         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
25957         rather than schedule_insns if the pass is enabled.
25958
25959 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25960
25961         PR tree-optimization/42704
25962         * tree-sra.c (sra_modify_assign): Do not delete assignments to
25963         SSA_NAMEs.
25964
25965 2010-01-13  Martin Jambor  <mjambor@suse.cz>
25966
25967         PR tree-optimization/42703
25968         * tree-sra.c (analyze_access_subtree): Check that we can build a
25969         reference to the original data within the aggregate.
25970
25971 2010-01-13  Richard Guenther  <rguenther@suse.de>
25972
25973         PR tree-optimization/42705
25974         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
25975
25976 2010-01-13  Richard Guenther  <rguenther@suse.de>
25977
25978         PR middle-end/42716
25979         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
25980
25981 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
25982
25983         PR debug/41371
25984         * var-tracking.c (values_to_unmark): New variable.
25985         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
25986         values_to_unmark vector.  Moved body to...
25987         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
25988         instead queue it into values_to_unmark vector.
25989         (vt_find_locations): Free values_to_unmark vector.
25990
25991 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
25992
25993         * config/s390/s390.c (override_options): Set
25994         default of max-pending-list-length to 256
25995
25996 2010-01-13  Richard Guenther  <rguenther@suse.de>
25997
25998         PR lto/42678
25999         * tree-pass.h (PROP_gimple_lcx): New.
26000         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
26001         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
26002         before the final cleanup_eh.
26003         (dump_properties): Dump PROP_gimple_lcx.
26004         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
26005         (tree_lower_complex_O0): Remove.
26006         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
26007         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
26008         tree_lower_complex, schedule TODO_update_ssa.
26009         * lto-streamer-out.c (output_function): Stream the functions
26010         properties.
26011         * lto-streamer-in.c (input_function): Likewise.
26012         (lto_read_body): Do not override them here.
26013
26014 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
26015
26016         PR c/42708
26017         * c-typeck.c (build_c_cast): Fold value cast to union type before
26018         wrapping it in a CONSTRUCTOR.
26019
26020 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26021
26022         PR rtl-optimization/42699
26023         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
26024         involved.
26025
26026 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26027
26028         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26029         SUBTARGET_WARN_UNUSED_SPEC): Move ...
26030         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26031         SUBTARGET_WARN_UNUSED_SPEC): ... here
26032         * config/mips/iris5.h (LIBGCC_SPEC): Define.
26033
26034 2010-01-12  Julian Brown  <julian@codesourcery.com>
26035
26036         * config/arm/neon-schedgen.ml (Utils): Don't try to
26037         open missing module.
26038         (find_with_result): New.
26039
26040 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26041
26042         PR debug/42662
26043         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
26044         sharing when canonicalizing ({lt,ge}u (plus a b) b).
26045
26046         PR tree-optimization/42645
26047         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
26048         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
26049         decl_map, set processing_debug_stmt to -1 and return name without
26050         any remapping.
26051
26052 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
26053
26054         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
26055         binutils version, and reword target configuration description.
26056
26057 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26058
26059         * config/avr/avr.h (LINKER_NAME): Remove.
26060
26061 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
26062
26063         PR target/42416
26064         * config/rs6000/rs6000.c (rs6000_override_options): On targets
26065         that support VSX, warn for -mno-altivec if vsx is not disabled,
26066         and disable vsx.
26067
26068 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
26069             Shujing Zhao  <pearly.zhao@oracle.com>
26070
26071         PR translation/42469
26072         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
26073         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
26074         character between option name and help text.
26075         * c.opt (imultilib): Likewise.
26076
26077 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
26078
26079         * lto-streamer-out.c (output_unreferenced_globals): Output static
26080         variables.
26081
26082 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
26083
26084         PR rtl-optimization/42621
26085         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
26086         optimizing for size.
26087         (duplicate_computed_gotos): Remove now-redundant check.
26088
26089 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
26090
26091         PR target/37454
26092         * configure.ac: Save and restore LDFLAGS and LIBS
26093         * configure: Regenerate.
26094
26095 2010-01-10  Richard Guenther  <rguenther@suse.de>
26096
26097         PR middle-end/42667
26098         * builtins.c (fold_builtin_strlen): Add type argument and
26099         convert the resulting length to it.
26100         (fold_builtin_1): Adjust.
26101
26102 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26103
26104         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
26105         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26106         1 insn.
26107         (num_insns_constant_wide): Adjust for that change.
26108
26109 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26110
26111         PR debug/42631
26112         * web.c (union_defs): Add used argument, to combine uses of
26113         uninitialized regs.
26114         (entry_register): Adjust type and tests of used argument.
26115         (web_main): Widen used for new use.  Pass it to union_defs.
26116         * df.h (union_defs): Adjust prototype.
26117
26118 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26119
26120         PR debug/42630
26121         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
26122         uses in new incoming argument.  Free body.
26123         (reset_debug_uses_in_loop): New.
26124         (analyze_insn_to_expand_var): Call the latter if the former found
26125         anything.  Fix whitespace.  Reject invalid dest overlaps before
26126         going through all insns in the loop.
26127
26128 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26129
26130         PR debug/42629
26131         * haifa-sched.c (dying_use_p): Debug insns don't count.
26132
26133 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26134
26135         PR middle-end/42363
26136         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
26137         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
26138         (verify_gimple_call): Reject LHS in noreturn calls.
26139
26140 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26141
26142         PR debug/42604
26143         PR debug/42395
26144         * tree-vect-loop-manip.c (adjust_info): New type.
26145         (adjust_vec): New pointer to vector.
26146         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
26147         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
26148         (slpeel_update_phis_for_duplicate_loop): Use them.
26149         (slpeel_update_phi_nodes_for_guard1): Likewise.
26150         (slpeel_update_phi_nodes_for_guard2): Likewise.
26151         (slpeel_tree_peel_loop_to_edge): Likewise.
26152         (vect_update_ivs_after_vectorizer): Likewise.
26153
26154 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26155
26156         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
26157         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
26158
26159 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26160
26161         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
26162         bogus uninitialized warning.
26163
26164 2010-01-09  Richard Guenther  <rguenther@suse.de>
26165
26166         PR middle-end/42512
26167         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
26168         the evolution is compatible with the initial condition.
26169
26170 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26171
26172         * gcc.c (process_command): Update copyright notice dates.
26173         * gcov.c (print_version): Likewise.
26174         * gcov-dump.c (print_version): Likewise.
26175         * mips-tfile.c (main): Likewise.
26176         * mips-tdump.c (main): Likewise.
26177
26178 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26179
26180         PR target/41885
26181         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
26182         (rotlhi3): Delete.
26183         (rotlhi3_8): Delete.
26184         (rotlsi3): Delete.
26185         (rotlsi3_8): Delete.
26186         (rotlsi3_16): Delete.
26187         (rotlsi3_24): Delete.
26188         (rotl<mode>3): New.
26189         (*rotw<mode>3): New.
26190         (*rotb<mode>3): New.
26191         * config/avr/avr.c (avr_rotate_bytes): New function.
26192         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
26193
26194 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
26195
26196         PR target/37454
26197         * configure.ac: Modify -rdynamic check.
26198         * configure: Regenerate.
26199
26200 2010-01-08  DJ Delorie  <dj@redhat.com>
26201
26202         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
26203         register popping order.
26204
26205 2010-01-08  Richard Guenther  <rguenther@suse.de>
26206
26207         PR lto/42528
26208         * c.opt (fsigned-char): Also let LTO handle this option.
26209         (funsigned-char): Likewise.
26210
26211 2010-01-07  Richard Guenther  <rguenther@suse.de>
26212
26213         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
26214         (gimple_op): Likewise.
26215         (gimple_op_ptr): Likewise.
26216         (gimple_assign_set_lhs): Remove gcc_assert.
26217         (gimple_assign_set_rhs1): Likewise.
26218         (gimple_assign_set_rhs2): Likewise.
26219         (gimple_call_set_lhs): Likewise.
26220         (gimple_call_set_fn): Likewise.
26221         (gimple_call_set_fndecl): Likewise.
26222         (gimple_call_fndecl): Likewise.
26223         (gimple_call_return_type): Likewise.
26224         (gimple_call_set_chain): Likewise.
26225         (gimple_call_num_args): Likewise.
26226         (gimple_call_set_arg): Likewise.
26227         (gimple_cond_set_code): Likewise.
26228         (gimple_cond_set_lhs): Likewise.
26229         (gimple_cond_set_rhs): Likewise.
26230         (gimple_cond_set_true_label): Likewise.
26231         (gimple_cond_set_false_label): Likewise.
26232         (gimple_label_set_label): Likewise.
26233         (gimple_goto_set_dest): Likewise.
26234         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
26235         (gimple_debug_bind_get_value): Likewise.
26236         (gimple_debug_bind_get_value_ptr): Likewise.
26237         (gimple_debug_bind_set_var): Likewise.
26238         (gimple_debug_bind_set_value): Likewise.
26239         (gimple_debug_bind_reset_value): Likewise.
26240         (gimple_debug_bind_has_value_p): Likewise.
26241         (gimple_return_retval_ptr): Remove gcc_assert.
26242         (gimple_return_retval): Likewise.
26243         (gimple_return_set_retval): Likewise.
26244         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
26245         (safe_referenced_var_iterator): Remove.
26246         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
26247         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
26248         (fill_referenced_var_vec): Remove.
26249         (first_readonly_imm_use): Remove redundant gcc_assert.
26250         (phi_arg_index_from_use): Combine gcc_asserts.
26251         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
26252         (first_imm_use_stmt): Remove redundant gcc_assert.
26253         * tree-cfg.c (verify_gimple_call): Verify function and chain
26254         operands.  Verify arguments.
26255         (verify_types_in_gimple_stmt): Verify condition code and labels.
26256
26257 2010-01-07  Richard Guenther  <rguenther@suse.de>
26258
26259         PR tree-optimization/42641
26260         * sese.c (rename_map_elt_info): Use the SSA name version, do
26261         not hash pointers.
26262
26263 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
26264
26265         PR tree-optimization/42625
26266         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
26267         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
26268
26269 2010-01-07  Duncan Sands  <baldrick@free.fr>
26270
26271         * Makefile.in (PLUGIN_HEADERS): Add version.h.
26272
26273 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
26274
26275         PR target/42511
26276         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
26277         note itself is not function_invariant_p.
26278
26279 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
26280
26281         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
26282         Do not add the DF_NOTE problem.
26283         * store-motion.c (execute_rtl_store_motion): Likewise.
26284
26285 2010-01-07  Martin Jambor  <mjambor@suse.cz>
26286
26287         PR tree-optimization/42157
26288         * tree-sra.c (compare_access_positions): Stabilize sort if both
26289         accesses have integer types, return zero immediately if they are the
26290         same.
26291
26292 2010-01-06  Richard Henderson  <rth@redhat.com>
26293
26294         PR middle-end/41883
26295         * haifa-sched.c (add_to_note_list): Merge into ...
26296         (concat_note_lists): ... here, and ...
26297         (unlink_other_notes, rm_other_notes): Merge into...
26298         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
26299         NOTE_INSN_EPILOGUE_BEG.
26300
26301 2010-01-06  Richard Guenther  <rguenther@suse.de>
26302
26303         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
26304         not inline regular functions into always-inline functions.
26305
26306 2010-01-06  Nick Clifton  <nickc@redhat.com>
26307
26308         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
26309         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
26310         used together.
26311         (OVERRIDE_OPTIONS): Delete.
26312         (OPTIMIZATION_OPTIONS): Define.
26313         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
26314         * config/rx/rx.c (rx_handle_option): Issue an error message if
26315         -mcpu=rx200 and -fpu are used together.
26316         (rx_set_optimization_options): New function.  Issue an error
26317         message if an optimization attribute attempts to reset the FPU/
26318         math optimization pairing.
26319         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
26320         * config/rx/rx.opt: Set the default to 32-bit doubles.
26321         * config/rx/t-rx: Add multilibs for -nofpu option.
26322         * doc/invoke.texi: Update documentation of RX options.
26323
26324 2010-01-06  Richard Guenther  <rguenther@suse.de>
26325
26326         * tree-ssa-pre.c (name_to_id): New global.
26327         (alloc_expression_id): Simplify SSA name handling.
26328         (lookup_expression_id): Likewise.
26329         (init_pre): Zero name_to_id.
26330         (fini_pre): Free it.
26331
26332 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
26333
26334         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
26335
26336 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
26337
26338         PR target/42542
26339         * config/i386/sse.md (smaxv2di3): New.
26340         (umaxv2di3): Likewise.
26341         (sminv2di3): Likewise.
26342         (uminv2di3): Likewise.
26343
26344 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
26345
26346         PR target/42564
26347         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
26348         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
26349         (legitimize_tls_address): Likewise.
26350         (sparc_tls_referenced_p): Likewise.
26351         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
26352         and adjust calls to legitimize_pic_address.
26353         (legitimate_constant_p) Use sparc_tls_referenced_p.
26354         (legitimate_pic_operand_p): Likewise.
26355         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
26356         (sparc_tls_symbol_ref_1): Delete.
26357         (sparc_tls_referenced_p): Make static, recognize specific patterns.
26358         (legitimize_tls_address): Make static, handle CONST patterns.
26359         (legitimize_pic_address): Make static, remove unused parameter and
26360         adjust recursive calls.
26361         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
26362         and adjust call to legitimize_pic_address.
26363         (sparc_output_mi_thunk): Likewise.
26364
26365 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
26366             H.J. Lu  <hongjiu.lu@intel.com>
26367
26368         PR target/42542
26369         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
26370         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
26371         operands to make them signed.
26372
26373         Revert:
26374         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26375
26376         PR target/42542
26377         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26378         GTU to GT for V4SI and V2DI.
26379
26380         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26381         (umin<mode>3): Removed.
26382         (uminv8hi3): New.
26383         (uminv4si3): Likewise.
26384
26385 2010-01-05  Martin Jambor  <mjambor@suse.cz>
26386
26387         PR tree-optimization/42462
26388         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
26389         current_function_decl to helper functions and macros.
26390
26391 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26392
26393         PR bootstrap/41771
26394         * flags.h: Don't include real.h.
26395         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
26396         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
26397         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
26398         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
26399         * dominance.c: Update copyright.
26400         * gimple.c (walk_gimple_op): Remove inline.
26401         * tree-ssa-reassoc.c: Include real.h.
26402         * Makefile.in (FLAGS_H): Remove $(REAL_H).
26403         (tree-ssa-reassoc.o): Depend on $(REAL_H).
26404
26405 2010-01-05  Nick Clifton  <nickc@redhat.com>
26406
26407         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
26408         register to push into the stack frame when the accumulator has to
26409         be saved during interrupts.
26410
26411 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
26412
26413         * doc/invoke.texi: Remove the documentation about option
26414         -Wunreachable-code.
26415         * common.opt (Wunreachable-code):  Preserved for backward
26416         compatibility.
26417         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
26418         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
26419         the backward compatibility flag section.
26420
26421 2010-01-05  Richard Guenther  <rguenther@suse.de>
26422
26423         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
26424
26425 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
26426
26427         PR other/42611
26428         * cfgexpand.c (expand_one_var): Diagnose too large variables.
26429
26430         PR tree-optimization/42508
26431         * tree-sra.c (convert_callers): Check for recursive call
26432         by comparing cgraph nodes instead of decls.
26433         (modify_function): Call ipa_modify_formal_parameters also
26434         on all same_body aliases.
26435
26436         * cgraphunit.c (cgraph_materialize_all_clones): Compare
26437         cgraph nodes when checking for same_body aliases.
26438
26439 2010-01-05  Richard Guenther  <rguenther@suse.de>
26440
26441         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
26442         allocation and lookup.
26443         (get_or_alloc_expr_for_constant): Likewise.
26444         (phi_translate): Sink allocation.
26445
26446 2010-01-04  Richard Guenther  <rguenther@suse.de>
26447
26448         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
26449         a new entry only if needed.
26450         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
26451         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
26452         hashtable lookup.
26453         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
26454         the result array.
26455         (phi_translate): Handle CONSTANTs early.
26456
26457 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26458
26459         PR tree-optimization/42398
26460         * tree-sra.c (struct access): Removed flag grp_different_types.
26461         (dump_access): Do not dump the removed flag.
26462         (sort_and_splice_var_accesses): Do not set the removed flag.
26463         (sra_modify_expr): Check for type compatibility directly.
26464
26465 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26466
26467         PR tree-optimization/42366
26468         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
26469         edges with variable number of parameters.
26470         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
26471         flag instead of asserting it.
26472         (ipa_read_node_info): Read uses_analysis_done flag.
26473
26474 2010-01-04  Richard Guenther  <rguenther@suse.de>
26475
26476         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
26477         iterative_hash_* as intended.
26478         (vn_reference_compute_hash): Likewise.  Simplify hashing
26479         SSA names.
26480         (vn_reference_lookup_2): Likewise.
26481         (vn_nary_op_compute_hash): Likewise.
26482         (vn_phi_compute_hash): Likewise.
26483         (expressions_equal_p): Remove strange code.
26484         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
26485         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
26486         (bitmap_insert_into_set_1): Take value-id as parameter.
26487         (add_to_value): Pass it.
26488         (bitmap_insert_into_set): Likewise.
26489         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
26490
26491 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
26492
26493         PR driver/42442
26494         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
26495         (do_self_spec): For switches with SWITCH_IGNORE set set also
26496         SWITCH_IGNORE_PERMANENTLY.
26497         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
26498         of SWITCH_IGNORE.
26499
26500 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
26501
26502         * lto-streamer-out.c (output_unreferenced_globals): Output the full
26503         tree of an unreferenced global var.
26504
26505 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26506
26507         PR target/42542
26508         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26509         GTU to GT for V4SI and V2DI.
26510
26511         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26512         (umin<mode>3): Removed.
26513         (uminv8hi3): New.
26514         (uminv4si3): Likewise.
26515
26516 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26517
26518         PR lto/42581
26519         * collect2.c (main): Turn on trace in collect2 if -v is passed
26520         to gcc with LTO.
26521
26522 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
26523
26524         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
26525         description of expression operand.
26526
26527 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
26528
26529         * configure.ac: Add install-html to target_list for Make-hooks.
26530         * configure: Regenerate.
26531         * fortran/Make-lang.in (F95_HTMLFILES): New.
26532         (fortran.html): Use it.
26533         (fortran.install-html): New.
26534         * Makefile.in (install-html): Add lang.install-html.
26535         * java/Make-lang.in (JAVA_HTMLFILES): New.
26536         (java.html): Use it.
26537         (java.install-html): New.
26538         * objc/Make-lang.in (objc.install-html): New.
26539         * objcp/Make-lang.in (obj-c++.install-html): New.
26540         * cp/Make-lang.in (c++.install-html): New.
26541         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
26542         * lto/Make-lang.in (lto.install-html): New.
26543
26544 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
26545
26546         PR lto/42520
26547         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
26548
26549 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
26550
26551         PR rtl-optimization/41862
26552         * store-motion.c (store_killed_in_insn, compute_store_table,
26553         remove_reachable_equiv_notes, replace_store_insn,
26554         build_store_vectors): Ignore all DEBUG_INSNs.
26555
26556 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
26557
26558         PR lto/41564
26559         * common.opt: Add dumpdir.
26560
26561         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
26562         isn't specified.
26563         (option_map): Add --dumpdir.
26564
26565         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
26566
26567         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
26568
26569         * opts.c (decode_options): Try dump_dir_name first if
26570         dump_base_name isn't an absolute path.
26571         (common_handle_option): Handle OPT_dumpdir.
26572
26573         * toplev.c (dump_dir_name): New.
26574         (print_switch_values): Also ignore -dumpdir.
26575
26576         * toplev.h (dump_dir_name): New.
26577
26578 2010-01-03  Richard Guenther  <rguenther@suse.de>
26579
26580         PR tree-optimization/42589
26581         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
26582         double-word expansion of bswap32.
26583
26584 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
26585
26586         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
26587         with BLOCK_FOR_INSN.
26588         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
26589         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
26590         noce_process_if_block): Likewise.
26591         * gcse.c (compute_local_properties, insert_expr_in_table,
26592         insert_set_in_table, canon_list_insert, find_avail_set,
26593         pre_insert_copy_insn): Likewise.
26594
26595         * basic-block.h (BLOCK_NUM): Move from here...
26596         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
26597
26598 2010-01-03  Richard Guenther  <rguenther@suse.de>
26599
26600         PR tree-optimization/42438
26601         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
26602         contains_may_not_return_call flag.
26603         (BB_MAY_NOTRETURN): New.
26604         (valid_in_sets): Trapping nary operations are not valid
26605         in blocks that may not return.
26606         (insert_into_preds_of_block): Remove check for trapping expressions.
26607         (compute_avail): Compute also BB_MAY_NOTRETURN.
26608
26609 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
26610
26611         * doc/invoke.texi: Add 2010 to copyright years.
26612
26613 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
26614
26615         * config/sparc/sparc.c: Fix formatting nits.
26616
26617 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
26618             Alexander Monakov  <amonakov@ispras.ru>
26619
26620         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
26621
26622 2010-01-02  Richard Guenther  <rguenther@suse.de>
26623
26624         PR middle-end/42577
26625         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
26626         (simplify_switch_using_ranges): Mark to be removed edges
26627         as non-executable.
26628
26629 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26630
26631         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
26632
26633         * collect2.c (scan_libraries): Add missing argument in call to
26634         scan_prog_file.
26635
26636 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
26637
26638         PR target/42448
26639         * config/alpha/predicates.md (aligned_memory_operand): Return false
26640         for CQImode.
26641         (unaligned_memory_operand): Return true for CQImode.
26642         * config/alpha/alpha.c (get_aligned_mem): Assert that location
26643         doesn not cross aligned SImode word boundary.
26644
26645 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
26646
26647         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
26648         Remove.
26649         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
26650         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
26651
26652 2010-01-02  Richard Guenther  <rguenther@suse.de>
26653
26654         PR lto/41597
26655         * toplev.c (compile_file): Emit LTO marker properly.  Change
26656         it to __gnu_lto_v1.
26657         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
26658
26659 2010-01-01  Richard Guenther  <rguenther@suse.de>
26660
26661         PR debug/42455
26662         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
26663
26664 2010-01-01  Richard Guenther  <rguenther@suse.de>
26665
26666         PR c/42570
26667         * c-decl.c (grokdeclarator): For zero-size arrays force
26668         structural equality checks as layout_type does.
26669
26670 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
26671
26672         * builtins.c: Update copyright to 2010.
26673
26674 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
26675
26676         PR lto/42531
26677         * lto-streamer-out.c (produce_asm): Revert the last change.
26678         (copy_function): Likewise.
26679
26680         * lto-streamer.c (lto_get_section_name): Skip any leading
26681         asterisk in name.
26682
26683 2010-01-01  Richard Guenther  <rguenther@suse.de>
26684
26685         PR middle-end/42559
26686         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
26687         for LABEL_DECLs.
26688
26689 \f
26690 Copyright (C) 2010 Free Software Foundation, Inc.
26691
26692 Copying and distribution of this file, with or without modification,
26693 are permitted in any medium without royalty provided the copyright
26694 notice and this notice are preserved.