OSDN Git Service

* config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
2
3         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
4         move cost.
5
6 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
7
8         * doc/extend.texi (Additional Floating Types): __float128 is also
9         supported on i386 targets.
10
11 2009-06-29  Richard Guenther  <rguenther@suse.de>
12
13         PR middle-end/14187
14         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
15         flag.
16         (pt_solutions_same_restrict_base): Declare.
17         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
18         flag.
19         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
20         (make_constraint_from, make_copy_constraint): Move earlier.
21         (make_constraint_from_heapvar): New function.
22         (make_constraint_from_restrict): Likewise.
23         (handle_lhs_call): Use it.
24         (find_func_aliases): Use it to track conversions to restrict
25         qualified pointers.
26         (struct fieldoff): Add only_restrict_pointers flag.
27         (push_fields_onto_fieldstack): Initialize it.
28         (create_variable_info_for): Track global restrict qualified pointers.
29         (intra_create_variable_infos): Use make_constraint_from_heapvar.
30         Track restrict qualified pointer arguments.
31         (set_uids_in_ptset): Use varinfo is_global_var flag.
32         (find_what_var_points_to): Set the vars_contains_restrict flag.
33         Always create the points-to solution for sets including restrict tags.
34         (pt_solutions_same_restrict_base): New function.
35         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
36         qualified pointers use pt_solutions_same_restrict_base as
37         additional source for disambiguation.
38
39 2009-06-29  Richard Guenther  <rguenther@suse.de>
40
41         PR middle-end/38212
42         * alias.c (find_base_decl): Remove.
43         (get_deref_alias_set_1): Remove restrict handling.
44         * c-common.c (c_apply_type_quals_to_decl): Do not set
45         DECL_POINTER_ALIAS_SET.
46         * gimplify.c (find_single_pointer_decl_1): Remove.
47         (find_single_pointer_decl): Likewise.
48         (internal_get_tmp_var): Remove restrict handling.
49         (gimple_regimplify_operands): Likewise.
50         * omp-low.c (expand_omp_atomic_pipeline): Do not set
51         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
52         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
53         * tree.c (restrict_base_for_decl): Remove.
54         (init_ttree): Do not allocate it.
55         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
56         LABEL_DECL_UID for label decls.
57         (copy_node_stat): Do not copy restrict information.
58         (decl_restrict_base_lookup): Remove.
59         (decl_restrict_base_insert): Likewise.
60         (print_restrict_base_statistics): Likewise.
61         (dump_tree_statistics): Do not call print_restrict_base_statistics.
62         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
63         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
64         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
65         (LABEL_DECL_UID): Adjust.
66         (DECL_BASED_ON_RESTRICT_P): Remove.
67         (DECL_GET_RESTRICT_BASE): Likewise.
68         (SET_DECL_RESTRICT_BASE): Likewise.
69         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
70
71         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
72         instead of DECL_POINTER_ALIAS_SET.
73         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
74         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
75         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
76
77 2009-06-29  Richard Guenther  <rguenther@suse.de>
78
79         PR tree-optimization/40579
80         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
81         the IL to simplify has constants that overflowed.
82
83 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
84
85         PR tree-optimization/40550
86         * tree-vect-generic.c (expand_vector_operations_1): Compute in
87         vector_compute_type only when the size of vector_compute_type is
88         less than the size of type.
89
90 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
91
92         * fold-const.c (contains_label_1): Fix comments.
93         (contains_label_p): Do not walk trees multiple time.
94
95 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
96
97         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
98         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
99         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
100         ix86_fp_comparison_operator.
101         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
102         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
103         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
104         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
105         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
106         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
107         (related splits): Change predicate to ix86_fp_comparison_operator.
108         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
109         instead of ix86_fp_comparison_codes.
110         (ix86_trivial_fp_comparison_operator,
111         ix86_fp_comparison_operator): New.
112         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
113         (ix86_expand_compare): Eliminate last two parameters.
114         (ix86_fp_jump_nontrivial_p): Kill.
115         * config/i386/i386.c (put_condition_code): Eliminate call to
116         ix86_fp_comparison_codes and subsequent assertion.
117         (ix86_fp_comparison_codes): Eliminate.
118         (ix86_fp_swap_condition): New.
119         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
120         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
121         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
122         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
123         and ix86_fp_swap_condition.
124         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
125         Use ix86_fp_comparison_strategy.
126         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
127         (ix86_fp_jump_nontrivial_p): Eliminate.
128         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
129         call to ix86_expand_compare.
130         (ix86_split_fp_branch, ix86_expand_setcc,
131         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
132         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
133
134 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
135
136         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
137         related to jump_clobbers.
138         * config/arm/arm.md (conds): Remove jump_clob case.
139         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
140         splits): Change comparison_operator to arm_comparison_operator.
141         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
142         Eliminate.
143
144 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
145
146         * dojump.c (do_compare_rtx_and_jump): Try swapping the
147         condition for floating point modes.
148         * expmed.c (emit_store_flag_1): Move here a bigger part
149         of emit_store_flag.
150         (emit_store_flag): Try swapping the condition for floating point
151         modes.
152         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
153
154 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
155
156         * expr.c (expand_expr_real_1): Just use do_store_flag.
157         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
158         emit_store_flag_force.
159         * expmed.c (emit_store_flag_force): Copy here trick
160         previously in expand_expr_real_1.  Try reversing the comparison.
161         (emit_store_flag_1): Work if target is NULL.
162         (emit_store_flag): Work if target is NULL, using the result mode
163         from the comparison.  Use split_comparison, restructure final part
164         to simplify conditionals.
165
166 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
167
168         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
169         * dojump.c (do_jump): Change handling of floating-point
170         ops to use just do_compare_and_jump.
171         (split_comparison): New.
172         (do_compare_rtx_and_jump): Add here logic coming previously
173         in do_jump, using split_comparison.
174
175 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
176
177         PR target/40489
178         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
179
180 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
181
182         * tree-ssa-alias.c: Fix unintentional commit.
183
184 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
185
186         * passes.c (execute_one_pass): Fix unintentional commit.
187
188 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
189
190         * df-problems.c (df_set_seen, df_unset_seen): Delete.
191         (df_rd_local_compute, df_md_local_compute): Inline them.
192
193         (df_md_scratch): New.
194         (df_md_alloc, df_md_free): Allocate/free it.
195         (df_md_local_compute): Only include live registers in init.
196         (df_md_transfer_function): Prune the in-set computed by
197         the confluence function, and the gen-set too.
198
199 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
200
201         PR rtl-optimization/26854
202         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
203         * df-problems.c (df_rd_add_problem): Fix comment.
204         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
205         df_md_simulate_artificial_defs_at_top,
206         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
207         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
208         df_md_transfer_function, df_md_init, df_md_confluence_0,
209         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
210         problem_MD, df_md_add_problem): New.
211         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
212         df_md_get_bb_info): New.
213         (DF_LAST_PROBLEM_PLUS1): Adjust.
214
215         * Makefile.in (fwprop.o): Include domwalk.h.
216         * fwprop.c: Include domwalk.h.
217         (reg_defs, reg_defs_stack): New.
218         (bitmap_only_bit_between): Remove.
219         (process_defs): New.
220         (process_uses): Use reg_defs and local_md instead of
221         bitmap_only_bit_between and local_rd.
222         (single_def_use_enter_block): New, from build_single_def_use_links.
223         (single_def_use_leave_block): New.
224         (build_single_def_use_links): Remove code moved to
225         single_def_use_enter_block, invoke domwalk.
226         (use_killed_between): Adjust comment.
227
228 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
229
230         * bitmap.h (bitmap_ior_and_into): New.
231         * bitmap.c (bitmap_ior_and_into): New.
232
233 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
234
235         * domwalk.h (struct dom_walk_data): Remove all callbacks except
236         before_dom_children_before_stmts and after_dom_children_after_stmts.
237         Rename the two remaining callbacks to just before_dom_children and 
238         after_dom_children. Remove other GIMPLE statement walking bits.
239         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
240         * graphite.c: Do not include domwalk.h.
241         * tree-into-ssa.c (interesting_blocks): New global.
242         (struct mark_def_sites_global_data): Remove it and names_to_rename.
243         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
244         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
245         now that they're not domwalk callbacks.
246         (rewrite_initialize_block): Rename to...
247         (rewrite_enter_block): ... this, place after called functions.  Test
248         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
249         (rewrite_finalize_block): Rename to...
250         (rewrite_leave_block): ... this, place after called functions.
251         (rewrite_update_init_block): Rename to...
252         (rewrite_update_enter_block): ... this, place after called functions.
253         Test interesting_blocks, call rewrite_update_stmt and 
254         rewrite_update_phi_arguments.
255         (rewrite_update_fini_block): Rename to...
256         (rewrite_leave_block): ... this, place after called functions.
257         (rewrite_blocks): Remove last argument, simplify initialization of
258         walk_data.
259         (mark_def_sites_initialize_block): Rename to...
260         (mark_def_sites_block): ... this, call mark_def_sites.
261         (mark_def_sites_blocks): Remove argument, simplify initialization of
262         walk_data.
263         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
264         (update_ssa): Likewise.
265         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
266         callback.
267         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
268         (dom_opt_initialize_block): Rename to...
269         (dom_opt_enter_block): ... this, place after called functions.  Walk
270         statements here, inline propagate_to_outgoing_edges.
271         (dom_opt_finalize_block): Rename to...
272         (dom_opt_leave_block): ... this, place after called functions.
273         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
274         domwalk callback.
275         (dse_enter_block, dse_record_phi): New.
276         (dse_record_phis): Delete.
277         (dse_finalize_block): Rename to...
278         (dse_leave_block): ... this.
279         (tree_ssa_dse): Simplify initialization of walk_data.
280         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
281         Adjust initialization of walk_data.
282         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
283         * tree-ssa-loop-phiopt.c (get_non_trapping):
284         Adjust initialization of walk_data.
285         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
286         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
287         it's not a domwalk callback.
288         (uncprop_initialize_block): Rename to...
289         (dse_enter_block): ... this, call uncprop_into_successor_phis.
290         (dse_finalize_block): Rename to...
291         (dse_leave_block): ... this.
292         (tree_ssa_uncprop): Simplify initialization of walk_data.
293         * Makefile.in: Adjust dependencies.
294
295 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
296
297         * arm.md (casesi): Fix test for Thumb1.
298         (thumb1_casesi_internal_pic): Likewise.
299         (thumb1_casesi_dispatch): Likewise.
300
301 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
302
303         * config/arm/arm-cores.def: Added core cortex-m0.
304         * config/arm/arm-tune.md: Regenerated.
305         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
306
307 2009-06-26  DJ Delorie  <dj@redhat.com>
308
309         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
310
311         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
312         the scheduler doesn't tag jump insns.
313
314 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
315
316         * c-decl.c (merge_decls): Re-indent.
317
318 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
319
320         PR c/39902
321         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
322         Special-case decimal float constants.
323
324 2009-06-26  Richard Henderson  <rth@redhat.com>
325
326         * function.h (struct function): Add cannot_be_copied_reason,
327         and cannot_be_copied_set.
328         * tree-inline.c (has_label_address_in_static_1): Rename from
329         inline_forbidden_p_2; don't set inline_forbidden_reason here.
330         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
331         don't set inline_forbidden_reason.
332         (copy_forbidden): New function, split out of inline_forbidden_p.
333         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
334         (inline_forbidden_p): Use copy_forbidden.
335         (tree_versionable_function_p): Likewise.
336         (inlinable_function_p): Merge into tree_inlinable_function_p.
337         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
338         * ipa-cp.c (ipcp_versionable_function_p): New function.
339         (ipcp_cloning_candidate_p): Use it.
340         (ipcp_node_modifiable_p): Likewise.
341
342 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
343
344         * builtins.c (expand_builtin_alloca): Handle builtin alloca
345         that is marked not to be inlined. Remove flag_mudflap use.
346         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
347         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
348
349 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
350
351         PR bootstrap/40338
352         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
353         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
354
355 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
356
357         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
358         shared libgcc.
359         (__mingwthr_remove_key_dtor): Likewise.
360
361 2009-06-26  Richard Guenther  <rguenther@suse.de>
362
363         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
364
365 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
366
367         PR middle-end/40525
368         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
369         try the non-cond_exec path also.
370
371 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
372
373         PR target/40468
374         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
375         (output_cbranch): Use new functions.
376         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
377         Likewise.
378
379 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
380             Pat Haugen  <pthaugen@us.ibm.com>
381             Revital Eres <ERES@il.ibm.com>
382
383         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
384         Change some of the functions called by macros to being called
385         through a pointer, so debug functions can be inserted if
386         -mdebug=addr or -mdebug=cost. 
387         (rs6000_preferred_reload_class_ptr): Ditto.
388         (rs6000_secondary_reload_class_ptr): Ditto.
389         (rs6000_secondary_memory_needed_ptr): Ditto.
390         (rs6000_cannot_change_mode_class_ptr): Ditto.
391         (rs6000_secondary_reload_inner): Ditto.
392         (rs6000_legitimize_reload_address): Ditto.
393         (rs6000_legitimize_reload_address_ptr): Ditto.
394         (rs6000_mode_dependent_address): Ditto.
395         (rs6000_mode_dependent_address_ptr): Ditto.
396
397         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
398         function to return true if the mode allows reg + integer
399         addresses.
400         (virtual_stack_registers_memory_p): New function to return true if
401         the address refers to a virtual stack register.
402         (rs6000_legitimate_offset_address_p): Move code to say whether a
403         mode supports reg+int addressing to reg_offset_addressing_ok_p and
404         call it.
405         (rs6000_legitimate_address_p): Add checks for modes that only can
406         do reg+reg addressing.  Start adding VSX support.
407         (rs6000_legitimize_reload_address): Ditto.
408         (rs6000_legitimize_address): Ditto.
409         (rs6000_debug_legitimate_address_p): New debug functions for
410         -mdebug=addr and -mdebug=cost.
411         (rs6000_debug_rtx_costs): Ditto.
412         (rs6000_debug_address_costs): Ditto.
413         (rs6000_debug_adjust_cost): Ditto.
414         (rs6000_debug_legitimize_address): Ditto.
415         (rs6000_legitimize_reload_address_ptr): Point to call normal
416         function or debug function.  Make functions called via pointer
417         static.
418         (rs6000_mode_dependent_address_ptr): Ditto.
419         (rs6000_secondary_reload_class_ptr): Ditto.
420         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
421         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
422         into a friendlier error.
423         (rs6000_init_builtins): Add initial VSX support.
424         (rs6000_adjust_cost): Fix some spacing issues.
425
426         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
427         (REG_CLASS_NAMES): Ditto.
428         (REG_CLASS_CONTENTS): Ditto.
429         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
430         pointer, to add -mdebug=addr support.
431         (CANNOT_CHANGE_MODE_CLASS): Ditto.
432         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
433         -mdebug=addr support.
434         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
435         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
436         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
437
438         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
439         16-bit values.
440         (bswapsi*): Set attribute types for load/store.  Add combiner
441         patterns to eliminate zero extend on 64-bit.
442         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
443         stdbrx if the hardware supports those instructions.
444
445 2009-06-25  Ian Lance Taylor  <iant@google.com>
446
447         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
448         (Link Options): Document -static-libstdc++.
449
450 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
451
452         PR target/38731
453         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
454         DATA_ALIGNMENT instead.
455
456 2009-06-25  Richard Guenther  <rguenther@suse.de>
457
458         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
459         indirect references against the callused/escaped solutions.
460         (call_may_clobber_ref_p_1): Likewise.
461
462 2009-06-25  Martin Jambor  <mjambor@suse.cz>
463
464         PR tree-optimization/40493
465         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
466         (enum unscalarized_data_handling): New type.
467         (handle_unscalarized_data_in_subtree): Return what has been done.
468         (load_assign_lhs_subreplacements): Handle left flushes differently.
469         (sra_modify_assign): Use unscalarized_data_handling, simplified
470         condition determining whether to remove the statement.
471
472 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
473
474         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
475         excerpt - @ should be doubled for texinfo.
476
477 2009-06-24  Ian Lance Taylor  <iant@google.com>
478
479         * config/arc/arc.c: Include "df.h".
480         (arc_attribute_table): Make static.  Move higher in file.
481         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
482         (output_shift): Initialize n later to avoid warning.
483         * config/arm/arm.c (arm_attribute_table): Make static.  Move
484         higher in file.
485         * config/avr/avr.c (avr_attribute_table): Make static.  Move
486         higher in file.
487         (reg_class_tab): Change array type from int to enum reg_class.
488         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
489         LABEL_REF.
490         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
491         (lshrhi3_out): Likewise.
492         (class_likely_spilled_p): Change return type to bool.
493         (avr_rtx_costs): Use local code variable with enum type.
494         * config/avr/avr.md (movmemhi): Use add_reg_note.
495         (andhi3, andsi3): Don't use AS2 with "and".
496         (iorhi3, iorsi3): Don't use AS2 with "or".
497         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
498         * config/crx/crx.c: Include "df.h".
499         (crx_attribute_table): Make static.
500         * config/m32r/m32r.c: Include "df.h".
501         (m32r_attribute_table): Make static.  Move higher in file.
502         (pop): Use add_reg_note.
503         (block_move_call): Change 0 to LCT_NORMAL in function call.
504         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
505         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
506         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
507         declare, not just when TREE_CODE is defined.
508         * config/m68hc11/m68hc11.c: Include "expr.h".
509         (m68hc11_attribute_table): Make static.  Move higher in file.
510         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
511         function call.
512         (m68hc11_register_indirect_p): Likewise.
513         (m68hc11_function_arg_padding): Change return type to enum
514         direction.
515         (emit_move_after_reload): Use add_reg_note.
516         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
517         (m68hc11_split_logical): Likewise.
518         (m68hc11_rtx_costs): Add local code_and outer_code variables with
519         enum type.
520         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
521         to VOIDmode in function call.
522         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
523         tree is defined.
524         (m68hc11_split_logical): Update declaration.
525         (m68hc11_function_arg_padding): Update declaration.
526         * config/mcore/mcore.c (regno_reg_class): Change form array of int
527         to array of enum reg_class.
528         (mcore_attribute_table): Make static.  Move higher in file.
529         (mcore_rtx_costs): Add cast to enum type.
530         * config/mcore/mcore.h (regno_reg_class): Update declaration.
531         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
532         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
533         in file.
534         * config/sh/predicates.md (trapping_target_operand): Rename and to
535         and_expr.
536         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
537         higher in file.
538         * config/spu/spu.c (spu_attribute_table): Make static.  Move
539         higher in file.
540         * config/v850/v850.c (v850_attribute_table): Make static.  Move
541         higher in file.
542         (v850_rtx_costs): Use local code with enum type.
543         (expand_epilogue): Add cast.
544         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
545
546 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
547
548         PR target/40515
549         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
550         -m2a-single-only and -m2a-nofpu.
551         * config/sh/sh.opt: Document m2a generates FPU code.  
552
553 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
554
555         * defaults.h (CAN_ELIMINATE): Provide default.
556         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
557         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
558         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
559         * config/spu/spu.h (CAN_ELIMINATE): Delete.
560         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
561         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
562         * config/cris/cris.h (CAN_ELIMINATE): Delete.
563         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
564         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
565         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
566
567 2009-06-24  DJ Delorie  <dj@redhat.com>
568
569         * mep-ext-cop.cpu: Fix copyright notice.
570         * mep-default: Fix copyright notice.
571         * mep-core: Fix copyright notice.
572         * mep: Fix copyright notice.
573         * mep-ivc2: Fix copyright notice.
574         * mep-c5: Fix copyright notice.
575
576 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
577
578         * doc/contrib.texi (Contributors): 
579
580 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
581         
582         PR middle-end/40501
583         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
584         src and dst operands if necessary.
585
586 2009-06-23  DJ Delorie  <dj@redhat.com>
587
588         Add MeP port.
589         * config.gcc: Add mep support.
590         * recog.c: Resurrect validate_replace_rtx_subexp().
591         * recog.h: Likewise.
592         * config/mep/: Add new port:
593         * config/mep/constraints.md: New file.
594         * config/mep/default.h: New file.
595         * config/mep/intrinsics.h: New file.
596         * config/mep/intrinsics.md: New file.
597         * config/mep/ivc2-template.h: New file.
598         * config/mep/mep-c5.cpu: New file.
599         * config/mep/mep-core.cpu: New file.
600         * config/mep/mep-default.cpu: New file.
601         * config/mep/mep-ext-cop.cpu: New file.
602         * config/mep/mep-intrin.h: New file.
603         * config/mep/mep-ivc2.cpu: New file.
604         * config/mep/mep-lib1.asm: New file.
605         * config/mep/mep-lib2.c: New file.
606         * config/mep/mep-pragma.c: New file.
607         * config/mep/mep-protos.h: New file.
608         * config/mep/mep-tramp.c: New file.
609         * config/mep/mep.c: New file.
610         * config/mep/mep.cpu: New file.
611         * config/mep/mep.h: New file.
612         * config/mep/mep.md: New file.
613         * config/mep/mep.opt: New file.
614         * config/mep/predicates.md: New file.
615         * config/mep/t-mep: New file.
616
617 2009-06-23  Ian Lance Taylor  <iant@google.com>
618
619         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
620         from loose_warn into c_loose_warn and from strict_warn into
621         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
622         --enable-build-with-cxx.  Set and substitute
623         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
624         * Makefile.in (CXXFLAGS): New variable.
625         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
626         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
627         the default is the same as $(STRICT_WARN).
628         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
629         (CXX): New variable.
630         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
631         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
632         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
633         (HOST_LIBS): New variable.
634         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
635         (ALL_CXXFLAGS): New variable.
636         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
637         * doc/install.texi (Configuration): Document
638         --enable-build-with-cxx, --with-stage1-ldflags,
639         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
640         * configure: Rebuild.
641
642 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
643
644         * config/arm/arm.c (arm_override_options): Fix braces and formatting
645         from previous commit.
646
647 2009-06-23  Ian Lance Taylor  <iant@google.com>
648
649         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
650
651 2009-06-23  Ian Lance Taylor  <iant@google.com>
652
653         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
654         with ATTRIBUTE_UNUSED.
655
656 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
657             Pat Haugen  <pthaugen@us.ibm.com>
658             Revital Eres  <eres@il.ibm.com>
659
660         * config.in (HAVE_AS_POPCNTD): Add default definition.
661         (HAVE_AS_LWSYNC): Ditto.
662
663         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
664         release number.
665         (gcc_cv_as_powerpc_cmpb): Ditto.
666         (gcc_cv_as_powerpc_dfp): Ditto.
667         (gcc_cv_as_powerpc_vsx): Ditto.
668         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
669         supporting the popcntd/lwsync instructions.
670         (gcc_cv_as_powerpc_lwsync): Ditto.
671         * configure: Regenerate.
672
673         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
674         -mcpu=native and -mcpu=power7.
675         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
676
677         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
678         a variable instead of a mask to reduce the number of mask bits.
679         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
680         (-mbit-word): Ditto.
681         (-mregnames): Ditto.
682         * config/rs6000/rs6000.opt (-mupdate): Ditto.
683         (-mfused-madd): Ditto.
684
685         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
686         2.06 instructions.
687         (-mvsx): New switch for VSX instructions.
688         (-misel): Move from a variable to a mask to allow it to be set by
689         -mcpu=.
690
691         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
692         function declaration to an array declaration.
693         (rs6000_hard_regno_nregs): New external array declaration.
694
695         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
696         files included by rs6000.md.
697
698         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
699         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
700
701         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
702         a target mask.
703         (rs6000_debug_reg): New -mdebug= variables.
704         (rs6000_debug_addr): Ditto.
705         (rs6000_debug_cost): Ditto.
706         (rs6000_pmode): New variable to hold Pmode.
707         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
708         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
709         calculated at compiler start.
710         (rs6000_hard_regno_nregs): Change function to an array which holds
711         HARD_REGNO_NREGS calculated at compiler start.
712         (rs6000_explicit_options): Delete isel field.
713         (rs6000_vector_unit): New array to hold which vector unit
714         supports arithmetic options for a given type.
715         (rs6000_vector_mem): New array to hold which vector unit supports
716         memory reference operations for a given type.
717         (rs6000_vector_align): New array to given the alignment of each
718         vector type.
719         (power7_cost): New basic costs for power7.
720         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
721         (rs6000_hard_regno_nregs_internal): New function, moved from
722         HARD_REGNO_NREGS, to calculate the number of registers each hard
723         register takes for each type.
724         (rs6000_debug_reg_print): New function for -mdebug=reg support.
725         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
726         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
727         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
728         unit information here so it is calculated once at compiler startup
729         time.
730         (rs6000_override_options): Make -misel a target mask.  Add more
731         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
732         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
733         -mdebug=cost.
734         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
735         (rs6000_handle_option): Move -misel from variable to target mask.
736         (rs6000_builtin_mask_for_load): Add VSX support.
737         (rs6000_conditional_register_usage): Ditto.
738         (USE_ALTIVEC_FOR_ARG_P): Ditto.
739         (function_arg_boundary): Ditto.
740         (rs6000_expand_builtin): Ditto.
741         (def_builtin): Make abort message a little friendlier.
742         (rs6000_emit_int_cmove): Add support for 64-bit isel.
743
744         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
745         assembler support the popcntd instruction instead of a vsx
746         instruction to enable power7 support.
747         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
748         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
749         option to the assembler if -mcpu=native.
750         (ASM_CPU_NATIVE_SPEC): Ditto.
751         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
752         ISA 2.06 features.
753         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
754         the lwsync instruction.
755         (enum processor_type): Add PROCESSOR_POWER7.
756         (rs6000_debug_reg): New -mdebug= options.
757         (rs6000_debug_addr): Ditto.
758         (rs6000_debug_cost): Ditto.
759         (rs6000_isel): Delete.
760         (enum rs6000_vector): New enum to say what vector unit we have.
761         (VECTOR_UNIT_*): New macros to say which vector unit has
762         arithmetic operations for a given type.
763         (VECTOR_MEM_*): New macros to say which vector unit has memory
764         operations for a given type.
765         (TARGET_LDBRX): Whether the machine supports the ldbrx
766         instruction.
767         (TARGET_ISEL): Delete, -misel moved to be a mask.
768         (TARGET_ISEL64): New macro for 64-bit isel support.
769         (UNITS_PER_VSX_WORD): New macro.
770         (POINTER_SIZE): Move to be an external variable, rather than
771         calculating whether we are generating 32 ot 64-bit code.
772         (Pmode): Ditto.
773         (STACK_BOUNDARY): Add VSX support.
774         (LOCAL_ALIGNMENT): Ditto.
775         (SLOW_UNALIGNED_ACCESS): Ditto.
776         (VSX_REGNO_P): New macro for VSX support.
777         (VFLOAT_REGNO_P): Ditto.
778         (VINT_REGNO_P): Ditto.
779         (VLOGICAL_REGNO_P): Ditto.
780         (VSX_VECTOR_MODE): Ditto.
781         (VSX_SCALAR_MODE): Ditto.
782         (VSX_MODE): Ditto.
783         (VSX_MOVE_MODE): Ditto.
784         (VSX_REG_CLASS_P): Ditto.
785         (HARD_REGNO_NREGS): Instead of calling a function, use an array
786         lookup.
787         (UNITS_PER_SIMD_WORD): Add VSX support.
788         (MODES_TIEABLE_P): Ditto.
789         (STARTING_FRAME_OFFSET): Ditto.
790         (STACK_DYNAMIC_OFFSET): Ditto.
791         (EPILOGUE_USES): Ditto.
792         (REGNO_REG_CLASS): Move to array lookup.
793         (CLASS_MAX_NREGS): Ditto.
794         (rs6000_vector_reg_class): Add declaration.
795         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
796         overlap with the floating point and Altivec registers.
797
798         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
799
800         * config/rs6000/driver-rs6000.c (asm_names): New static array to
801         give the appropriate asm switches if -mcpu=native.
802         (host_detect_local_cpu): Add support for "asm".
803         (host_detect_local_cpu): Follow GNU code guidelines for name.
804
805         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
806         -mbit-word to a variable instead of being a target mask.
807
808         * config/rs6000/sync.md (lwsync): If the assembler supports it,
809         emit the lwsync instruction instead of emitting the instruction as
810         an integer constant.
811
812         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
813         fixuns_trundfsi2, move expander into rs6000.md.
814
815         * config/rs6000/rs6000.md (cpu): Add power7.
816         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
817         (logical predicate patterns): Change the single instruction
818         primitives that set CR0 to be fast_compare instead of compare.
819         (norsi*): Ditto.
820         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
821         (popcntddi2): Ditto.
822         (popcount<mode>): Ditto.
823         (floating multiply/add insns): Name the floating point
824         multiply/add insns.
825         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
826         (isel_unsigned_<mode>): Ditto.
827         (fixuns_trundfsi2): Move expander here from spe.md.
828         (smindi3): Define if we have -misel on 64-bit systems.
829         (smaxdi3): Ditto.
830         (umindi3): Ditto.
831         (umaxdi3): Ditto.
832
833 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
834
835         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
836         extra_objs.
837         * config/avr/avr.c (avr_current_device): New variable.
838         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
839         (avr_arch, mcu_type_s): Move to avr.h.
840         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
841         default_data_section_start fields.
842         (avr_arch): Moved from avr.c.
843         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
844         library_name fields.
845         (avr_current_device, avr_mcu_types, avr_arch_types,
846         avr_device_to_arch, avr_device_to_data_start,
847         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
848         (EXTRA_SPEC_FUNCTIONS): Define.
849         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
850         options mapping. Use device_to_arch and device_to_data_start insted.
851         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
852         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
853         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
854         * config/avr/driver-avr.c: New file.
855         * config/avr/avr-devices.c: New file.
856
857 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
858
859         * var-tracking.c (unshare_variable): Force initialized to
860         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
861         (set_variable_part): Likewise.
862         (struct variable_union_info): Remove pos_src field.
863         (vui_vec, vui_allocated): New variables.
864         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
865         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
866         == 1 use a simpler sorting algorithm.  Compute pos field right
867         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
868         Avoid quadratic comparison if !flag_var_tracking_uninit.
869         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
870         unshare_variable unconditionally.   
871         (dataflow_set_different_2): Removed.
872         (dataflow_set_different): Don't traverse second hash table.
873         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
874         unconditionally to var_reg_set or var_mem_set.
875         (emit_notes_in_bb): Likewise.
876         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
877         unshare_variable.
878         (emit_note_insn_var_location): Don't set initialized to
879         VAR_INIT_STATUS_INITIALIZED early.
880         (vt_finalize): Free vui_vec if needed, clear vui_vec and
881         vui_allocated.
882         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
883
884         * tree-object-size.c (addr_object_size): Instead of checking
885         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
886         are no FIELD_DECLs following it.
887
888 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
889
890         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
891         order to match bswaps with signed source operands.
892
893 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
894
895         * sdbout.c (sdbout_one_type): Fix braces in switch.
896
897 2009-06-23  Richard Guenther  <rguenther@suse.de>
898
899         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
900         member.
901         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
902         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
903         var_callused, callused_tree, var_storedanything, storedanything_tree,
904         var_integer, integer_tree): Remove global variables.
905         (new_var_info): Do not pass new id, append the new var to the
906         global variable vector.
907         (do_ds_constraint): Use is_global_var member of the variable-info.
908         (new_scalar_tmp_constraint_exp): Adjust.
909         (create_function_info_for): Likewise.
910         (create_variable_info_for): Likewise.
911         (find_what_var_points_to): Remove dead code.
912         (init_base_vars): Simplify.
913         (compute_points_to_sets): Adjust.
914
915 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
916
917         * combine.c (try_combine): Dump information about the insns we're
918         combining.
919
920 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
921
922         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
923         check when calling force_to_mode on TRUNCATE's operand.
924
925 2009-06-22  Ian Lance Taylor  <iant@google.com>
926
927         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
928
929 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
930
931         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
932
933 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
934
935         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
936         override library linkage flags such as -static-libgcc or
937         -shared-libgcc.
938
939 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
940
941         * config/m68k/m68k-devices.def: Add line for MCF5221x.
942
943 2009-06-22  Ian Lance Taylor  <iant@google.com>
944
945         * config/linux.opt: Put mglibc ahead of muclibc.
946
947         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
948         for duplicate decls.
949
950 2009-06-22  Matthias Klose  <doko@ubuntu.com>
951
952         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
953
954 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
955
956         PR objc/28050
957         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
958         instead of NULL if a parser error occurs.
959
960 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
961
962         * dwarf2out.c (dwarf2_debug_hooks): Initialize
963         non-DWARF2_DEBUGGING_INFO version.
964
965 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
966
967         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
968         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
969
970         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
971         (LIBGCC2_TF_CEXT): Define.
972         (TF_SIZE): Define.
973
974 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
975
976         PR target/40463
977         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
978
979 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
980
981         * config/arm/arm.c (arm_override_options): Disable
982         -mcaller-super-interworking and -mcallee-super-interworking.
983         * doc/invoke.texi (ARM Options): Document this.
984
985 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
986
987         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
988         * config/arm/constraints.md (j): New constraint for movw operands.
989         (N): Remove thumb2 meaning.
990         * config/arm/arm.md (*arm_movw): Delete.
991         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
992         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
993         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
994
995 2009-06-22  Martin Jambor  <mjambor@suse.cz>
996
997         PR tree-optimization/40492
998         * tree-sra.c (sra_modify_assign): Pass zero offsets to
999         build_ref_for_offset.
1000
1001 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
1002
1003         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
1004         JUMP_TABLE_DATA_P predicates where applicable.
1005         * auto-inc-dec.c: Ditto.
1006         * builtins.c: Ditto.
1007         * caller-save.c: Ditto.
1008         * calls.c: Ditto.
1009         * cfgcleanup.c: Ditto.
1010         * cfglayout.c: Ditto.
1011         * cfgrtl.c: Ditto.
1012         * combine.c: Ditto.
1013         * combine-stack-adj.c: Ditto.
1014         * cse.c: Ditto.
1015         * cselib.c: Ditto.
1016         * dbxout.c: Ditto.
1017         * df-scan.c: Ditto.
1018         * dse.c: Ditto.
1019         * dwarf2asm.c: Ditto.
1020         * dwarf2out.c: Ditto.
1021         * emit-rtl.c: Ditto.
1022         * except.c: Ditto.
1023         * explow.c: Ditto.
1024         * expmed.c: Ditto.
1025         * expr.c: Ditto.
1026         * final.c: Ditto.
1027         * function.c: Ditto.
1028         * fwprop.c: Ditto.
1029         * gcse.c: Ditto.
1030         * genpreds.c: Ditto.
1031         * genrecog.c: Ditto.
1032         * ifcvt.c: Ditto.
1033         * ira-costs.c: Ditto.
1034         * ira-lives.c: Ditto.
1035         * jump.c: Ditto.
1036         * loop-iv.c: Ditto.
1037         * lower-subreg.c: Ditto.
1038         * modulo-sched.c: Ditto.
1039         * optabs.c: Ditto.
1040         * postreload.c: Ditto.
1041         * print-rtl.c: Ditto.
1042         * recog.c: Ditto.
1043         * reginfo.c: Ditto.
1044         * regmove.c: Ditto.
1045         * reload1.c: Ditto.
1046         * reload.c: Ditto.
1047         * reorg.c: Ditto.
1048         * rtlanal.c: Ditto.
1049         * rtl.c: Ditto.
1050         * sched-vis.c: Ditto.
1051         * sdbout.c: Ditto.
1052         * sel-sched-ir.c: Ditto.
1053         * simplify-rtx.c: Ditto.
1054         * targhooks.c: Ditto.
1055         * var-tracking.c: Ditto.
1056         * vmsdbgout.c: Ditto.
1057
1058 2009-06-22  Matthias Klose  <doko@ubuntu.com>
1059
1060         * Makefile.in (install-plugin): Always use DESTDIR.
1061
1062 2009-06-22  Olivier Hainque  <hainque@adacore.com>
1063         
1064         * config/pa/pa.c (output_call): Don't optimize post call jumps
1065         into return address adjustments if the call may throw.
1066
1067 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
1068
1069         * arm.c (thumb1_output_casesi): New function.
1070         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
1071         optimizing for size or PIC.
1072         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
1073         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
1074         (casesi): Handle Thumb-1 when optimizing for size or PIC.
1075         (thumb1_casesi_internal_pic): New expand rule.
1076         (thumb1_casesi_dispatch): New pattern.
1077         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
1078         thumb-1 mode.
1079         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
1080         in the text seciton when PIC or optimizing for size.
1081         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
1082         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
1083         preservation properties of code.
1084         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
1085         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
1086         (__gnu_thumb1_case_si): New function.
1087         * t-arm (LIB1ASMSRC): Define here.
1088         (LIB1ASMFUNCS): Add some common functions.
1089         * t-arm-elf (LIB1ASMSRC): Delete.
1090         (LIB1ASMFUNCS): Append to existing set.
1091         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1092         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1093         * t-symbian (LIB1ASMFUNCS): Likewise.
1094         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1095         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1096
1097 2009-06-21  Richard Guenther  <rguenther@suse.de>
1098
1099         PR tree-optimization/38729
1100         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
1101         to loops with a single exit if -fno-expensive-optimizations.
1102
1103 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
1104
1105         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
1106         (dataflow_set): Change vars type from htab_t to shared_hash.
1107         (shared_hash_pool, empty_shared_hash): New variables.
1108         (vars_clear): Removed.
1109         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
1110         shared_hash_find_slot_unshare, shared_hash_find_slot,
1111         shared_hash_find_slot_noinsert, shared_hash_find): New
1112         static inlines.
1113         (shared_hash_unshare, shared_hash_destroy): New functions.
1114         (unshare_variable): Unshare set->vars if shared, use
1115         shared_hash_htab.
1116         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
1117         (get_init_value, find_src_set_src, dump_dataflow_set,
1118         clobber_variable_part, emit_notes_for_differences): Use
1119         shared_hash_htab.
1120         (dataflow_set_init): Remove second argument, set vars to
1121         empty_shared_hash instead of creating a new htab.
1122         (dataflow_set_clear): Call shared_hash_destroy and set vars
1123         to empty_shared_hash instead of calling vars_clear.
1124         (dataflow_set_copy): Don't call vars_copy, instead just share
1125         the src htab with dst.
1126         (variable_union): Use shared_hash_*, use initially NO_INSERT
1127         lookup if set->vars is shared.  Don't keep slot cleared before
1128         calling unshare_variable.  Unshare set->vars if needed.
1129         Even ->refcount == 1 vars must be unshared if set->vars is shared
1130         and var needs to be modified.
1131         (variable_canonicalize): New function.
1132         (dataflow_set_union): If dst->vars is empty, just share src->vars
1133         with dst->vars and traverse with variable_canonicalize to canonicalize
1134         and unshare what is needed.
1135         (dataflow_set_different): If old_set and new_set use the same shared
1136         htab, they aren't different.  If number of htab elements is different,
1137         htabs are different.  Use shared_hash_*.
1138         (dataflow_set_destroy): Call shared_hash_destroy instead of
1139         htab_delete.
1140         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
1141         second argument to dataflow_set_init.
1142         (vt_initialize): Likewise.  Initialize shared_hash_pool and
1143         empty_shared_hash, move bb in/out initialization afterwards.
1144         Use variable_htab_free instead of NULL as changed_variables del hook.
1145         (variable_was_changed): Change type of second argument to pointer to
1146         dataflow_set.  When inserting var into changed_variables, bump
1147         refcount.  Unshare set->vars if set is shared htab and slot needs to
1148         be cleared.
1149         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
1150         lookup if set->vars is shared.  Unshare set->vars if needed.
1151         Even ->refcount == 1 vars must be unshared if set->vars is shared
1152         and var needs to be modified.  Adjust variable_was_changed caller.
1153         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
1154         vars must be unshared if set->vars is shared and var needs to be
1155         modified.  Adjust variable_was_changed caller.
1156         (emit_note_insn_var_location): Don't pool_free var.
1157         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
1158         instead of 1.
1159         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
1160         free_alloc_pool on shared_hash_pool.
1161
1162 2009-06-20  Anthony Green  <green@moxielogic.com>
1163
1164         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
1165         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
1166
1167 2009-06-20  Richard Guenther  <rguenther@suse.de>
1168
1169         * tree-ssa-structalias.c (find_func_aliases): For memset use
1170         a constraint from NULL if we memset to zero.
1171         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
1172         we explicitly handle that do not read from memory.
1173         (call_may_clobber_ref_p_1): Properly handle builtins that may
1174         set errno.
1175
1176 2009-06-20  Richard Guenther  <rguenther@suse.de>
1177
1178         PR tree-optimization/40495
1179         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
1180         (new_scalar_tmp_constraint_exp): New function.
1181         (process_constraint): Do not create temporary decls.
1182         (process_all_all_constraints): Likewise.
1183         (handle_const_call): Likewise.
1184         (create_function_info_for): Do not set decl.
1185
1186 2009-06-19  Ian Lance Taylor  <iant@google.com>
1187
1188         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
1189         (rs6000_attribute_table): Make static; move before use.
1190
1191 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
1192
1193         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
1194         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
1195         Propagate the TREE_READONLY flag without overwriting it.
1196         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
1197         Propagate the TREE_READONLY flag onto the result.
1198         (process_call_operands): Move around.  Use correct constant value.
1199
1200 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1201
1202         PR target/40482
1203         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
1204         * config/arm/arm.md: Likewise.
1205
1206 2009-06-19  Ian Lance Taylor  <iant@google.com>
1207
1208         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
1209         to GIMPLE_ERROR_MARK.
1210
1211         * c-typeck.c (build_conditional_expr): Add op1_original_type and
1212         op2_original_type parameters.  Warn about using different enum types.
1213         * c-parser.c (c_parser_conditional_expression): Pass original
1214         types to build_conditional_expr.
1215         * c-tree.h (build_conditional_expr): Update declaration.
1216
1217 2009-06-19  Ian Lance Taylor  <iant@google.com>
1218
1219         * config/i386/i386.c (ix86_function_specific_save): Test that
1220         fields match values, rather than testing the values are in a
1221         certain range.
1222
1223 2009-06-19  Richard Guenther  <rguenther@suse.de>
1224
1225         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1226         ADDR_EXPR pointers.
1227         (ptr_derefs_may_alias_p): Likewise.
1228         (ptr_deref_may_alias_ref_p_1): New function.
1229         (ptr_deref_may_alias_ref_p): Likewise.
1230         (ref_maybe_used_by_call_p_1): Handle builtins that are not
1231         covered by looking at the ESCAPED solution.
1232         (call_may_clobber_ref_p_1): Likewise.
1233         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1234         Handle NULL_TREE offset.  Do not produce redundant constraints.
1235         (process_all_all_constraints): New helper function.
1236         (do_structure_copy): Use it.
1237         (handle_lhs_call): Likewise.
1238         (find_func_aliases): Handle some builtins with pointer arguments
1239         and/or return values explicitly.
1240
1241 2009-06-19  Ian Lance Taylor  <iant@google.com>
1242
1243         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1244
1245 2009-06-19  Ian Lance Taylor  <iant@google.com>
1246
1247         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1248
1249 2009-06-19  Ian Lance Taylor  <iant@google.com>
1250
1251         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1252         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1253         version.
1254
1255         * c-decl.c (finish_decl): If -Wc++-compat, warn about
1256         uninitialized const.
1257
1258 2009-06-19  Ian Lance Taylor  <iant@google.com>
1259
1260         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
1261         all uses.
1262
1263         * c-decl.c (in_struct, struct_types): Remove.
1264         (struct c_binding): Add in_struct field.
1265         (c_binding_ptr): Define type, along with VEC.
1266         (struct c_struct_parse_info): Define.
1267         (struct_parse_info): New static variable.
1268         (bind): Initialize in_struct field.
1269         (start_struct): Remove enclosing_in_struct and
1270         enclosing_struct_types parameters.  Add
1271         enclosing_struct_parse_info parameter.  Change all callers.  Set
1272         struct_parse_info rather than in_struct and struct_types.
1273         (grokfield): If -Wc++-compat and there is a symbol binding for the
1274         field name, set the in_struct flag and push it on the
1275         struct_parse_info->fields vector.
1276         (warn_cxx_compat_finish_struct): New static function.
1277         (finish_struct): Remove enclosing_in_struct and
1278         enclosing_struct_types parameters.  Add
1279         enclosing_struct_parse_info parameter.  Change all callers.  Don't
1280         set C_TYPE_DEFINED_IN_STRUCT here.  Call
1281         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
1282         parameter.  Only push on struct_types if warn_cxx_compat.
1283         (finish_enum): Only push on struct_types if warn_cxx_compat.
1284         (declspecs_add_type): Add loc parameter.  Change all callers.
1285         Change all error calls to error_at.  Pass loc, not input_location,
1286         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
1287         defined in a struct.  If -Wc++-compat and parsing a struct, record
1288         that a typedef name was used.
1289         * c-parser.c (c_parser_declspecs): Get location to pass to
1290         declspecs_add_type.
1291         (c_parser_struct_or_union_specifier): Update calls to start_struct
1292         and finish_struct.
1293         * c-tree.h (struct c_struct_parse_info): Declare.
1294         (finish_struct, start_struct): Update declarations.
1295         (declspecs_add_type): Update declaration.
1296
1297 2009-06-19  Ian Lance Taylor  <iant@google.com>
1298
1299         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1300         variable with an anonymous type.
1301
1302 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1303
1304         * see.c: Remove for real.
1305
1306 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1307
1308         * optabs.h (enum optab_index): Add new OTI_significand.
1309         (significand_optab): Define corresponding macro.
1310         * optabs.c (init_optabs): Initialize significand_optab.
1311         * genopinit.c (optabs): Implement significand_optab using
1312         significand?f2 patterns.
1313         * builtins.c (expand_builtin_mathfn): Handle
1314         BUILT_IN_SIGNIFICAND{,F,L}.
1315         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1316         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1317
1318         * config/i386/i386.md (significandxf2, significand<mode>2): New
1319         expanders to implement significandf, significand and significandl
1320         built-ins as inline x87 intrinsics.
1321
1322 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
1323
1324         * config/avr/avr.c (avr_override_options): Remove setting value of
1325         PARAM_INLINE_CALL_COST.
1326
1327 2009-06-18  Richard Henderson  <rth@redhat.com>
1328
1329         PR 40488
1330         * tree-pass.h (TDF_ASMNAME): New.
1331         * tree-dump.c (dump_options): Add asmname.
1332         * doc/invoke.texi: Document it.
1333
1334         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1335         (dump_decl_name): ...here.
1336         (dump_function_name): New flags arg; mind TDF_ASMNAME.
1337         (dump_generic_node): Update dump_function_name calls.
1338         (print_call_name): New flags arg; update all dump calls.
1339         * diagnostic.h (print_call_name): Update.
1340         * gimple-pretty-print.c (dump_gimple_call): Update.
1341
1342 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1343
1344         PR target/40470
1345         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1346
1347 2009-06-18  Diego Novillo  <dnovillo@google.com>
1348
1349         * doc/plugins.texi: Document plugin_is_GPL_compatible.
1350         * plugin.c (str_license): Declare.
1351         (try_init_one_plugin): Assert that the symbol
1352         'plugin_is_GPL_compatible' exists.
1353
1354 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
1355
1356         * see.c: Remove.
1357         * Makefile.in (OBJS-common): Remove see.o.
1358         (see.o): Remove.
1359         * common.opt (fsee): Mark as preserved for backward compatibility.
1360         * opts.c (common_handle_option): Add OPT_fsee to the backward 
1361         compatibility section.
1362         * passes.c (init_optimization_passes, pass_see): Remove pass.
1363         * timevar.def (TV_SEE): Remove.
1364         * tree-pass.h (pass_see): Remove declaration.
1365         * doc/invoke.texi (-fsee): Remove documentation.
1366         
1367 2009-06-18  Martin Jambor  <mjambor@suse.cz>
1368
1369         * tree-sra.c: Include statistics.h
1370         (sra_stats): New variable.
1371         (sra_initialize): Clear sra_stats.
1372         (create_access_replacement): Increment sra_stats.replacements.
1373         (get_access_replacement): Do not return twice.
1374         (analyze_all_variable_accesses): Increment statistics counter by the
1375         number of scalarized aggregates.
1376         (generate_subtree_copies): Increment sra_stats.subtree_copies.
1377         (sra_modify_expr): Increment sra_stats.exprs.
1378         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1379         (sra_modify_assign): Increment sra_stats.exprs,
1380         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1381         (perform_intra_sra): Update statistics counters.
1382         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1383
1384 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1385
1386         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1387         (arm_scalar_mode_supported_p): New function.
1388
1389 2009-06-18  Paul Brook  <paul@codesourcery.com>
1390             Sandra Loosemore  <sandra@codesourcery.com>
1391
1392         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1393         (__extendhfsf2, __truncsfhf2): Define.
1394         * config/arm/fp16.c: New file.
1395         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1396         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
1397
1398 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1399
1400         * doc/extend.texi (Half-Precision): New section.
1401         * doc/invoke.texi (Option Summary): List -mfp16-format.
1402         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
1403         * config/arm/arm.opt (mfp16-format=): New.
1404         * config/arm/arm.c: Include intl.h.
1405         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1406         (TARGET_INVALID_RETURN_TYPE): Redefine.
1407         (TARGET_PROMOTED_TYPE): Redefine.
1408         (TARGET_CONVERT_TO_TYPE): Redefine.
1409         (arm_fp16_format): Define.
1410         (all_fpus): Add entry for neon-fp16.
1411         (fp_model_for_fpu): Likewise.
1412         (struct fp16_format): Declare.
1413         (all_fp16_formats): Define.
1414         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1415         functions.
1416         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1417         and no ldrh.
1418         (arm_legitimate_index_p): Treat HFmode like HImode.
1419         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1420         (coproc_secondary_reload_class): Special-case HFmode.
1421         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1422         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1423         (arm_init_fp16_builtins): New.
1424         (arm_init_builtins): Call it.
1425         (arm_invalid_parameter_type): New.
1426         (arm_invalid_return_type): New.
1427         (arm_promoted_type): New.
1428         (arm_convert_to_type).
1429         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
1430         format.
1431         (arm_emit_fp16_const): New function.
1432         (arm_mangle_type): Mangle __fp16 as "Dh".
1433         * config/arm/arm.h (TARGET_VFPD32): Make it know about
1434         FPUTYPE_NEON_FP16.
1435         (TARGET_NEON_FP16): New.
1436         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1437         (enum fputype): Add FPUTYPE_NEON_FP16.
1438         (enum arm_fp16_format_type): Declare.
1439         (arm_fp16_format): Declare.
1440         (LARGEST_EXPONENT_IS_NORMAL): Define.
1441         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1442         * config/arm/arm-modes.def (HFmode): Define.
1443         * config/arm/vfp.md: (*movhf_vfp): New.
1444         (extendhfsf2): New.
1445         (truncsfhf2): New.
1446         * config/arm/arm.md: (fpu): Add neon_fp16.
1447         (floatsihf2, floatdihf2): New.
1448         (fix_trunchfsi2, fix_trunchfdi2): New.
1449         (truncdfhf2): New.
1450         (extendhfdf2): New.
1451         (movhf): New.
1452         (*arm32_movhf): New.
1453         (*thumb1_movhf): New.
1454         (consttable_2): Add check for HFmode constants.
1455         (consttable_4): Handle HFmode constants.
1456
1457 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
1458
1459         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1460
1461 2009-06-17  Olivier Hainque  <hainque@adacore.com>
1462
1463         * collect2.c (main): Use CONST_CAST2 to perform char ** to
1464         const char ** conversion in AIX specific section.
1465         
1466 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1467
1468         * config/i386/i386.c (ix86_special_builtin_type): Remove
1469         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
1470         (bdesc_special_args): Updated.
1471         (ix86_init_mmx_sse_builtins): Likewise.
1472         (ix86_expand_special_args_builtin): Likewise.
1473
1474 2009-06-17  Richard Henderson  <rth@redhat.com>
1475
1476         * tree-pretty-print.c (maybe_dump_asm_name): New.
1477         (dump_decl_name): Use it.
1478         (PRINT_FUNCTION_NAME): Merge into...
1479         (dump_function_name): ... here.  Use maybe_dump_asm_name.
1480
1481 2009-06-17  Cary Coutant  <ccoutant@google.com>
1482
1483         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1484         Change caller.
1485         * debug.c (struct gcc_debug_hooks): Change placeholder for
1486         source_line hook.
1487         (debug_nothing_int_charstar_int): Replaced by...
1488         (debug_nothing_int_charstar_int_bool): ...this.
1489         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1490         source_line prototype.
1491         (debug_nothing_int_charstar_int): Replaced by...
1492         (debug_nothing_int_charstar_int_bool): ...this.
1493         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1494         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1495         Output is_stmt operand when necessary.
1496         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1497         (notice_source_line): Add is_stmt parameter.
1498         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1499         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1500         Change callers.
1501         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1502         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1503
1504 2009-06-17  Ian Lance Taylor  <iant@google.com>
1505
1506         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1507         Change all uses.
1508         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
1509         call uses.
1510
1511 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
1512
1513         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1514         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1515         tree_strip_sign_nop_conversions and
1516         tree_ssa_strip_useless_type_conversions rather than stripping
1517         the operations here.
1518         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1519         Declare them.
1520         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1521         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1522         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1523         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1524         functions.
1525
1526 2009-06-17  Michael Eager  <eager@eagercon.com>
1527
1528         * config/rs6000/constraints.md (register_constraint "d"): New.
1529         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1530         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1531         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1532         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1533         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1534         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1535         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1536         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1537         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1538         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1539         __fctiwz): Same.
1540         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1541         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1542         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1543         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1544         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1545         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1546         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1547         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1548         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1549         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1550         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1551         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1552         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1553         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1554
1555 2009-06-16  Ian Lance Taylor  <iant@google.com>
1556
1557         * profile.c (total_num_never_executed): Don't define.
1558         (compute_branch_probabilities): Don't count or print
1559         num_never_executed.
1560         (init_branch_prob): Don't set total_num_never_executed.
1561         (end_branch_prob): Don't print total_num_never_executed.
1562
1563 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
1564
1565         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1566
1567 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
1568
1569         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1570         (nabstd2_fpr): Same.
1571
1572 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
1573
1574         * expr.c (expand_assignment): Change complex type check.
1575
1576 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
1577
1578         * doc/plugins.texi (Building GCC plugins): Added new section. 
1579
1580 2009-06-17  Ian Lance Taylor  <iant@google.com>
1581
1582         * c-pch.c (get_ident): Don't set size of templ array.
1583         (pch_init): Don't set size of partial_pch array.
1584
1585         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1586         string constant to intialize an array whose size is the length of
1587         the string.
1588
1589 2009-06-17  Richard Guenther  <rguenther@suse.de>
1590
1591         PR tree-optimization/40389
1592         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1593         to addressable types.
1594         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1595
1596 2009-06-17  Richard Guenther  <rguenther@suse.de>
1597
1598         PR middle-end/40460
1599         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1600         if there is no evolution of left in the loop bail out.
1601         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1602         chrec_fold_multiply.
1603
1604 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
1605             Janis Johnson  <janis187@us.ibm.com>
1606
1607         PR target/39254
1608         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1609         for the symbol ref of a constant that is the source of a move
1610         - nor for any other not-obvious-label-ref constants.
1611
1612 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
1613
1614         * plugin.c (position_pass): Skip newly inserted pass during list
1615         traversal to avoid repeated insertion.
1616
1617 2009-06-16  Ian Lance Taylor  <iant@google.com>
1618
1619         * vec.h (VEC_stack_alloc): Define different version if
1620         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1621         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1622         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1623         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1624
1625 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1626
1627         * config.gcc (extra_headers): Add ia32intrin.h for x86.
1628
1629         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1630         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1631         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1632         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1633         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1634         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1635         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1636         (bdesc_special_args): Add __builtin_ia32_rdtsc and
1637         __builtin_ia32_rdtscp.
1638         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1639         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1640         and __builtin_ia32_rorhi.
1641         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1642         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1643         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1644         (ix86_expand_args_builtin): Likewise.
1645         (ix86_expand_special_args_builtin): Likewise.
1646
1647         * config/i386/i386.md (UNSPECV_RDTSCP): New.
1648         (UNSPECV_RDTSC): Likewise.
1649         (UNSPECV_RDPMC): Likewise.
1650         (*bsr): Renamed to ...
1651         (bsr): This
1652         (*bsr_rex64): Renamed to ...
1653         (bsr_rex64): This.
1654         (rdpmc): New.
1655         (*rdpmc): Likewise.
1656         (*rdpmc_rex64): Likewise.
1657         (rdtsc): Likewise.
1658         (*rdtsc): Likewise.
1659         (*rdtsc_rex64): Likewise.
1660         (rdtscp): Likewise.
1661         (*rdtscp): Likewise.
1662         (*rdtscp_rex64): Likewise.
1663
1664         * config/i386/ia32intrin.h: New.
1665
1666         * config/i386/x86intrin.h: Include <ia32intrin.h>.
1667
1668 2009-06-16  Ian Lance Taylor  <iant@google.com>
1669
1670         * ira-build.c (copy_info_to_removed_store_destinations):
1671         Initialize parent_a.
1672
1673 2009-06-16  Ian Lance Taylor  <iant@google.com>
1674
1675         * c-decl.c (grokdeclarator): Change size_varies to bool.
1676
1677 2009-06-16  Ian Lance Taylor  <iant@google.com>
1678
1679         * sel-sched.c: Make forward declarations of move_op_hooks and
1680         fur_hooks explicitly extern.
1681
1682 2009-06-16  Ian Lance Taylor  <iant@google.com>
1683
1684         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1685         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1686
1687 2009-06-16  Ian Lance Taylor  <iant@google.com>
1688
1689         * resource.c (mark_referenced_resources): Change
1690         include_delayed_effects parameter to bool.  Change all callers.
1691         (mark_end_of_function_resources): Likewise.
1692         * reorg.c (insn_references_resource_p): Likewise.
1693         (insn_sets_resource_p): Likewise.
1694         * resource.h (mark_referenced_resources): Update declaration.
1695         (mark_end_of_function_resources): Update declaration.
1696
1697 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1698
1699         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1700
1701 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1702
1703         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1704         GCC can bootstrap on AIX with GNU Binutils 2.20.
1705
1706 2009-06-16  Ian Lance Taylor  <iant@google.com>
1707
1708         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1709
1710 2009-06-16  Ian Lance Taylor  <iant@google.com>
1711
1712         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1713         inline, not extern inline.
1714         (exact_log2): Likewise.
1715         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1716         test CLZ_HWI.
1717         (exact_log2): Likewise, but don't test CTZ_HWI.
1718
1719 2009-06-16  Ian Lance Taylor  <iant@google.com>
1720
1721         * bitmap.c (bitmap_clear): Don't declare as inline.
1722         * gimple.c (gimplify_assign): Likewise.
1723         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1724         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1725         (sched_scan_info): Remove duplicate definition.
1726
1727 2009-06-16  Ian Lance Taylor  <iant@google.com>
1728
1729         * c-common.c (skip_evaluation): Don't define.
1730         (c_inhibit_evaluation_warnings): Define global variable.
1731         (overflow_warning): Check c_inhibit_evaluation_warnings rather
1732         than skip_evaluation.
1733         (convert_and_check, warn_for_div_by_zero): Likewise.
1734         * c-common.h (skip_evaluation): Don't declare.
1735         (c_inhibit_evaluation_warnings): Declare.
1736         * c-parser.c (c_parser_typeof_specifier): Set
1737         c_inhibit_evaluation_warnings rather than skip_evaluation.
1738         (c_parser_conditional_expression): Likewise.
1739         (c_parser_binary_expression): Likewise.
1740         (c_parser_sizeof_expression): Likewise.
1741         (c_parser_alignof_expression): Likewise.
1742         * c-typeck.c (build_indirect_ref): Check
1743         c_inhibit_evaluation_warnings rather than skip_evaluation.
1744         (build_conditional_expr, build_binary_op): Likewise.
1745
1746 2009-06-16  Richard Guenther  <rguenther@suse.de>
1747
1748         * tree-ssa-alias.c (is_escape_site): Remove.
1749         * tree-ssa-alias.h (enum escape_type): Remove.
1750         (is_escape_site): Likewise.
1751         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1752         via casts and asms without deferring to is_escape_site.
1753
1754 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
1755
1756         PR middle-end/40446
1757         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1758         use gen_lowpart if op0 has complex mode.
1759
1760 2009-06-16  Richard Guenther  <rguenther@suse.de>
1761
1762         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1763         variables add them to ESCAPED.
1764         (find_func_aliases): Do not make all indirectly stored values escaped.
1765
1766 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
1767
1768         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1769         make_decl_one_only.
1770
1771 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1772
1773         PR tree-optimization/40432
1774         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1775         check whether we need to force gimple register operand.
1776
1777 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1778
1779         PR tree-optimization/40413
1780         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1781         build_ref_for_offset.
1782         (propagate_subacesses_accross_link): Fix a typo in a comment.
1783
1784 2009-06-16  Ira Rosen  <irar@il.ibm.com>
1785
1786         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1787         with additional parameter.
1788         * tree-vectorizer.h (enum vect_def_type): Add new value
1789         vect_nested_cycle.
1790         (enum vect_relevant): Add comments.
1791         (vect_is_simple_reduction): Add new argument.
1792         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1793         Detect nested cycles.
1794         (vect_is_simple_reduction): Update documentation, add an argument to
1795         distinguish inner-loop reduction from nested cycle, detect nested
1796         cycles, fix printings and indentation, don't swap operands in case
1797         of nested cycle.
1798         (get_initial_def_for_reduction): Handle subtraction.
1799         (vect_create_epilog_for_reduction): Add new argument to specify
1800         reduction variable.
1801         (vect_finalize_reduction): Handle subtraction, fix comments.
1802         (vectorizable_reduction): Handle nested cycles. In case of nested
1803         cycle keep track of the reduction variable position. Call 
1804         vect_is_simple_reduction with additional parameter. Use original 
1805         statement code in reduction epilogue for nested cycle. Call
1806         vect_create_epilog_for_reduction with additional parameter.
1807         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1808         inner-loop vectorization.
1809         (vect_recog_widen_sum_pattern): Likewise.
1810         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1811         and reductions.
1812         (vect_mark_stmts_to_be_vectorized): Likewise.
1813         (vect_get_vec_def_for_operand): Handle nested cycles.
1814
1815 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1816
1817         * doc/invoke.texi (Debugging Options): Fix option index entries
1818         for -fdump-statistics, -frandom-seed add entries for
1819         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1820         (FRV Options): Fix entries for -mTLS, -mtls.
1821         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1822         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1823         (M68hc1x Options): Fix @itemx for -mnominmax.
1824         (MCore Options): Fix entry for -mno-lsim.
1825         (MMIX Options): Fix entry for -mabi=mmixware.
1826         (PDP-11 Options): Fix entry for -mbcopy-builtin.
1827
1828 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
1829
1830         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1831         Mention the plugin mode of gengtype.
1832         * doc/gty.texi (Source Files Containing Type Information): Likewise.
1833         * gengtype.c: Updated copyright.
1834         (plugin_files, nb_plugin_files) Added new static variables.
1835         (measure_input_list) Care about plugin_files.
1836         (write_rtx_next): Added early return in plugin mode.
1837         (create_file): Updated copyright year in generated file. Added
1838         asserts.
1839         (oprintf): Added early return if NULL outf.
1840         (get_output_file_with_visibility): Care of plugin_files.
1841         (get_output_file_name): May return null.
1842         (write_local): Added early return.
1843         (put_mangled_filename): Ditto.
1844         (finish_root_table): Added check for base_files.
1845         (write_roots): Care about null when plugins.
1846         (main): Added plugin mode.
1847
1848 2009-06-15  Ian Lance Taylor  <iant@google.com>
1849
1850         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1851         * gcov.c (read_count_file): Add braces around variables declared
1852         before label.
1853
1854         * c.opt (Wjump-misses-init): New warning.
1855         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1856         -Wall and -Wc++-compat if not already set.
1857         (c_common_post_options): Clear warn_jump_misses_init if it was not
1858         set.
1859         * c-decl.c (struct c_binding): Change type field to a union with
1860         new label field.  Make it the first field in the struct.  Update
1861         references to type to use u.type instead.
1862         (struct c_spot_bindings): Define.
1863         (struct c_goto_bindings): Define.
1864         (c_goto_bindings_p): Define, along with VECs.
1865         (struct c_label_vars): Define.
1866         (struct c_scope): Add has_label_bindings field.
1867         (bind_label, set_spot_bindings): New static functions.
1868         (decl_jump_unsafe, update_spot_bindings): New static functions.
1869         (update_label_decls): New static function.
1870         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
1871         Update binding u.label field to shadowed field.
1872         (c_binding_start_stmt_expr): New function.
1873         (c_binding_end_stmt_expr): New function.
1874         (pushdecl): Don't call c_begin_vm_scope.
1875         (make_label): Add defining and p_label_vars parameters.  Change
1876         all callers.
1877         (lookup_label): Correct test for whether a label has not yet been
1878         defined.  Call bind_label rather than bind.
1879         (warn_about_goto): New static function.
1880         (lookup_label_for_goto): New function.
1881         (declare_label): Call bind_label rather than bind.
1882         (check_earlier_gotos): New static function.
1883         (define_label): Don't give errors about jumping into statement
1884         expressions or scopes of variably modified types.  Call
1885         set_spot_bindings and check_earlier_gotos.  Call bind_label
1886         instead of bind.  Don't set label_context_stack_se or
1887         label_context_stack_vm.
1888         (c_get_switch_bindings): New function.
1889         (c_release_switch_bindings): New function.
1890         (c_check_switch_jump_warnings): New function.
1891         (start_function): Don't set label_context_stack_se or
1892         label_context_stack_vm.
1893         (finish_function): Likewise.
1894         * c-typeck.c (label_context_stack_se): Don't define.
1895         (label_context_stack_vm): Don't define.
1896         (c_finish_goto_label): Call lookup_label_for_goto rather than
1897         lookup_label.  Don't give errors about jumping into a statement
1898         expression or the scope of a variably modified type.  Don't set
1899         label_context_stack_se or label_context_stack_vm.
1900         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1901         fields.  Add bindings field.
1902         (c_start_case): Don't set deleted fields.  Set bindings field.
1903         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
1904         or blocked_vm.  Call c_check_switch_jump_warnings.
1905         (c_finish_case): Don't test blocked_stmt_expr field.  Call
1906         c_release_switch_bindings.
1907         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1908         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1909         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
1910         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1911         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1912         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
1913         (c_begin_vm_scope, c_end_vm_scope): Don't define.
1914         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1915         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1916         (C_DECL_UNJUMPABLE_VM): Don't define.
1917         (C_DECL_UNDEFINABLE_VM): Don't define.
1918         (struct c_label_list): Don't define.
1919         (struct c_label_context_se): Don't define.
1920         (struct c_label_context_vm): Don't define.
1921         (struct c_spot_bindings): Declare.
1922         (c_bindings_start_stmt_expr): Declare.
1923         (c_bindings_end_stmt_expr): Declare.
1924         (lookup_label_for_goto): Declare.
1925         (c_get_switch_bindings, c_release_switch_bindings): Declare.
1926         (c_check_switch_jump_warnings): Declare.
1927         (label_context_stack_se, label_context_stack_vm): Don't declare.
1928         (c_finish_goto_label): Update declaration.
1929         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1930         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1931         (Warning Options): Document -Wjump-misses-init.
1932
1933 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
1934
1935         * tree-object-size.c (addr_object_size): Fix a pasto in the last
1936         change.
1937
1938 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1939
1940         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1941
1942 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1943
1944         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1945
1946 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1947
1948         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1949
1950 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1951
1952         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1953         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1954         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1955         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1956         * dwarf2asm.c (dw2_force_const_mem): Update call to
1957         make_decl_one_only.
1958         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1959         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1960         * langhooks.c (lhd_comdat_group): Remove.
1961         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1962         * tree.h (DECL_COMDAT_GROUP): New.
1963         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1964         (tree_decl_with_vis): Add comdat_group. Remove one_only.
1965         (make_decl_one_only): Change signature.
1966         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1967         make_decl_one_only.
1968         (make_decl_one_only): Change signature.
1969         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1970
1971 2009-06-15  Richard Guenther  <rguenther@suse.de>
1972
1973         PR middle-end/40439
1974         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1975
1976 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1977
1978         * tree-ssa-math-opts.c: Remove extra divide.
1979
1980 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1981
1982         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1983
1984 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1985
1986         * passes.c: Add bswap pass.
1987         * tree-pass.h: Add pass_optimize_bswap declaration.
1988         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1989         Include rtl.h, expr.h and optabs.h for optab_handler check.
1990         (struct symbolic_number, pass_optimize_bswap): New definition.
1991         (do_shift_rotate, verify_symbolic_number_p): New functions.
1992         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1993         (gate_optimize_bswap): New function.
1994         * tree.c (widest_int_cst_value): New function.
1995         * tree.h (widest_int_cst_value): Prototype added.
1996
1997 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1998
1999         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
2000         REG_EQUAL/REG_EQUIV notes.
2001
2002 2009-06-14  Richard Guenther  <rguenther@suse.de>
2003
2004         PR middle-end/40389
2005         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
2006         has its address taken if NRV was applied and it is addressable.
2007         * tree-ssa-structalias.c (get_constraint_for_address_of): New
2008         function split out from ...
2009         (get_constraint_for_1): ... here.
2010         (handle_rhs_call): Use it to mark the return slot escaped if
2011         it is addressable and NRV was applied.
2012
2013 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
2014
2015         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
2016         Change first argument type to location_t.
2017         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
2018         Do not set input_location.
2019         Use loc instead of input_location throughout.
2020
2021 2009-06-13  Richard Guenther  <rguenther@suse.de>
2022
2023         PR tree-optimization/40421
2024         * tree-predcom.c (should_unroll_loop_p): Remove.
2025         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
2026
2027 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2028
2029         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2030         Add location argument.
2031
2032 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
2033
2034         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
2035         build_decl.
2036         * config/s390/s390.c (s390_build_builtin_va_list): Same.
2037         (s390_gimplify_va_arg): Pass location to create_artificial_label.
2038         * config/spu/spu-protos.h: Add location to
2039         spu_resolve_overloaded_builtin.
2040         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
2041         spu_build_builtin_va_list.
2042         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
2043         argument.  Pass location to build_function_call_vec.
2044         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
2045         build_decl.
2046         (emit_fpu_switch): Same.
2047         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
2048         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
2049         to build_decl and create_artificial_label.
2050         (xtensa_gimplify_va_arg_expr): Same.
2051         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
2052         (xstormy16_gimplify_va_arg_expr): Same.
2053         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
2054         * config/arm/arm.c (arm_build_builtin_va_list): Same.
2055         * config/mips/mips.c (mips_build_builtin_va_list): Same.
2056         (mips16_build_function_stub): Same.
2057         (mips16_build_call_stub): Same.
2058
2059 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
2060
2061         PR target/40327
2062         * arm/constraints.md (Pa, Pb): New constraints.
2063         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
2064         split pattern to deal with them.
2065
2066 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
2067
2068         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
2069         fix index entry for -Xpreprocessor.
2070
2071 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2072
2073         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2074         Add location argument to build_decl call.
2075         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
2076         (rs6000_init_builtins): Same.
2077         (spe_init_builtins): Same.
2078         (rs6000_gimplify_va_arg): Add location argument to
2079         create_artificial_label call.
2080
2081 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
2082
2083         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
2084         * combine-stack-adj.c (pass_stack_adjustments): Use it.
2085         * Makefile.in: Fix GGC dependency for gcse.o.
2086
2087 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2088
2089         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
2090         * gimple-pretty-print.c (dump_gimple_stmt): Same.
2091         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
2092         created.
2093         * c-parser.c (c_parser_binary_expression): Use current column while
2094         building binary operations.
2095         * common.opt (fshow-column): Enable by default.
2096         * tree-vrp.c (check_array_ref): Use warning_at.
2097         (check_array_bounds): Use location from call back if expr has no
2098         location.
2099         * tree.h: Add location argument to maybe_fold_*.
2100         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
2101         (maybe_fold_offset_to_array_ref): Add location argument and use it.
2102         (maybe_fold_offset_to_component_ref): Same.
2103         (maybe_fold_offset_to_reference): Same.
2104         (maybe_fold_offset_to_address): Same.
2105         (maybe_fold_stmt_indirect): Same.
2106         (maybe_fold_stmt_addition): Same.
2107         (fold_stmt_r): Pass location to maybe_fold_*.
2108         (fold_gimple_assign): Same.
2109         * c-tree.h: Add location argument to finish_decl,
2110         default_function_array_conversion, store_init_value.
2111         * c-decl.c (define_label): Use error_at.
2112         (c_make_fname_decl): Pass location to finish_decl.
2113         (finish_decl): New location argument.
2114         (build_compound_literal): Pass location to store_init_value.
2115         (grokdeclarator): Pass location to finish_decl.
2116         (grokfield): Same.
2117         * c-typeck.c (array_to_pointer_conversion): New location argument.
2118         (function_to_pointer_conversion): Same.
2119         (default_function_array_conversion): Same.
2120         (parser_build_unary_op): Pass location to overflow_warning.
2121         (parser_build_binary_op): Same.  Use warning_at.
2122         (build_unary_op): Pass location to array_to_pointer_conversion.
2123         (build_c_cast): Pass location to digest_init.
2124         (build_modify_expr): New location argument.
2125         (convert_for_assignment): Same.
2126         (store_init_value): Same.
2127         (digest_init): Same.
2128         (output_init_element): Pass location to digest_init and
2129         array_to_pointer_conversion.
2130         (c_finish_return): Pass location to convert_for_assignment.
2131         * gimplify.c (gimplify_conversion): Pass location to
2132         maybe_fold_offset_to_address.
2133         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
2134         to maybe_fold_stmt_addition.
2135         * c-omp.c (c_finish_omp_atomic): Pass new location to
2136         build_modify_expr.
2137         (c_finish_omp_for): Same.
2138         * c-common.c (overflow_warning): New argument.
2139         * c-common.h: New argument to build_modify_expr, overflow_warning.
2140         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
2141         finish_decl.
2142         (c_parser_initializer): Pass location to
2143         default_function_array_conversion.
2144         (c_parser_initelt): Same.
2145         (c_parser_initval): Same.
2146         (c_parser_asm_operands): Same.
2147         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
2148         (c_parser_conditional_expression): Same.
2149         (c_parser_binary_expression): Add location info to stack.  Use it.
2150         (c_parser_unary_expression): Pass location to
2151         default_function_array_conversion, parser_build_unary_op,
2152         build_indirect_ref, c_parser_postfix_expression_after_primary.
2153         (c_parser_postfix_expression_after_primary): New location argument.
2154         Use it.
2155         (c_parser_expression_conv): Pass location to
2156         default_function_array_conversion.
2157         (c_parser_expr_list): Same.
2158         (c_parser_omp_atomic): Same.
2159         (c_parser_omp_for_loop): Same.
2160         * c-tree.h: (struct c_declarator): Add comment to id_loc.
2161         (build_array_declarator): New argument.
2162         * c-decl.c (build_array_declarator): Add location argument.
2163         (grokdeclarator): Set id_loc for cdk_array.
2164         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
2165         build_array_declarator.
2166         * tree.c (build_omp_clause): Add location argument.
2167         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
2168         (OMP_CLAUSE_LOCATION): New macro.
2169         (struct tree_omp_clause): Add location field.
2170         (build_omp_clause): Add argument.
2171         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
2172         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
2173         build_omp_clause.
2174         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
2175         (cp_parser_omp_clause_collapse): Same.
2176         (cp_parser_omp_clause_default): Same.
2177         (cp_parser_omp_clause_if): Same.
2178         (cp_parser_omp_clause_nowait): Same.
2179         (cp_parser_omp_clause_num_threads): Same.
2180         (cp_parser_omp_clause_ordered): Same.
2181         (cp_parser_omp_clause_schedule): Same.
2182         (cp_parser_omp_clause_untied): Same.
2183         (cp_parser_omp_for_loop): Same.
2184         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2185         * c-tree.h (c_start_case): Add location argument.
2186         (c_process_expr_stmt): Same.
2187         (c_finish_goto_*): Same.
2188         * tree-parloops.c (initialize_reductions): Pass location to
2189         build_omp_clause.
2190         (create_parallel_loop): Same.
2191         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
2192         (gfc_trans_omp_reduction_list): Same.
2193         (gfc_trans_omp_clauses): Same.
2194         (gfc_trans_omp_do): Same.
2195         * c-typeck.c (c_finish_goto_label): Same.
2196         (c_finish_goto_ptr): New location argument.
2197         (c_start_case): Same.
2198         (emit_side_effect_warnings): Same.
2199         (c_process_expr_stmt): Same.
2200         (c_finish_stmt_expr): Same.
2201         (c_finish_omp_clauses): Use error_at instead of error.
2202         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
2203         build_omp_clause.
2204         * c-omp.c (c_split_parallel_clauses): New location argument.
2205         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
2206         to build_omp_clause.
2207         (convert_local_reference_stmt): Same.
2208         (convert_gimple_call): Same.
2209         * c-common.h (c_split_parallel_clauses): New argument.
2210         * c-parser.c (c_parser_statement_after_labels): Pass location to
2211         c_finish_goto_label.
2212         (c_parser_switch_statement): Pass location to c_start_case.
2213         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
2214         and c_process_expr_stmt.
2215         (c_parser_omp_variable_list): Add location argument.
2216         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
2217         (c_parser_omp_clause_default): Same.
2218         (c_parser_omp_clause_if): Same.
2219         (c_parser_omp_clause_num_threads): Same.
2220         (-c_parser_omp_clause_ordered): Same.
2221         (c_parser_omp_clause_reduction): Pass location to
2222         c_parser_omp_variable_list.
2223         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2224         (c_parser_omp_clause_untied): Same.
2225         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2226         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2227
2228         * c-tree.h (check_for_loop_decls, undeclared_variable,
2229         build_component_ref, build_array_ref, build_external_ref,
2230         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2231         build_conditional_expr, build_compound_expr, c_cast_expr,
2232         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2233         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2234         argument.
2235         * c-semantics.c (build_stmt): Same.
2236         (build_case_label): Same.
2237         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2238         (undeclared_variable): New argument.
2239         (make_label): Same.
2240         (lookup_label): Pass location on down.
2241         (define_label): Same.
2242         (finish_decl): Same.
2243         (build_compound_literal): Same.
2244         (finish_struct): Same.
2245         (finish_function): Do not set location here.
2246         (check_for_loop_decls): New argument.
2247         * tree.c (save_expr): Set location.
2248         (build_empty_stmt): New argument.
2249         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2250         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2251         * builtins.c (gimplify_va_arg_expr): Use locations.
2252         (expand_builtin_sync_operation): Same.
2253         * c-typeck.c (build_component_ref): New argument.
2254         (build_array_ref): Same.
2255         (build_external_ref): Same.
2256         (c_expr_sizeof_expr): Same.
2257         (c_expr_sizeof_type): Same.
2258         (parser_build_unary_op): Same.
2259         (build_conditional_expr): Same.
2260         (build_compound_expr): Pass location on down.
2261         (build_compound_expr): New argument.
2262         (build_c_cast): Same.
2263         (c_cast_expr): Same.
2264         (build_asm_expr): Same.
2265         (c_finish_return): Same.
2266         (c_process_expr_stmt): Pass location on down.
2267         (c_finish_stmt_expr): New argument.
2268         (push_clenaup): Same.
2269         (c_finish_omp_parallel): Same.
2270         (c_finish_omp_task): Same.
2271         * gimplify.c (gimplify_call_expr): Pass location on down.
2272         * c-omp.c (c_finish_omp_master): New argument.
2273         (c_finish_omp_critical): Same.
2274         (c_finish_omp_ordered): Same.
2275         (c_finish_omp_barrier): Same.
2276         (-c_finish_omp_taskwait): Same.
2277         (c_finish_omp_atomic): Same.
2278         (c_finish_omp_flush): Same.
2279         * tree-inline.c (copy_tree_body_r): Pass location on down.
2280         (inline_forbidden_p): Remove use of input_location.
2281         * c-gimplify.c (c_build_bind_expr): New argument.
2282         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2283         (c_sizeof_or_alignof_type): New argument.
2284         (c_alignof_expr): Same.
2285         (build_va_arg): Same.
2286         (c_add_case_label): Same.
2287         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2288         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2289         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2290         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2291         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2292         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2293         New argument.
2294         * stub-objc.c (objc_build_selector_expr): Same.
2295         (objc_build_throw_stmt): Same.
2296         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2297         (c_parser_initelt): Same.
2298         (c_parser_compound_statement): Same.
2299         (c_parser_compound_statement_nostart): Same.
2300         (c_parser_label): Same.
2301         (c_parser_statement_after_labels): Same.
2302         (c_parser_if_body): Same.
2303         (c_parser_else_body): Same.
2304         (c_parser_if_statement): Same.
2305         (c_parser_switch_statement): Same.
2306         (c_parser_while_statement): Same.
2307         (c_parser_do_statement): Same.
2308         (c_parser_for_statement): Same.
2309         (c_parser_asm_statement): Same.
2310         (c_parser_conditional_expression): Same.
2311         (c_parser_binary_expression): Same.
2312         (c_parser_cast_expression): Same.
2313         (c_parser_unary_expression): Same.
2314         (c_parser_sizeof_expression): Same.
2315         (c_parser_alignof_expression): Same.
2316         (c_parser_postfix_expression): Same.
2317         (c_parser_expression): Same.
2318         (c_parser_objc_receiver): Same.
2319         (c_parser_omp_variable_list): Same.
2320         (c_parser_omp_structured_block): Same.
2321         (c_parser_omp_atomic): New argument.
2322         (c_parser_omp_barrier): Same.
2323         (c_parser_omp_critical): Same.
2324         (c_parser_omp_flush): Pass location on down.
2325         (c_parser_omp_for_loop): New argument.
2326         (c_parser_omp_for): Same.
2327         (c_parser_omp_master): Same.
2328         (c_parser_omp_ordered): Same.
2329         (c_parser_omp_sections_scope): Same.
2330         (c_parser_omp_sections): Same.
2331         (c_parser_omp_parallel): Same.
2332         (c_parser_omp_single): Same.
2333         (c_parser_omp_task): Same.
2334         (c_parser_omp_taskwait): Pass location on down.
2335         (c_parser_omp_construct): Same.
2336         (c_parser_omp_threadprivate): Same.
2337         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2338         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2339         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2340         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2341         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2342         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2343         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2344         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2345         config/i386/i386.c, stmt.c:
2346         Add location argument to the following function definitions and/or
2347         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2348         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2349         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2350         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2351         do_case, c_finish_bc_stmt, build_compound_literal,
2352         build_function_call.
2353         * c-decl.c (build_compound_literal): Add location argument.
2354         Make all diagnostic calls use location.
2355         (start_struct): Same.
2356         (finish_struct): Same.
2357         (start_enum): Same.
2358         (build_enumerator): Same.
2359         (start_function): Same.
2360         (grokdeclarator): Make all diagnostic calls use location.
2361         (store_parm_decls_oldstyle): Same.
2362         * c-typeck.c (build_function_call): Add location argument.
2363         Make all diagnostic calls use location.
2364         (do_case): Same.
2365         (c_finish_bc_stmt): Same.
2366         * tree-nested.c (get_trampoline_type): Add argument.
2367         Pass location to build_decl.
2368         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2369         * rtl.h (RTL_LOCATION): New.
2370         * c-common.c (c_add_case_label): Add location argument.
2371         Make all diagnostic calls use location.
2372         * c-common.h: Add location argument to make_fname_decl, do_case,
2373         c_add_case_label, build_function_call, resolve_overloaded_builtin.
2374         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2375         Set it appropriately for every case.  Pass enum_loc to start_enum
2376         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
2377         parser_xref_tag.
2378         (c_parser_struct_or_union_specifier): Save location.  Use it for
2379         start_struct, finish_struct, and parser_xref_tag.
2380
2381 2009-06-12  Ian Lance Taylor  <iant@google.com>
2382
2383         * fold-const.c (fold_unary): Rename local variable and to and_expr.
2384
2385         * c-opts.c (c_common_handle_option): For -Wc++-compat set
2386         cpp_opts->warn_cxx_operator_names.
2387
2388 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2389
2390         PR tree-opt/38865
2391         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2392         is returns NULL and OP is a VCE, look through the VCE.
2393
2394 2009-06-12  Ian Lance Taylor  <iant@google.com>
2395
2396         PR bootstrap/40430
2397         * collect2.c (main): Use CONST_CAST2 in code inside #if
2398         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2399
2400 2009-06-12  Joey Ye  <joey.ye@intel.com>
2401
2402         PR middle-end/39146
2403         * cfgexpand.c (get_decl_align_unit): Update
2404         max_used_stack_slot_alignment with align instead of
2405         stack_alignment_needed.
2406
2407         * function.c (assign_stack_local_1): Update
2408         max_used_stack_slot_alignment with alignment_in_bits instead
2409         of stack_alignment_needed.
2410         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2411         here.
2412
2413 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
2414
2415         * dwarf2out.c (last_var_location_insn): New variable.
2416         (dwarf2out_end_epilogue): Clear last_var_location_insn.
2417         (dwarf2out_var_location): Don't record anything after last real
2418         insn.  Only change labels if there were any real instructions
2419         in between last note and this one, or if changed sections.
2420
2421 2009-06-11  Richard Henderson  <rth@redhat.com>
2422
2423         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2424         note when storing the frame pointer in a register.
2425         (FRP): Don't redefine to nothing for epilogue.
2426         (alpha_expand_epilogue): Mark register and sp restores.
2427         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2428
2429         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2430         when gen_lowpart is needed.
2431
2432 2009-06-11  Richard Henderson  <rth@redhat.com>
2433
2434         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2435
2436         * dwarf2out.c (need_data_align_sf_opcode): New.
2437         (div_data_align): Move earlier.
2438         (def_cfa_1, reg_save): Use it.
2439
2440 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
2441
2442         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2443         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2444         (ix86_handle_option): Handle OPT_mcrc32.
2445         (ix86_target_string): Add -mcrc32.
2446         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2447
2448         * config/i386/i386.h (TARGET_CRC32): New.
2449
2450         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2451         (sse4_2_crc32di): Likewise.
2452
2453         * config/i386/i386.opt (mcrc32): New.
2454
2455         * doc/invoke.texi: Document -mcrc32.
2456
2457 2009-06-11  Richard Henderson  <rth@redhat.com>
2458
2459         * common.opt (gdwarf-): Accept a version number.
2460         * doc/invoke.texi (gdwarf-): Update docs.
2461         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2462         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2463         version level, and record it.
2464
2465         * dwarf2.h (DW_CIE_VERSION): Remove.
2466         * dwarf2out.c (DWARF_VERSION): Remove.
2467         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2468         (output_call_frame_info): Use CIE version 3 for dwarf3,
2469         or if the return register column is out of range for version 1.
2470         (dwarf_stack_op_name): Add all dwarf3 values.
2471         (DEBUG_PUBTYPES_SECTION): New.
2472         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2473         encoding change for dwarf3.
2474         (output_die) [dw_val_class_die_ref]: Likewise.
2475         (output_compilation_unit_header): Emit correct version for dwarf3.
2476         (output_line_info): Likewise.
2477         (output_pubnames): Update for DWARF_VERSION removal.
2478         (output_aranges): Likewise.
2479         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2480         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2481         (dwarf2out_finish): Likewise.
2482
2483 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2484
2485         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2486         in r148403.
2487
2488 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2489
2490         PR c/39252
2491         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2492         * builtins.c (expand_builtin_unreachable): New function.
2493         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2494         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2495         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2496         successors.
2497         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2498         searching for missing barriers.
2499
2500 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2501
2502         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2503         when -fprofile-generate* was passed.
2504         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2505
2506 2009-06-11  Anthony Green  <green@moxielogic.com>
2507
2508         * config/moxie/moxie.md: Define length attribute for all instructions.
2509         (rCC): Define.
2510         (*b<cond:code>): Support limited branch ranges for new PC-relative
2511         branch instructions.
2512         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2513
2514 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
2515
2516         * config/i386/i386.c (min_insn_size): Use get_attr_length
2517         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2518         For __asm return 0.
2519
2520         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2521         instead of emit_insn_before.
2522
2523 2009-06-10  Ian Lance Taylor  <iant@google.com>
2524
2525         PR bootstrap/40408
2526         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2527         GIMPLE_SWITCH.
2528
2529 2009-06-10  Revital Eres  <eres@il.ibm.com>
2530
2531         * passes.c (init_optimization_passes): Reschedule
2532         predictive-commoning pass before complete unroll pass.
2533
2534 2009-06-10  Martin Jambor  <mjambor@suse.cz>
2535
2536         * cgraph.c (cgraph_node_can_be_local_p): New function.
2537         (cgraph_make_node_local): New function.
2538         * cgraph.h (cgraph_node_can_be_local_p): Declare.
2539         (cgraph_make_node_local): Declare.
2540
2541 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
2542
2543         * tree.h (tree_base): Add packed_flag and user_align fields.
2544         Decrease size of spare field.
2545         (TYPE_USER_ALIGN): Use user_align from tree_base.
2546         (DECL_USER_ALIGN): Likewise.
2547         (TYPE_PACKED): Use packed_flag from tree_base.
2548         (DECL_PACKED): Likewise.
2549         (tree_type): Delete packed_flag and user_align fields.  Widen
2550         precision field.  Widen mode field and shuffle fields to align
2551         mode on an 8-bit boundary.
2552         (tree_decl_common): Delete decl_flag_1 and user_align fields.
2553         Renumber decl_flag_* fields.  Fix comments.  Widen
2554         decl_common_unused field.
2555         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2556         (DECL_EXTERNAL): Likewise.
2557         (DECL_BIT_FIELD): Likewise.
2558         (DECL_NONADDRESSABLE_P): Likewise.
2559         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2560         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2561
2562 2009-06-10  Ian Lance Taylor  <iant@google.com>
2563
2564         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2565         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2566         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2567         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2568         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2569         DEF_VEC_ALLOC_FUNC_P.
2570         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2571         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2572         DEF_VEC_ALLOC_FUNC_O.
2573         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2574         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2575         DEF_VEC_ALLOC_FUNC_I.
2576         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2577         (vec_stack_p_reserve_exact_1): Declare.
2578         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2579         (vec_stack_free): Declare.
2580         (VEC_stack_alloc): Define.
2581         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2582         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2583         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2584         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
2585         for void_p.
2586         (stack_vecs): New static variable.
2587         (vec_stack_p_reserve_exact_1): New function.
2588         (vec_stack_o_reserve_1): New static function.
2589         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2590         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2591         (vec_stack_free): New function.
2592         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2593         (VEC_df_ref_stack_alloc): Define.
2594         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
2595         DEF_VEC_ALLOC_P_STACK.
2596         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2597         (struct df_collection_rec): Change _vec fields to VEC.  Remove
2598         _use fields.
2599         (df_free_collection_rec): Adjust for new fields.
2600         (df_insn_rescan): Use new df_collection_rec fields.
2601         (df_notes_rescan, df_canonize_collection_rec): Likewise.
2602         (df_ref_create_structure, df_ref_record): Likewise.
2603         (df_get_conditional_uses, df_get_call_refs): Likewise.
2604         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2605         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2606         (df_record_exit_block_uses, df_bb_verify): Likewise.
2607         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
2608         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2609         Remove count parameter.  Change return type to void.  Change all
2610         callers.
2611         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2612         Remove count parameter.  Change return type to void.  Change all
2613         callers.
2614         (df_install_refs): Change old_vec parameter to VEC.  Remove count
2615         parameter.  Change all callers.
2616         (df_install_mws): Change old_vec parameter to VEC.  Remove count
2617         parameter.  Change all callers.
2618         (df_refs_verify): Change new_rec parameter to VEC.  Change call
2619         callers.
2620         (df_mws_verify): Likewise.
2621
2622 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
2623
2624         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2625
2626 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2627
2628         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2629
2630 2009-06-10  Anthony Green  <green@moxielogic.com>
2631
2632         * config/moxie/crti.asm: New file.
2633         * config/moxie/crtn.asm: New file.
2634         * config/moxie/moxie.c: New file.
2635         * config/moxie/moxie.h: New file.
2636         * config/moxie/sfp-machine.h: New file.
2637         * config/moxie/moxie-protos.h: New file.
2638         * config/moxie/t-moxie: Created.
2639         * config/moxie/t-moxie-softfp: Created.
2640         * config/moxie/moxie.md: Created.
2641         * config/moxie/constraints.md: Created.
2642         * config.gcc: Add moxie support.
2643         * doc/md.texi (Machine Constraints): Add moxie constraints.
2644         * doc/contrib.texi (Contributors): Mention moxie port.
2645         * doc/install.texi (Specific): Mention the moxie port.
2646
2647 2009-06-09  Ian Lance Taylor  <iant@google.com>
2648
2649         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2650         compiling with C++.
2651         * optabs.c (optab_table): Only use designated initializers if
2652         HAVE_DESIGNATED_INITIALIZERS is defined.
2653         (convert_optab_table): Likewise.
2654         (init_optabs): Always call init_insn_codes if
2655         HAVE_DESIGNATED_INITIALIZERS is not defined.
2656
2657 2009-06-09  Ian Lance Taylor  <iant@google.com>
2658
2659         * targhooks.c (default_builtin_vectorized_function): Change fn
2660         parameter to unsigned int.
2661         (default_builtin_vectorized_conversion): Change code parameter to
2662         unsigned int.
2663         (default_builtin_reciprocal): Change fn parameter to unsigned int.
2664         * targhooks.h: Update declarations.
2665         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2666         parameter to unsigned int.
2667
2668         * c-typeck.c (comptypes_check_enum_int): New static function.
2669         (comptypes_internal): Add enum_and_int_p parameter.  Change all
2670         callers.
2671         (comp_target_types): Add location parameter.  Change all callers.
2672         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2673         Change all callers.
2674         (function_types_compatible_p, type_lists_compatible_p): Likewise.
2675         (build_conditional_expr): Add colon_loc parameter.  Change all
2676         callers.
2677         (convert_for_assignment): Add location parameter.  Change all callers.
2678         * c-parser.c (c_parser_conditional_expression): Pass location of
2679         colon to build_conditional_expr.
2680         * c-tree.h (build_conditional_expr): Update declaration.
2681
2682 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2683
2684         * graphite.c: Revert previous patch.
2685
2686 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2687
2688         PR bootstrap/40103
2689         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2690
2691 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2692
2693         * tree-ssa-loop-prefetch.c
2694         (loop_prefetch_arrays): Fixed a portability problem in printf format
2695         string.
2696
2697 2009-06-09  Martin Jambor  <mjambor@suse.cz>
2698
2699         PR tree-optimization/40351
2700         * tree-sra.c (propagate_subacesses_accross_link): Check that a
2701         refrence to a potential artifical subaccess can be constructed.
2702
2703 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2704
2705         * config/sh/sh-protos.h (sh_optimization_options): Declare.
2706         (sh_override_options): Likewise.
2707         * config/sh/sh.c: Include params.h.
2708         (sh_optimization_options): New.
2709         (sh_override_options): Likewise.
2710         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2711         (OVERRIDE_OPTIONS): Use sh_override_options.
2712
2713 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2714
2715         * dwarf2out.c (emit_cfa_remember): New variable.
2716         (add_fde_cfi): If emit_cfa_remember, recurse to add
2717         DW_CFA_remember_state first.
2718         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2719         instead just set emit_cfa_remember.
2720
2721 2009-06-08  Jan Hubicka  <jh@suse.cz>
2722
2723         PR debug/40126
2724         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2725
2726 2009-06-08  Jan Hubicka  <jh@suse.cz>
2727
2728         PR middle-end/39834
2729         * cgraphunit.c (save_inline_function_body): Do not copy transform
2730         hooks for saved inline bodies.
2731         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2732         for given function.
2733
2734 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
2735
2736         * jump.c (returnjump_p): Handle delayed branches.  Add missing
2737         function comment.
2738
2739 2009-06-08  Jan Hubicka  <jh@suse.cz>
2740
2741         PR middle-end/40102
2742         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2743         original node might've been modified.
2744         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2745
2746 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2747
2748         * tree-object-size.c (addr_object_size): Add OSI argument.
2749         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2750         (compute_builtin_object_size, expr_object_size): Adjust callers.
2751         (plus_stmt_object_size): Call addr_object_size instead of
2752         compute_builtin_object_size.
2753
2754 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2755             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2756         
2757         * tree-ssa-loop-prefetch.c 
2758         (gather_memory_references): Introduced a counter for the number of 
2759         memory references.
2760         (anything_to_prefetch_p): Introduced a counter for the number of 
2761         prefetches.
2762         (is_loop_prefetching_profitable): New function with a cost model 
2763         for prefetching.
2764         (loop_prefetch_arrays): Use the new cost model to determine if 
2765         prefetching is profitable.
2766         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
2767         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2768         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
2769         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2770         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
2771         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2772         
2773 2009-06-08  Michael Matz  <matz@suse.de>
2774
2775         PR debug/40012
2776         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2777         partitions use the same.
2778         (expand_one_var): Deal with DECL_RTL sometimes begin set also
2779         for basevars of SSA_NAMEs.
2780         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2781         to not expand them twice.
2782         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2783         multiple places.
2784
2785 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2786
2787         * common.opt (fcompare-debug=, fcompare-debug-second): New.
2788         (fdump-final-insns=, gtoggle): New.
2789         * doc/invoke.texi: Document them.
2790         * final.c (rest_of_clean_state): Dump final insn stream.
2791         * gcc.c (invoke_as): Hook in -fcompare-debug.
2792         (static_spec_functions): Add compare-debug-dump-opt,
2793         compare-debug-self-opt and compare-debug-auxbase-opt.
2794         (compare_debug, compare_debug_second, compare_debug_opt): New.
2795         (switches_debug_check, n_switches_debug_check): New.
2796         (debug_auxbase_opt, debug_check_temp_file): New.
2797         (process_command): Handle -fno-compare-debug, -fcompare-debug and
2798         -fcompare-debug=*.
2799         (do_self_spec): Handle arguments after switches.
2800         (do_spec_1): Add .gk extension to temp file basenames for compare.
2801         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2802         (cc1_options): Use it instead of normal auxbase computation for
2803         the second compare-debug compilation.
2804         (compare_files): New.
2805         (main): Set up and implement compare debug mode.
2806         (compare_debug_dump_opt_spec_function): New.
2807         (compare_debug_self_opt_spec_function): New.
2808         (compare_debug_auxbase_opt_spec_function): New.
2809         * toplev.c (process_options): Handle flag_gtoggle,
2810         flag_dump_final_insns.
2811         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2812         during -fcompare-debug-second compilation.
2813
2814 2009-06-07  Ian Lance Taylor  <iant@google.com>
2815
2816         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2817         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2818
2819         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2820         with no default node.  Change warning with %H to warning_at.
2821         Don't clear warn_switch around case checking.
2822         * doc/invoke.texi (Warning Options): Clarify distinction between
2823         -Wswitch and -Wswitch-enum.
2824
2825 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2826
2827         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2828
2829 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2830
2831         * gbl-ctors.h: Add header guard.
2832
2833 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2834
2835         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2836         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2837         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2838         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2839         prototypes for removed functions.
2840         (expressions_equal_p): Move to ...
2841         * tree-ssa-sccvn.h: ... here and ...
2842         * matrix-reorg.c: ... adjust includes.
2843
2844 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2845
2846         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2847
2848 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2849
2850         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2851         (finish_function): Remove erroneous whitespace.
2852
2853 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2854
2855         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2856         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2857
2858 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2859
2860         * errors.c (internal_error): Commentary typo fix.
2861         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2862         * tree-ssa-pre.c: Ditto.
2863
2864 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2865
2866         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2867         them is supposed to hold actual statements.
2868
2869 2009-06-06  Ian Lance Taylor  <iant@google.com>
2870
2871         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2872         empty statements can now have attributes.
2873
2874 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
2875
2876         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2877         * config/mips/mips.md: Ditto.
2878
2879 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2880
2881         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2882         _RELOCATABLE.
2883         (__eabi_uconvert): Likewise.
2884
2885 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2886
2887         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2888         CFI_* definitions with IN_GCC.
2889
2890 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
2891
2892         * xcoffout.h (xcoffout_source_line): Update prototype.
2893
2894 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2895
2896         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2897         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2898
2899 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2900
2901         PR middle-end/40340
2902         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2903         inlined_function_outer_scope_p blocks for artificial inlines
2904         even at -g0/-g1.
2905         * tree.c (tree_nonartificial_location): Rewrite using
2906         block_nonartificial_location.
2907
2908 2009-06-05  Revital Eres  <eres@il.ibm.com>
2909             Leehod Baruch  <leehod@il.ibm.com>
2910
2911         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2912         (expand_expr_real_1): Remove comment.
2913         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2914         Vectorize misaligned access when the target supports it.
2915         (vect_supportable_dr_alignment): Check for unaligned access support.
2916         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2917         and remove asset.
2918
2919 2009-06-05  Julian Brown  <julian@codesourcery.com>
2920
2921         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2922         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2923
2924 2009-06-05  Richard Guenther  <rguenther@suse.de>
2925
2926         PR bootstrap/40350
2927         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2928         as possibly unused.
2929
2930 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2931
2932         * config/s390/s390.c (global_not_special_regno_p): New static inline.
2933         (save_gprs): Don't tell unwinder when a global register is saved.
2934         (s390_emit_epilogue): Emit needed epilogue unwind info.
2935
2936 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2937
2938         * dwarf2out.c (deferred_asm_name): New.
2939         (add_name_and_src_coords_attributes): Defer creation of
2940         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2941         computed yet.
2942         (move_linkage_attr): New.
2943         (dwarf2out_finish): Revisit deferrals and emit attributes at the
2944         right place.
2945
2946 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2947
2948         * tree-nested.c (finalize_nesting_tree_1): Declare the
2949         frame_decl in the binding tree.
2950
2951 2009-06-04  Cary Coutant  <ccoutant@google.com>
2952
2953         * basic-block.h (struct basic_block_def): Add discriminator field.
2954         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
2955         callers.
2956         * debug.c (do_nothing_debug_hooks): Add additional entry.
2957         (debug_nothing_int_charstar_int): New function.
2958         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2959         (debug_nothing_int_charstar_int): New declaration.
2960         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
2961         discriminator value in .loc directive.
2962         * final.c (last_discriminator): New variable.
2963         (discriminator): New variable.
2964         (final_start_function): Initialize above variables, pass current
2965         discriminator to debug hook.
2966         (notice_source_line): Check for discriminator change.
2967         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2968         * sdbout.c (sdbout_source_line): New parameter.
2969         * tree-cfg.c (struct locus_discrim_map): New structure type.
2970         (discriminator_per_locus): New hash table.
2971         (build_gimple_cfg): Allocate and free discriminator hash table.
2972         (make_edges): Call assign_discriminator.
2973         (locus_map_hash): New function.
2974         (locus_map_eq): New function.
2975         (next_discriminator_for_locus): New function.
2976         (same_line_p): New function.
2977         (assign_discriminator): New function.
2978         (make_cond_expr_edges): Call assign_discriminator.
2979         (make_gimple_switch_edges): Likewise.
2980         (first_non_label_stmt): New function.
2981         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2982         all callers.
2983         * xcoffout.c (xcoffout_source_line): Add new parameter.
2984
2985         * configure.ac (gcc_cv_as_discriminator): New configury check for
2986         gas support for discriminator.
2987         * configure: Regenerate.
2988         * config.in: Regenerate.
2989
2990 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2991
2992         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2993         val after checking for integers.
2994
2995 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2996
2997         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2998         X64_REGPARM_MAX.
2999         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
3000         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
3001         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
3002         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
3003         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
3004         X64_SSE_REGPARM_MAX.
3005         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
3006         X64_SSE_REGPARM_MAX.
3007
3008 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3009
3010         * gcc.c (report_times_to_file): New.
3011         (execute): Implement it.
3012         (process_command): Support -time=.
3013         * doc/invoke.texi: Document it.
3014
3015 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3016
3017         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
3018         that have value exprs.
3019
3020 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3021
3022         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
3023         declarations for constants until...
3024         (dw2_output_indirect_constant_1): ... this point.
3025
3026 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
3027
3028         PR target/10242
3029         * arm.md (arm_addsi3): Don't try to split an add with an
3030         eliminable register until after reload has completed.
3031
3032 2009-06-03  Ian Lance Taylor  <iant@google.com>
3033
3034         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
3035         * genattrtab.c (write_length_unit_log): Likewise.
3036         * genchecksum.c (dosum): Likewise.
3037         * gengtype.c (write_rtx_next): Likewise.
3038         (finish_root_table, write_roots): Likewise.
3039         * gimple.c (gimple_ops_offset_): Likewise.
3040         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
3041         * config/arc/arc.c (arc_attribute_table): Likewise.
3042         * config/arm/arm.c (arm_attribute_table): Likewise.
3043         * config/avr/avr.c (avr_attribute_table): Likewise.
3044         * config/crx/crx.c (crx_attribute_table): Likewise.
3045         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
3046         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
3047         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
3048         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
3049         * config/sh/sh.c (sh_attribute_table): Likewise.
3050         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
3051         * config/spu/spu.c (spu_attribute_table): Likewise.
3052         * config/v850/v850.c (v850_attribute_table): Likewise.
3053
3054         * config/alpha/alpha.c (vms_attribute_table): Make static.
3055         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
3056         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
3057         * config/mips/mips.c (mips_attribute_table): Likewise.
3058
3059         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
3060         $(SYSTEM_H).
3061         (cc1-checksum.o): Likewise.
3062
3063 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
3064
3065         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
3066
3067 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
3068
3069         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
3070         insn if it is changing sp.  Use gen_add3_insn instead of
3071         conditionally gen_addsi3 and gen_adddi3.
3072         (offset_below_red_zone_p): New static inline function.
3073         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
3074         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
3075         * config/rs6000/ppc-asm.h: Include auto-host.h.
3076         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
3077         CFI_RESTORE): Define.
3078         * config/rs6000/crtresxgpr.asm: Add unwind info.
3079         * config/rs6000/crtresxfpr.asm: Likewise.
3080         * config/rs6000/crtresgpr.asm: Likewise.
3081         * config/rs6000/crtresfpr.asm: Likewise.
3082         * config/rs6000/crtsavgpr.asm: Likewise.
3083         * config/rs6000/crtsavfpr.asm: Likewise.
3084
3085         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
3086         argument of DWARF2_FRAME_REG_OUT macros.
3087
3088 2009-06-03  Julian Brown  <julian@codesourcery.com>
3089
3090         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
3091         words or less (including TImode) in core registers.
3092
3093 2009-06-03  Richard Guenther  <rguenther@suse.de>
3094
3095         PR middle-end/40328
3096         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
3097
3098 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
3099
3100         * statistics.c (statistics_counter_event): Do not record event 
3101         in pass dump if its number == -1.
3102         (curr_statistics_hash): Add assert that we never get passes 
3103         with static number == -1.
3104
3105 2009-06-03  Richard Guenther  <rguenther@suse.de>
3106             Andrey Belevantsev  <abel@ispras.ru>
3107
3108         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
3109         non-BLKmode arrays addressable.
3110
3111 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
3112
3113         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
3114         * config/m68k/m68k.h: ... here.
3115         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
3116         m68k and fido.
3117
3118 2009-06-03  Martin Jambor  <mjambor@suse.cz>
3119
3120         PR tree-optimization/40323
3121         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
3122         assignment.
3123
3124 2009-06-03  Richard Guenther  <rguenther@suse.de>
3125
3126         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3127         consistently.
3128
3129 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
3130
3131         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
3132         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
3133         JUMP_TABLE_DATA_P where applicable.
3134         * config/sh/sh.c: Ditto.
3135         * config/sh/sh.h: Ditto.
3136         * config/sh/sh.md: Ditto.
3137         * config/sh/symbian.c: Ditto.
3138
3139 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
3140
3141         * config/i386/driver-i386.c (describe_cache): Optimize
3142         concatenation of strings.  Use snprintf instead of sprintf.
3143         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
3144         target when not compiling with GCC.
3145
3146 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3147
3148         * config/sh/sh.c: Revert last change.
3149         (sh_expand_epilogue): Emit a blockage insn before the frame
3150         pointer adjustment unconditionally.
3151
3152 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3153
3154         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
3155         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
3156         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
3157         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
3158         to COLLECT_GCC_OPTIONS.
3159
3160 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3161
3162         * collect2.c (target_system_root): New variable.
3163         (main): Handle --sysroot=.
3164         (ignore_library): Strip the sysroot from the library path.
3165
3166 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3167
3168         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
3169         (collect2.o): Depend on collect2-aix.h.
3170         (collect2-aix.o): New rule.
3171         * collect2-aix.h: New file.
3172         * collect2-aix.c: Likewise.
3173         * collect2.c: Include collect2-aix.h.  Don't undefine
3174         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
3175         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
3176         Use TARGET_AIX_VERSION instead of _AIX51.
3177         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
3178         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
3179         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
3180         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
3181         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
3182
3183 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3184
3185         * collect2.c (ignore_library): Avoid premature post-increment
3186         and null deference.
3187
3188 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3189
3190         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
3191         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
3192         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
3193         CROSS_DIRECTORY_STRUCTURE too.
3194         (LINK_LIBG_SPEC): Likewise.
3195         (LIB_SPEC): Add %R to sysroot paths.
3196         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
3197         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
3198         * config/rs6000/aix51.h: As for aix43.h.
3199         * config/rs6000/aix52.h: Likewise.
3200         * config/rs6000/aix53.h: Likewise.
3201         * config/rs6000/aix61.h: Likewise.
3202         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
3203         to the beginning of sysroot paths.
3204
3205 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3206
3207         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
3208         INSN_LISTs that are out of the REG_NOTE range.
3209
3210 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3211
3212         * loop-unroll.c (struct iv_to_split): Add pointer to next.
3213         (struct var_to_expand): Likewise.
3214         (struct opt_info): Add head and tail for linked lists of the above.
3215         (analyze_insn_to_expand_var): Initialize next.
3216         (analyze_iv_to_split_insn): Likewise.
3217         (analyze_insns_in_loop): Create linked lists.
3218         (allocate_basic_variable): Simplify for use without hash table.
3219         (insert_var_expansion_initialization): Likewise, make it type-safer.
3220         (combine_var_copies_in_loop_exit): Likewise.
3221         (apply_opt_in_copies): Walk lists rather than hash tables.
3222         (release_var_copies): Simplified and inlined by hand into...
3223         (free_opt_info): ... this function.
3224
3225 2009-06-02  Richard Guenther  <rguenther@suse.de>
3226
3227         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3228         for field decls.
3229
3230 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3231
3232         * cfgexpand.c (gimple_expand_cfg): Discard the source location
3233         only for builtins that are not overridden.
3234
3235 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3236
3237         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3238         label string.
3239
3240 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3241
3242         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3243
3244 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3245
3246         * combine.c (move_deaths): Compare LUIDs within the same BB only.
3247
3248 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3249
3250         * common.opt (fdump-unnumbered-links): New.
3251         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3252         * print-rtl.c (flag_dump_unnumbered_links): New.
3253         (print_rtx): Test it.
3254
3255 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
3256
3257         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3258         push/pop multiple to 8-byte alignment.
3259
3260 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
3261
3262         * config/i386/i386.c (queued_cfa_restores): New static variable.
3263         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3264         functions.
3265         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3266         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3267         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3268         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3269         note unconditionally.
3270         (ix86_emit_restore_regs_using_mov): Likewise.
3271         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3272         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3273         it through to ix86_emit_restore_reg_using_pop.
3274         (ix86_emit_leave): Add RED_OFFSET argument.  Call
3275         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
3276         instead of adding REG_CFA_OFFSET note unconditionally.
3277         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3278         the above functions.  Call ix86_add_queued_cfa_restore_notes when
3279         needed.
3280
3281         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3282         force output of the label even for dwarf2out_do_cfi_asm.
3283         (add_fde_cfi): If -g2 and above and cfi might change CFA,
3284         force creation of CFI label and chain DW_CFA_set_loc jumping to it
3285         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
3286         caller.
3287         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3288         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3289         dwarf2out_cfi_label callers.
3290         * tree.h (dwarf2out_cfi_label): Adjust prototype.
3291         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3292         Adjust dwarf2out_cfi_label callers.
3293         * config/vax/vax.c (vax_output_function_prologue): Likewise.
3294
3295         * config/i386/i386.h (struct machine_cfa_state,
3296         struct machine_function): Guard with ifndef USED_FOR_TARGET
3297         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3298
3299         PR other/40024
3300         * emutls.c (__emutls_get_address): Change arr->size to mean number
3301         of allocated arr->data entries instead of # of slots + 1.
3302
3303         PR middle-end/40316
3304         * recog.c (peep2_reinit_state): New function.
3305         (peephole2_init_state): Use it at the end of a basic block and also
3306         when seeing a RTX_FRAME_RELATED_P insn.
3307
3308 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
3309
3310         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3311         fixuns_truncrfdi2): New.
3312         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3313         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3314         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3315         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3316         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3317         *recip_approx): Remove.
3318         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3319         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3320         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3321         move to div.md.
3322         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3323         setf_exp_rf): New.
3324
3325 2009-06-01  Ian Lance Taylor  <iant@google.com>
3326
3327         * attribs.c (register_attribute): Use CONST_CAST.
3328         * collect2.c (main): Use CONST_CAST2.
3329         (scan_prog_file): Likewise.
3330         * gcc.c (process_command, main): Likewise.
3331         * toplev.c (toplev_main): Likewise.
3332
3333         * c-typeck.c (handle_warn_cast_qual): New static function,
3334         partially broken out of build_c_cast.
3335         (build_c_cast): Call handle_warn_cast_qual.
3336         * doc/invoke.texi (Warning Options): Document new effect of
3337         -Wcast-qual.
3338
3339 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
3340
3341         * diagnostic.c (diagnostic_build_prefix): Always print columns.
3342         (diagnostic_report_current_module): Print columns.
3343         * common.opt (flag_show_column): Enable by default.
3344
3345 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
3346
3347         * alias.c (find_base_term): Check for NULL term before returning.
3348
3349 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3350
3351         Revert due to PR40320:
3352         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3353         * calls.c (emit_library_call_value_1): Don't force_operand for move
3354         and push insns.
3355
3356 2009-06-01  Olivier Hainque  <hainque@adacore.com>
3357             Eric Botcazou  <ebotcazou@adacore.com>
3358
3359         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3360         to be processed as a bitfield for constructor output purposes.
3361         * output.h (initializer_constant_valid_for_bitfield_p): Declare
3362         new function.
3363         * varasm.c (oc_local_state): New type, output_constructor
3364         local state to support communication with helpers.
3365         (oc_outer_state): New type, output_constructor outer state of
3366         relevance in recursive calls.
3367         (output_constructor_array_range): New output_constructor helper,
3368         extracted code for an array range element.
3369         (output_constructor_regular_field): New output_constructor helper,
3370         extracted code for an element that is not a bitfield.
3371         (output_constructor_bitfield): New output_constructor helper,
3372         extracted code for a bitfield element.  Accept an OUTER state
3373         argument for recursive processing.  Recurse on record or array
3374         CONSTRUCTOR values, possibly past noop conversions.
3375         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
3376         VALUE is a valid constant-valued expression for use in a static
3377         bit-field initializer.
3378         (output_constructor): Rework to use helpers.  Accept and honor an
3379         OUTER state argument for recursive calls.  Return total size.  Be
3380         prepared for nested constructors initializing bitfields.
3381         (output_constant): Feed OUTER in calls to output_constructor.
3382
3383 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3384
3385         * calls.c (emit_library_call_value_1): Don't force_operand for move
3386         and push insns.
3387
3388 2009-06-01  Nick Clifton  <nickc@redhat.com>
3389
3390         * doc/invoke.texi (IA-64 Options): Fix typo.
3391
3392 2009-06-01  Ira Rosen  <irar@il.ibm.com>
3393
3394         PR tree-optimization/39129
3395         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
3396         printed message.
3397         (vect_do_peeling_for_loop_bound): Use 
3398         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3399         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3400         (vect_loop_versioning): Likewise.
3401         (vect_create_cond_for_alias_checks): Fix indentation.
3402         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
3403         macros.
3404         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
3405         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
3406         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
3407         "control flow in loop".
3408         (vect_estimate_min_profitable_iters): Use 
3409         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3410         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3411         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
3412         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
3413         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
3414         statement belongs to a group of strided accesses with the exact code 
3415         check.
3416         (vectorizable_load): Likewise.
3417         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
3418         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3419
3420 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
3421
3422         * config/freebsd-stdint.h: New file.
3423         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
3424         Add freebsd-stdint.h to tm_file.
3425
3426 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
3427
3428         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
3429         (thumb2_extendhidi2): Likewise.
3430
3431 2009-05-31  Ian Lance Taylor  <iant@google.com>
3432
3433         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
3434
3435 2009-05-31  Ian Lance Taylor  <iant@google.com>
3436
3437         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
3438         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
3439         (ipa-reference.o): Depend upon gt-ipa-reference.h.
3440
3441 2009-05-31  Jason Merrill  <jason@redhat.com>
3442
3443         * tree-pretty-print.c (print_call_name): Take the callee, not the
3444         call itself.  Make non-static.  Use dump_function_name for functions.
3445         (dump_generic_node): Adjust.
3446         * diagnostic.h: Declare print_call_name.
3447         * gimple-pretty-print.c (dump_gimple_call): Use it.
3448
3449 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3450
3451         * config/sh/sh.md (ashldi3_std): New define_expand.
3452         (ashldi3): Use it.
3453
3454 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3455
3456         PR target/40313
3457         * config/sh/sh.c: Include debug.h.
3458         (sh_expand_epilogue): Emit a blockage insn before the frame
3459         pointer adjustment also when dwarf2out_do_frame returns true.
3460
3461 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
3462
3463         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3464         (thumb2_extendqidi2): New pattern.
3465
3466 2009-05-31  Ira Rosen  <irar@il.ibm.com>
3467
3468         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3469         mark phis for renaming.
3470         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3471         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3472         Call mark_sym_for_renaming.
3473         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
3474         * tree-vect-loop.c (vect_transform_loop): Remove
3475         vect_memsyms_to_rename initialization and a call to
3476         mark_set_for_renaming.
3477
3478 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
3479
3480         PR middle-end/40304
3481         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3482         frame related even if !set_cfa && style < 0.
3483
3484 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
3485
3486         * config/i386/mingw-tls.c: New file.
3487         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3488         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3489         defining _WIN32 but not __CYGWIN__.
3490
3491 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3492
3493         * configure.ac: Add MPC support.
3494         
3495         * config.in, configure: Regenerate.     
3496
3497 2009-05-29  Richard Henderson  <rth@redhat.com>
3498
3499         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3500         NOTE_INSN_BASIC_BLOCK.
3501         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3502         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3503         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3504         to be deleted.
3505         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3506         add in_use field.
3507         (add_cfi): Disable check redefining cfa away from drap.
3508         (lookup_cfa_1): Add remember argument; handle remember/restore.
3509         (lookup_cfa): Pass remember argument.
3510         (cfa_remember): New.
3511         (compute_barrier_args_size_1): Remove sibcall check.
3512         (dwarf2out_frame_debug_def_cfa): New.
3513         (dwarf2out_frame_debug_adjust_cfa): New.
3514         (dwarf2out_frame_debug_cfa_offset): New.
3515         (dwarf2out_frame_debug_cfa_register): New.
3516         (dwarf2out_frame_debug_cfa_restore): New.
3517         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3518         (dwarf2out_begin_epilogue): New.
3519         (dwarf2out_frame_debug_restore_state): New.
3520         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3521         DW_CFA_restore_state.
3522         (output_cfi_directive): Likewise.
3523         (convert_cfa_to_fb_loc_list): Likewise.
3524         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3525         * dwarf2out.h: Update.
3526         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3527         (copy_insn_1): Early out for null.
3528         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3529         and dwarf2out_frame_debug_restore_state.
3530         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3531         (prologue_insn_hash, epilogue_insn_hash): New.
3532         (free_after_compilation): Adjust freeing accordingly.
3533         (record_insns): Create hash table if needed; push insns into
3534         hash instead of array.
3535         (maybe_copy_epilogue_insn): New.
3536         (contains): Search hash table instead of array.
3537         (sibcall_epilogue_contains): Remove.
3538         (thread_prologue_and_epilogue_insns): Split eh_return insns
3539         and mark them as epilogues.
3540         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3541         scanning in terms of basic blocks.
3542         * insn-notes.def (CFA_RESTORE_STATE): New.
3543         * jump.c (returnjump_p_1): Accept EH_RETURN.
3544         (eh_returnjump_p_1, eh_returnjump_p): New.
3545         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3546         CFA_REGISTER, CFA_RESTORE): New.
3547         * rtl.def (EH_RETURN): New.
3548         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3549
3550         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3551         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3552
3553         * config/i386/i386.c (gen_push): Update cfa state.
3554         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
3555         add a CFA_ADJUST_CFA note.
3556         (ix86_dwarf_handle_frame_unspec): Remove.
3557         (ix86_expand_prologue): Update cfa state.
3558         (ix86_emit_restore_reg_using_pop): New.
3559         (ix86_emit_restore_regs_using_pop): New.
3560         (ix86_emit_leave): New.
3561         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3562         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3563         * config/i386/i386.h (struct machine_cfa_state): New.
3564         (ix86_cfa_state): New.
3565         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3566         (eh_return_internal): Merge from eh_return_<mode>,
3567         use eh_return rtx, split w/ epilogue.
3568
3569 2009-05-29  Ian Lance Taylor  <iant@google.com>
3570
3571         * builtins.c (validate_gimple_arglist): Don't use va_arg with
3572         enum type.
3573         * calls.c (emit_library_call_value_1): Likewise.
3574
3575         * c-typeck.c (c_build_va_arg): New function.
3576         * c-tree.h (c_build_va_arg): Declare.
3577         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3578         instead of build_va_arg.
3579
3580 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3581
3582         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3583         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3584         (ptr_difference_cost): Use affine combinations to compute it.
3585         (difference_cost): Likewise.
3586         (get_computation_cost_at): Compute more accurate cost for addresses
3587         if the ratio is a multiplier allowed in addresses.
3588         For non-addresses, consider that an additional offset or symbol is
3589         added only once.
3590
3591 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3592
3593         * config/i386/i386.c (ix86_decompose_address): Avoid useless
3594         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
3595
3596         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3597         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3598         (prefix_rex): For UNIT_MMX don't imply the prefix by default
3599         if MODE_DI.
3600         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3601         to 1 for TYPE_SSE{IADD1,CVT1}.
3602         (prefix_vex_imm8): Removed.
3603         (length_vex): Only pass 1 as second argument to
3604         ix86_attr_length_vex_default if prefix_extra is 0.
3605         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3606         (length): For prefix vex computation use length_immediate
3607         attribute instead of prefix_vex_imm8.
3608         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3609         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3610         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3611         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3612         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3613         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3614         a space in between the operands.
3615         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
3616         if one operand is 0xff and the other one si, di, bp or sp.
3617         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3618         other one si, di, bp or sp.
3619         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3620         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3621         type and mode attributes.
3622         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3623         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3624         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3625         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3626         prefix_data16 attribute iff MODE_DF.
3627         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3628         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3629         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3630         constm128_operand in length_immediate computation.
3631         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
3632         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3633         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3634         length_immediate attribute to 1.
3635         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3636         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3637         for certain alternatives.
3638         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3639         prefix_data16 attribute if MODE_V1DF.
3640         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3641         length_immediate to 1.
3642         (set_got_rex64, set_rip_rex64): Remove length attribute, set
3643         length_address to 4, set mode attribute to MODE_DI.
3644         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
3645         (fxam<mode>2_i387): Set length attribute to 4.
3646         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3647         *prefetch_3dnow_rex): Override length_address attribute.
3648         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3649         attributes.
3650         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3651         (constm128_operand): Removed.
3652         * config/i386/i386.c (memory_address_length): For
3653         disp && !index && !base in 64-bit mode account for SIB byte if
3654         print_operand_address can't optimize disp32 into disp32(%rip)
3655         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
3656         for fs: or gs: segment.
3657         (ix86_attr_length_immediate_default): When checking if shortform
3658         is possible, truncate immediate to the length of the non-shortened
3659         immediate.
3660         (ix86_attr_length_address_default): Ignore MEM_P operands
3661         with X constraint.
3662         (ix86_attr_length_vex_default): Only check for DImode on
3663         GENERAL_REG_P operands.
3664         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3665         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3666         (sse_cvttps2pi): Clear prefix_rep attribute.
3667         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3668         attribute.
3669         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3670         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3671         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3672         iff operand 2 is const_int_operand.
3673         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3674         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3675         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
3676         instead of vex.
3677         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3678         prefix_data16.
3679         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3680         prefix_data16 attribute for movlpd and movhpd instructions.
3681         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
3682         length_immediate for shufpd instruction.
3683         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3684         (avx_cmpp<avxmodesuffixf2c><mode>3,
3685         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3686         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3687         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
3688         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
3689         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3690         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3691         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3692         prefix_data16 attribute for the first alternative to 1.
3693         (*avx_loadlps): Override length_immediate for the first alternative.
3694         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3695         attributes for second alternative.
3696         (*vec_concatv2sf_sse4_1): Override length_immediate and
3697         prefix_data16 attributes for second alternative.
3698         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3699         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3700         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3701         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3702         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3703         prefix_data16 and length_immediate to 1.
3704         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3705         to 1.
3706         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
3707         prefix_extra attribute for variants that don't have 0f prefix alone.
3708         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
3709         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3710         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3711         *sse4_1_pextrd): Set length_immediate to 1.
3712         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
3713         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3714         to 1.
3715         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3716         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3717         length_immediate to 1 for second alternative.
3718         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3719         prefix_extra and length_immediate attributes for the first
3720         alternative.
3721         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3722         first alternative.
3723         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
3724         to 1 for the first and third alternative.
3725         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3726         alternative.
3727         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3728         attribute.
3729         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3730         attribute to 0.
3731         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3732         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3733         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3734         *avx_psign<mode>3): Set prefix_extra attribute to 1.
3735         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3736         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3737         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3738         ssse3_psign<mode>3): Override prefix_rex attribute.
3739         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
3740         (ssse3_palignrti): Override length_immediate to 1.
3741         (ssse3_palignrdi): Override length_immediate to 1, override
3742         prefix_rex attribute.
3743         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
3744         (sse4a_extrqi): Override length_immediate to 2.
3745         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
3746         (sse4a_insertq): Override prefix_data16 to 0.
3747         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3748         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3749         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3750         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3751         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3752         and length_immediate to 1.
3753         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3754         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3755         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3756         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3757         and length_immediate to 1.
3758         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3759         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3760         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3761         avx_ptest256): Override prefix_extra to 1.
3762         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3763         Override prefix_data16 and length_immediate to 1.
3764         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3765         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3766         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3767         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3768         prefix_data16 to 0 and prefix_extra to 2.
3769         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3770         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3771         attribute.
3772         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3773         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3774         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3775         and prefix_extra to 2.
3776         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3777         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3778         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3779         avx_vpermilvar<mode>3,
3780         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3781         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3782         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3783         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3784         Override prefix_extra to 1.
3785         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3786         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3787         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3788         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3789         prefix_extra and length_immediate to 1.
3790         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3791         modrm to 0.
3792         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3793         to 1 for the first alternative.
3794         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3795         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3796         cases.
3797         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3798         *movv2sf_internal_avx, *movv2sf_internal): Override
3799         prefix_rep attribute for certain alternatives.
3800         (*mov<mode>_internal): Override prefix_rep or prefix_data16
3801         attributes for certain alternatives.
3802         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3803         attributes for certain alternatives.
3804         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3805         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3806         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3807         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3808         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3809         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3810         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3811         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3812         length_immediate to 1 if operand 2 is const_int_operand.
3813         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
3814         *vec_extractv2si_1): Set length_immediate attribute to 1.
3815         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3816         using old 3DNOW insn rather than SSE/3DNOW_A.
3817         (mmx_emms, mmx_femms): Clear modrm attribute.
3818
3819 2009-05-29  Martin Jambor  <mjambor@suse.cz>
3820
3821         * tree-sra.c:  New implementation of SRA.
3822
3823         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3824         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3825         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3826         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3827         (SRA_MAX_STRUCTURE_COUNT): Removed.
3828         (SRA_FIELD_STRUCTURE_RATIO): Removed.
3829         * doc/invoke.texi (sra-max-structure-size): Removed.
3830         (sra-field-structure-ratio): Removed.
3831
3832 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3833
3834         PR middle-end/40291
3835         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3836         before expansion.
3837
3838 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
3839
3840         PR rtl-optimization/40101
3841         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3842         seqno.  Adjust comment.
3843         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
3844         inserting bookkeeping before a jump, the jump is not scheduled.
3845         When no positive seqno found, provide a value.  Add comment.
3846
3847 2009-05-29  Richard Guenther  <rguenther@suse.de>
3848
3849         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3850         short-cutting on the first component.
3851
3852 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3853
3854         PR middle-end/39958
3855         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3856         for trees other than decls/types.
3857
3858 2009-05-29  Richard Guenther  <rguenther@suse.de>
3859
3860         * tree-ssa-operands.c (get_expr_operands): Do not handle
3861         INDIRECT_REFs in the handled-component case.  Remove
3862         unused get_ref_base_and_extent case.
3863         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3864         tree_low_cst and host_integerp where possible.
3865         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3866         codes for equivalence.
3867         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3868
3869 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
3870
3871         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3872         to tmake_file for i[34567]86-*-cygwin*. 
3873
3874 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3875
3876         PR target/40017
3877         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3878         (altivec_categorize_keyword, init_vector_keywords,
3879         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3880         similar to bool.
3881
3882 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
3883
3884         * tree.c (handle_dll_attribute): Check if node is
3885         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3886
3887 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
3888
3889         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3890         component.
3891         (thumb2_zero_extendqidi2): Likewise.
3892
3893 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3894
3895         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3896         instead of gen_movrt.
3897         * config/sh/sh.md (movrt): Remove.
3898
3899 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
3900
3901         * doc/invoke.texi (IA-64 Options):
3902         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
3903         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3904         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3905         -msched-prefer-non-control-spec-insns,
3906         -msched-stop-bits-after-every-cycle,
3907         -msched-count-spec-in-critical-path,
3908         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
3909         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
3910         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3911         and -msched-spec-verbose.
3912
3913 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
3914
3915         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
3916         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3917         error if used.
3918         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3919
3920 2009-05-28  Richard Guenther  <rguenther@suse.de>
3921
3922         * tree-ssa-alias.c (ao_ref_init): New function.
3923         (ao_ref_base): Likewise.
3924         (ao_ref_base_alias_set): Likewise.
3925         (ao_ref_alias_set): Likewise.
3926         (refs_may_alias_p_1): Change signature.
3927         (refs_may_alias_p): Adjust.
3928         (refs_anti_dependent_p): Likewise.
3929         (refs_output_dependent_p): Likewise.
3930         (call_may_clobber_ref_p_1): Change signature.
3931         (call_may_clobber_ref_p): Adjust.
3932         (stmt_may_clobber_ref_p_1): New function split out from ...
3933         (stmt_may_clobber_ref_p): ... here.
3934         (maybe_skip_until): Adjust signature.
3935         (get_continuation_for_phi): Likewise.
3936         (walk_non_aliased_vuses): Likewise.
3937         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3938         (ao_ref_init): Declare.
3939         (ao_ref_base): Likewise.
3940         (ao_ref_alias_set): Likewise.
3941         (stmt_may_clobber_ref_p_1): Likewise.
3942         (walk_non_aliased_vuses): Adjust.
3943         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3944         (get_ref_from_reference_ops): remove.
3945         (vn_reference_lookup_2): Adjust signature.
3946         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
3947         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3948         (vn_reference_lookup): Adjust.
3949         (vn_reference_insert): Likewise.
3950         (vn_reference_insert_pieces): Adjust signature.
3951         (visit_reference_op_call): Adjust.
3952         * tree-ssa-pre.c (get_expr_type): Simplify.
3953         (phi_translate_1): Adjust.
3954         (compute_avail): Likewise.
3955         (translate_vuse_through_block): Do not re-build trees.
3956         (value_dies_in_block_x): Likewise.
3957         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3958         fields.
3959         (vn_reference_lookup_pieces): Adjust declaration.
3960         (vn_reference_insert_pieces): Likewise.
3961
3962 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
3963
3964         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3965         with checking disabled.
3966
3967 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
3968
3969         PR target/37216
3970
3971         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
3972         macro definition for support of three-operand format aligned
3973         .comm directive in assembler on cygwin/pe/mingw target OS.
3974         * configure:  Regenerate.
3975         * config.h:  Regenerate.
3976
3977         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
3978         aligned form of .comm directive if -mpe-aligned-commons is in effect.
3979         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
3980
3981         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
3982         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
3983
3984 2009-05-28  Ira Rosen  <irar@il.ibm.com>
3985
3986         PR tree-optimization/40254
3987         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3988         in analysis of basic blocks.
3989
3990 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
3991
3992         PR middle-end/33699
3993         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
3994         * target-def.h (TARGET_CONST_ANCHOR): New macro.
3995         (TARGET_INITIALIZER): Use it.
3996         * cse.c (CHEAPER): Move it up to the other macros.
3997         (insert): Rename this ...
3998         (insert_with_costs): ... to this.  Add cost parameters.  Update
3999         function comment.
4000         (insert): New function.  Call insert_with_costs.
4001         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
4002         find_reg_offset_for_const, try_const_anchors): New functions.
4003         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
4004         when using a const-anchor.  Call insert_const_anchors.
4005         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
4006         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
4007
4008 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
4009
4010         * tree-inline.c (remap_decls): Enable nonlocalized variables
4011         when not optimizing.
4012
4013 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
4014
4015         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
4016         Simplify other tests involving optimize.
4017
4018 2009-05-27  Tom Tromey  <tromey@redhat.com>
4019
4020         * unwind-dw2.c (_Unwind_DebugHook): New function.
4021         (uw_install_context): Call _Unwind_DebugHook.
4022
4023 2009-05-27  Tom Tromey  <tromey@redhat.com>
4024
4025         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
4026
4027 2009-05-27  Ian Lance Taylor  <iant@google.com>
4028
4029         * Makefile.in (LINKER, LINKER_FLAGS): Define.
4030         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
4031         (ALL_LINKERFLAGS): Define.
4032         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
4033         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
4034         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
4035         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
4036         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
4037         $(LINKER_FOR_BUILD).
4038         (build/gcov-iov$(build_exeext)): Likewise.
4039
4040 2009-05-27  Julian Brown  <julian@codesourcery.com>
4041
4042         * gcse.c (target.h): Include.
4043         (can_assign_to_reg_without_clobbers_p): Check that the target allows
4044         copy of argument to a pseudo register.
4045
4046 2009-05-27  Diego Novillo  <dnovillo@google.com>
4047
4048         * tree-ssa-live.c (dump_scope_block): Document arguments.
4049         (dump_scope_blocks): Document.
4050         (debug_scope_blocks): New.
4051         * tree-flow.h (debug_scope_blocks): Declare.
4052
4053 2009-05-21  Denis Chertykov  <denisc@overta.ru>
4054
4055         * doc/contrib.texi (Contributors): Add myself to the list.
4056
4057 2009-05-27  Olivier Hainque  <hainque@adacore.com>
4058
4059         * expr.c (target_align): New function.  Alignment the TARGET of an
4060         assignment may be assume to have.
4061         (highest_pow2_factor_for_target): Use it instead of relying on
4062         immediate tree attributes of TARGET, not necessarily honored when
4063         intermediate bitfields are involved.
4064         
4065 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
4066
4067         PR target/40266
4068         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4069         AVX, SSE4, AES, PCLMUL and POPCNT.
4070
4071 2009-05-27  Diego Novillo  <dnovillo@google.com>
4072
4073         * tree-pretty-print.c (dump_location): New.
4074         (dump_generic_node): Call it.
4075         Factor code to handle BLOCK nodes ...
4076         (dump_block_node): ... here.
4077
4078 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
4079
4080         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
4081         with it.
4082         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
4083         included.
4084         * gcc-plugin.h: Include config.h and system.h.
4085         (IN_GCC): Define if not defined.
4086
4087 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
4088
4089         PR middle-end/40249
4090         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
4091         with -fno-inline.
4092
4093 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
4094
4095         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
4096         applicable.
4097         * config/m32r/m32r.h: Ditto.
4098         * config/m32r/m32r.md: Ditto.
4099         * config/m32r/predicates.md: Ditto.
4100
4101 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
4102
4103         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
4104
4105 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
4106
4107         * doc/plugins.texi
4108         (Loading plugins): typo.
4109         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
4110         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
4111         (Interacting with the GCC Garbage Collector): Added new section.
4112         (Giving information about a plugin): Added new section for
4113         PLUGIN_INFO.
4114         * ggc.h (ggc_register_root_tab): Added declaration.
4115         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
4116         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
4117         (register_callback): Improved comment in declaration.
4118         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
4119         (extra_root_vec) Added static variable for dynamic roots registration.
4120         (ggc_register_root_tab) Added new routine.
4121         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
4122         PLUGIN_GGC_MARKING event.
4123         * ggc-zone.c: Include plugin.h.
4124         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
4125         * ggc-page.c: Include plugin.h.
4126         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
4127         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
4128         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
4129         (register_callback): check lack of callbacks for
4130         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
4131         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
4132         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
4133         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
4134         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
4135         dependency on plugin.h.
4136         (plugin.o): Added dependency on ggc.h...
4137
4138 2009-05-26  Richard Guenther  <rguenther@suse.de>
4139
4140         PR middle-end/40248
4141         Revert
4142         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4143         with mismatched comparison modes.
4144
4145         * expr.c (expand_expr_real_1): Expand the operand of a
4146         VIEW_CONVERT_EXPR in its natural mode.
4147
4148 2009-05-26  Ian Lance Taylor  <iant@google.com>
4149
4150         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
4151         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
4152         (ALL_COMPILERFLAGS): Define.
4153         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
4154         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
4155         (collect2$(exeext), collect2.o): Likewise.
4156         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
4157         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
4158         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
4159         (libbackend.o, intl.o, cppdefault.o): Likewise.
4160         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
4161         (build/%.o): Use $(COMPILER_FOR_BUILD).
4162         (build/gen%$(build_exeext)): Likewise.
4163         (build/gcov-iov$(build_exeext)): LIkewise.
4164         * config/t-darwin (darwin.o): Use $(COMPILER).
4165         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
4166         * config/t-sol2 (sol2-c.o): Likewise.
4167         (sol2.o): Likewise.
4168         * config/t-vxworks (vxworks.o): Likewise.
4169         * config/x-darwin (host-darwin.o): Likewise.
4170         * config/x-hpux (host-hpux.o): Likewise.
4171         * config/x-linux (host-linux.o): Likewise.
4172         * config/x-solaris (host-solaris.o): Likewise.
4173         * config/alpha/x-alpha (driver-alpha.o): Likewise.
4174         * config/arm/t-arm (arm-c.o): Likewise.
4175         * config/arm/t-pe (pe.o): Likewise.
4176         * config/arm/t-wince-pe (pe.o): Likewise.
4177         * config/i386/t-cygming (winnt.o): Likewise.
4178         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
4179         * config/i386/t-cygwin (cygwin1.o): Likewise.
4180         (cygwin2.o): Likewise.
4181         * config/i386/t-i386 (i386-c.o): Likewise.
4182         * config/i386/t-interix (winnt.o): Likewise.
4183         * config/i386/t-netware (netware.o): Likewise.
4184         * config/i386/t-nwld (nwld.o): Likewise.
4185         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
4186         * config/i386/x-i386 (driver-i386.o): Likewise.
4187         * config/i386/x-cygwin (host-cygwin.o): Likewise.
4188         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
4189         * config/ia64/t-ia64 (ia64-c.o): Likewise.
4190         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
4191         * config/mips/x-native (driver-native.o): Likewise.
4192         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
4193         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
4194         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
4195         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
4196         * config/score/t-score-elf (score7.o): Likewise.
4197         (score3.o): Likewise.
4198         * config/sh/t-sh (sh-c.o): Likewise.
4199         * config/sh/t-symbian (sh-c.o): Likewise.
4200         (symbian.o): Likewise.
4201         * config/spu/t-spu-elf (spu-c.o): Likewise.
4202         * config/v850/t-v850 (v850-c.o): Likewise.
4203         * config/v850/t-v850e (v850-c.o): Likewise.
4204
4205 2009-05-26  Richard Guenther  <rguenther@suse.de>
4206
4207         PR tree-optimization/40122
4208         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
4209         VECTOR_CSTs if possible.
4210         (fold_gimple_assign): Likewise.
4211
4212 2009-05-26  Richard Guenther  <rguenther@suse.de>
4213
4214         PR middle-end/40252
4215         * fold-const.c (fold_binary): Use the correct types for building
4216         rotates.
4217
4218 2009-05-26  Richard Guenther  <rguenther@suse.de>
4219
4220         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
4221         redundant calls to merge_alias_info.
4222         (bump_vector_ptr): Likewise.
4223         * tree-ssa-copy.c (merge_alias_info): Remove.
4224         (replace_exp_1): Remove call to merge_alias_info.
4225         (propagate_tree_value): Likewise.
4226         (fini_copy_prop): Propagate points-to info.
4227         * tree-flow.h (merge_alias_info): Remove.
4228
4229 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
4230
4231         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
4232
4233 2009-05-25  Jan Hubicka  <jh@suse.cz>
4234
4235         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4236         * cgraph.h (struct inline_summary): New filed self_wize,
4237         size_inlining_benefit, self_time and time_inlining_benefit.
4238         (struct cgraph_global_info): Replace insns by time ans size fields.
4239         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4240         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4241         (ipcp_update_callgraph): Do not touch function bodies.
4242         * ipa-inline.c: Include except.h
4243         (MAX_TIME): New constant.
4244         (overall_insns): Remove.
4245         (leaf_node_p): New.
4246         (overall_size, max_benefit): New static variables.
4247         (cgraph_estimate_time_after_inlining): New function.
4248         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4249         (cgraph_clone_inlined_nodes): Update size.
4250         (cgraph_mark_inline_edge): Update size.
4251         (cgraph_estimate_growth): Use size info.
4252         (cgraph_check_inline_limits): Check size.
4253         (cgraph_default_inline_p): Likewise.
4254         (cgraph_edge_badness): Compute badness based on benefit and size cost.
4255         (cgraph_decide_recursive_inlining): Check size.
4256         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4257         and times.
4258         (cgraph_decide_inlining): Likewise.
4259         (cgraph_decide_inlining_incrementally): Likewise; honor
4260         PARAM_EARLY_INLINING_INSNS.
4261         (likely_eliminated_by_inlining_p): New predicate.
4262         (estimate_function_body_sizes): New function.
4263         (compute_inline_parameters): Use it.
4264         * except.c (must_not_throw_labels): New function.
4265         * except.h (must_not_throw_labels): Declare.
4266         * tree-inline.c (init_inline_once): Kill inlining_weigths
4267         * tree-ssa-structalias.c: Avoid uninitialized warning.
4268         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4269         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4270         (PARAM_INLINE_CALL_COST): Remove.
4271         (PARAM_EARLY_INLINING_INSNS): New.
4272
4273 2009-05-25  Richard Guenther  <rguenther@suse.de>
4274
4275         PR tree-optimization/36327
4276         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
4277         callback for reference translation or lookup at the point of may-defs.
4278         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
4279         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
4280         for union COMPONENT_REFs.
4281         (vn_reference_lookup_3): New callback.  Lookup from memset
4282         and CONSTRUCTOR assignment, translate through struct copies.
4283         (vn_reference_lookup_pieces): Make sure to not free the
4284         passed operands array.  Adjust walk_non_aliased_vuses call.
4285         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
4286         make sure we do not leak memory.
4287
4288 2009-05-25  Richard Guenther  <rguenther@suse.de>
4289
4290         * tree-ssa-alias.h (dump_points_to_solution): Declare.
4291         * tree-inline.c (expand_call_inline): Reset the escaped and
4292         callused solutions.
4293         * tree-ssa-structalias.c (pass_build_ealias): New.
4294         * tree-pass.h (pass_build_ealias): Declare.
4295         * passes.c (init_optimization_passes): Add PTA during 
4296         early optimizations.
4297         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
4298         and CALLUSED solutions.
4299         (dump_points_to_solution): New function, split out from ...
4300         (dump_points_to_info_for): ... here.
4301         * tree-parloops.c (parallelize_loops): Reset the escaped and
4302         callused solutions.
4303
4304 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4305
4306         PR bootstrap/40027
4307         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
4308         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
4309
4310 2009-05-25  Ira Rosen  <irar@il.ibm.com>
4311
4312         PR tree-optimization/40238
4313         * tree-vect-stmts.c (vect_init_vector): Insert initialization
4314         statements after basic block's labels.
4315         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
4316         to free the allocated memory.
4317
4318 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4319
4320         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
4321         return address with a USE.
4322
4323 2009-05-24  Richard Guenther  <rguenther@suse.de>
4324
4325         PR middle-end/40233
4326         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
4327         array type from the main variant of the inner type.
4328
4329 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4330
4331         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
4332         definition to bool (from int) to un-break build.
4333         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
4334
4335 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
4336
4337         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
4338         discard_stmt_changes): Delete.
4339         * tree-ssa-operands.c (scb_stack): Delete.
4340         (init_ssa_operands): Do not initialize it.
4341         (fini_ssa_operands): Do not free it.
4342         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
4343
4344         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
4345         update_stmt, remove the others.  Fix comments.
4346         * tree-dfa.c (optimize_stack_restore): Likewise.
4347         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
4348         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
4349         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4350         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
4351         Likewise.
4352         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
4353         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
4354         (dom_opt_finalize_block): Likewise, adjusting access to
4355         stmts_to_rescan.
4356         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
4357         (stmts_to_rescan): Change item type to gimple.
4358         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
4359
4360 2009-05-24  Ira Rosen  <irar@il.ibm.com>
4361
4362         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
4363         * tree-pass.h (pass_slp_vectorize): New pass.
4364         * params.h (SLP_MAX_INSNS_IN_BB): Define.
4365         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
4366         * tree-vectorizer.c (timevar.h): Include.
4367         (user_vect_verbosity_level): Declare.
4368         (vect_location): Fix comment.
4369         (vect_set_verbosity_level): Update user_vect_verbosity_level
4370         instead of vect_verbosity_level.
4371         (vect_set_dump_settings): Add an argument. Ignore user defined
4372         verbosity if dump flags require higher level of verbosity. Print to
4373         stderr only for loop vectorization.
4374         (vectorize_loops): Update call to vect_set_dump_settings.
4375         (execute_vect_slp): New function.
4376         (gate_vect_slp): Likewise.
4377         (struct gimple_opt_pass pass_slp_vectorize): New.
4378         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
4379         access its members.
4380         (vec_info_for_bb): New function.
4381         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
4382         (VECTORIZATION_ENABLED): New macro.
4383         (SLP_ENABLED, SLP_DISABLED): Likewise.
4384         (vect_is_simple_use): Add bb_vec_info argument.
4385         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
4386         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
4387         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
4388         vect_schedule_slp, vect_analyze_slp): Likewise.
4389         (vect_analyze_stmt): Add slp_tree argument.
4390         (find_bb_location): Declare.
4391         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4392         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
4393         (vect_analyze_loop_operations, vect_analyze_loop,
4394         get_initial_def_for_induction, vect_create_epilog_for_reduction,
4395         vect_finalize_reduction, vectorizable_reduction,
4396         vectorizable_live_operation, vect_transform_loop): Likewise.
4397         * tree-data-ref.c (dr_analyze_innermost): Update comment,
4398         skip evolution analysis if analyzing a basic block.
4399         (dr_analyze_indices): Likewise.
4400         (initialize_data_dependence_relation): Skip the test whether the
4401         object is invariant for basic blocks.
4402         (compute_all_dependences): Skip dependence analysis for data
4403         references in basic blocks.
4404         (find_data_references_in_stmt): Don't fail in case of invariant
4405         access in basic block.
4406         (find_data_references_in_bb): New function.
4407         (find_data_references_in_loop): Move code to
4408         find_data_references_in_bb and add a call to it.
4409         (compute_data_dependences_for_bb): New function.
4410         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
4411         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
4412         that STEP is 0.
4413         (vect_analyze_data_ref_dependence): Check for interleaving in case of
4414         unknown dependence in basic block and fail in case of dependence in
4415         basic block.
4416         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
4417         dependence instances from either loop or basic block vectorization
4418         info.
4419         (vect_compute_data_ref_alignment): Check if it is loop vectorization
4420         before calling nested_in_vect_loop_p.
4421         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
4422         dependence instances from either loop or basic block vectorization
4423         info.
4424         (vect_verify_datarefs_alignment): Likewise.
4425         (vect_enhance_data_refs_alignment): Adjust function calls.
4426         (vect_analyze_data_refs_alignment): Likewise.
4427         (vect_analyze_group_access): Fix printing. Skip different checks if
4428         DR_STEP is 0. Keep strided stores either in loop or basic block
4429         vectorization data structure. Fix indentation.
4430         (vect_analyze_data_ref_access): Fix comments, allow zero step in
4431         basic blocks.
4432         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
4433         dependence instances from either loop or basic block vectorization
4434         info.
4435         (vect_analyze_data_refs): Update comment. Call
4436         compute_data_dependences_for_bb to analyze basic blocks.
4437         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
4438         case of loop vectorization. In case of basic block vectorization use
4439         data-ref itself as a base.
4440         (vect_create_data_ref_ptr): In case of basic block vectorization:
4441         don't advance the pointer, add new statements before the current
4442         statement.  Adjust function calls.
4443         (vect_supportable_dr_alignment): Support only aligned accesses in
4444         basic block vectorization.
4445         * common.opt (ftree-slp-vectorize): New flag.
4446         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
4447         (vect_pattern_recog_1): Likewise.
4448         * tree-vect-stmts.c (process_use): Likewise.
4449         (vect_init_vector): Add new statements in the beginning of the basic
4450         block in case of basic block SLP.
4451         (vect_get_vec_def_for_operand): Adjust function calls.
4452         (vect_finish_stmt_generation): Likewise.
4453         (vectorizable_call): Add assert that it is loop vectorization, adjust
4454         function calls.
4455         (vectorizable_conversion, vectorizable_assignment): Likewise.
4456         (vectorizable_operation): In case of basic block SLP, take
4457         vectorization factor from statement's type and skip the relevance
4458         check. Adjust function calls.
4459         (vectorizable_type_demotion): Add assert that it is loop
4460         vectorization, adjust function calls.
4461         (vectorizable_type_promotion): Likewise.
4462         (vectorizable_store): Check for outer loop only in case of loop
4463         vectorization. Adjust function calls. For basic blocks, skip the
4464         relevance check and don't advance pointers.
4465         (vectorizable_load): Likewise.
4466         (vectorizable_condition): Add assert that it is loop vectorization,
4467         adjust function calls.
4468         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
4469         that it is not reduction, get vector type, call only supported
4470         functions, skip loop specific parts.
4471         (vect_transform_stmt): Check for outer loop only in case of loop
4472         vectorization.
4473         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
4474         (vect_is_simple_use): Fix comment, add new argument, fix conditions
4475         for external definition.
4476         * passes.c (pass_slp_vectorize): New pass.
4477         * tree-vect-slp.c (find_bb_location): New function.
4478         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
4479         check for patterns only in loops.
4480         (vect_build_slp_tree): Add argument, adjust function calls, fail in
4481         case of multiple types in basic block SLP.
4482         (vect_mark_slp_stmts_relevant): New function.
4483         (vect_supported_load_permutation_p): Fix comment.
4484         (vect_analyze_slp_instance): Add argument. In case of basic block
4485         SLP, take vectorization factor from statement's type, check that
4486         unrolling factor is 1. Adjust function call. Save SLP instance in
4487         either loop or basic block vectorization structure. Return FALSE,
4488         if SLP failed.
4489         (vect_analyze_slp): Add argument. Get strided stores groups from
4490         either loop or basic block vectorization structure. Return FALSE
4491         if basic block SLP failed.
4492         (new_bb_vec_info): New function.
4493         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
4494         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
4495         (vect_schedule_slp): Add argument. Get SLP instances from either
4496         loop or basic block vectorization structure. Set vectorization factor
4497         to be 1 for basic block SLP.
4498         (vect_slp_transform_bb): New function.
4499         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
4500
4501 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
4502
4503         * final.c (shorten_branches): Do not align labels for jump tables.
4504         (final_scan_insn): Use JUMP_TABLE_DATA_P.
4505
4506 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4507
4508         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
4509         Remove outdated reference to flow.c and fix nits.
4510         * doc/gccint.texi: Tweak RTL description.
4511         * doc/rtl.texi: Likewise.
4512
4513 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
4514
4515         * config/avr/avr.c: Change my email address.
4516         * config/avr/avr.h: Likewise.
4517         * config/avr/avr.md: Likewise.
4518         * config/avr/avr-protos.h: Likewise.
4519         * config/avr/libgcc.S: Likewise.
4520
4521 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4522
4523         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
4524         (spu_split_load, spu_split_store): Change return type to int.
4525         (spu_split_convert): Declare.
4526         * config/spu/predicates.md (spu_mem_operand): Remove.
4527         (spu_mov_operand): Update.
4528         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
4529         * config/spu/spu.c (regno_aligned_for_load): Remove.
4530         (reg_aligned_for_addr, spu_expand_load): Define.
4531         (spu_expand_extv): Reimplement and handle MEM.
4532         (spu_expand_insv): Handle MEM.
4533         (spu_sched_reorder): Handle insn's with length 0.
4534         (spu_legitimate_address_p): Reimplement.
4535         (store_with_one_insn_p): Return TRUE for any mode with size
4536         larger than 16 bytes.
4537         (address_needs_split): Define.
4538         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
4539         operands.
4540         (spu_convert_move): Define.
4541         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
4542         (spu_split_store): Change all MEM's to TImode.
4543         (spu_init_expanders): Preallocate registers that correspond to
4544         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
4545         mark_reg_pointer.
4546         (spu_split_convert): Define.
4547         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
4548         (_move<mode>, _movdi, _movti): Update predicate and condition.
4549         (load, store): Change to define_split.
4550         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
4551         extend<mode>ti2.
4552         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
4553         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
4554         define_insn_and_split of lshr<mode>3.
4555         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
4556         (<v>ashr<mode>3_imm): Define.
4557         (extv, extzv, insv): Allow MEM operands.
4558         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
4559         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
4560         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
4561         (_spu_convert2): Change to define_insn_and_split and remove the
4562         corresponding define_peephole2.
4563         (stack_protect_set, stack_protect_test, stack_protect_test_si):
4564         Change predicates to memory_operand.
4565
4566 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4567
4568         * config/arm/thumb2.md: Add 16-bit multiply instructions.
4569
4570 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4571
4572         PR tree-optimization/40219
4573         * tree.c (iterative_hash_expr): Make sure the builtin function is
4574         a normal builtin function and not a front end or back end builtin
4575         before indexing into the built_in_decls array.
4576
4577 2009-05-22  Richard Guenther  <rguenther@suse.de>
4578
4579         PR middle-end/38964
4580         * alias.c (write_dependence_p): Do not use TBAA for answering
4581         anti-dependence or output-dependence.
4582         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4583         (emit_pointer_definition): Remove.
4584         (emit_alias_warning): Likewise.
4585         (find_what_var_points_to): Remove TBAA pruning code.
4586         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
4587         violations.
4588         (compute_points_to_sets): Remove code computing the set of
4589         dereferenced pointers.
4590         * tree-data-ref.c (dr_may_alias_p): Properly use the split
4591         oracle for querying anti and output dependencies.
4592         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4593         if TBAA may be applied.
4594         (refs_anti_dependent_p): New function.
4595         (refs_output_dependent_p): Likewise.
4596         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4597         (refs_output_dependent_p): Likewise.
4598         * doc/tree-ssa.texi (Memory model): New section.
4599         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4600         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4601         * cfgexpand.c (expand_gimple_basic_block): Do not handle
4602         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4603         * expr.c (expand_expr_real_1): Likewise.
4604         * gimple-low.c (lower_stmt): Likewise.
4605         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4606         (dump_gimple_cdt): Remove.
4607         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4608         (gimple_size): Likewise.
4609         (walk_gimple_op): Likewise.
4610         (is_gimple_stmt): Likewise.
4611         (walk_stmt_load_store_addr_ops): Likewise.
4612         (gimple_build_cdt): Remove.
4613         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4614         * gimple.h (gimple_cdt_new_type): Remove.
4615         (gimple_cdt_new_type_ptr): Likewise.
4616         (gimple_cdt_set_new_type): Likewise.
4617         (gimple_cdt_location): Likewise.
4618         (gimple_cdt_location_ptr): Likewise.
4619         (gimple_cdt_set_location): Likewise.
4620         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4621         * tree-cfg.c (remove_useless_stmts_1): Do not handle
4622         GIMPLE_CHANGE_DYNAMIC_TYPE.
4623         (verify_types_in_gimple_stmt): Likewise.
4624         * tree-inline.c (estimate_num_insns): Likewise.
4625         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4626         (copy_decl_to_var): Likewise.
4627         (copy_result_decl_to_var): Likewise.
4628         * tree-pretty-print.c (dump_generic_node): Do not handle
4629         CHANGE_DYNAMIC_TYPE_EXPR.
4630         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4631         * tree-ssa-operands.c (get_expr_operands): Likewise.
4632         * tree-ssa-structalias.c (struct variable_info): Remove
4633         no_tbaa_pruning member.
4634         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4635         (unify_nodes): Do not copy it.
4636         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4637         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4638         (set_uids_in_ptset): Do not check it.
4639         (find_what_var_points_to): Likewise.
4640         (compute_tbaa_pruning): Remove.
4641         (compute_points_to_sets): Do not call it.
4642         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4643         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4644         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4645         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4646         (DECL_NO_TBAA_P): Likewise.
4647         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4648         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4649         (expand_omp_atomic_pipeline): Do not set it.
4650         * print-tree.c (print_node): Do not dump it.
4651         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4652         redundant check.
4653
4654 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4655
4656         PR target/39856
4657         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4658         for clobber.
4659
4660 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4661
4662         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4663         non-external.
4664
4665 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4666
4667         * Makefile.in (bversion.h, s-bversion): New targets.
4668         (TOPLEV_H): Add bversion.h.
4669         * toplev.h: Include "bversion.h".
4670         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4671         the __format__ attribute only if compiling with the same version
4672         of GCC as the sources (the "build version").
4673
4674 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4675
4676         * c-format.c (handle_format_attribute): Fix comment typo.
4677
4678 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
4679
4680         PR target/37846
4681         * config/ia64/ia64.opt (mfused-madd): New.
4682         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4683         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4684         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4685         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4686         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4687         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4688         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4689         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
4690         instruction if !TARGET_FUSED_MADD.
4691         (fpma, fpms): Remove colon from name.
4692
4693 2009-05-22  Richard Guenther  <rguenther@suse.de>
4694
4695         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4696         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
4697         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4698         TARGET_MEM_REF.
4699         (create_expression_by_pieces): Only convert if necessary.
4700         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4701         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4702
4703 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
4704
4705         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4706         regular pattern from a template and rename it ...
4707         (*extzv_truncsi_exts): ... to this.
4708
4709 2009-05-21  Richard Guenther  <rguenther@suse.de>
4710
4711         * cgraph.h (struct cgraph_node): Remove inline_decl member.
4712         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4713         (cgraph_default_inline_p): Likewise.
4714         (cgraph_decide_inlining_incrementally): Likewise.
4715
4716 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4717             Uros Bizjak  <ubizjak@gmail.com>
4718
4719         * config/i386/cpuid.h (bit_MOVBE): New.
4720
4721         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4722
4723         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4724         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4725         (ix86_handle_option): Handle OPT_mmovbe.
4726         (ix86_target_string): Add -mmovbe.
4727         (pta_flags): Add PTA_MOVBE.
4728         (processor_alias_table): Add PTA_MOVBE to "atom".
4729         (override_options): Handle PTA_MOVBE.
4730
4731         * config/i386/i386.h (TARGET_MOVBE): New.
4732
4733         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4734         (*bswapsi_movbe): New.
4735         (*bswapdi_movbe): Likewise.
4736         (bswapdi2): Renamed to ...
4737         (*bswapdi_1): This.
4738         (bswapdi2): New expander.
4739
4740         * config/i386/i386.opt (mmovbe): New.
4741
4742         * doc/invoke.texi: Document -mmovbe.
4743
4744 2009-05-21  Taras Glek  <tglek@mozilla.com>
4745
4746         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4747         * gcc-plugin.h (plugin_init): Updated signature.
4748         * gcc-plugin.h (plugin_name_args): Moved to this header.
4749         * doc/plugins.texi (plugin_init): Updated documention to reflect
4750         API change.
4751         * doc/plugins.texi (plugin_name_args): Added to documention.
4752
4753 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
4754
4755         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4756         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4757
4758 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
4759
4760         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4761         JUMP_TABLE_DATA_P predicates where applicable.
4762         * config/i386/predicates.md: Ditto.
4763         * config/i386/sse.md: Ditto.
4764
4765 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
4766
4767         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4768         operand2 -128 override length_immediate attribute to 1.
4769         * config/i386/predicates.md (constm128_operand): New predicate.
4770
4771         * config/i386/i386.c (memory_address_length): Handle %r12
4772         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
4773         also check REGNO.
4774         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4775         mode look through optional ZERO_EXTEND and SUBREG.
4776         * config/i386/i386.md (R12_REG): New define_constant.
4777         (prefix_data16): For sse unit set also for MODE_TI insns.
4778         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
4779         insns set if operand 1 is ext_QIreg_operand.
4780         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
4781         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4782         immediate.
4783         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4784         mode from MODE_DI to MODE_SI.
4785         (movdi_1_rex64): Override modrm and length_immediate attributes
4786         only for movabs (TYPE_IMOV, alternative 2).
4787         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4788         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4789         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4790         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4791         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4792         prefix_rex attribute if DImode.
4793         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4794         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4795         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4796         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4797         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4798         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4799         Likewise.  For TYPE_IMOV clear length_immediate attribute.
4800         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4801         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4802         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4803         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4804         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4805         or one operand TYPE_ISHIFT.
4806         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4807         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4808         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4809         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4810         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4811         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4812         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4813         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4814         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4815         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4816         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4817         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4818         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4819         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4820         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4821         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4822         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4823         set mode attribute, don't override length attribute.
4824         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4825         to 1.
4826         (return_internal_long): Set length attribute to 2 instead of 1.
4827         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4828         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4829         prefix_rex attribute.
4830         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4831         New predicates.
4832         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
4833
4834 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4835
4836         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4837
4838 2009-05-20  Ian Lance Taylor  <iant@google.com>
4839
4840         * tree.c (build_tree_list_vec_stat): New function.
4841         (ctor_to_vec): New function.
4842         (build_nt_call_vec): New function.
4843         (build_call_array): Change args to be a const pointer.
4844         (build_call_vec): New function.
4845         * tree.h (build_nt_call_vec): Declare.
4846         (build_tree_list_vec_stat): Declare.
4847         (build_tree_list_vec): Define.
4848         (build_call_array): Update declaration.
4849         (build_call_vec): Declare.
4850         (ctor_to_vec): Declare.
4851         * c-common.c (tree_vector_cache): New static variable.
4852         (make_tree_vector): New function.
4853         (release_tree_vector): New function.
4854         (make_tree_vector_single): New function.
4855         (make_tree_vector_copy): New function.
4856         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4857         (make_tree_vector_single, make_tree_vector_copy): Declare.
4858         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4859         (c_parser_expr_list): Don't manage cache here, instead call
4860         make_tree_vector.
4861         (c_parser_release_expr_list): Remove static function.
4862         (c_parser_vec_to_tree_list): Remove static function.
4863         (c_parser_attributes): Call build_tree_list_vec instead of
4864         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
4865         c_parser_release_expr_list.
4866         (c_parser_postfix_expression_after_primary): Likewise.
4867         (c_parser_objc_keywordexpr): Likewise.
4868
4869 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
4870
4871         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4872         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4873         TARGET_CONVERT_TO_TYPE.
4874         * hooks.c (hook_tree_const_tree_null): Define.
4875         * hooks.h (hook_tree_const_tree_null): Declare.
4876         * target.h (struct gcc_target):  Add invalid_parameter_type,
4877         invalid_return_type, promoted_type, and convert_to_type fields.
4878         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4879         (TARGET_INVALID_RETURN_TYPE): Define.
4880         (TARGET_PROMOTED_TYPE): Define.
4881         (TARGET_CONVERT_TO_TYPE): Define.
4882         (TARGET_INITIALIZER): Update for new fields.
4883         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4884         (grokparms): Check targetm.invalid_parameter_type.
4885         * c-typeck.c (default_conversion): Check targetm.promoted_type.
4886         * c-convert.c (convert): Check targetm.convert_to_type.
4887
4888 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
4889
4890         * config/mips/mips.md (*extenddi_truncate<mode>,
4891         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
4892         defintions.
4893         (*extendhi_truncateqi): New define_insn_and_sptit.
4894
4895 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
4896
4897         PR middle-end/40204
4898         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
4899         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
4900
4901 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4902
4903         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4904         the operand of VIEW_CONVERT_EXPR.
4905
4906 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
4907
4908         * config/i386/driver-i386.c (host_detect_local_cpu): Check
4909         extended family and model for Intel processors.  Support Intel Atom.
4910
4911 2009-05-20  Olivier Hainque  <hainque@adacore.com>
4912
4913         * gstab.h (stab_code_type): Define, to be used instead of the
4914         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
4915         notice.
4916         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4917         occurrences by stab_code_type.
4918         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4919
4920 2009-05-20  Martin Jambor  <mjambor@suse.cz>
4921
4922         * tree-flow.h (insert_edge_copies_seq): Undeclare.
4923         (sra_insert_before): Likewise.
4924         (sra_insert_after): Likewise.
4925         (sra_init_cache): Likewise.
4926         (sra_type_can_be_decomposed_p): Likewise.
4927         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4928         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4929         (sra_insert_before): Likewise.
4930         (sra_insert_after): Likewise.
4931         (sra_init_cache): Likewise.
4932         (insert_edge_copies_seq): Made static and moved upwards.
4933
4934         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4935         case.
4936
4937         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4938
4939         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4940         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4941         simple copies.
4942
4943 2009-05-20  Richard Guenther  <rguenther@suse.de>
4944
4945         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4946         with mismatched comparison modes.
4947
4948 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4949
4950         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
4951         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4952         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4953         with shifts for Thumb2.
4954         (orsi_notsi): New for orn.
4955         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4956         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4957         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4958         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4959         Don't invert remainder for IOR.
4960         
4961 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
4962
4963         PR tree-optimization/40087
4964         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4965         number_of_iterations_ne): Rename never_infinite argument.
4966         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4967         number_of_iterations_le): Handle pointer-type ivs when
4968         exit_must_be_taken is false.
4969         (number_of_iterations_cond):  Do not always assume that
4970         exit_must_be_taken if the control variable is a pointer.
4971
4972 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4973
4974         * c-typeck.c (build_binary_op): Allow % on integal vectors.
4975         * doc/extend.texi (Vector Extension): Document that % is allowed too.
4976
4977 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4978
4979         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4980         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4981
4982 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4983
4984         PR c/40172
4985         * c.opt (Wlogical-op): Disabled by default.
4986         * c-opt (c_common_post_options): Do not enable Wlogical-op with
4987         Wextra.
4988         * doc/invoke.texi (Wlogical-op): Likewise.
4989         
4990 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4991
4992         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4993         into CASE_CONVERT.
4994         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4995         Propagate the type of the first operand.
4996         <ASSERT_EXPR>: Simplify.
4997         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4998         Rewrite using the RHS code as discriminant.
4999         <NOP_EXPR>: Turn into CASE_CONVERT.
5000         <PLUS_EXPR>: Propagate the type of the first operand.
5001
5002 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
5003
5004         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
5005         (ia64_dconst_0_375): New.
5006         * config/ia64/ia64.c (ia64_override_options): Remove
5007         -minline-sqrt-min-latency warning.
5008         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
5009         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
5010         * config/ia64/ia64.md (*sqrt_approx): Remove.
5011         (sqrtsf2): Remove #if 0.
5012         (sqrtsf2_internal_thr): Rewrite and move to div.md.
5013         (sqrtdf): Remove assert.
5014         (sqrtdf2_internal_thr): Rewrite and move to div.md.
5015         (sqrtxf2): Remove #if 0.
5016         (sqrtxf2_internal_thr): Rewrite and move to div.md.
5017         * div.md (sqrt_approx_rf): New.
5018         (sqrtsf2_internal_thr): New implementation.
5019         (sqrtsf2_internal_lat): New.
5020         (sqrtdf2_internal_thr: New implementation.
5021         (sqrtxf2_internal): New implementation.
5022
5023 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
5024             Hans-Peter Nilsson  <hp@axis.com>
5025
5026         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
5027         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
5028         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
5029         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
5030         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
5031         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
5032         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
5033         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
5034         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
5035         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
5036         * c-common.c: ...from here.
5037
5038 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5039
5040         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
5041
5042 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5043
5044         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
5045
5046 2009-05-19  Ben Elliston  <bje@au.ibm.com>
5047
5048         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
5049         assignments with memcpy calls.
5050         (add_fdes): Likewise.
5051         (binary_search_unencoded_fdes): Likewise.
5052         (linear_search_fdes): Eliminate type puns.
5053         
5054 2009-05-19  Richard Guenther  <rguenther@suse.de>
5055
5056         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
5057         not falsely claim to have propagated into all uses.
5058
5059 2009-05-19  Ben Elliston  <bje@au.ibm.com>
5060
5061         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
5062         version to v3.0.
5063
5064 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5065
5066         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
5067         * config/sh/sh.c (sh_legitimate_address_p): Make static.
5068         (TARGET_LEGITIMATE_ADDRESS_P): New.
5069         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5070         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5071         
5072 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
5073
5074         PR debug/40109
5075         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
5076         child of the containing namespace's DIE.
5077
5078 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
5079
5080         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
5081         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
5082         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
5083         extend patterns.
5084
5085 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
5086
5087         PR target/39942
5088         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
5089         gen_align with gen_pad.
5090         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
5091         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
5092
5093         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
5094         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
5095
5096         * config/i386/i386.md (align): Renamed to ...
5097         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
5098         ASM_OUTPUT_MAX_SKIP_PAD.
5099
5100 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
5101
5102         * config.gcc: Fix variable syntax.
5103
5104         PR target/39531
5105         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
5106         before calling exact_log2.
5107         (output_iorsi3): Likewise.
5108         (output_xorsi3): Likewise.
5109
5110 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5111
5112         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
5113         for the none zero constant operand except for EQ and NE
5114         comprisons even when the first operand is R0.
5115
5116 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5117
5118         * config/s390/2064.md: Remove trailing whitespaces.
5119         * config/s390/2084.md: Likewise.
5120         * config/s390/constraints.md: Likewise.
5121         * config/s390/fixdfdi.h: Likewise.
5122         * config/s390/libgcc-glibc.ver: Likewise.
5123         * config/s390/s390-modes.def: Likewise.
5124         * config/s390/s390-protos.h: Likewise.
5125         * config/s390/s390.c: Likewise.
5126         * config/s390/s390.h: Likewise.
5127         * config/s390/s390.md: Likewise.
5128         * config/s390/tpf-unwind.h: Likewise.
5129
5130 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5131
5132         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
5133
5134 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5135
5136         M68K TLS support.
5137         * configure.ac (m68k-*-*): Check if binutils support TLS.
5138         * configure: Regenerate.
5139         * config/m68k/predicates.md (symbolic_operand): Extend comment.
5140         * config/m68k/constraints.md (Cu): New constraint.
5141         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
5142         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
5143         (movsi): Handle TLS symbols.
5144         (addsi3_5200): Handle XTLS symbols, indent.
5145         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
5146         (m68k_tls_reference_p): Declare.
5147         (m68k_legitimize_address): Declare.
5148         (m68k_unwrap_symbol): Declare.
5149         * config/m68k/m68k.opt (mxtls): New option.
5150         * config/m68k/m68k.c (ggc.h): Include.
5151         (m68k_output_dwarf_dtprel): Implement hook.
5152         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
5153         (m68k_expand_prologue): Load GOT pointer when function needs it.
5154         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
5155         (m68k_legitimate_constant_address_p): Same.
5156         (m68k_decompose_address): Handle TLS references.
5157         (m68k_get_gp): New static function.
5158         (enum m68k_reloc): New contants.
5159         (TLS_RELOC_P): New macro.
5160         (m68k_wrap_symbol): New static function.
5161         (m68k_unwrap_symbol): New function.
5162         (m68k_final_prescan_insn_1): New static function.
5163         (m68k_final_prescan_insn): New function.
5164         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
5165         functions.
5166         (legitimize_pic_address): Handle TLS references..
5167         (m68k_tls_get_addr, m68k_get_tls_get_addr)
5168         (m68k_libcall_value_in_a0_p)
5169         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
5170         (m68k_call_m68k_read_tp): Helper variables and functions for ...
5171         (m68k_legitimize_tls_address): Handle TLS references.
5172         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
5173         New functions.
5174         (m68k_legitimize_address): Handle TLS symbols.
5175         (m68k_get_reloc_decoration): New static function.
5176         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
5177         UNSPEC_RELOC32.
5178         (m68k_output_dwarf_dtprel): Implement hook.
5179         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
5180         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
5181         m68k_call_* routines.
5182         (sched_attr_op_type): Handle TLS symbols.
5183         (gt-m68k.h): Include.
5184         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
5185         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
5186
5187 2009-05-18  Martin Jambor  <mjambor@suse.cz>
5188
5189         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
5190         (visit_store_addr_for_mod_analysis): New function.
5191         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
5192         (determine_cst_member_ptr): Use gimple_assign_single_p.
5193         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
5194         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
5195         operands.  Don't check number of operands of a NOP_EXPR.
5196
5197 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
5198
5199         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
5200
5201 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5202
5203         PR c/40172
5204         * c-common.c (warn_logical_operator): Don't warn if one of
5205         expression isn't always true or false.
5206
5207 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
5208
5209         * config/i386/biarch32.h: New file.
5210         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
5211
5212 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
5213
5214         * config/mips/mips.md (*zero_extend<mode>_trunchi,
5215         *zero_extend<mode>_truncqi): Merge these into ...
5216         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
5217         Name the pattern following this as *zero_extendhi_truncqi.
5218
5219 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
5220
5221         PR middle-end/39301
5222         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
5223         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
5224         (output_info): Make field HOST_WIDEST_INT.
5225         (print_statistics): Use HOST_WIDEST_INT_PRINT.
5226         (dump_bitmat_statistics): Same.
5227
5228 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
5229
5230         * config.gcc (use_gcc_stdint):  Set to wrap.
5231         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5232         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5233         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5234         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5235         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5236         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5237         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5238         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5239
5240 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
5241
5242         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
5243         tune_64.
5244         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
5245         Move definitions earlier.
5246         (OPT_ARCH64, OPT_ARCH32): Define.
5247         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
5248         and tune_64.
5249
5250 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
5251
5252         PR target/40153
5253         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
5254         implies.
5255
5256 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
5257
5258         * arm.md (movdi2): Copy non-reg values to DImode registers.
5259
5260 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
5261
5262         PR target/39942
5263         * final.c (label_to_max_skip): New function.
5264         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
5265         CODE_LABEL_NUMBER <= max_labelno.
5266         * output.h (label_to_max_skip): New prototype.
5267         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
5268         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
5269         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
5270         Handle CODE_LABELs with >= 16 byte alignment or with
5271         max_skip == (1 << align) - 1.
5272         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
5273         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
5274
5275         PR target/39942
5276         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
5277         .p2align 3 if MAX_SKIP is smaller than 7.
5278         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
5279
5280 2009-05-15  Ian Lance Taylor  <iant@google.com>
5281
5282         * alias.c (struct alias_set_entry_d): Rename from struct
5283         alias_set_entry.  Change all uses.
5284         * except.c (struct call_site_record_d): Rename from struct
5285         call_site_record.  Change all uses.
5286         * except.h (struct eh_region_d): Rename from struct eh_region.
5287         Change all uses.
5288         * gcse.c (struct hash_table_d): Rename from struct hash_table.
5289         Change all uses.
5290         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
5291         ivtype_map_elt.  Change all uses.
5292         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
5293         Change all uses.
5294         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
5295         * graphite.h (struct name_tree_d): Rename from struct name_tree.
5296         Change all uses.
5297         (struct sese_d): Rename from struct sese.  Change all uses.
5298         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
5299         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
5300         * optabs.h (struct optab_d): Rename from struct optab.  Change all
5301         uses.
5302         (struct convert_optab_d): Rename from struct convert_optab.
5303         Change all uses.
5304         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
5305         ipa_opt_pass.  Change all uses.
5306         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
5307         all uses.
5308
5309         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
5310         defined as a typedef.
5311         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
5312         defined as a tag.
5313
5314 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5315
5316         PR 16302
5317         * fold-const.c (make_range,build_range_check,merge_ranges): Move
5318         declaration to...
5319         (merge_ranges): Returns bool. 
5320         * tree.h (make_range): .. to here.
5321         (build_range_check): Likewise.
5322         (merge_ranges): Likewise. Renamed from merge_ranges.
5323         * c-typeck.c (parser_build_binary_op): Update calls to
5324         warn_logical_operator.
5325         * c-common.c (warn_logical_operator): Add new warning.
5326         * c-common.h (warn_logical_operator): Update declaration.
5327         
5328 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5329
5330         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
5331         
5332 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5333
5334         * doc/install.texi: Document MPC requirements, flags etc.
5335
5336         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
5337         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
5338         Evaluate constant arguments.
5339         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
5340         (fold_builtin_1): Likewise, also evaluate constant arguments.
5341         Remove superfluous break.
5342         (do_mpc_ckconv): New.
5343         * real.h: Include mpc.h.
5344         * toplev.c (print_version): Output MPC version info if available.
5345
5346 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5347
5348         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
5349
5350 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5351
5352         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
5353         only once.
5354
5355 2009-05-15  Jan Hubicka  <jh@suse.cz>
5356
5357         * doc/invoke.texi (max-early-inliner-iterations): New flag.
5358         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
5359         (try_inline): Fix return value.
5360         (cgraph_decide_inlining_incrementally): Honor new value.
5361         (cgraph_early_inlining): Handle indirect inlining.
5362         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
5363
5364 2009-05-15  Jan Hubicka  <jh@suse.cz>
5365
5366         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
5367         * cgraphunit.c (cgraph_finalize_function): Set it.
5368         (cgraph_expand_function): Use it.
5369
5370 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5371
5372         * real.c (encode_ieee_half): Define.
5373         (decode_ieee_half): Define.
5374         (ieee_half_format): Define.
5375         (arm_half_format): Define.
5376         * real.h (ieee_half_format): Declare.
5377         (arm_half_format): Declare.
5378
5379 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5380
5381         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
5382         swapped, and reversed optabs exist before trying to use them.
5383
5384 2009-05-15  Paul Brook  <paul@codesourcery.com>
5385             Sandra Loosemore  <sandra@codesourcery.com>
5386
5387         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
5388         loads.  Allow PRE_DEC.
5389         (output_move_neon): Handle PRE_DEC.
5390         (arm_print_operand): Add 'A' for neon structure loads.
5391         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
5392         * config/arm/neon.md (neon_mov): Update comment.
5393         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
5394         calls.
5395         (Um): New constraint.
5396
5397 2009-05-15  Jan Hubicka  <jh@suse.cz>
5398
5399         Revert the following patch until testsuite fallout is fixed:
5400         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5401         * cgraph.h (struct inline_summary): New filed self_wize,
5402         size_inlining_benefit, self_time and time_inlining_benefit.
5403         (struct cgraph_global_info): Replace insns by time ans size fields.
5404         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5405         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5406         (ipcp_update_callgraph): Do not touch function bodies.
5407         * ipa-inline.c: Include except.h
5408         (MAX_TIME): New constant.
5409         (overall_insns): Remove
5410         (overall_size, max_benefit): New static variables.
5411         (cgraph_estimate_time_after_inlining): New function.
5412         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5413         (cgraph_clone_inlined_nodes): Update size.
5414         (cgraph_mark_inline_edge): Update size.
5415         (cgraph_estimate_growth): Use size info.
5416         (cgraph_check_inline_limits): Check size.
5417         (cgraph_default_inline_p): Likewise.
5418         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5419         (cgraph_decide_recursive_inlining): Check size.
5420         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5421         and times.
5422         (cgraph_decide_inlining): Likewise.
5423         (cgraph_decide_inlining_incrementally): Likewise; honor
5424         PARAM_EARLY_INLINING_INSNS.
5425         (likely_eliminated_by_inlining_p): New predicate.
5426         (estimate_function_body_sizes): New function.
5427         (compute_inline_parameters): Use it.
5428         * except.c (must_not_throw_labels): New function.
5429         * except.h (must_not_throw_labels): Declare.
5430         * tree-inline.c (init_inline_once): Kill inlining_weigths
5431         * tree-ssa-structalias.c: Avoid uninitialized warning.
5432         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5433         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5434         (PARAM_INLINE_CALL_COST): Remove.
5435         (PARAM_EARLY_INLINING_INSNS): New.
5436
5437 2009-05-15  Richard Guenther  <rguenther@suse.de>
5438
5439         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
5440         not TODO_update_ssa.
5441
5442 2009-05-15  Richard Guenther  <rguenther@suse.de>
5443
5444         PR tree-optimization/39999
5445         * gimple.h (gimple_expr_type): Use the expression type looking
5446         through useless conversions.
5447         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
5448         (vn_nary_op_insert_stmt): Likewise.
5449         (simplify_binary_expression): Likewise.
5450
5451 2009-05-15  Richard Guenther  <rguenther@suse.de>
5452
5453         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5454         New options, enabled by default.
5455         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5456         Document.
5457         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
5458         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
5459         * tree-ssa-structalias.c (gate_tree_pta): New function.
5460         (pass_build_alias): Use it.
5461
5462 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
5463
5464         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5465         recurse on an invariant address if a conversion from a pointer
5466         type to a wider integer type is involved.
5467
5468 2009-05-15  Jan Hubicka  <jh@suse.cz>
5469
5470         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5471         * cgraph.h (struct inline_summary): New filed self_wize,
5472         size_inlining_benefit, self_time and time_inlining_benefit.
5473         (struct cgraph_global_info): Replace insns by time ans size fields.
5474         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5475         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5476         (ipcp_update_callgraph): Do not touch function bodies.
5477         * ipa-inline.c: Include except.h
5478         (MAX_TIME): New constant.
5479         (overall_insns): Remove
5480         (overall_size, max_benefit): New static variables.
5481         (cgraph_estimate_time_after_inlining): New function.
5482         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5483         (cgraph_clone_inlined_nodes): Update size.
5484         (cgraph_mark_inline_edge): Update size.
5485         (cgraph_estimate_growth): Use size info.
5486         (cgraph_check_inline_limits): Check size.
5487         (cgraph_default_inline_p): Likewise.
5488         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5489         (cgraph_decide_recursive_inlining): Check size.
5490         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5491         and times.
5492         (cgraph_decide_inlining): Likewise.
5493         (cgraph_decide_inlining_incrementally): Likewise; honor
5494         PARAM_EARLY_INLINING_INSNS.
5495         (likely_eliminated_by_inlining_p): New predicate.
5496         (estimate_function_body_sizes): New function.
5497         (compute_inline_parameters): Use it.
5498         * except.c (must_not_throw_labels): New function.
5499         * except.h (must_not_throw_labels): Declare.
5500         * tree-inline.c (init_inline_once): Kill inlining_weigths
5501         * tree-ssa-structalias.c: Avoid uninitialized warning.
5502         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5503         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5504         (PARAM_INLINE_CALL_COST): Remove.
5505         (PARAM_EARLY_INLINING_INSNS): New.
5506         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
5507         (inline-call-cost): Remove.
5508         (early-inlining-insns): New.
5509
5510 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5511
5512         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
5513         for bounds.
5514         (print_int_cst_bounds_in_octal_p): Likewise.
5515         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
5516         with subtypes.
5517         * dwarf2out.c (base_type_die): Likewise.
5518         (is_subrange_type): Delete.
5519         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
5520         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
5521         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
5522         if the destination type is boolean.
5523         (build_range_check): Do not special-case subtypes.
5524         (fold_sign_changed_comparison): Likewise.
5525         (fold_unary): Likewise.
5526         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
5527         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
5528         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
5529         * tree.c (subrange_type_for_debug_p): New predicate based on the
5530         former is_subrange_type.
5531         * tree.h (subrange_type_for_debug_p): Declare.
5532         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
5533         (convert_affine_scev): Remove call to above function.
5534         (chrec_convert_aggressive): Likewise.
5535         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
5536         false for conversions involving subtypes.
5537         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
5538         (vrp_val_min): Likewise.
5539         (needs_overflow_infinity): Likewise.
5540         (extract_range_from_unary_expr): Likewise.
5541
5542 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
5543
5544         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5545         * config/frv/frv.c: Likewise.
5546         * config/s390/s390.c: Likewise.
5547         * config/sparc/sparc.h: Likewise.
5548         * config/i386/i386.h: Likewise.
5549         * config/i386/i386.c: Likewise.
5550         * config/crx/crx.c: Likewise.
5551         * config/m68hc11/m68hc11.h: Likewise.
5552         * config/iq2000/iq2000.c: Likewise.
5553         * config/mn10300/mn10300.h: Likewise.
5554         * config/mn10300/mn10300.c: Likewise.
5555         * config/m68k/m68k.c: Likewise.
5556         * config/rs6000/rs6000.c: Likewise.
5557         * config/rs6000/xcoff.h: Likewise.
5558         * config/rs6000/linux64.h: Likewise.
5559         * config/rs6000/sysv4.h: Likewise.
5560         * config/score/score3.c: Likewise.
5561         * config/score/score7.c: Likewise.
5562         * config/score/score.c: Likewise.
5563         * config/arm/arm.md: Likewise.
5564         * config/mips/mips.c: Likewise.
5565         * config/mips/mips.md: Likewise.
5566         * config/bfin/bfin.h: Likewise.
5567         * config/pa/pa.c: Likewise.
5568         * config/pa/constraints.md: Likewise.
5569
5570         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
5571         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
5572         * config/pdp11/pdp11.h: Use memory_address_p instead.
5573
5574 2009-05-14  Ian Lance Taylor  <iant@google.com>
5575
5576         * passes.c (finish_optimization_passes): Change i to int.
5577         * plugin.c (plugins_active_p): Change event to int.
5578         (dump_active_plugins): Likewise.
5579         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
5580         Add cast.
5581         * tree.c (tree_range_check_failed): Change c to unsigned int.
5582         (omp_clause_range_check_failed): Likewise.
5583         (build_common_builtin_nodes): Change mode to int.  Add cast.
5584         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5585         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5586
5587         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5588         ++ or -- with a variable of enum type.
5589
5590 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5591
5592         PR driver/40144
5593         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5594
5595 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5596
5597         * store-motion.c: Do not include params.h
5598         * Makefile.in: Fix dependencies for various files.
5599
5600 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5601
5602         * auto-inc-dec.c: Fix pass description, remove apparent
5603         accidental duplication.
5604
5605 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
5606
5607         PR middle-end/40147
5608         * ipa-utils.h (memory_identifier_string): Moved to ...
5609         * tree.h (memory_identifier_string): Here.  Add GTY(()).
5610
5611 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5612
5613         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5614         in the former documentation of...
5615         (GO_IF_LEGITIMATE_ADDRESS): ... this.
5616         * ira-conflicts.c (get_dup_num): Use address_operand.
5617         * targhooks.c (default_legitimate_address_p): New.
5618         * targhooks.h (default_legitimate_address_p): New.
5619         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5620         Call hook.
5621         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5622         * target.h (struct target): Add legitimate_address_p.
5623         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5624         (TARGET_INITIALIZER): Include it.
5625
5626         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5627         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5628         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5629         (TARGET_LEGITIMATE_ADDRESS_P): New.
5630
5631         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5632         (REG_OK_STRICT_P): Delete.
5633         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5634         (frv_legitimate_address_p_1): ... this.
5635         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5636         (frv_legitimate_address_p_1): ... the renamed old
5637         frv_legitimate_address_p.
5638         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5639         (TARGET_LEGITIMATE_ADDRESS_P): New.
5640
5641         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5642         * config/s390/s390-protos.h (legitimate_address_p): Remove.
5643         * config/s390/s390.c (legitimate_address_p): Rename to...
5644         (s390_legitimate_address_p): ... this, make static.
5645         (legitimize_address): Adjust call.
5646         (TARGET_LEGITIMATE_ADDRESS_P): New.
5647         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5648
5649         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5650         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5651         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5652         (TARGET_LEGITIMATE_ADDRESS_P): New.
5653
5654         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5655         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5656         * config/spu/spu.c (spu_legitimate_address): Rename to...
5657         (spu_legitimate_address_p): ... this, make static.
5658         (TARGET_LEGITIMATE_ADDRESS_P): New.
5659
5660         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5661         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5662         * config/sparc/sparc.c (legitimate_address_p): Rename to...
5663         (sparc_legitimate_address_p): ... this, make static and return bool.
5664         (legitimize_address): Adjust call.
5665         (TARGET_LEGITIMATE_ADDRESS_P): New.
5666
5667         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5668         * config/i386/i386-protos.h (legitimate_address_p): Remove.
5669         * config/i386/i386.c (legitimate_address_p): Rename to...
5670         (ix86_legitimate_address_p): ... this, make static.
5671         (constant_address_p): Move after it, adjust call.
5672         (TARGET_LEGITIMATE_ADDRESS_P): New.
5673
5674         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5675         * config/avr/avr-protos.h (legitimate_address_p): Remove.
5676         * config/avr/avr.c (legitimate_address_p): Rename to...
5677         (avr_legitimate_address_p): ... this, make static.
5678         (legitimize_address): Adjust call.
5679         (TARGET_LEGITIMATE_ADDRESS_P): New.
5680
5681         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5682         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5683         * config/crx/crx.c (crx_legitimate_address_p): Make static.
5684         (TARGET_LEGITIMATE_ADDRESS_P): New.
5685
5686         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5687         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5688         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5689         (TARGET_LEGITIMATE_ADDRESS_P): New.
5690
5691         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5692         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5693         Remove.
5694         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5695         Make static.
5696         (TARGET_LEGITIMATE_ADDRESS_P): New.
5697
5698         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5699         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5700         Remove.
5701         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5702         Rename to...
5703         (m68hc11_legitimate_address_p): ... this, make static.
5704         (go_if_legitimate_address_internal): Rename to...
5705         (m68hc11_legitimate_address_p_1): ... this.
5706         (legitimize_address): Adjust call.
5707         (TARGET_LEGITIMATE_ADDRESS_P): New.
5708
5709         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5710         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5711         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
5712         (TARGET_LEGITIMATE_ADDRESS_P): New.
5713
5714         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5715         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5716         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5717         (mn10300_legitimate_address_p): ... this, make static.
5718         (TARGET_LEGITIMATE_ADDRESS_P): New.
5719
5720         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5721         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5722         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5723         (TARGET_LEGITIMATE_ADDRESS_P): New.
5724
5725         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5726         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5727         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5728         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5729         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5730         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5731         (rs6000_legitimate_address_p): ... this, make static.
5732         (TARGET_LEGITIMATE_ADDRESS_P): New.
5733         (REG_MODE_OK_FOR_BASE_P): Delete.
5734         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5735
5736         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5737         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5738         Delete.
5739         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5740         static, adjust types.
5741         (TARGET_LEGITIMATE_ADDRESS_P): New.
5742
5743         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5744         * config/score/score.c (score_address_p): Rename to...
5745         (score_legitimate_address_p): ... this.
5746         (TARGET_LEGITIMATE_ADDRESS_P): New.
5747         * config/score/score3.c (score3_address_p): Rename to...
5748         (score3_legitimate_address_p): ... this.
5749         * config/score/score7.c (score7_address_p): Rename to...
5750         (score7_legitimate_address_p): ... this.
5751
5752         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5753         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5754         GO_IF_LEGITIMATE_ADDRESS): Delete.
5755         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5756         thumb2_legitimate_address_p): Delete.
5757         (arm_legitimate_address_p): Rename to...
5758         (arm_legitimate_address_outer_p): ... this.
5759         * config/arm/constraints.md ("Uq"): Adjust call.
5760         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
5761         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5762         to...
5763         (arm_legitimate_address_outer_p): ... this.
5764         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5765         static.
5766         (TARGET_LEGITIMATE_ADDRESS_P): New.
5767
5768         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5769         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5770         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5771         (TARGET_LEGITIMATE_ADDRESS_P): New.
5772
5773         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5774         * config/vax/vax-protos.h (legitimate_address_p): Remove.
5775         * config/vax/vax.c (legitimate_address_p): Rename to...
5776         (vax_legitimate_address_p): ... this, make static.
5777         (TARGET_LEGITIMATE_ADDRESS_P): New.
5778
5779         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5780         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5781         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5782         (TARGET_LEGITIMATE_ADDRESS_P): New.
5783
5784         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5785         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5786         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5787         (mmix_legitimate_address_p): ... this, make static.
5788         (TARGET_LEGITIMATE_ADDRESS_P): New.
5789
5790         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5791         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5792         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5793         (TARGET_LEGITIMATE_ADDRESS_P): New.
5794
5795 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5796
5797         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5798         of MODE_COMPLEX_INT.
5799
5800 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5801
5802         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5803         LCT_NORMAL in function call.
5804         * mips-tdump.c (print_file_desc): Add cast to enum type.
5805         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5806         (mark_stabs): Add casts to enum types.
5807         (parse_stabs_common): Add casts to enum types.
5808
5809 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5810
5811         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5812         Check for invalid values of LETTER.
5813
5814 2009-05-13  Taras Glek  <tglek@mozilla.com>
5815
5816         * attribs.c (register_attribute): moved out attribute registration
5817         into register_attribute.
5818         * doc/plugins.texi: Documented register_attribute and
5819         PLUGIN_ATTRIBUTES.
5820         * gcc-plugin.h: Added forward decl for register_attribute.
5821         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5822         * plugin.c (register_callback, invoke_plugin_callbacks): Added
5823         PLUGIN_ATTRIBUTES boilerplate.
5824
5825 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
5826
5827         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
5828         values even in sentinel and empty entries.
5829         (ms_printf_flag_specs):  Likewise.
5830         (ms_scanf_flag_specs):  Likewise.
5831         (ms_strftime_flag_specs):  Likewise.
5832         (ms_print_char_table):  Likewise.
5833         (ms_scan_char_table):  Likewise.
5834         (ms_time_char_table):  Likewise.
5835
5836 2009-05-13  Doug Kwan  <dougkwan@google.com>
5837
5838         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5839
5840 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5841
5842         * config/mips/mips.md (store): Add attributes for QI and HI.
5843         Update comment.
5844         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5845         (truncdi<mode>2): ... this new pattern.
5846
5847 2009-05-13  Brad Hards  <bradh@kde.org>
5848
5849         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5850
5851 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
5852             Ben Elliston <bje@au.ibm.com>
5853
5854         PR middle-end/40035
5855         * dse.c (check_mem_read_rtx): Guard against width == -1.
5856
5857 2009-05-13  Michael Matz  <matz@suse.de>
5858
5859         PR middle-end/39976
5860         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5861         (trivially_conflicts_p): New function.
5862         (insert_backedge_copies): Use it.
5863
5864 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
5865
5866         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5867         (handle_stdc_pragma): Use new enum constant names.
5868         (handle_pragma_float_const_decimal64): Ditto.
5869
5870 2009-05-13  Ian Lance Taylor  <iant@google.com>
5871
5872         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5873         tree.def.
5874
5875 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
5876
5877         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5878         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5879         multilibs.
5880         * config/m68k/m68k.h (FL_UCLINUX): Define.
5881
5882 2009-05-13  Jan Hubicka  <jh@suse.cz>
5883
5884         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5885
5886 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5887
5888         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5889         unless -fschedule-insns is specified.
5890
5891 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5892
5893         PR target/39561
5894         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5895         TARGET_EXPAND_CBRANCHDI4.
5896         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5897         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5898         (cmpeqdi): Fix comment.
5899
5900 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5901
5902         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5903         (sh_legitimate_address_p): Likewise.
5904         * config/sh/sh.c (sh_legitimate_index_p): New.
5905         (sh_legitimate_address_p): Likewise.
5906         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5907         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5908         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5909         (MAYBE_BASE_REGISTER_RTX_P): New macro.
5910         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5911         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5912         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5913         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5914         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5915
5916 2009-05-12  Jan Hubicka  <jh@suse.cz>
5917
5918         * tree-inline.c (estimate_operator_cost): Add operands;
5919         when division happens by constant, it is cheap.
5920         (estimate_num_insns): Loads and stores are not having cost of 0;
5921         EH magic stuff is cheap; when computing runtime cost of switch,
5922         use log2 base of amount of its cases; builtin_expect has cost of 0;
5923         compute cost for moving return value of call.
5924         (init_inline_once): Initialize time_based flags.
5925         * tree-inline.h (eni_weights_d): Add time_based flag.
5926
5927 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5928
5929         * df-core.c: Update head documentation.
5930
5931 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5932
5933         PR bootstrap/40118
5934         * rs6000.c (rs6000_generate_compare): Use op1b instead of
5935         shadowing exisiting variable op1.
5936
5937 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
5938
5939         PR target/37179
5940         * config/i386/driver-i386.c (processor_signatures): New enum.
5941         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5942         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5943         processor signature to detect geode processor.
5944
5945 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5946
5947         Revert:
5948
5949         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5950
5951         * optabs.c (prepare_cmp_insn): Temporarily disable test that
5952         causes spurious differences between trunk and cond-optab branch.
5953
5954 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5955
5956         * dojump.c (compare_from_rtx): Delete.
5957         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
5958         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
5959         if the comparison does not satisfy the predicate; test predicates for
5960         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
5961         further if one existing pattern fails.
5962         * expr.h (compare_from_rtx): Delete.
5963         (prepare_operand): Declare it.
5964         * optabs.c: Change "lib call" to "libcall" throughout.
5965         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
5966         HAVE_conditional_trap, emit_cmp_insn): Delete.
5967         (can_compare_p): Delete cmp_optab case.
5968         (prepare_float_lib_cmp): Return an rtx and a machine mode.
5969         Accept other parameters by value.
5970         (prepare_operand): Make non-static.
5971         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
5972         other parameters by value.  Try to widen operands here based on
5973         an optab_methods argument and looking at cbranch_optab.
5974         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5975         loop.  Use cbranch_optab directly.
5976         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
5977         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5978         assertion.
5979         (emit_conditional_move, emit_conditional_add): Inline what's needed
5980         of compare_from_rtx, using new prepare_cmp_insn for the rest.
5981         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5982         with COMPARE.  Move cmov_optab and cstore_optab above
5983         with cbranch_optab, move cmp_optab down with ucmp_optab,
5984         remove tst_otpab.  Do not initialize trap_rtx.
5985         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
5986         for trap code.  Do not check HAVE_conditional_trap.  Use
5987         prepare_cmp_insn.  Accept no predicate for operand 3.
5988         * optabs.h (OTI_cmp): Mark as used only for libcalls.
5989         (OTI_ctrap, ctrap_optab): New.
5990         (tst_optab): Delete.
5991         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5992         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5993         with lookup of ctrap_optab.
5994         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5995         Delete.
5996         (ctrap_optab): New.
5997
5998         * combine.c (combine_simplify_rtx, simplify_set): Do not
5999         special case comparing against zero for cc0 machines.
6000         * simplify-rtx.c (simplify_binary_operation_1): Never remove
6001         COMPARE on cc0 machines.
6002         (simplify_relational_operation): Return a new expression when
6003         a COMPARE could be removed.
6004         * final.c (final_scan_insn): Compare cc_status values
6005         against LHS of a (compare FOO (const_int 0)) cc0 source.
6006         Also check if cc_status.value is the full compare.
6007
6008         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
6009         (cstoreMM4): Document.
6010         (conditional_trap): Document ctrapMM4 instead.
6011         (sync_compare_and_swapMM): Refer to cbranchcc4.
6012         (Dependent Patterns): Eliminate obsolete information referring to
6013         the old jump optimization phase.
6014         (Canonicalization): Include cbranchcc4 case, omit canonicalization
6015         of compares with 0 on cc0 machines.
6016         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
6017         avoiding references to cc0.  Remove text about storing operands
6018         in cmpMM.
6019         * doc/tm.texi (Condition Codes): Include blurb on different
6020         condition code representations, separate into subsections for
6021         CC0, MODE_CC and conditional execution.
6022
6023         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
6024         alpha_emit_setcc): Accept operands and a machine mode.
6025         * config/alpha/alpha.c (alpha_emit_conditional_branch):
6026         Get code/op0/op1 from operands, use machine mode argument
6027         instead of alpha_compare.fp_p.  Emit the branch here.
6028         (alpha_emit_setcc): Likewise, and return boolean.
6029         (alpha_emit_conditional_move): Likewise.  Assert that
6030         cmp_op_mode == cmp_mode, and simplify accordingly.
6031         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
6032         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
6033         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
6034         Delete.
6035         (stack probe test): Use cbranchdi4.
6036         * config/alpha/predicates.md (alpha_cbranch_operator): New.
6037
6038         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
6039         * config/arc/arc.h (movsicc, movsfcc): Use it.
6040         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
6041         (cbranchsi4, cstoresi4): New.
6042         (cmpsi, bCC and sCC expanders): Remove. 
6043
6044         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
6045         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
6046         * config/arm/predicates.md (arm_comparison_operator): Only include
6047         floating-point operators if there is a hardware floating-point unit.
6048         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
6049         deferring to cbranch_cc and cstore_cc respectively.
6050         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
6051         cbranch_cc, cstore_cc): New.
6052         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
6053         arm_compare_op1.
6054         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
6055
6056         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
6057         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
6058         as an argument.
6059         (adjust_insn_length): Adjust calls.
6060         (avr_reorg): Handle (compare (foo) (const_int 0)).
6061         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
6062         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
6063         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
6064         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
6065         (bCC): Remove.
6066         (cbranchqi4, cbranchhi4, cbranchsi4): New.
6067         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
6068
6069         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
6070         (cbranchsi4, cstorebi4, cstoresi4): New.
6071         (movbisi): This insn is duplicate, split it to zero_extend.
6072         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
6073         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
6074         (bfin_optimize_loop): Use cbranch expander.
6075         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
6076         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
6077         (bfin_bimode_comparison_operator): ... this.
6078         (bfin_direct_comparison_operator): New.
6079  
6080         * config/cris/cris.c (cris_normal_notice_update_cc): Look
6081         inside (compare FOO (const_int 0)).
6082         (cris_rtx_costs): Handle ZERO_EXTRACT.
6083         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
6084         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
6085         (*tstdi_v32): Delete.
6086         (*cmpdi_non_v32): Add M alternative for operand 1.
6087         (cmpsi, cmp<mode>): Make private.
6088         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
6089         with COMPARE.
6090         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
6091
6092         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
6093         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
6094         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
6095         (cc_reg_operand): New.
6096         (any_cond): Delete.
6097         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
6098         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
6099         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
6100         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
6101         crx_expand_scond): Delete.
6102
6103         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
6104         (cbranchsi4): New.
6105         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
6106         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
6107
6108         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
6109         cstoresi4, cstoresf4, cstoredf4): New.
6110         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
6111         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
6112         Receive the entire operands array.
6113         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
6114         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
6115         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
6116         Get test/op0/op1 from the operands array.
6117         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
6118
6119         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
6120         (h8300_expand_store): New.
6121         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
6122         (const_int 0)).
6123         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
6124         (h8300_expand_store): New.
6125         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
6126         or do not try to produce (set (cc0) REG).
6127         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
6128         change a compare into a move to a scratch register.  Disable some
6129         peepholes when comparing with zero.
6130         (tstsi, tsthi, tstsi, cmpqi): Make private.
6131         (cmphi): Delete.
6132         (bCC, sCC): Delete.
6133         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
6134         cstoresi4): New.
6135
6136         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
6137         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
6138         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
6139         (ix86_emit_i387_log1p): Use cbranchxf2.
6140         (ix86_expand_setcc): Return void.
6141         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
6142         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
6143         cmp<MODEF>, cmpcc): Remove.
6144         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
6145         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
6146         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
6147         (sCC and bCC expanders): Remove.
6148         (stack_protect_test): Use cbranchcc4.
6149
6150         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
6151         Delete.
6152         (ia64_expand_compare): Accept three rtx by reference and return void.
6153         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
6154         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
6155         from *expr.  Update *expr with the BImode comparison to do.
6156         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
6157         cmptf, bCC, sCC, conditional_trap): Delete.
6158         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
6159         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
6160         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
6161         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
6162         * config/ia64/predicates.md (ia64_cbranch_operator): New.
6163
6164         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
6165         type of last argument.
6166         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
6167         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
6168         use machine mode argument instead of branch_type.  Remove dead
6169         code for floating-point comparisons.
6170         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
6171         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
6172         Remove.
6173         (cbranchsi4, cstoresi4): New.
6174         * config/iq2000/predicates.md (reg_or_const_operand): New.
6175
6176         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
6177         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
6178         (b<code>_op): Rewrite to...
6179         (bcc_op): ... this, using match_operator.
6180         (s<code>_op): Rewrite to...
6181         (scc_op): ... this, using match_operator.
6182         (s<code>_24_op): Rewrite to...
6183         (scc_op_24): ... this, using match_operator.
6184         (s<code>_<mode>): Rewrite to...
6185         (cstore<mode>4): ... this, using match_operator.
6186         (s<code>_<mode>_24): Rewrite to...
6187         (cstore<mode>4_24): ... this, using match_operator.
6188         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
6189         m32c_unpend_compare, m32c_expand_scc): Delete.
6190         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
6191         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
6192         (m32c_expand_movcc): Change NE to EQ if necessary.
6193         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
6194
6195         * config/m32r/m32r-protos.h (gen_cond_store): New.
6196         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
6197         (gen_cond_store): New, from sCC patterns.
6198         (m32r_expand_block_move): Use cbranchsi4.
6199         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
6200         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
6201         (cbranchsi4, cstoresi4): New.
6202         
6203         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
6204         Delete.
6205         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
6206         (m68hc11_notice_update_cc): Look into a compare with 0.
6207         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
6208         Delete.
6209         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
6210         cmphi, cmpqi, bCC): Delete.
6211         (cbranchsi4, cbranchhi4, cbranchqi4): New.
6212         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
6213         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
6214         sets with COMPARE.
6215
6216         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
6217         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
6218         * config/m68k/constraints.md (H): New.
6219         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
6220         the define_insn below.
6221         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
6222         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
6223         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
6224         patterns): Wrap RHS with COMPARE.
6225         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
6226         (*cmpdi_internal): Name this pattern.
6227         (cmpdi): Change to define_insn.
6228         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
6229         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
6230         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
6231         predicate.
6232         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
6233         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
6234         (conditional_trap): Change to...
6235         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
6236         (*conditional_trap): Use the ordered_comparison_operator and
6237         const1_operand predicates.
6238         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
6239         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
6240         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
6241         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
6242
6243         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
6244         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
6245         (mcore_gen_compare): New. 
6246         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
6247         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
6248         (mcore_gen_compare): ... this.
6249         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
6250         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
6251         (stack probe pattern): Use cbranchsi4.
6252
6253         * config/mips/predicates.md (mips_cstore_operator): New.
6254         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
6255         * config/mips/mips.md (any_cond): Delete.
6256         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
6257         always succeed.
6258         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
6259         fixuns_truncsfdi2): Use cbranch patterns.
6260         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
6261         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
6262         Adjust call to mips_expand_conditional_branch.
6263         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
6264         cstore<GPR:mode>4.
6265         * config/mips/mips-protos.h (mips_expand_conditional_branch,
6266         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
6267         * config/mips/mips.c (cmp_operands): Delete.
6268         (mips_emit_compare): Get comparison operands from *op0/*op1.
6269         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
6270         that it succeeds.  Use op0/op1 instead of cmp_operands.
6271         (mips_expand_conditional_branch, mips_expand_conditional_move,
6272         mips_expand_conditional_trap): Likewise.
6273         (mips_block_move_loop): Use cbranch patterns. 
6274         * config/mips/mips.h (cmp_operands): Delete.
6275
6276         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
6277         (mmix_gen_compare_reg): Just return a register in the right CC mode.
6278         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
6279         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
6280         (*cmpcc_folded): Rename to...
6281         (*cmpdi_folded): this.
6282         (*cmpcc): Rename to...
6283         (*cmps): ... this.
6284         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
6285         (bCC): Remove.
6286         (cbranchdi4): New.
6287         (cbranchdf4): New.  Handle invalid comparisons here.
6288         * config/mmix/predicates.md (float_comparison_operator): New.
6289
6290         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
6291         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
6292         * config/mn10300/mn10300.md (tst): Delete.
6293         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
6294         Name these patterns and wrap RHS in a compare.
6295         (*cmpsi): Make this pattern private.  Include tst.
6296         (*cmpsf): Make this pattern private.
6297         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
6298         (compare with zero peepholes): Likewise.
6299         (bCC): Remove.
6300         (cbranchsi4, cbranchsf4): New.
6301         (casesi): Use cbranchsi4.
6302
6303         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
6304         hppa_branch_type): Delete.
6305         (return_addr_rtx): Use cbranchsi4.
6306         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
6307         Emit CCFPmode comparison here.
6308         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
6309         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
6310         hppa_branch_type): Delete.
6311         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
6312         (movsicc, movdicc): Remove references to hppa_compare_op0,
6313         hppa_compare_op1 and compare_from_rtx.
6314         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
6315         (casesi): Use cbranchsi4.
6316
6317         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
6318         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
6319         * config/pdp11/pdp11.md (register_or_const0_operand): New.
6320         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
6321         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
6322         (bCC): Delete.
6323         (cbranchdf4, cbranchhi4, cbranchqi4): New.
6324         (*branch, *branch_inverted): New.
6325
6326         * config/picochip/picochip.md (cbranchhi4): Use
6327         ordered_comparison_operator.
6328         (cmphi, bCC): Remove.
6329
6330         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
6331         (trap_comparison_operator): Delete.
6332         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
6333         rs6000_emit_cbranch): Accept mode and operands.
6334         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
6335         rs6000_compare_fp_p): Delete.   
6336         (rs6000_generate_compare): Accept mode and comparison.  Extract code
6337         and op0/op1 from there.  Replace references to rs6000_compare_op0
6338         and rs6000_compare_op1.
6339         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
6340         extract result from passed operands.
6341         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
6342         extract loc from passed operands.
6343         (rs6000_emit_cmove): Likewise.
6344         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
6345         rs6000_compare_fp_p): Delete.
6346         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
6347         (cbranch<GPR>4, cbranch<FP>4): New.
6348         (cstore<mode>4): New.  Consolidate here all choices about when to use
6349         portable or specialized sCC sequences.
6350         (stack_protect_test): Use cbranchsi4.
6351         (conditional_trap): Replace with ctrap<GPR>4.
6352         (conditional trap insn): Replace trap_comparison_operator with
6353         ordered_comparison_operator. 
6354
6355         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
6356         (s390_emit_prologue): Use ctrap.
6357         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
6358         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
6359         New predicates replacing...
6360         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
6361         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
6362         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
6363         (add<mode>cc): Do not use s390_compare_op0/op1.
6364         (s<code>): Change to...
6365         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
6366         (seq): Change to...
6367         (cstorecc4): ... this.  Handle EQ or NE equally.
6368         (*sne): Un-privatize for use in cstorecc4.
6369         (b<code>): Change to...
6370         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
6371         (conditional_trap): Replace with...
6372         (ctrap<GPR>4, ctrap<FP>4): ... these.
6373         (stack_protect): Use cbranchcc4.
6374
6375         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
6376         * config/score/score-protos.h (score_gen_cmp): Delete.
6377         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
6378         (score_block_move-loop): Use cbranchsi4.
6379         * config/score/score.md (cbranchsi4): New.
6380         (cmpsi, bCC): Delete.
6381         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
6382         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6383         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
6384         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6385         * config/score/score3.h (score3_gen_cmp): Delete.
6386         * config/score/score7.h (score7_gen_cmp): Delete.
6387
6388         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
6389         (sh_emit_scc_to_t): ... this.  Return void.
6390         (from_compare): Rename to...
6391         (sh_emit_compare_and_branch): ... this.
6392         (sh_emit_compare_and_set): New.
6393         (sh_expand_t_scc): Accept operands.
6394         * config/sh/predicates.md (sh_float_comparison_operator): New.
6395         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
6396         (prepare_scc_operands): Rename to...
6397         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
6398         arguments.
6399         (sh_emit_cheap_store_flag): New.
6400         (sh_emit_set_t_insn): New.
6401         (from_compare): Rename to...
6402         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
6403         handling of TARGET_SH2E floating point to avoid recursive call.
6404         Generate branch here.
6405         (sh_emit_compare_and_set): New.
6406         (sh_expand_t_scc): Get op0/op1 from arguments.
6407         (sh_emit_cheap_store_flag): New.
6408         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
6409         cases.
6410         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6411         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
6412         (movsicc, movdicc): Do nothing when it recreated operands from
6413         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
6414         prepare_scc_operands (now sh_emit_scc_to_t).
6415         (udivdi3): Use cstoresi4.
6416         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
6417         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
6418         (cbranchint4_media, cbranchfp4_media): New.
6419         (casesi): Use cbranchdi4.
6420         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
6421         Delete.
6422         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
6423         (movnegt): Remove second operand.
6424         (cbranchsf4, cbranchdf4): New.
6425         (stack_protect): Use cbranchdi4/cbranchsi4.
6426
6427         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
6428         (gen_compare_reg): Accept comparison, extract part of it to...
6429         (gen_compare_reg_1): ... this. 
6430         (gen_compare_operator): Delete.
6431         (gen_v9_scc): Accept separate destination, comparison code and arms.
6432         Do not use sparc_compare_op0/sparc_compare_op1.
6433         (emit_scc_insn, emit_conditional_branch_insn): New.
6434         (emit_v9_brxx): Make static.  Remove useless assertion.
6435         (sparc_emit_float_lib_cmp): Return RTL instead of calling
6436         emit_cmp_insn.
6437         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
6438         * config/sparc/sparc-protos.h (gen_compare_reg,
6439         sparc_emit_float_lib_cmp): Adjust prototype.
6440         (emit_scc_insn, emit_conditional_branch_insn): New.
6441         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6442         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
6443         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
6444         iterators to the top.
6445         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
6446         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
6447         snedi_special_trunc): Delete.
6448         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
6449         and snedi_special_trunc.
6450         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
6451         cbranchdi4, cbranch<F:mode>4): New.
6452         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
6453         here.  Use gen_compare_reg instead of gen_compare_operator.
6454         (conditional_trap): Replace with...
6455         (ctrapsi4, ctrapdi4): ... this.
6456         (stack_protect_test): Use cbranchcc4.
6457
6458         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
6459         argument to rtx.
6460         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
6461         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
6462         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
6463         from operands[0] or operands[3] depending on is_set.
6464         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
6465         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
6466         cmpdf, bCC), sCC: Remove.
6467         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
6468         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
6469         cstoredf4): New.
6470         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
6471         spu_emit_branch_or_set.
6472
6473         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
6474         Add two arguments.
6475         * config/stormy16/stormy16.h (xstormy16_compare_op0,
6476         xstormy16_compare_op1): Delete.
6477         * config/stormy16/stormy16.c (xstormy16_compare_op0,
6478         xstormy16_compare_op1): Delete. 
6479         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
6480         Adjust calls.
6481         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
6482         (cmphi, cmpsi, bCC): Remove.
6483
6484         * config/v850/v850.md (tstsi, cmpsi): Fold into...
6485         (*cmpsi): ... this one.
6486         (cbranchsi4, cstoresi4): New.
6487         (bCC expanders): Delete.
6488         (sCC insns): Fold into...
6489         (*setcc): ... this one.
6490         (casesi): Do not use gen_cmpsi and gen_bgtu. 
6491         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
6492         (movsicc): Simplify.
6493         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
6494
6495         * config/vax/vax-protos.h (cond_name): New.
6496         (vax_output_conditional_branch): Remove.
6497         * config/vax/vax.c (cond_name): New.
6498         (vax_output_conditional_branch): Remove.
6499         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
6500         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
6501         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
6502         (bit<VAXint>): Wrap source with (compare).
6503         (b<code> and following unnamed pattern): Rename to *branch and
6504         *branch_reversed.  Change macroization to match_operator.
6505         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
6506
6507         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
6508         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
6509         Change last argument to machine_mode.
6510         (xtensa_expand_scc): Add machine_mode argument.
6511         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
6512         (gen_conditional_move, xtensa_expand_conditional_branch,
6513         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
6514         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
6515         Adjust operand numbers.
6516         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
6517         Delete.
6518         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
6519         (cmpsi, cmpsf, b<code>, s<code>): Delete.
6520         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
6521
6522 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
6523
6524         * optabs.c (prepare_cmp_insn): Temporarily disable test that
6525         causes spurious differences between trunk and cond-optab branch.
6526
6527 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6528
6529         PR target/37137
6530         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
6531
6532 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6533
6534         * tree.c (iterative_hash_pointer): Delete.
6535         (iterative_hash_expr): Short-circuit handling of NULL pointer.
6536         Hash UIDs and versions of SSA names.  Don't special-case built-in
6537         function declarations.
6538
6539 2009-05-11  Ian Lance Taylor  <iant@google.com>
6540
6541         PR bootstrap/40103
6542         * graphite.c: Force -Wc++-compat to only be a warning before
6543         #including "cloog/cloog.h".
6544
6545 2009-05-11  Martin Jambor  <mjambor@suse.cz>
6546
6547         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
6548         
6549 2009-05-11  Jan Hubicka  <jh@suse.cz>
6550
6551         * tree-ssa-loop-ivcanon.c: Include target.h
6552         (struct loop_size): new structure.
6553         (constant_after_peeling): New predicate.
6554         (tree_estimate_loop_size): New function.
6555         (estimated_unrolled_size): Rewrite for new estimates.
6556         (try_unroll_loop_completely): Use new estimates.
6557         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
6558
6559 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6560
6561         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
6562         libcpp interface change.
6563         (spu_macro_to_expand): Likewise.
6564
6565 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
6566
6567         PR tree-optimization/40026
6568         * gimplify.c (gimplify_init_constructor): Change initial conditional
6569         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
6570         optimize_compound_literals_in_ctor.
6571
6572 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
6573
6574         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
6575         New devices.
6576         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
6577
6578 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
6579
6580         * tree-vect-data-refs.c (vect_analyze_group_access): Use
6581         HOST_WIDE_INT for gap.
6582
6583 2009-05-11  Ira Rosen  <irar@il.ibm.com>
6584
6585         PR tree-optimization/40074
6586         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6587         account in group size and step comparison.
6588
6589 2009-05-11  Richard Guenther  <rguenther@suse.de>
6590
6591         * passes.c (init_optimization_passes): Strip now incorrect comment.
6592         (execute_function_todo): Do not set PROP_alias.
6593         * tree-pass.h (PROP_alias): Remove.
6594         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6595         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6596         * tree-nrv.c (pass_return_slot): Likewise.
6597         * tree-object-size.c (pass_object_sizes): Likewise.
6598         * tree-ssa-dom.c (pass_dominator): Likewise.
6599         (pass_phi_only_cprop): Likewise.
6600         * tree-ssa-dse.c (pass_dse): Likewise.
6601         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6602         (pass_cselim): Likewise.
6603         * tree-ssa-pre.c (pass_pre): Likewise.
6604         (pass_fre): Likewise.
6605         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6606         * tree-ssa-sink.c (pass_sink_code): Likewise.
6607         * tree-stdarg.c (pass_stdarg): Likewise.
6608         * tree-tailcall.c (pass_tail_calls): Likewise.
6609         * tree-vrp.c (pass_vrp): Likewise.
6610
6611 2009-05-10  Ian Lance Taylor  <iant@google.com>
6612
6613         * basic-block.h (enum profile_status): Break out of struct
6614         control_flow_graph.
6615         * cgraph.h (struct inline_summary): Break out of struct
6616         cgraph_local_info.
6617         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6618         of struct cgraph_order_sort.
6619         * combine.c (enum undo_kind): New enum, broken out of struct undo.
6620         * cse.c (struct branch_path): Break out of struct
6621         cse_basic_block_data.
6622         * except.h (enum eh_region_type): Break out of struct eh_region.
6623         * gcc.c (enum add_del): Break out of struct modify_target.
6624         * genrecog.c (enum decision_type): Break out of struct decision_test.
6625         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6626         ggc_pch_data.
6627         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6628         * regmove.c (enum match_use): New enum, broken out of struct match.
6629         * sched-int.h (enum post_call_group): New enum, broken out of
6630         struct deps.
6631         (struct deps_reg): Break out of struct deps.
6632         * target.h (struct asm_int_op): Break out of struct gcc_target.
6633         * tree-eh.c (struct goto_queue_node): Break out of struct
6634         leh_tf_state.
6635         * tree-inline.h (enum copy_body_cge_which): Break out of
6636         copy_body_data.
6637         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6638
6639         * c-decl.c (in_struct, struct_types): New static variables.
6640         (pushtag): Add loc parameter.  Change all callers.
6641         (lookup_tag): Add ploc parameter.  Change all callers.
6642         (check_compound_literal_type): New function.
6643         (parser_xref_tag): Add loc parameter.  Change all callers.  If
6644         -Wc++-compat, warn about struct/union/enum types defined within a
6645         struct or union.
6646         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6647         and loc parameters.  Change all callers.  Change error calls to
6648         error_at, using loc.  For a redefinition, if the location of the
6649         original definition is known, report it.  Set in_struct and
6650         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
6651         (finish_struct): Add new parameters enclosing_in_struct and
6652         enclosing_struct_types.  Change all callers.  Set
6653         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6654         in the struct.  If in a struct, add this struct to struct_types.
6655         (start_enum): Add loc parameter.  Change all callers.  Use
6656         error_at for errors, using loc.  For a redefinition, if the
6657         location of the original definition is known, report it.  If in a
6658         struct, add this enum type to struct_types.  If -Wc++-compat warn
6659         if in sizeof, typeof, or alignof.
6660         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6661         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
6662         (c_parser_enum_specifier): Get enum location for start_enum.
6663         (c_parser_struct_or_union_specifier): Get struct location for
6664         start_struct.  Save in_struct and struct_types status between
6665         start_struct and finish_struct.
6666         (c_parser_cast_expression): Get location of cast.
6667         (c_parser_alignof_expression): Get location of type.
6668         (c_parser_postfix_expression): Likewise.
6669         (c_parser_postfix_expression_after_paren_type): Add type_loc
6670         parameter.  Change all callers.  Call check_compound_literal_type.
6671         Use type_loc for error about variable size type.
6672         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6673         of an enum constant from an enum type defined in a struct or union.
6674         (c_cast_expr): Add loc parameter.  Change all callers.  If
6675         -Wc++-compat, warn about defining a type in a cast.
6676         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6677         (start_enum, start_struct, finish_struct): Update declarations.
6678         (parser_xref_tag, c_cast_expr): Update declarations.
6679         (check_compound_literal_type): Declare.
6680
6681 2009-05-11  Ben Elliston  <bje@au.ibm.com>
6682
6683         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6684         for recent libcpp interface change.
6685         (rs6000_macro_to_expand): Likewise.
6686
6687 2009-05-10  Michael Matz  <matz@suse.de>
6688
6689         PR target/40031
6690         * config/arm/arm.c (require_pic_register): Emit on entry edge,
6691         not at entry of function.
6692
6693 2009-05-10  Richard Guenther  <rguenther@suse.de>
6694
6695         PR tree-optimization/40081
6696         Revert
6697         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6698         using the main variant of the element type.  Do not fiddle with
6699         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6700
6701         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6702         structs with volatile fields.
6703
6704 2009-05-10  Jan Hubicka  <jh@suse.cz>
6705
6706         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6707         (estimate_move_cost): Assert that it does not get called for
6708         VOID_TYPE_P.
6709         (estimate_num_insns): Skip VOID types in argument handling.
6710         (optimize_inline_calls): Delete unreachable blocks and verify that
6711         callgraph is valid.
6712
6713 2009-05-10  Jan Hubicka  <jh@suse.cz>
6714
6715         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6716         * cgraph.c (cgraph_mark_address_taken_node): New function.
6717         (dump_cgraph_node): Dump new flag.
6718         * cgraph.h (struct cgraph_node): Add address_taken.
6719         (cgraph_mark_address_taken_node): New function.
6720         * ipa.c (cgraph_postorder): Prioritize functions with address taken
6721         since new direct calls can be born.
6722
6723 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6724
6725         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6726         tok->val.node.node.
6727
6728 2009-05-10  Jan Hubicka  <jh@suse.cz>
6729
6730         PR middle-end/40084
6731         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6732         argument; rewrite.
6733         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6734         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6735         * tree-inline.c (copy_bb): Set frequency correctly.
6736         (fold_marked_statements): Update call to
6737         cgraph_update_edges_for_call_stmt.
6738
6739 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6740
6741         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6742         identifiers in diagnostics.
6743         * config/arm/arm.c (arm_handle_fndecl_attribute,
6744         arm_handle_isr_attribute): Likewise.
6745         * config/avr/avr.c (avr_handle_progmem_attribute,
6746         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
6747         * config/bfin/bfin.c (handle_int_attribute,
6748         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6749         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6750         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6751         Likewise.
6752         * config/darwin.c (darwin_handle_kext_attribute,
6753         darwin_handle_weak_import_attribute): Likewise.
6754         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6755         h8300_handle_eightbit_data_attribute,
6756         h8300_handle_tiny_data_attribute): Likewise.
6757         * config/i386/i386.c (ix86_handle_cconv_attribute,
6758         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
6759         * config/i386/winnt.c (ix86_handle_shared_attribute,
6760         ix86_handle_selectany_attribute): Likewise.
6761         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6762         * config/m32c/m32c.c (function_vector_handler): Likewise.
6763         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6764         m68hc11_handle_fntype_attribute): Likewise.
6765         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6766         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6767         * config/mips/mips.c (mips_insert_attributes,
6768         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6769         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6770         rs6000_handle_struct_attribute): Likewise.
6771         * config/sh/sh.c (sh_insert_attributes,
6772         sh_handle_resbank_handler_attribute,
6773         sh_handle_interrupt_handler_attribute,
6774         sh2a_handle_function_vector_handler_attribute,
6775         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6776         Likewise.
6777         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6778         * config/spu/spu.c (spu_handle_fndecl_attribute,
6779         spu_handle_vector_attribute): Likewise.
6780         * config/stormy16/stormy16.c
6781         (xstormy16_handle_interrupt_attribute): Likewise.
6782         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6783         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6784
6785 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6786
6787         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
6788         (pp_translate_identifiers): New.
6789         (pp_identifier): Only conditionally translate identifier to locale
6790         character set.
6791         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6792         (pp_base_tree_identifier): Only conditionally translate identifier
6793         to locale character set.
6794         * c-pretty-print.c (M_): Define.
6795         (pp_c_type_specifier, pp_c_primary_expression): Mark English
6796         fragments for conditional translation with M_.
6797         * tree-pretty-print.c (maybe_init_pretty_print): Disable
6798         identifier translation.
6799
6800 2009-05-10  Richard Guenther  <rguenther@suse.de>
6801
6802         PR tree-optimization/40081
6803         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6804         using the main variant of the element type.  Do not fiddle with
6805         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6806
6807 2009-05-09  Jan Hubicka  <jh@suse.cz>
6808
6809         PR middle-end/40080
6810         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6811         indirect calls; verify cgraph afterwards.
6812
6813 2009-05-09  Jan Hubicka  <jh@suse.cz>
6814
6815         PR bootstrap/40082
6816         * ipa.c (update_inlined_to_pointer): New function.
6817         (cgraph_remove_unreachable_nodes): Use it.
6818
6819 2009-05-09  Jan Hubicka  <jh@suse.cz>
6820
6821         * tree-eh.c (struct leh_state): Remove prev_try.
6822         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6823         not track prev_try.
6824         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
6825         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6826         remove_eh_handler_and_replace, foreach_reachable_handler,
6827         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6828         * except.h (struct eh_region): Remove eh_region_u_cleanup.
6829         (gen_eh_region_cleanup): Update prototype.
6830
6831 2009-05-09  Jan Hubicka  <jh@suse.cz>
6832
6833         PR middle-end/40043
6834         * except.c (copy_eh_region): Always set prev_try.
6835         (redirect_eh_edge_to_label): Find outer try.
6836         (foreach_reachable_handler): When looking for prev try
6837         handle case where previous try is not going to be taken.
6838
6839 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6840
6841         PR tree-optimization/40049
6842         * tree-vect-stmts.c (vectorizable_operation): If the machine has
6843         only vector/vector shifts, convert the type of the constant to the
6844         appropriate type to avoid building incorrect trees, which
6845         eventually have problems with garbage collection.
6846
6847 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6848
6849         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6850         -1 for complex floating-point types if honoring signed zeros.
6851
6852 2009-05-08  Jan Hubicka  <jh@suse.cz>
6853
6854         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6855         argument; handle correctly when profile is absent.
6856         (build_cgraph_edges): Update.
6857         (rebuild_cgraph_edges): Update.
6858         * cgraph.c: Do not include varray.h.
6859         (cgraph_set_call_stmt_including_clones): New function.
6860         (cgraph_create_edge_including_clones): Likewise
6861         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
6862         (cgraph_update_edges_for_call_stmt): Handle clones.
6863         (cgraph_remove_node): Handle clone tree.
6864         (cgraph_remove_node_and_inline_clones): New function.
6865         (dump_cgraph_node): Dump clone tree.
6866         (cgraph_clone_node): Handle clone tree.
6867         (clone_function_name): Bring here from tree-inline.c.
6868         (cgraph_create_virtual_clone): New function.
6869         * cgraph.h (ipa_replace_map): Move here from ipa.h.
6870         (cgraph_clone_info): New function.
6871         (strut cgraph_node): Add clone_info and new clone tree pointers.
6872         (cgraph_remove_node_and_inline_clones,
6873         cgraph_set_call_stmt_including_clones,
6874         cgraph_create_edge_including_clones,
6875         cgraph_create_virtual_clone): Declare.
6876         (cgraph_function_versioning): Use VEC argument.
6877         (compute_call_stmt_bb_frequency): Update prototype.
6878         (cgraph_materialize_all_clones): New function.
6879         * ipa-cp.c (ipcp_update_cloned_node): Remove.
6880         (ipcp_create_replace_map): Update to VECtors.
6881         (ipcp_update_callgraph): Use virtual clones.
6882         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6883         (ipcp_update_profiling): Do not update local profiling.
6884         (ipcp_insert_stage): Use VECtors and virtual clones.
6885         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6886         (clone_of_p): New function.
6887         (cgraph_preserve_function_body_p): Use clone tree.
6888         (cgraph_optimize): Materialize clones.
6889         (cgraph_function_versioning): Update for VECtors.
6890         (save_inline_function_body): Use clone tree.
6891         (cgraph_materialize_clone): New function.
6892         (cgraph_materialize_all_clones): Likewise.
6893         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6894         * ipa.c: Include gimple.h.
6895         (cgraph_remove_unreachable_nodes): Use clone tree.
6896         * ipa-prop.c (ipa_note_param_call): Update call to
6897         compute_call_stmt_bb_frequencycall.
6898         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
6899         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
6900         (copy_bb): Handle updating of clone tree; add new edge when new call
6901         appears.
6902         (expand_call_inline): Be strict about every call having edge.
6903         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6904         (delete_unreachable_blocks_update_callgraph): New function.
6905         (tree_function_versioning): Use VECtors; always remove unreachable
6906         blocks and fold conditionals.
6907         * tree-inline.h: Do not include varray.h.
6908         (tree_function_versioning): Remove.
6909         * Makefile.in (GTFILES): Remove tree-inline.c
6910         * passes.c (do_per_function): Do only functions having body.
6911         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6912         tree.
6913
6914 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
6915             Andrew Morrow  <acm@google.com>
6916
6917         PR c/36892
6918         * c-common.c (c_common_attribute_table): Permit deprecated
6919         attribute to take an optional argument.
6920         (handle_deprecated_attribute): If the optional argument to
6921         __attribute__((deprecated)) is not a string ignore the attribute
6922         and emit a warning.
6923
6924         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6925         * c-typeck.c (build_component_ref): Likewise.
6926         (build_external_ref): Likewise.
6927
6928         * toplev.c (warn_deprecated_use): Add an attribute argument.
6929         Emit the message associated with __attribute__((deprecated)).
6930
6931         * toplev.h (warn_deprecated_use): Updated.
6932
6933         * doc/extend.texi: Document new optional parameter to
6934         __attribute__((deprecated))
6935
6936 2009-05-08  Michael Eager <eager@eagercon.com>
6937
6938         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6939         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6940
6941 2009-05-08  Richard Guenther  <rguenther@suse.de>
6942
6943         PR tree-optimization/40062
6944         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6945         Avoid exponential behavior.
6946
6947 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6948
6949         PR rtl-optimization/33928
6950         PR 26854
6951         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6952         process_uses, build_single_def_use_links): New.
6953         (update_df): Update use_def_ref.
6954         (forward_propagate_into): Use get_def_for_use instead of use-def
6955         chains.
6956         (fwprop_init): Call build_single_def_use_links and let it initialize
6957         dataflow.
6958         (fwprop_done): Free use_def_ref.
6959         (fwprop_addr): Eliminate duplicate call to df_set_flags.
6960         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
6961         df_rd_simulate_one_insn): New.
6962         (df_rd_bb_local_compute_process_def): Update head comment.
6963         (df_chain_create_bb): Use the new RD simulation functions.
6964         * df.h (df_rd_simulate_artificial_defs_at_top, 
6965         df_rd_simulate_one_insn): New.
6966         * opts.c (decode_options): Enable fwprop at -O1.
6967         * doc/invoke.texi (-fforward-propagate): Document this.
6968
6969 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6970
6971         PR c/24581
6972         * c-typeck.c (build_binary_op): Handle arithmetic between one real
6973         and one complex operand specially.
6974         * tree-complex.c (some_nonzerop): Do not identify a real value as
6975         zero if flag_signed_zeros.
6976
6977 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6978
6979         PR rtl-optimization/33928
6980         * loop-invariant.c (record_use): Fix && vs. || mishap.
6981
6982 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6983
6984         PR rtl-optimization/33928
6985         * loop-invariant.c (struct use): Add addr_use_p.
6986         (struct def): Add n_addr_uses.
6987         (struct invariant): Add cheap_address.
6988         (create_new_invariant): Set cheap_address.
6989         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
6990         (record_uses): Pass df_ref to record_use.
6991         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6992         used only as such.
6993
6994 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6995
6996         * config/sh/sh.c: Do not include c-pragma.h.
6997
6998 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6999
7000         * config/spu/spu.c: Remove include of c-common.h.
7001
7002 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
7003
7004         PR c/39037
7005         * c-common.h (mark_valid_location_for_stdc_pragma,
7006         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
7007         clear_float_const_decimal64, float_const_decimal64_p): New.
7008         * c.opt (Wunsuffixed-float-constants): New.
7009         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
7010         unsuffixed float constant, handle new warning.
7011         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
7012         * c-decl.c (c_scope): New flag float_const_decimal64.
7013         (set_float_const_decimal64, clear_float_const_decimal64,
7014         float_const_decimal64_p): New.
7015         (push_scope): Set new flag.
7016         * c-parser.c (c_parser_translation_unit): Mark when it's valid
7017         to use STDC pragmas.
7018         (c_parser_external_declaration): Ditto.
7019         (c_parser_compound_statement_nostart): Ditto.
7020         * c-pragma.c (valid_location_for_stdc_pragma,
7021         mark_valid_location_for_stdc_pragma,
7022         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
7023         handle_pragma_float_const_decimal64): New.
7024         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
7025         * cp/semantics.c (valid_location_for_stdc_pragma_p,
7026         set_float_const_decimal64, clear_float_const_decimal64,
7027         float_const_decimal64_p): New dummy functions.
7028         * doc/extend.texi (Decimal Float): Remove statement that the
7029         pragma, and suffix for double constants, are not supported.
7030         * doc/invoke.texi (Warning Options): List new option.
7031         (-Wunsuffixed-float-constants): New.
7032
7033 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
7034
7035         * config/i386/i386.c: Do not include c-common.h.
7036
7037 2009-05-07  Mark Heffernan  <meheff@google.com>
7038
7039         * doc/invoke.texi (Debugging Options): Document change of debugging
7040         dump location.
7041         * opts.c (decode_options): Make dump_base_name relative to
7042         aux_base_name directory.
7043
7044 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
7045
7046         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
7047         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
7048
7049 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
7050
7051         * Makefile.in (install-plugin): Simplify a bit.
7052
7053 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
7054
7055         * Makefile.in (OBJS-common): Add regcprop.o.
7056         (regcprop.o): New.
7057         * timevar.def (TV_CPROP_REGISTERS): New.
7058         * regrename.c (regrename_optimize): Return 0.
7059         (rest_of_handle_regrename): Delete.
7060         (pass_rename_registers): Point to regrename_optimize.
7061         (struct value_data_entry, struct value_data, 
7062         kill_value_one_regno, kill_value_regno, kill_value,
7063         set_value_regno, init_value_data, kill_clobbered_value,
7064         kill_set_value, kill_autoinc_value, copy_value,
7065         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
7066         replace_oldest_value_reg, replace_oldest_value_addr,
7067         replace_oldest_value_mem, copyprop_hardreg_forward_1,
7068         debug_value_data, validate_value_data): Move...
7069         * regcprop.c: ... here.
7070         (rest_of_handle_cprop): Delete.
7071         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
7072
7073 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
7074
7075         PR middle-end/40057
7076         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
7077         GEN_INT for 1 << bitnum.
7078         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
7079         build_int_cst_type.
7080
7081 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
7082
7083         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7084         Remove wrong description of "nand" operation.
7085
7086 2009-05-06  Richard Guenther  <rguenther@suse.de>
7087             Adam Nemet  <anemet@caviumnetworks.com>
7088
7089         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
7090         comment.  Add that if LHS is not a gimple register, then RHS1 has
7091         to be a single object (GIMPLE_SINGLE_RHS).
7092
7093 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
7094
7095         * expr.c (get_def_for_expr): Move it up in the file.
7096         (store_field): When expanding a bit-field store, look at the
7097         defining gimple stmt for the masking conversion.
7098
7099 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
7100
7101         PR middle-end/39986
7102         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
7103         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
7104         32-bit memcpy into long.
7105
7106 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
7107
7108         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
7109         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
7110         new_reg_loc_descr.
7111         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
7112         instead of appending DW_OP_deref*.
7113
7114 2009-05-06  Michael Matz  <matz@suse.de>
7115
7116         PR middle-end/40021
7117         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
7118         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
7119
7120 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
7121
7122         * Makefile.in (install-plugin): Fix srcdir handling.
7123
7124 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
7125
7126         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
7127         when processing for not_regs_needed bitmap.
7128         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
7129         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
7130         handling it for rhs. 
7131
7132 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7133
7134         * config/i386/i386.md (unnamed inc/dec peephole): Use
7135         optimize_insn_for_size_p instead of optimize_size.
7136         * config/i386/predicates.md (incdec_operand): Likewise.
7137         (aligned_operand): Likewise.
7138         * config/i386/sse.md (divv8sf3): Likewise.
7139         (sqrtv8sf2): Likewise.
7140
7141 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7142
7143         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
7144
7145         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
7146
7147 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7148
7149         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
7150         ssemodesuffixf2c with avxmodesuffixf2c.
7151
7152 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
7153
7154         PR c/40032
7155         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
7156
7157 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
7158
7159         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
7160         (struct tree_base): Adjust spacing for 8 bit boundaries.
7161         (struct tree_decl_common): Add decl_by_reference_flag bit.
7162         (DECL_BY_REFERENCE): Adjust.
7163         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
7164         print DECL_BY_REFERENCE bit.
7165         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
7166         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
7167         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
7168         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
7169         unconditionally.
7170
7171         PR middle-end/39666
7172         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
7173         range of the type, but default label is missing, add it with one
7174         of the existing labels instead of adding a new label for it.
7175
7176 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
7177
7178         * dwarf.h: Remove.
7179
7180 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
7181
7182         * Makefile.in (enable_plugin, plugin_includedir): New.
7183         (install): Depend on install-plugin.
7184         (PLUGIN_HEADERS): New.
7185         (install-plugin): New.
7186         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
7187
7188 2009-05-05  Richard Guenther  <rguenther@suse.de>
7189
7190         PR tree-optimization/40022
7191         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
7192         the only vuse.
7193         (phivn_valid_p): Fix tuplification error, simplify.
7194         (phiprop_insert_phi): Add dumps.
7195         (propagate_with_phi): Simplify.
7196
7197 2009-05-05  Richard Guenther  <rguenther@suse.de>
7198
7199         PR middle-end/40023
7200         * builtins.c (gimplify_va_arg_expr): Properly build the address.
7201
7202 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
7203
7204         * tree.h (strip_float_extensions): Remove duplicate declaration.
7205         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
7206         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
7207         block_ultimate_origin): Rearrange the declarations line to match the
7208         comment that indicates the .c file which the functions are defined.
7209         (dwarf2out_*, set_decl_rtl): Add comment.
7210         (get_base_address): Adjust comment.
7211         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
7212         declarations line and add comment.
7213         (is_builtin_name): Add blank after function name, for clarity.
7214
7215 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7216
7217         * attribs.c (decl_attributes): Use %qE for identifiers in
7218         diagnostics.
7219         * cgraphunit.c (verify_cgraph_node): Translate function names to
7220         locale character set in diagnostics.
7221         * coverage.c (get_coverage_counts): Use %qE for identifiers in
7222         diagnostics.
7223         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
7224         Document that functions are named in UTF-8.
7225         * expr.c (expand_expr_real_1): Translate function names to locale
7226         character set in diagnostics.
7227         * gimplify.c (omp_notice_variable, omp_is_private,
7228         gimplify_scan_omp_clauses): Use %qE for identifiers in
7229         diagnostics.
7230         * langhooks.c (lhd_print_error_function): Translate function names
7231         to locale character set.
7232         * langhooks.h (decl_printable_name): Document that return value is
7233         in internal character set.
7234         * stmt.c: Include pretty-print.h
7235         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
7236         diagnostics.
7237         (resolve_operand_name_1): Translate named operand name to locale
7238         character set.
7239         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
7240         diagnostics.
7241         * toplev.c (announce_function): Translate function names to locale
7242         character set.
7243         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
7244         (default_tree_printer): Use pp_identifier or translate identifiers
7245         to locale character set.  Mark "<anonymous>" for translation.
7246         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
7247         for identifiers in diagnostics.
7248         * tree.c (handle_dll_attribute): Use %qE for identifiers in
7249         diagnostics.
7250         * varasm.c (output_constructor): Use %qE for identifiers in
7251         diagnostics.
7252
7253 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
7254
7255         * configure.ac: use ` ` instead of $()
7256         * configure: Regenerate.
7257
7258 2009-05-05  Ben Elliston  <bje@au.ibm.com>
7259
7260         * config/pa/linux-atomic.c: Eliminate conditional include of
7261         errno.h on non-LP64 systems to simplify build requirements.
7262
7263 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7264
7265         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
7266         diagnostics.
7267         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
7268         and pass value to identifier_to_locale.
7269         (warn_variable_length_array): Make name a tree.
7270         (grokdeclarator): Separate diagnostic texts for named and unnamed
7271         declarators.  Use %qE for named declarators.
7272         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
7273         diagnostics.
7274         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
7275         identifiers in diagnostics.
7276         * c-typeck.c (push_member_name, start_init): Pass identifiers to
7277         identifier_to_locale.  Mark "anonymous" strings for translation.
7278
7279 2009-05-04  Michael Eager <eager@eagercon.com>
7280
7281         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
7282         address for DImode/DFmode only if double-precision FP regs.
7283
7284 2009-05-04  Michael Eager <eager@eagercon.com>
7285
7286         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
7287         TARGET_SINGLE_FLOAT check.
7288
7289 2009-05-04  Michael Eager <eager@eagercon.com>
7290
7291         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
7292
7293 2009-05-04  Michael Eager <eager@eagercon.com>
7294
7295         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
7296         * config/rs6000/t-xilinx: New
7297
7298 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
7299
7300         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
7301         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
7302         * gcc/explow.c (memory_address): Use target hook.
7303         * gcc/targhooks.c (default_legitimize_address): New.
7304         * gcc/targhooks.h (default_legitimize_address): New.
7305         * gcc/target.h (legitimize_address): New.
7306         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
7307         (TARGET_INITIALIZER): Include it.
7308         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
7309
7310         * config/bfin/bfin-protos.h (legitimize_address): Remove.
7311         * config/bfin/bfin.c (legitimize_address): Remove.
7312         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
7313         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
7314         Remove.
7315         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
7316         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
7317
7318         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
7319         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
7320         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
7321         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
7322         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
7323         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
7324         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
7325         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
7326         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
7327         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
7328         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
7329         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
7330         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
7331         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
7332         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
7333         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
7334         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
7335         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
7336         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
7337         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
7338         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
7339         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
7340         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
7341
7342         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
7343         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
7344         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
7345         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
7346         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
7347         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
7348         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
7349         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
7350         (thumb_legitimize_address): Delete.
7351         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
7352         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
7353         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
7354         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
7355         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
7356         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
7357         Delete.
7358         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
7359         Delete.
7360
7361         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
7362         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
7363         * config/m32r/m32r.c (m32r_legitimize_address): New.
7364         * config/m68k/m68k.c (m68k_legitimize_address): New.
7365         * config/score/score.c (score_legitimize_address): Standardize.
7366         * config/score/score3.c (score3_legitimize_address): Standardize.
7367         * config/score/score3.h (score3_legitimize_address): Adjust.
7368         * config/score/score7.c (score7_legitimize_address): Standardize.
7369         * config/score/score7.h (score7_legitimize_address): Adjust.
7370         * config/sh/sh.c (sh_legitimize_address): New.
7371         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
7372
7373         * gcc/config/s390/s390.c (legitimize_address): Rename to...
7374         (s390_legitimize_address): ... this.
7375         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
7376         (sparc_legitimize_address): ... this.
7377         * gcc/config/i386/i386.c (legitimize_address): Rename to...
7378         (ix86_legitimize_address): ... this.
7379         * gcc/config/avr/avr.c (legitimize_address): Rename to...
7380         (avr_legitimize_address): ... this.
7381         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
7382         (mn10300_legitimize_address): ... this.
7383         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
7384         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
7385         (alpha_expand_mov): Adjust call.
7386
7387         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
7388         * config/spu/spu.c (spu_legitimize_address): Likewise.
7389         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
7390         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
7391
7392 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7393
7394         * intl.c (locale_encoding, locale_utf8): New.
7395         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
7396         * intl.h (locale_encoding, locale_utf8): Declare.
7397         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
7398         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
7399         New.
7400         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
7401         argument.
7402         (pp_tree_identifier): Define to call pp_base_tree_identifier.
7403         (pp_base_tree_identifier): Declare as function.
7404         (identifier_to_locale): Declare.
7405         * Makefile.in (pretty-print.o): Update dependencies.
7406         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
7407
7408 2009-05-04  Richard Guenther  <rguenther@suse.de>
7409
7410         PR middle-end/40015
7411         * builtins.c (fold_builtin_memory_op): Do not decay to element
7412         type if the size matches the whole array.
7413
7414 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
7415
7416         * expmed.c (synth_mult): When trying out a shift, pass the result
7417         of a signed shift.
7418
7419 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
7420
7421         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
7422         (shiftsub1_cost): New.
7423         (init_expmed): Compute shiftsub1_cost.
7424         (synth_mult): Optimize multiplications by constants of the form
7425         -(2^^m-1) for some constant positive integer m.
7426
7427 2009-05-03  Richard Guenther  <rguenther@suse.de>
7428
7429         PR c/39983
7430         * c-typeck.c (array_to_pointer_conversion): Do not built
7431         ADDR_EXPRs of arrays of pointer-to-element type.
7432         * c-gimplify.c (c_gimplify_expr): Revert change fixing
7433         up wrong ADDR_EXPRs after-the-fact.
7434         * c-common.c (strict_aliasing_warning): Strip pointer
7435         conversions for obtaining the original type.
7436         * builtins.c (fold_builtin_memset): Handle array types.
7437         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
7438         and array types
7439
7440 2009-05-03  Richard Guenther  <rguenther@suse.de>
7441
7442         PR middle-end/23329
7443         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
7444         Do not lose casts from array types with unknown extent to array
7445         types with known extent.
7446         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
7447         alias set compatibility.
7448
7449 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7450
7451         * flags.h (extra_warnings): Delete.
7452         * toplev.c (process_options): Handle Wuninitialized here.
7453         * opts.c (extra_warnings): Delete.
7454         (set_Wextra): Delete.
7455         (common_handle_option): -Wextra can be handled automatically.
7456         * c-opts.c (c_common_handle_option): Delete obsolete code.
7457         (c_common_post_options): Simplify comment.
7458         * common.opt (W): Add Var.
7459         (Wextra): Add Var.
7460         (Wuninitialized): Initialize to -1.
7461
7462 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
7463             Richard Guenther  <rguenther@suse.de>
7464
7465         * expr.c (get_def_for_expr): New function.
7466         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
7467         SSA rather than trees.
7468         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
7469         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
7470         
7471 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
7472
7473         * c-common.c (reswords): Add _Imaginary.
7474         * c-common.c (enum rid): Add RID_IMAGINARY.
7475
7476 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
7477
7478         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
7479         Patch by Richard Guenther.
7480
7481 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
7482
7483         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
7484         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7485         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
7486         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
7487         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
7488         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
7489         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
7490         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
7491         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
7492         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
7493         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
7494         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
7495         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
7496         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
7497         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
7498         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
7499         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
7500         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
7501
7502 2009-05-02  Richard Guenther  <rguenther@suse.de>
7503
7504         PR tree-optimization/39940
7505         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
7506         doing so.
7507
7508 2009-05-02  Richard Guenther  <rguenther@suse.de>
7509
7510         PR middle-end/40001
7511         * tree-ssa.c (execute_update_addresses_taken): Properly check
7512         if we can mark a variable DECL_GIMPLE_REG_P.
7513         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
7514         back to the end of the function.
7515         (is_gimple_reg_type): Remove complex type special casing.
7516         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
7517         if not optimizing.
7518
7519 2009-05-02  Ben Elliston  <bje@au.ibm.com>
7520
7521         * doc/collect2.texi (Collect2): Document search path behaviour
7522         when configured with --with-ld.
7523
7524 2009-05-02  Jan Hubicka  <jh@suse.cz>
7525
7526         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
7527         parameter; update callers.
7528         (coalesce_cost_edge): EH edges are costier because they needs
7529         splitting even if not critical and even more costier when there are
7530         multiple EH predecestors.
7531
7532 2009-05-02  Jan Hubicka  <jh@suse.cz>
7533
7534         * except.c (remove_eh_handler_and_replace): Handle updating after
7535         removing TRY blocks.
7536
7537 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
7538
7539         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
7540
7541 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
7542
7543         * varasm.c: Do not include c-pragma.h.
7544         * attribs.c: Do not incude c-common.h.
7545
7546 2009-05-01  Michael Matz  <matz@suse.de>
7547
7548         * calls.c (initialize_argument_information): Handle SSA names like
7549         decls with a non MEM_P DECL_RTL.
7550
7551 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7552
7553         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
7554         * ipa-utils.c: Likewise.
7555         * ipa-type-escape.c: Likewise.
7556         * cgraphunit.c Do not include c-common.h.
7557         * ipa-pure-const.c: Likewise.
7558         * tree-if-conv.c: Likewise.
7559         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
7560         * ipa-struct-reorg.c: Likewise.
7561         * tree-nomudflap.c: Likewise.
7562         * tree-ssa-structalias.c: Likewise.
7563
7564 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7565
7566         * store-motion.c: Many cleanups to make this pass a first-class
7567         citizen instead of an appendix to gcse load motion.  Add TODO list
7568         to make this pass faster/cleaner/better.
7569
7570         (struct ls_expr): Post gcse.c-split cleanups.
7571         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
7572         "stores" field to "avail_stores".
7573         (pre_ldst_mems): Rename to store_motion_mems.
7574         (pre_ldst_table): Rename to store_motion_mems_table.
7575         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
7576         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
7577         (ldst_entry): Rename to st_expr_entry, update users.
7578         (free_ldst_entry): Rename to free_st_expr_entry, update users.
7579         (free_ldst_mems): Rename to free_store_motion_mems, update users.
7580         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7581         update caller.
7582         (first_ls_expr): Rename to first_st_expr, update users.
7583         (next_ls_expr): Rename to next_st_expr, update users.
7584         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
7585         fields properly for store motion instead of names inherited from load
7586         motion in gcse.c.
7587         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7588         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
7589         are done with it.
7590
7591         (ae_kill): Rename to st_kill, update users.
7592         (ae_gen): Rename to st_avloc, update users.
7593         (transp): Rename to st_transp, update users.
7594         (pre_insert_map): Rename to st_insert_map, update users.
7595         (pre_delete_map): Rename to st_delete_map, update users.
7596         (insert_store, build_store_vectors, free_store_memory,
7597         one_store_motion_pass): Update for abovementioned changes.
7598
7599         (gcse_subst_count, gcse_create_count): Remove.
7600         (one_store_motion_pass): New statistics counters "n_stores_deleted"
7601         and "n_stores_created", local variables.
7602
7603         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7604         use for_each_rtx.
7605
7606         (regvec, compute_store_table_current_insn): Remove.
7607         (reg_set_info, reg_clear_last_set): Remove.
7608         (compute_store_table): Use DF caches instead of local dataflow
7609         solvers.
7610
7611 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
7612
7613         * c-objc-common.c (c_tree_printer): Print identifiers with
7614         pp_identifier, not pp_string.  Mark "({anonymous})" for
7615         translation.
7616         * c-pretty-print.c (pp_c_ws_string): New.
7617         (pp_c_cv_qualifier, pp_c_type_specifier,
7618         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7619         pp_c_storage_class_specifier, pp_c_function_specifier,
7620         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7621         pp_c_primary_expression, pp_c_postfix_expression,
7622         pp_c_unary_expression, pp_c_shift_expression,
7623         pp_c_relational_expression, pp_c_equality_expression,
7624         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7625         use pp_string and pp_c_ws_string in place of pp_identifier and
7626         pp_c_identifier for non-identifiers.  Mark English strings for
7627         translation.
7628         * c-pretty-print.h (pp_c_ws_string): Declare.
7629
7630 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
7631             Roland McGrath <roland@redhat.com>
7632
7633         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
7634         (ENABLE_LD_BUILDID): New configuration option.
7635         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7636         (LINK_BUILDID_SPEC): New macro.
7637         (init_spec): If defined, prepend it between LINK_EH_SPEC and
7638         link_spec.
7639         * doc/install.texi: Document --enable-linker-build-id option.
7640         * configure: Rebuild.
7641         * config.in: Rebuild.
7642
7643 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
7644
7645         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7646         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7647         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
7648         MIPS_GP_SAVE_AREA_SIZE.
7649         * config/mips/mips.c (struct mips_frame_info): Update comment
7650         before arg_pointer_offset and hard_frame_pointer_offset.
7651         (mips_compute_frame_info): Update diagram before function: to
7652         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7653         indicate the position of frame_pointer_rtx with -fstack-protector and
7654         to show args_size.  Don't allocate cprestore area for leaf functions
7655         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
7656         cprestore_size.
7657         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7658
7659 2009-04-30  Michael Matz  <matz@suse.de>
7660
7661         PR tree-optimization/39955
7662         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
7663
7664 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
7665
7666         * ira.c (setup_cover_and_important_classes):  Use safe macro
7667         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7668         directly.
7669         * genpreds.c (write_tm_preds_h):  Output suitable definition of
7670         REG_CLASS_FOR_CONSTRAINT.
7671
7672 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7673
7674         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7675         instead of an int.
7676         * bitmap.c (bitmap_descriptor): Likewise.
7677         * ggc-common.c (loc_descriptor): Likewise.
7678         * varray.c (varray_descriptor): Likewise.
7679         * vec.c (vec_descriptor): Likewise.
7680
7681 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
7682
7683         * Makefile.in (dce.o): Add $(EXCEPT_H).
7684         * dce.c: Include except.h and delete redundant vector definitions.
7685         (deletable_insn_p): Return false for non-call insns that can throw
7686         if DF is running.
7687
7688 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
7689
7690         * gcse.c (ae_gen): Remove.
7691         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7692         and make non-static function to make it available in store-motion.c.
7693         Update call sites with search-and-replace.
7694         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7695         extract_mentioned_regs, extract_mentioned_regs_helper,
7696         find_moveable_store, compute_store_table, load_kills_store, find_loads,
7697         store_killed_in_insn, store_killed_after, store_killed_before,
7698         build_store_vectors, insert_insn_start_basic_block, insert-store,
7699         remove_reachable_equiv_notes, replace_store_insn, delete_store,
7700         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7701         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7702         * store-motion.c: ...new file.  Also copy data structures from gcse.c
7703         and clean up to remove parts not used by store motion.
7704         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7705         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7706
7707 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7708
7709         PR target/38571
7710         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7711         when optimizing for size.
7712
7713 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
7714
7715         * gcse.c (gcse_constant_p): Fix typo in last change.
7716
7717 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7718
7719         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7720
7721 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7722
7723         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7724
7725 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
7726
7727         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7728         CONST_HIGH_PART result.
7729
7730 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
7731
7732         * config/avr/avr.c (initial_elimination_offset): Rename to
7733         avr_initial_elimination_offset.
7734         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7735         change return type to bool.
7736         (avr_can_eliminate): New function.
7737         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7738         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7739         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
7740         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
7741         avr_initial_elimination_offset.
7742         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7743         (avr_initial_elimination_offset): Define.
7744
7745 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
7746             Steven Bosscher  <steven@gcc.gnu.org>
7747
7748         PR rtl-optimization/39938
7749         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7750         * cfgrtl.c: Include insn-attr.h.
7751         (rest_of_pass_free_cfg): New function.
7752         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7753         * resource.c (init_resource_info): Remove call to df_analyze.
7754
7755 2009-04-29  Richard Guenther  <rguenther@suse.de>
7756
7757         PR target/39943
7758         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7759         allow conversion to signed integers.
7760
7761 2009-04-29  Richard Guenther  <rguenther@suse.de>
7762
7763         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7764         shifts of floating point vectors if the shift amount is
7765         a constant multiple of the element size.
7766
7767 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7768             Michael Matz  <matz@suse.de>
7769
7770         PR middle-end/39927
7771         PR bootstrap/39929
7772         * tree-outof-ssa.c (emit_partition_copy): New function.
7773         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7774         insert_part_to_rtx_on_edge): Perform the partition base var
7775         copy using emit_partition_copy.
7776         (insert_value_copy_on_edge): Convert constants to the right mode.
7777         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7778         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7779
7780 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7781
7782         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7783         scan backwards to try to find a constant to initialize it.
7784
7785         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7786         insn before the loop_end instruction, don't look past labels.
7787
7788 2009-04-29  Richard Guenther  <rguenther@suse.de>
7789
7790         PR middle-end/39937
7791         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7792         loose type conversions.
7793         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
7794         stmts only if there are no uses of its definition.
7795
7796 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7797
7798         * config/bfin/bfin.h (splitting_loops): Declare.
7799         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7800         Reorder bit definitions to be ascending.
7801         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7802         * config/bfin/bfin.c (splitting_loops): New variable.
7803         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7804         (struct loop_info): Remove members INIT and LOOP_INIT.
7805         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
7806         the LSETUP sequence.  Allow LC to be loaded from any register, but
7807         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
7808         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7809         set to 1.
7810         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7811         of reload_completed.
7812
7813         From Jie Zhang:
7814         * config/bfin/bfin.md (movsi_insn): Refine constraints.
7815
7816 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
7817
7818         * Makefile.in (PLUGIN_VERSION_H): New.
7819         (OBJS-common): Remove plugin-version.o.
7820         (plugin.o): Depend on (PLUGIN_VERSION_H).
7821         (plugin-version.o): Remove.
7822         * configure: Regenerate
7823         * configure.ac: Create plugin-version.h.
7824         * gcc-plugin.h (plugin_gcc_version): Remove.
7825         (plugin_default_version_check): Change signature.
7826         * plugin-version.c: Remove.
7827         * plugin.c: Include plugin-version.h.
7828         (str_plugin_gcc_version_name): Remove.
7829         (try_init_one_plugin): Pass gcc version to plugin_init.
7830         (plugin_default_version_check): Both gcc and plugin versions are now
7831         arguments.
7832
7833 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7834         
7835         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7836         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
7837         Remove special case testing for last insn of inner loops. Don't fail
7838         if the loop ends with a jump, emit an extra nop instead.
7839
7840         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7841         DREGS rather than comparing directly.  Remove code that tries to
7842         account for latencies.
7843
7844 2009-04-29  Richard Guenther  <rguenther@suse.de>
7845
7846         PR tree-optimization/39941
7847         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7848         eliminating an indirect call.
7849
7850 2009-04-29  Richard Guenther  <rguenther@suse.de>
7851
7852         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7853         parameter.  Allow invariants as base if !require_lvalue.
7854         (verify_gimple_assign_single): Adjust.
7855
7856 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7857
7858         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7859         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
7860         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7861         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
7862         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7863         a VEC_SELECT.
7864         * config/bfin/bfin.c (bfin_expand_builtin,
7865         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
7866
7867 2009-04-28  Richard Guenther  <rguenther@suse.de>
7868
7869         * tree-vect-loop.c (get_initial_def_for_induction): Use
7870         correct types for pointer increment.
7871
7872 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7873
7874         * toplev.c (print_version): Update GMP version string calculation.
7875
7876 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7877
7878         PR rtl-optimization/39938
7879         * resource.c (init_resource_info): Add call to df_analyze.
7880
7881 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7882
7883         * config/alpha/alpha.md (usegp): Cast the result of
7884         alpha_find_lo_sum_using_gp to enum attr_usegp.
7885         * config/alpha/alpha.c (override_options): Remove end-of-structure
7886         marker element from cpu_table.  Use array size of cpu_table to handle
7887         -mcpu and -mtune options.
7888         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7889
7890 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
7891
7892         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7893         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
7894         tune_32 and tune_64.
7895         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7896         support on PowerPC.
7897         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7898         * config/rs6000/option-defaults.h: ... here.  New file.
7899         (OPT_64, OPT_32): Define.
7900         (MASK_64BIT): Define to 0 if not already defined.
7901         (OPT_ARCH64, OPT_ARCH32): Define.
7902         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7903         and tune_64.
7904
7905 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7906
7907         * config/arm/arm.c (arm_override_options): Emit error on using
7908         fpa with AAPCS.
7909
7910 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7911
7912         PR rtl-optimization/39914
7913         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7914         registers for allocnos created from user-defined variables only
7915         when not optimizing.
7916
7917 2009-04-28  Richard Guenther  <rguenther@suse.de>
7918
7919         PR middle-end/39937
7920         * fold-const.c (fold_binary): Use distribute_real_division only
7921         on float types.
7922
7923 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
7924
7925         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7926         add hpux-stdint.h to tm_file.
7927         (hppa[12]*-*-hpux11*): Ditto.
7928         (ia64*-*-hpux*): Ditto.
7929         * config/hpux-stdint.h: New.
7930         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
7931         __STDC_EXT__ for all compiles.
7932         * config/pa/pa-hpux.h: Ditto.
7933         * config/pa/pa-hpux10.h: Ditto.
7934         * config/pa/pa-hpux11.h: Ditto.
7935
7936 2009-04-28  Catherine Moore  <clm@codesourcery.com>
7937
7938         * debug.h (set_name): Add comment.
7939
7940 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
7941
7942         PR target/39929
7943         * config/darwin.c (machopic_gen_offset): Check
7944         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7945         * config/arm/arm.c (require_pic_register): Likewise.
7946
7947 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
7948
7949         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7950         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7951         m32c_promote_prototypes): Delete.
7952
7953 2009-04-28  Michael Matz  <matz@suse.de>
7954
7955         PR middle-end/39922
7956         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7957         constants.
7958
7959 2009-04-28  Richard Guenther  <rguenther@suse.de>
7960
7961         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7962
7963 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7964
7965         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7966         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7967         * config/arm/arm-tune.md: Regenerate.
7968
7969 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
7970
7971         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7972         block if there are complex incoming edges.
7973         (sel_merge_blocks): Remove useless assert.
7974         (sel_redirect_edge_and_branch): Check that edge was redirected.
7975         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7976         (sel_find_rgns): Delete declaration.
7977         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7978         the region when it is not a preheader.
7979
7980 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7981
7982         PR c/39323
7983         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7984
7985 2009-04-28  Richard Guenther  <rguenther@suse.de>
7986
7987         * tree.h (SSA_NAME_VALUE): Remove.
7988         (struct tree_ssa_name): Remove value_handle member.
7989         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7990         array for jump threading.
7991         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7992         SSA_NAME_VALUEs.
7993         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7994         * tree-flow.h (threadedge_initialize_values): Declare.
7995         (threadedge_finalize_values): Likewise.
7996         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7997         (SSA_NAME_VALUE): Define.
7998         (threadedge_initialize_values): New function.
7999         (threadedge_finalize_values): Likewise.
8000         * tree-ssa-dom.c (ssa_name_values): New global variable.
8001         (SSA_NAME_VALUE): Define.
8002         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
8003
8004 2009-04-28  Ira Rosen  <irar@il.ibm.com>
8005
8006         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
8007         Use REPORT_VECTORIZED_LOCATIONS instead 
8008         REPORT_VECTORIZED_LOOPS.
8009         * tree-vectorizer.c (vect_verbosity_level): Make static.
8010         (vect_loop_location): Rename to vect_location.
8011         (vect_set_verbosity_level): Update comment.
8012         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
8013         and vect_location.
8014         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
8015         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
8016         instead REPORT_UNVECTORIZED_LOOPS.
8017         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
8018         and vect_loop_def to vect_external_def and vect_internal_def.
8019         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
8020         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
8021         REPORT_UNVECTORIZED_LOCATIONS.
8022         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
8023         and vect_used_in_loop and to vect_unused_in_scope and 
8024         vect_used_in_scope.
8025         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
8026         (vect_verbosity_level): Remove declaration.
8027         (vect_analyze_operations): Likewise.
8028         (vect_analyze_stmt): Declare.
8029         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
8030         REPORT_UNVECTORIZED_LOCATIONS.
8031         (vect_get_loop_niters): Fix indentation.
8032         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
8033         (vect_analyze_loop_operations): New function.
8034         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
8035         vect_analyze_operations.
8036         (vect_is_simple_reduction): Use new names.
8037         (vectorizable_live_operation, vect_transform_loop): Likewise.
8038         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
8039         to specify whether the data references can be a part of interleaving
8040         chain.
8041         (vect_analyze_data_ref_dependence): Use new names.
8042         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
8043         (vect_create_addr_base_for_vector_ref): Remove redundant code.
8044         * tree-vect-patterns.c (widened_name_p): Use new names.
8045         (vect_recog_dot_prod_pattern): Likewise.
8046         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
8047         (process_use, vect_mark_stmts_to_be_vectorized, 
8048         vect_model_simple_cost, vect_model_store_cost,
8049         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
8050         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
8051         vectorizable_operation, vectorizable_type_demotion,
8052         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
8053         vectorizable_condition): Likewise.
8054         (vect_analyze_operations): Split into vect_analyze_loop_operations
8055         and ...
8056         (vect_analyze_stmt): ... new function.
8057         (new_stmt_vec_info): Use new names.
8058         (vect_is_simple_use): Use new names and fix comment.
8059         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
8060         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
8061
8062 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
8063
8064         PR target/39911
8065         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
8066         and integer modes for x87 operands.  Do not ICE for unsupported size,
8067         generate error instead.  Generate error for unsupported operand types.
8068         ['z']: Do not handle HImode memory operands specially.  Warning
8069         for floating-point operands.  Fallthru to 'Z' for unsupported operand
8070         types.  Do not ICE for unsupported size, generate error instead.
8071         (output_387_binary_op): Use %Z to output operands.
8072         (output_fp_compare): Ditto.
8073         (output_387_reg_move): Ditto.
8074
8075 2009-04-28  Ben Elliston  <bje@au.ibm.com>
8076
8077         PR c++/35652
8078         Revert:
8079
8080         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8081
8082         * builtins.c (c_strlen): Do not warn here.
8083         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8084         * c-common.c (pointer_int_sum): Take an explicit location.
8085         Warn about offsets out of bounds.
8086         * c-common.h (pointer_int_sum): Adjust declaration.
8087
8088 2009-04-27  Ian Lance Taylor  <iant@google.com>
8089
8090         * collect2.c (is_ctor_dtor): Change type of ret field in struct
8091         names to symkind.
8092         * dce.c (run_fast_df_dce): Change type of old_flags to int.
8093         * df-core.c (df_set_flags): Change return type to int.  Change
8094         type of old_flags to int.
8095         (df_clear_flags): Likewise.
8096         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
8097         (df_get_conditional_uses): Likewise.
8098         * df.h (df_set_flags, df_clear_flags): Update declarations.
8099         * dwarf2out.c (struct indirect_string_node): Change type of form
8100         field to enum dwarf_form.
8101         (AT_string_form): Change return type to enum dwarf_form.
8102         * fixed-value.c (fixed_compare): Add cast to enum type.
8103         * fwprop.c (update_df): Change 0 to VOIDmode.
8104         * gensupport.c: Change 0 to UNKNOWN.
8105         * gimple.h (gimple_cond_code): Add cast to enum type.
8106         * haifa-sched.c (reemit_notes): Add cast to enum type.
8107         * hooks.c (hook_int_void_no_regs): Remove function.
8108         * hooks.h (hook_int_void_no_regs): Remove declaration.
8109         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
8110         * predict.c (combine_predictions_for_insn): Add casts to enum type.
8111         * real.c (real_arithmetic): Add cast to enum type.
8112         (real_compare): Likewise.
8113         * target.h (struct gcc_target): Change return type of
8114         branch_target_register_class to enum reg_class.
8115         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
8116         default_branch_target_register_class.
8117         * targhooks.c (default_branch_target_register_class): New function.
8118         * targhooks.h (default_branch_target_register_class): Declare.
8119         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
8120         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
8121         cast to int.
8122         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
8123         ERROR_MARK.
8124         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
8125         vect_uninitialized_def.  Change 0 to ERROR_MARK.
8126         * tree-vect-stmts.c (supportable_widening_operation): Don't
8127         initialize icode1 and icode2.
8128         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
8129         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
8130         and to STD_C89.
8131         (cmn_err_flag_specs): Change 0 to STD_C89.
8132         (cmn_err_char_table): Likewise.
8133         * config/arm/arm.c (get_arm_condition_code): Change type of code
8134         to enum arm_cond_code.
8135         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
8136         (IWMMXT_BUILTIN2): Likewise.
8137         (neon_builtin_type_bits): Don't define typedef.
8138         (neon_builtin_datum): Change type of bits field to int.
8139         (arm_expand_neon_args): Add cast to enum type.
8140         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
8141         TLS_MODEL_NONE.
8142         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
8143         casts to enum type.
8144         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
8145         MIPS_FP_COND_f.
8146         * config/mips/mips.md (jal_macro): Return enum constant.
8147         (single_insn): Likewise.
8148         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
8149         CODE_FOR_nothing.
8150         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8151         casts to enum type.
8152         * config/s390/s390.c (s390_tune_flags): Change type to int.
8153         (s390_arch_flags): Likewise.
8154         (s390_handle_arch_option): Change flags field of struct pta to int.
8155         * config/s390/s390.h (s390_tune_flags): Update declaration.
8156         (s390_arch_flags): Likewise.
8157         * config/sh/sh.c (prepare_move_operands): Compare
8158         tls_symbolic_operand result with enum constant.
8159         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
8160         (sh_expand_prologue): Add cast to enum type.
8161         (sh_expand_epilogue): Likewise.
8162         (tls_symbolic_operand): Change return type to enum tls_model.
8163         (fpscr_set_from_mem): Add cast to enum type.
8164         (legitimize_pic_address): Compare tls_symbolic_operand result with
8165         enum constant.
8166         (sh_target_reg_class): Change return type to enum reg_class.
8167         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
8168         PROCESSOR_xxx.
8169         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
8170         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
8171         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
8172         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
8173         (delayed_branch, tls_call_delay): Likewise.
8174         (eligible_for_sibcall_delay): Likewise.
8175         (eligible_for_return_delay): Likewise. 
8176         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
8177         (spu_expand_builtin_1): Likewise.
8178
8179         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
8180         for all types of conversions.
8181         (output_init_element): Issue -Wc++-compat warning if needed when
8182         initializing a bitfield with enum type.
8183         * c-parser.c (c_parser_expression): Set original_type to
8184         original_type of right hand operand of comman operator.
8185
8186 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8187
8188         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
8189         grammar nits.
8190         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
8191         * doc/cpp.texi (Standard Predefined Macros)
8192         (Implementation-defined behavior): Likewise.
8193         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
8194         * doc/gimple.texi (GIMPLE Exception Handling)
8195         (@code{GIMPLE_ASSIGN}): Likewise.
8196         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
8197         * doc/invoke.texi (Warning Options, Optimize Options)
8198         (AVR Options, Darwin Options): Likewise.
8199         (Optimize Options): Reformulate -fwhole-program description.
8200         * doc/loop.texi (Lambda): Likewise.
8201         * doc/md.texi (Output Template, Define Constraints)
8202         (Standard Names, Insn Splitting): Likewise.
8203         * doc/options.texi (Option properties): Likewise.
8204         * doc/passes.texi (Tree-SSA passes): Likewise.
8205         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
8206         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
8207         (File Names and DBX): Likewise.
8208         * doc/trouble.texi (Incompatibilities): Likewise.
8209
8210 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8211
8212         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
8213         instruction is correct.
8214
8215 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8216
8217         Allow non-constant arguments to conversion intrinsics.
8218         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
8219         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
8220         * spu.c (print_operand): Handle 'v' and 'w'.
8221         (exp2_immediate_p, spu_gen_exp2): Define.
8222         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
8223         spu_convtf_1): Update parameter descriptions.
8224         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
8225         * constraints.md ('v', 'w'): New.
8226         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
8227         Remove.
8228         (i2f, I2F): New define_mode_attr.
8229         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
8230         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
8231         fixuns_truncv4sfv4si2):  Update to use mode attribute.
8232         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
8233         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
8234         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
8235         patterns for combine.
8236
8237 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
8238
8239         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
8240         (cprop, hoist, pre, store_motion): New debug counters.
8241         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
8242         is not an RTL pass anymore.
8243         (pass_profiling): Remove extern decl for pass removed in 2005.
8244         (pass_gcse, pass_jump_bypass): Remove.
8245         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
8246         to 0 for clean state.
8247         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
8248         * cse.c (gate_handle_cse_after_global_opts,
8249         rest_of_handle_cse_after_global_opts): New functions.
8250         (pass_cse_after_global_opts): New pass, does local CSE.
8251         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
8252         (TV_CPROP): New timevar.
8253         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
8254         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
8255         (gcse_main, recompute_all_luids): Remove.
8256         (compute_hash_table_work): Call max_reg_num instead of reading
8257         max_gcse_regno.
8258         (cprop_jump): Don't set run_jump_opt_after_gcse.
8259         (constprop_register): Always allow to alter jumps.
8260         (cprop_insn): Likewise.
8261         (do_local_cprop): Likewise.
8262         (local_cprop_pass): Likewise.  Return non-zero if something changed.
8263         (cprop): Remove function, fold interesting bits into one_cprop_pass.
8264         (find_implicit_sets): Add note about missed optimization opportunity.
8265         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
8266         pass_rtl_cprop execute function.
8267         Don't bother tracking the pass number, each pass gets its own dumpfile
8268         now anyway.
8269         Always allow to alter jumpsand bypass jumps.
8270         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
8271         will just find no suitable set.
8272         (pre_edge_insert): Fix dumping, this function is for PRE only.
8273         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
8274         pass_rtl_pre execute function.
8275         (hoist_code): Return non-zero if something changed.  Keep track of
8276         substitutions and insertions for statistics gathering similar to PRE.
8277         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
8278         called from the pass_rtl_hoist execute function.  Show pass statistics.
8279         (compute_store_table): Use max_reg_num directly instead of using the
8280         formerly global max_gcse_regno.
8281         (build_store_vectors): Likewise.
8282         (replace_store_insn): Fix dumping.
8283         (store_motion): Rename to ...
8284         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
8285         pass, called from the pass_rtl_store_motion execute function.  Keep
8286         track of substitutions and insertions for statistics gathering similar
8287         to PRE.
8288         (bypass_jumps): Remove, fold interesting bits into ...
8289         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
8290         from the pass_rtl_cprop execute function.
8291         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
8292         pass_jump_bypass): Remove.
8293         (gate_handle_gcse, rest_of_handle_gcse): Remove.
8294         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
8295         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
8296         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
8297         (gate_rtl_store_motion, execute_rtl_store_motion,
8298         pass_rtl_store_motion): New.
8299         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
8300         make it clear that -fcse-skip-blocks is a no-op for backward compat.
8301         * passes.c (init_optimization_passes): Remove pass_gcse and
8302         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
8303         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
8304         instead of pass_jump_bypass.
8305
8306 2009-04-27  Richard Guenther  <rguenther@suse.de>
8307
8308         PR middle-end/39928
8309         * gimplify.c (gimplify_expr): If we are required to create
8310         a temporary make sure it ends up as register.
8311
8312 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
8313
8314         PR target/39903
8315         * config/i386/i386.c (construct_container): Don't call
8316         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
8317         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
8318
8319 2009-04-27  Michael Matz  <matz@suse.de>
8320
8321         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
8322         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
8323         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
8324         (dump_replaceable_exprs): Take a bitmap.
8325         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
8326         array.
8327         (expand_gimple_basic_block): Likewise.
8328         * tree-ssa-ter.c (struct temp_expr_table_d): Make
8329         replaceable_expressions member a bitmap.
8330         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
8331         (mark_replaceable): Likewise.
8332         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
8333         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
8334
8335 2009-04-27  Richard Guenther  <rguenther@suse.de>
8336
8337         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
8338         (verify_stmts): Dispatch to gimple/type verification code.
8339         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
8340         issue with call argument types.
8341
8342 2009-04-27  Michael Matz  <matz@suse.de>
8343
8344         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
8345         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
8346         to above.
8347
8348 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
8349             Eric Botcazou  <ebotcazou@adacore.com>
8350
8351         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
8352         a label's basic block.
8353         (mark_target_live_regs): Tidy and rework obsolete comments.
8354         Change back DF problem to LIVE.  If a label starts a basic block,
8355         assume that all registers that used to be live then still are.
8356         (init_resource_info): If a label starts a basic block, set its
8357         BLOCK_FOR_INSN accordingly.
8358         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
8359
8360 2009-04-27  Richard Guenther  <rguenther@suse.de>
8361
8362         * tree-flow-inline.h (function_ann): Remove.
8363         (get_function_ann): Likewise.
8364         * tree-dfa.c (create_function_ann): Remove.
8365         * tree-flow.h (struct static_var_ann_d): Remove.
8366         (struct function_ann_d): Likewise.
8367         (union tree_ann_d): Remove fdecl member.
8368         (function_ann_t): Remove.
8369         (function_ann, get_function_ann, create_function_ann): Remove
8370         declarations.
8371
8372 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
8373
8374         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
8375
8376 2009-04-27  Jan Hubicka  <jh@suse.cz>
8377
8378         * ipa-pure-const.c (struct funct_state_d): New fields
8379         state_previously_known, looping_previously_known; remove
8380         state_set_in_source.
8381         (analyze_function): Use new fields.
8382         (propagate): Avoid assumption that state_set_in_source imply
8383         nonlooping.
8384
8385         * tree-ssa-loop-niter.c (finite_loop_p): New function.
8386         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
8387         * cfgloop.h (finite_loop_p): Declare.
8388
8389 2009-04-26  Michael Matz  <matz@suse.de>
8390
8391         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
8392
8393 2009-04-26  Michael Matz  <matz@suse.de>
8394
8395         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
8396         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
8397         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
8398         pass_mark_used_blocks): Remove.
8399         * tree-optimize.c (pass_free_datastructures,
8400         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
8401         * passes.c (init_optimization_passes): Don't call
8402         pass_mark_used_blocks, remove dead code.
8403
8404 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
8405
8406         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
8407         * tree-ssa-live.h (register_ssa_partition): Likewise.
8408
8409 2009-04-26  Michael Matz  <matz@suse.de>
8410
8411         Expand from SSA.
8412         * builtins.c (fold_builtin_next_arg): Handle SSA names.
8413         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
8414         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
8415         SSA names. 
8416         (compare_pairs): Swap cost comparison.
8417         (coalesce_ssa_name): Don't use change_partition_var.
8418         * tree-nrv.c (struct nrv_data): Add modified member.
8419         (finalize_nrv_r): Set it.
8420         (tree_nrv): Use it to update statements.
8421         (pass_nrv): Require PROP_ssa.
8422         * tree-mudflap.c (mf_decl_cache_locals,
8423         mf_build_check_statement_for): Use make_rename_temp.
8424         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
8425         * alias.c (find_base_decl): Handle SSA names.
8426         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
8427         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
8428         * rtl.h (set_reg_attrs_for_parm): Declare.
8429         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
8430         to "optimized", remove unused locals at finish.
8431         (execute_free_datastructures): Make global, call
8432         delete_tree_cfg_annotations.
8433         (execute_free_cfg_annotations): Don't call
8434         delete_tree_cfg_annotations.
8435
8436         * ssaexpand.h: New file.
8437         * expr.c (toplevel): Include ssaexpand.h.
8438         (expand_assignment): Handle SSA names the same as register variables.
8439         (expand_expr_real_1): Expand SSA names.
8440         * cfgexpand.c (toplevel): Include ssaexpand.h.
8441         (SA): New global variable.
8442         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
8443         (SSAVAR): New macro.
8444         (set_rtl): New helper function.
8445         (add_stack_var): Deal with SSA names, use set_rtl.
8446         (expand_one_stack_var_at): Likewise.
8447         (expand_one_stack_var): Deal with SSA names.
8448         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
8449         before unique numbers.
8450         (expand_stack_vars): Use set_rtl.
8451         (expand_one_var): Accept SSA names, add asserts for them, feed them
8452         to above subroutines.
8453         (expand_used_vars): Expand all partitions (without default defs),
8454         then only the local decls (ignoring those expanded already).
8455         (expand_gimple_cond): Remove edges when jumpif() expands an
8456         unconditional jump.
8457         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
8458         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
8459         SSA name.
8460         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
8461         members of SA; deal with PARM_DECL partitions here; expand
8462         all PHI nodes, free tree datastructures and SA.  Commit instructions
8463         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
8464         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
8465         info and statements at start, collect garbage at finish.
8466         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
8467         (VAR_ANN_PARTITION) Remove.
8468         (change_partition_var): Don't declare.
8469         (partition_to_var): Always return SSA names.
8470         (var_to_partition): Only accept SSA names.
8471         (register_ssa_partition): Only check argument.
8472         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
8473         member.
8474         (delete_var_map): Don't free it.
8475         (var_union): Only accept SSA names, simplify.
8476         (partition_view_init): Mark only useful SSA names as used.
8477         (partition_view_fini): Only deal with SSA names.
8478         (change_partition_var): Remove.
8479         (dump_var_map): Use ssa_name instead of partition_to_var member.
8480         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
8481         basic blocks.
8482         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
8483         (struct _elim_graph): New member const_dests; nodes member vector of
8484         ints.
8485         (set_location_for_edge): New static helper.
8486         (create_temp): Remove.
8487         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
8488         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
8489         (new_elim_graph): Allocate const_dests member.
8490         (clean_elim_graph): Truncate const_dests member.
8491         (delete_elim_graph): Free const_dests member.
8492         (elim_graph_size): Adapt to new type of nodes member.
8493         (elim_graph_add_node): Likewise.
8494         (eliminate_name): Likewise.
8495         (eliminate_build): Don't take basic block argument, deal only with
8496         partition numbers, not variables.
8497         (get_temp_reg): New static helper.
8498         (elim_create): Use it, deal with RTL temporaries instead of trees.
8499         (eliminate_phi): Adjust all calls to new signature.
8500         (assign_vars, replace_use_variable, replace_def_variable): Remove.
8501         (rewrite_trees): Only do checking.
8502         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
8503         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
8504         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
8505         contains_tree_r, MAX_STMTS_IN_LATCH,
8506         process_single_block_loop_latch, analyze_edges_for_bb,
8507         perform_edge_inserts): Remove.
8508         (expand_phi_nodes): New global function.
8509         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
8510         functions, initialize new parameter, remember partitions having a
8511         default def.
8512         (finish_out_of_ssa): New global function.
8513         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
8514         don't reset in_ssa_p here, don't disable TER when mudflap.
8515         (pass_del_ssa): Remove.
8516         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
8517         partition members.
8518         (execute_free_datastructures): Declare.
8519         * Makefile.in (SSAEXPAND_H): New variable.
8520         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
8521         * basic-block.h (commit_one_edge_insertion): Declare.
8522         * passes.c (init_optimization_passes): Move pass_nrv and
8523         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
8524         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
8525         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
8526         (redirect_branch_edge): Deal with super block when expanding, split
8527         out jump patching itself into ...
8528         (patch_jump_insn): ... here, new static helper.
8529
8530 2009-04-26  Michael Matz  <matz@suse.de>
8531
8532         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
8533         beyond num_ssa_names.
8534         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
8535         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
8536
8537 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8538
8539         PR inline-asm/39543
8540         * fwprop.c (forward_propagate_asm): New function.
8541         (forward_propagate_and_simplify): Propagate also into __asm, if it
8542         doesn't increase the number of referenced registers.
8543
8544         PR c/39889
8545         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
8546
8547 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8548
8549         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
8550         note_nonlocal_vla_type for nonlocal VLAs.
8551         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
8552         contains_remapped_vars, remap_vla_decls): New functions.
8553         (convert_nonlocal_reference_stmt): If not optimizing, call
8554         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
8555         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
8556         if it wasn't found in var_map.
8557         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
8558         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
8559         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
8560         declare_vars.
8561         * gimplify.c (nonlocal_vlas): New variable.
8562         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
8563         referenced VLAs.
8564         (gimplify_body): Create and destroy nonlocal_vlas.
8565
8566         * dwarf2out.c (loc_descr_plus_const): New function.
8567         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
8568         mem_loc_descriptor, loc_descriptor_from_tree_1,
8569         descr_info_loc, gen_variable_die): Use it.
8570
8571         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
8572         !TREE_STATIC VAR_DECLs.
8573         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
8574         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
8575         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
8576         DECL_BY_REFERENCE is valid.
8577         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
8578         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
8579         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
8580         Copy DECL_BY_REFERENCE.
8581         (struct nesting_copy_body_data): New type.
8582         (nesting_copy_decl): New function.
8583         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8584         if they have variable length.
8585
8586 2009-04-26  Michael Matz  <matz@suse.de>
8587
8588         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8589         mark new temporaries for renaming.
8590
8591 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8592
8593         PR c/39581
8594         * c-decl.c (global_bindings_p): Return negative value.
8595         (c_variable_size): New.  Based on variable_size from
8596         stor-layout.c.
8597         (grokdeclarator): Call c_variable_size not variable_size.
8598
8599 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
8600
8601         * config/i386/i386.c (print_operand) ['z']: Fix typo.
8602
8603 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
8604
8605         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8606         Redefine it to just use mingw/include.
8607         (ASM_SPEC): Rules for -m32 and -m64.
8608         (LINK_SPEC): Use Likewise.
8609         (SPEC_32): New define.
8610         (SPEC_64): Likewise.
8611         (SUB_LINK_SPEC): Likewise.
8612         (MULTILIB_DEFAULTS): New define.
8613         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8614         Add multilib options.
8615         (MULTILIB_DIRNAMES): Likewise.
8616         (MULTILIB_OSDIRNAMES): Likewise.
8617         (LIBGCC): Likewise.
8618         (INSTALL_LIBGCC): Likewise.
8619
8620 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8621
8622         PR c/39556
8623         * c-tree.h (enum c_inline_static_type): New.
8624         (record_inline_static): Declare.
8625         * c-decl.c (struct c_inline_static, c_inline_statics,
8626         record_inline_static, check_inline_statics): New.
8627         (pop_file_scope): Call check_inline_statics.
8628         (start_decl): Call record_inline_static instead of pedwarning
8629         directly for static in inline function.
8630         * c-typeck.c (build_external_ref): Call record_inline_static
8631         instead of pedwarning directly for static referenced in inline
8632         function.
8633
8634 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
8635
8636         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8637         not new but only being rescanned.
8638         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8639         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8640         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8641         record_set_info, compute_set, grealloc): Remove.
8642         (recompute_all_luids): New function.
8643         (gcse_main): Don't compute sets, and don't do related memory
8644         allocations/free-ing.  If something changed before the end of the
8645         pass, update LUIDs using recompute_all_luids.
8646         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
8647         (free_gcse_mem): Don't free it either.
8648         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8649         Use the df insn LUIDs.
8650         (load_killed_in_block): Likewise.
8651         (compute_hash_table_work): Don't compute reg_set_in_block.
8652         (compute_transp): Use DF_REG_DEF_CHAINs.
8653         (local_cprop_pass): Don't use compute_sets and related functions.
8654         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8655         Use get_max_uid() instead of max_cuid.
8656         (insert_insn_end_basic_block, pre_insert_copy_insn,
8657         update_ld_motion_stores): Don't try to
8658         keep reg_set tables up to date.
8659         (pre_insert_copies): Use df insn LUIDs.
8660         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8661         (reg_set_info): Don't use extra bitmap argument.
8662         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
8663         information to compute regs_set_in_block.
8664         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8665         (bypass_jumps): Don't use compute_sets and friends.
8666
8667 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8668
8669         PR testsuite/39710
8670         * opts.c (undocumented_msg): Do not leave blank even with
8671         ENABLE_CHECKING.
8672
8673 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8674
8675         * c-decl.c (build_enumerator): Allow values folding to integer
8676         constants but not integer constant expressions with a pedwarn if
8677         pedantic.
8678
8679 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8680
8681         PR c/39582
8682         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8683         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8684         type is an integer constant.
8685
8686 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8687
8688         PR target/39897
8689         * config/i386/i386.c (print_operand) ['z']: Revert handling of
8690         HImode operands.
8691
8692 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8693
8694         PR c/39564
8695         * c-decl.c (grokdeclarator): Diagnose declarations of functions
8696         with variably modified return type and no storage class
8697         specifiers, except for the case of nested functions.  Distinguish
8698         extern declarations of functions with variably modified return
8699         types from those of objects with variably modified types.
8700
8701 2009-04-25  Jan Hubicka  <jh@suse.cz>
8702
8703         * tree.c (list_equal_p): New function.
8704         * tree.h (list_equal_p): Declare.
8705         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8706         basic_block_def, basic_block, const_basic_block): New.
8707         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8708         (redirect_eh_edge): New function.
8709         (make_eh_edge_update_phi): EH edges are not abnormal.
8710         * except.c: Include tree-flow.h.
8711         (list_match): New function.
8712         (eh_region_replaceable_by_p): New function.
8713         (replace_region): New function.
8714         (hash_type_list): New function.
8715         (hash_eh_region): New function.
8716         (eh_regions_equal_p): New function.
8717         (merge_peers): New function.
8718         (remove_unreachable_regions): Verify EH tree when checking;
8719         merge peers.
8720         (copy_eh_region_1): New function.
8721         (copy_eh_region): New function.
8722         (push_reachable_handler): New function.
8723         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8724         regions without label but with live RESX.
8725         * except.h (redirect_eh_edge_to_label): New.
8726         * tree-flow.h (redirect_eh_edge): New.
8727         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8728         basic_block_def, basic_block, const_basic_block): Remove.
8729         * Makefile.in (except.o): Add dependency on tree-flow.h
8730         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8731         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8732         Remove.
8733
8734 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
8735
8736         PR bootstrap/39645
8737         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8738         on the destination of memcpy.
8739
8740 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
8741
8742         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8743         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8744         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8745
8746 2009-04-25  Jan Hubicka  <jh@suse.cz>
8747
8748         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8749         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8750         to be reached by different label than left.
8751         (update_eh_edges): Update comment; remove edge_to_remove if possible
8752         and return true if suceeded.
8753         (cleanup_empty_eh): Accept sharing map; handle shared regions.
8754         (cleanup_eh): Compute sharing map.
8755         * except.c (remove_eh_handler_and_replace): Add argument if we should
8756         update regions.
8757         (remove_unreachable_regions): Update for label sharing.
8758         (label_to_region_map): Likewise.
8759         (get_next_region_sharing_label): New function.
8760         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8761         prev_try pointers.
8762         (remove_eh_handler): Update.
8763         (remove_eh_region_and_replace_by_outer_of): New function.
8764         * except.h (struct eh_region): Add next_region_sharing_label.
8765         (remove_eh_region_and_replace_by_outer_of,
8766         get_next_region_sharing_label): Declare.
8767         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8768
8769 2009-04-25  Jan Hubicka  <jh@suse.cz>
8770
8771         * tree-cfg.c (split_critical_edges): Split also edges where we can't
8772         insert code even if they are not critical.
8773
8774 2009-04-25  Jan Hubicka  <jh@suse.cz>
8775
8776         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8777         (gimple_can_remove_branch_p): EH edges won't remove branch by
8778         redirection.
8779         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8780         updating of non-abnormal EH edges.
8781         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8782         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8783         (split_critical_edges): Split also edges where emitting code on them
8784         will lead to splitting later.
8785
8786 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8787             H.J. Lu  <hongjiu.lu@intel.com>
8788
8789         PR target/39590
8790         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8791         the configured assembler supports fildq and fistpq mnemonics.
8792         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8793         * configure: Regenerated.
8794         * config.in: Ditto.
8795
8796         * config/i386/i386.c (print_operand): Handle 'Z'.
8797         ['z']: Remove handling of special fild/fist suffixes.
8798         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8799         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8800         suffix of fild insn.
8801         (*floatsi<mode>2_vector_mixed): Ditto.
8802         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8803         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8804         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8805         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8806         * config/i386/gas.h (GAS_MNEMONICS): Remove.
8807
8808 2009-04-25  Ben Elliston  <bje@au.ibm.com>
8809  
8810         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8811         the source of a set operation.
8812
8813 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
8814
8815         * target.h (struct gcc_target): Add case_values_threshold field.
8816         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8817         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8818         * targhooks.c (default_case_values_threshold): New function.
8819         * targhooks.h (default_case_values_threshold): Declare function.
8820         * stmt.c (expand_case): Use case_values_threshold target hook.
8821         * expr.h (case_values_threshold): Remove declartation.
8822         * expr.c (case_values_threshold): Remove function.
8823         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8824
8825         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8826         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8827         (avr_case_values_threshold): Declare as static.
8828         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8829
8830         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8831         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8832         (mn10300_case_values_threshold): New function.
8833
8834 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8835
8836         * ira.c (setup_cover_and_important_classes): Add enum cast.
8837
8838 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
8839
8840         * genpreds.c (write_enum_constraint_num): Output definition of
8841         CONSTRAINT_NUM_DEFINED_P macro.
8842         * ira.c (setup_cover_and_important_classes): Use
8843         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8844         
8845 2009-04-24  DJ Delorie  <dj@redhat.com>
8846
8847         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8848         __SH2A_SINGLE_ONLY__ also.
8849
8850 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
8851
8852         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8853         (movdf_internal): Ditto.
8854         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8855         SFmode and DFmode constants.
8856         (ia64_print_operand): Add 'G' format for printing
8857         floating point constants.
8858
8859 2009-04-24  Richard Guenther  <rguenther@suse.de>
8860
8861         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8862         from unsigned additions.
8863
8864 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
8865
8866         * c-typeck.c (set_init_index): Allow array designators that are
8867         not integer constant expressions with a pedwarn if pedantic.
8868
8869 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8870
8871         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8872         zero if no overlap in nonzero bits between the operands.
8873
8874 2009-04-24  Ian Lance Taylor  <iant@google.com>
8875
8876         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8877         (record_dead_and_set_regs): Likewise.
8878         * df.h (struct df_mw_hardreg): Change flags field to int.
8879         (struct df_base_ref): Likewise.
8880         (struct df): Change changeable_flags field to int.
8881         * df-scan.c (df_defs_record): Change clobber_flags to int.
8882         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8883         constants rather than #define macros.
8884         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8885         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8886         (enum dwarf_calling_convention): Likewise.
8887         (enum dwarf_line_number_x_ops): Likewise.
8888         (enum dwarf_call_frame_info): Likewise.
8889         (enum dwarf_source_language): Likewise.
8890         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8891         (add_calling_convention_attribute): Likewise.
8892         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8893         (combine_comparisons): Change compcode to int.  Add cast to enum type.
8894         * genrecog.c (maybe_both_true_2): Change c to int.
8895         (write_switch): Likewise.  Add cast to enum type.
8896         * gimplify.c (gimplify_omp_for): Handle return values from
8897         gimplify_expr using MIN rather than bitwise or.
8898         (gimplify_expr): Add cast to enum type.
8899         * ipa-prop.c (update_jump_functions_after_inlining): Change
8900         IPA_BOTTOM to IPA_JF_UNKNOWN.
8901         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8902         Add casts to enum type.
8903         (setup_cover_and_important_classes): Change cl to int.  Add casts
8904         to enum type.
8905         (setup_class_translate): Change cl and mode to int.
8906         (ira_init_once): Change mode to int.
8907         (free_register_move_costs): Likewise.
8908         (setup_prohibited_mode_move_regs): Add casts to enum type.
8909         * langhooks.c (add_builtin_function_common): Rework assertion that
8910         value fits bitfield.
8911         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8912         * omega.c (omega_do_elimination): Avoid math on enum types.
8913         * optabs.c (expand_vec_shift_expr): Remove casts to int.
8914         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
8915         int local to handle integral_argment value.
8916         * regmove.c (try_auto_increment): Change PUT_MODE to
8917         PUT_REG_NOTE_KIND.
8918         * reload.c (push_secondary_reload): Add casts to enum type.
8919         (secondary_reload_class, find_valid_class): Likewise.
8920         * reload1.c (emit_input_reload_insns): Likewise.
8921         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8922         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8923         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8924         constant.
8925         * tree.c (build_common_builtin_nodes): Add casts to enum type.
8926         * tree-complex.c (complex_lattice_t): Typedef to int rather than
8927         enum type.
8928         (expand_complex_libcall): Add casts to enum type.
8929         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8930         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8931         with ERROR_MARK, not NUM_TREE_CODES.
8932         (vect_create_epilog_for_reduction): Likewise.
8933         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
8934         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8935         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8936         enum machine_mode.
8937         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8938         vect_unused_in_loop.  Change 0 to loop_vect.
8939         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8940         * var-tracking.c (get_init_value): Change return type to enum
8941         var_init_status.
8942         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8943         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8944         arm_fp_model.
8945         (arm_override_options): Add casts to enum type.
8946         (arm_emit_tls_decoration): Likewise.
8947         * config/i386/i386.c (ix86_function_specific_restore): Add casts
8948         to enum type.
8949         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8950         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8951         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8952         enum type.
8953         * config/s390/s390.c (code_for_builtin_64): Change to array of
8954         enum insn_code.
8955         (code_for_builtin_31): Likewise.
8956         (s390_expand_builtin): Change code_for_builtin to enum insn_code
8957         const *.
8958         * config/sparc/sparc.c (sparc_override_options): Change value
8959         field in struct code_model to enum cmodel.  In initializer change
8960         0 to NULL and add cast to enum type.
8961
8962         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8963         Change all callers.  Issue a -Wc++-compat warning using
8964         lhs_origtype if necessary.
8965         (convert_for_assignment): Issue -Wc++-compat warnings about
8966         invalid conversions to enum type on assignment.
8967         * c-common.h (build_modify_expr): Update declaration.
8968
8969 2009-04-24  Nick Clifton  <nickc@redhat.com>
8970
8971         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8972         (function_arg_advance): Likewise.
8973         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8974         5th alternative.
8975
8976 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8977
8978         * config/s390/constraints.md ('I', 'J'): Fix condition.
8979
8980 2009-04-24  Diego Novillo  <dnovillo@google.com>
8981
8982         * gengtype-parse.c (parse_error): Add newline after message.
8983
8984 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8985
8986         * config/i386/sse.md (avxmodesuffixs): Removed.
8987         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8988         (*avx_pinsr<ssevecsize>): This.
8989
8990 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8991
8992         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8993         follow chains of regs with a single definition, and allow expressions
8994         that are function_invariant_p.
8995         (simple_rhs_p): Allow expressions that are function_invariant_p.
8996
8997 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
8998
8999         PR middle-end/39867
9000         * fold-const.c (fold_cond_expr_with_comparison): When folding
9001         > and >= to MAX, make sure the MAX uses the same type as the
9002         comparison's operands.
9003
9004 2009-04-24  Nick Clifton  <nickc@redhat.com>
9005
9006         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
9007         addressing for DImode accesses.
9008         (frv_print_operand_address): Handle PLUS case.
9009         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
9010
9011 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
9012
9013         PR rtl-optimization/39794
9014         * alias.c (canon_true_dependence): Add x_addr argument.
9015         * rtl.h (canon_true_dependence): Adjust prototype.
9016         * cse.c (check_dependence): Adjust canon_true_dependence callers.
9017         * cselib.c (cselib_invalidate_mem): Likewise.
9018         * gcse.c (compute_transp): Likewise.
9019         * dse.c (scan_reads_nospill): Likewise.
9020         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
9021         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
9022         canon_base_addr of the group, plus optional offset.
9023         (struct group_info): Rename canon_base_mem to
9024         canon_base_addr.
9025         (get_group_info): Set canon_base_addr to canon_rtx of base, not
9026         canon_rtx of base_mem.
9027
9028 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
9029
9030         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
9031         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
9032
9033 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9034
9035         * config/spu/spu-builtins.h: Delete file.
9036
9037         * config/spu/spu.h (enum spu_builtin_type): Move here from
9038         spu-builtins.h.
9039         (struct spu_builtin_description): Likewise.  Add GTY marker.
9040         Do not use enum spu_function_code or enum insn_code.
9041         (spu_builtins): Add extern declaration.
9042
9043         * config/spu/spu.c: Do not include "spu-builtins.h".
9044         (enum spu_function_code, enum spu_builtin_type_index,
9045         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
9046         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
9047         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
9048         unsigned_V2DI_type_node): Move here from spu-builtins.h.
9049         (spu_builtin_types): Make static.  Add GTY marker.
9050         (spu_builtins): Add extern declaration with GTY marker.
9051         Include "gt-spu.h".
9052
9053         * config/spu/spu-c.c: Do not include "spu-builtins.h".
9054         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
9055         Check programmatically whether all parameters are scalar.
9056
9057         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
9058
9059 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
9060
9061         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
9062         assignment from the constructor either if the target is volatile.
9063
9064 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
9065
9066         * config/arm/arm.md (insv): Do not share operands[0].
9067
9068 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
9069
9070         * config/vxlib-tls.c (active_tls_threads): Delete.
9071         (delete_hook_installed): New.
9072         (tls_delete_hook): Don't delete the delete hook.
9073         (tls_destructor): Delete it here.
9074         (__gthread_set_specific): Adjust installing the delete hook.
9075         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
9076         __gthread_leave_tsd_dtor_context.
9077
9078 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
9079
9080         * c-format.c (gcc_tdiag_char_table): Add support for %E.
9081
9082 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
9083
9084         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
9085         enum type.
9086         (alpha_rtx_costs): Ditto.
9087         (emit_unlikely_jump): Use add_reg_note.
9088         (emit_frame_store_1): Ditto.
9089         (alpha_expand_prologue): Ditto.
9090         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9091         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
9092
9093 2009-04-23  Nick Clifton  <nickc@redhat.com>
9094
9095         * config/v850/v850.md (epilogue): Remove suppressed code.
9096         (return): Rename to return_simple and remove test of frame size.
9097         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
9098         to gen_return_simple.
9099
9100 2009-04-22  Jing Yu  <jingyu@google.com>
9101
9102         PR testsuite/39781
9103         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
9104
9105 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9106
9107         PR C/31499
9108         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
9109         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
9110         value is a VECTOR_CST, the element type is the element type of the
9111         vector.
9112
9113 2009-04-22  DJ Delorie  <dj@redhat.com>
9114
9115         * config/m32c/m32c.h: Update GTY annotations to new syntax.
9116
9117 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
9118
9119         * alias.c (find_base_term): Move around LO_SUM case, so that
9120         CONST falls through into PLUS/MINUS handling.
9121
9122         PR c/39855
9123         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
9124         into 0, use omit_one_operand.
9125
9126 2009-04-23  Ben Elliston  <bje@au.ibm.com>
9127
9128         * config/rs6000/linux-unwind.h (get_regs): Remove type
9129         puns. Change the type of `pc' to an array of unsigned ints and
9130         update all users.  Constify frame24.
9131
9132 2009-04-22  DJ Delorie  <dj@redhat.com>
9133
9134         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
9135         declarations before code.
9136         (current_function_special_page_vector): Likewise.
9137         (m32c_expand_insv): Silence a warning.
9138
9139 2009-04-21  Taras Glek  <tglek@mozilla.com>
9140
9141         * alias.c: Update GTY annotations to new syntax.
9142         * basic-block.h: Likewise.
9143         * bitmap.h: Likewise.
9144         * c-common.h: Likewise.
9145         * c-decl.c: Likewise.
9146         * c-parser.c: Likewise.
9147         * c-pragma.c: Likewise.
9148         * c-tree.h: Likewise.
9149         * cfgloop.h: Likewise.
9150         * cgraph.h: Likewise.
9151         * config/alpha/alpha.c: Likewise.
9152         * config/arm/arm.h: Likewise.
9153         * config/avr/avr.h: Likewise.
9154         * config/bfin/bfin.c: Likewise.
9155         * config/cris/cris.c: Likewise.
9156         * config/darwin.c: Likewise.
9157         * config/frv/frv.c: Likewise.
9158         * config/i386/i386.c: Likewise.
9159         * config/i386/i386.h: Likewise.
9160         * config/i386/winnt.c: Likewise.
9161         * config/ia64/ia64.h: Likewise.
9162         * config/iq2000/iq2000.c: Likewise.
9163         * config/mips/mips.c: Likewise.
9164         * config/mmix/mmix.h: Likewise.
9165         * config/pa/pa.c: Likewise.
9166         * config/pa/pa.h: Likewise.
9167         * config/rs6000/rs6000.c: Likewise.
9168         * config/s390/s390.c: Likewise.
9169         * config/sparc/sparc.c: Likewise.
9170         * config/xtensa/xtensa.c: Likewise.
9171         * cselib.h: Likewise.
9172         * dbxout.c: Likewise.
9173         * dwarf2out.c: Likewise.
9174         * except.c: Likewise.
9175         * except.h: Likewise.
9176         * fixed-value.h: Likewise.
9177         * function.c: Likewise.
9178         * function.h: Likewise.
9179         * gimple.h: Likewise.
9180         * integrate.c: Likewise.
9181         * optabs.c: Likewise.
9182         * output.h: Likewise.
9183         * real.h: Likewise.
9184         * rtl.h: Likewise.
9185         * stringpool.c: Likewise.
9186         * tree-data-ref.c: Likewise.
9187         * tree-flow.h: Likewise.
9188         * tree-scalar-evolution.c: Likewise.
9189         * tree-ssa-address.c: Likewise.
9190         * tree-ssa-alias.h: Likewise.
9191         * tree-ssa-operands.h: Likewise.
9192         * tree.c: Likewise.
9193         * tree.h: Likewise.
9194         * varasm.c: Likewise.
9195         * varray.h: Likewise.
9196         * vec.h: Likewise.
9197         * coretypes.h: Do not define GTY macro if it is already defined.
9198         * doc/gty.texi: Update GTY documentation to new syntax.
9199         * gengtype-lex.l: Enforce attribute-like syntax for GTY
9200         annotations on structs.
9201         * gengtype-parse.c: Likewise.
9202
9203 2009-04-22  Mark Heffernan  <meheff@google.com>
9204
9205         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
9206
9207 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
9208
9209         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
9210         where appropriate.
9211
9212 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
9213
9214         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
9215         the same as a PLUS without a shift.  Increase the cost of a
9216         CONST_INT in MULT.
9217
9218 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9219
9220         * Makefile.in: Update dependencies.
9221         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
9222         * errors.h: Remove bogus comment about compatibility.
9223         (warning): Update declaration.
9224         * genautomata.c: Update all calls to warning.
9225         * gimple.c: Do not include errors.h. Include toplev.h.
9226         * tree-ssa-structalias.c: Do not include errors.h.
9227         * omega.c: Likewise.
9228         * tree-ssa-reassoc.c: Likewise.
9229         * config/spu/spu-c.c: Likewise.
9230         * config/spu/t-spu-elf: Update dependencies.
9231
9232 2009-04-22  Richard Guenther  <rguenther@suse.de>
9233
9234         PR tree-optimization/39824
9235         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
9236         make sure the types are compatible.
9237
9238 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9239
9240         PR c++/14875
9241         * c-common.c (c_parse_error): Take a token_flags parameter.
9242         Use token_type for the token type instead.
9243         Pass token_flags to cpp_type2name.
9244         * c-common.h (c_parse_error): Update declaration.
9245         * c-parser.c (c_parser_error): Pass 0 as token flags.
9246
9247 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
9248
9249         PR rtl-optimization/39580
9250         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
9251         
9252 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9253
9254         * function.c (expand_function_end): Do not emit a jump to the "naked"
9255         return label for fall-through returns.
9256         * except.c (sjlj_emit_function_exit): Always place the call to the
9257         unregister function at the location installed by expand_function_end.
9258
9259 2009-04-22  Richard Guenther  <rguenther@suse.de>
9260
9261         PR tree-optimization/39845
9262         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
9263         (gen_inbound_check): Likewise.
9264
9265 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9266
9267         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
9268         padding for PPC.
9269         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
9270         * config/vxlib.c (__gthread_once): Add race guard for PPC.
9271
9272 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9273
9274         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
9275         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
9276         shift counts to avoid out-of-bounds array accesses.
9277
9278 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9279
9280         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
9281         (Pmode): Move above.
9282
9283 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
9284
9285         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
9286         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
9287         GET_CODE macro.  Use IN_RANGE macro where appropriate.
9288         * config/alpha/alpha.h: Ditto.
9289         * config/alpha/alpha.md: Ditto.
9290         * config/alpha/constraints.md: Ditto.
9291         * config/alpha/predicates.md: Ditto.
9292         
9293 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9294
9295         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
9296         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9297         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9298         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9299         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9300         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9301         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9302         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9303         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9304         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9305         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9306         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9307         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9308         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9309         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9310         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9311         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9312         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9313         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9314         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9315         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9316         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9317         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9318         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9319         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9320         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9321         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9322
9323 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9324
9325         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
9326         references from comments.
9327         * cfgbuild.c: (count_basic_blocks): Delete.
9328         (find_basic_blocks_1): Delete.
9329         (find_basic_blocks): Delete.
9330         * except.c (finish_eh_generation): Make static.  Move comment from
9331         except.h here.  Remove find_basic_blocks references from comments.
9332         * except.h (finish_eh_generation): Delete.
9333         * basic-block.h (find_basic_blocks): Delete.
9334         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
9335
9336 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
9337
9338         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
9339         (sdbout_parms):  Likewise.
9340
9341 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
9342
9343         * config/sh/sh.c (prepare_cbranch_operands): Use
9344         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
9345         (expand_cbranchdi4): Likewise.
9346         (from_compare): Add cast to enum type.
9347         (expand_cbranchsi4): Use add_reg_note.
9348         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
9349         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
9350         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
9351         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9352         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
9353         instead of CODE_FOR_nothing.
9354         (cbranchdi4): Likewise.  Fix the order of arguments for
9355         gen_rtx_fmt_ee.
9356         (push_fpscr): Use add_reg_note.
9357         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
9358         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
9359         
9360 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
9361
9362         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
9363         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9364         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9365         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
9366         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
9367         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
9368         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
9369         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
9370         config/alpha/x-vms, config/arc/t-arc,
9371         config/arm/README-interworking, config/arm/arm-c.c,
9372         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
9373         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
9374         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
9375         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
9376         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
9377         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
9378         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
9379         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
9380         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
9381         config/cris/t-elfmulti, config/crx/t-crx,
9382         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
9383         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
9384         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
9385         config/h8300/t-h8300, config/i386/athlon.md,
9386         config/i386/darwin-libgcc.10.4.ver,
9387         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
9388         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
9389         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
9390         config/i386/t-linux64, config/i386/t-nwld,
9391         config/i386/t-rtems-i386, config/i386/t-sol2-10,
9392         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
9393         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
9394         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
9395         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
9396         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
9397         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
9398         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
9399         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
9400         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
9401         config/m68k/t-uclinux, config/mcore/t-mcore,
9402         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
9403         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
9404         config/mips/crtn.asm, config/mips/irix-crti.asm,
9405         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
9406         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
9407         config/mips/mips-fixed.md, config/mips/sb1.md,
9408         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
9409         config/mips/t-iris6, config/mips/t-isa3264,
9410         config/mips/t-libgcc-mips16, config/mips/t-linux64,
9411         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
9412         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
9413         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
9414         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
9415         config/mn10300/t-linux, config/mn10300/t-mn10300,
9416         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
9417         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
9418         config/picochip/libgccExtras/clzsi2.asm,
9419         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
9420         config/rs6000/darwin-libgcc.10.4.ver,
9421         config/rs6000/darwin-libgcc.10.5.ver,
9422         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
9423         config/rs6000/t-aix43, config/rs6000/t-aix52,
9424         config/rs6000/t-darwin, config/rs6000/t-fprules,
9425         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
9426         config/rs6000/t-lynx, config/rs6000/t-netbsd,
9427         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
9428         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
9429         config/rs6000/t-rtems, config/rs6000/t-spe,
9430         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
9431         config/score/t-score-elf, config/sh/divcost-analysis,
9432         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
9433         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
9434         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
9435         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
9436         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
9437         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
9438         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
9439         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
9440         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
9441         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
9442         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
9443         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
9444         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
9445         limitx.h, version.c, xcoff.h: Add copyright and license notices.
9446         * config/h8300/genmova.sh: Include copyright and license notices
9447         in generated output.
9448         * config/h8300/mova.md: Regenerate.
9449         * doc/install.texi2html: Include word "Copyright" in copyright
9450         notice and use name "Free Software Foundation, Inc.".
9451         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9452         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9453         ChangeLog-2007, ChangeLog-2008: Correct dates.
9454
9455 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9456
9457         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
9458         NE_EXPR operations as well.
9459         * c-parser.c (c_parser_condition): Do not set location information on
9460         the condition.
9461         (c_parser_conditional_expression): Likewise.
9462         (c_parser_binary_expression): Set location information on operators.
9463         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
9464         TRUTH_NOT_EXPR has been folded.
9465         * fold-const.c (fold_truth_not_expr): Copy location information from
9466         the incoming expression to the outgoing one.
9467         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
9468         recursive calls on the LHS of the operator but pass that of the
9469         operator to recursive calls on the RHS of the operator.  Set it
9470         on the COND_EXPR.
9471         (shortcut_cond_expr): Set the locus of the operator on the second
9472         COND_EXPR and that of the expression on the first in degenerate cases.
9473         Pass the locus of the expression to calls to shortcut_cond_r.
9474         Set the locus of the 'then' block on the associated jump, if any.
9475         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
9476         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
9477         expression to call to gimplify_boolean_expr.
9478
9479 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
9480
9481         * config.gcc: Add additional configuration for
9482         i686-w64-mingw* and x86_64-w64-mingw* triplet.
9483         * config/i386/mingw-w64.h: New mingw-w64 specific header.
9484         (CPP_SPEC): Redefine for allowing -municode option.
9485         (STARTFILE_SPEC): Likewise.
9486         * config/i386/t-mingw-w64: New.
9487         * config/i386/mingw-w64.opt: New.
9488         (municode): Add new target option.
9489         * doc/invoke.texi (municode): Add documentation for new option.
9490
9491 2009-04-21  Ian Lance Taylor  <iant@google.com>
9492
9493         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9494         Correct test for number of arguments.
9495         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
9496
9497 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
9498
9499         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
9500         argument of emit_library_call.
9501
9502 2009-04-21  Richard Guenther  <rguenther@suse.de>
9503
9504         PR middle-end/39829
9505         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
9506         inside VIEW_CONVERT_EXPRs.
9507
9508 2009-04-21  Martin Jambor  <mjambor@suse.cz>
9509
9510         * tree-switch-conversion.c (build_constructors): Split a long line.
9511         (constructor_contains_same_values_p): New function.
9512         (build_one_array): Create assigns of constants if possible, do not
9513         call mark_sym_for_renaming, call update_stmt.
9514         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
9515         make_rename_temp.  Do not call mark_symbols_for_renaming, call
9516         update_stmt.
9517         (gen_def_assigns): Do not call mark_symbols_for_renaming or
9518         find_new_referenced_vars, call update_stmt.
9519         (gen_inbound_check): Use create_tmp_var and create ssa names manually
9520         instead of calling make_rename_temp.  Do not call
9521         find_new_referenced_vars or mark_symbols_for_renaming, call
9522         update_stmt.
9523
9524 2009-04-21  Richard Guenther  <rguenther@suse.de>
9525
9526         PR tree-optimization/39827
9527         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
9528         (tree_ssa_phiprop): Pass the correct array size.
9529
9530 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
9531
9532         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
9533
9534 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9535
9536         PR 16202
9537         * c-typeck.c (lvalue_p): Move declaration ...
9538         * c-common.h (lvalue_p): ... to here.
9539         * c-common.c (candidate_equal_p): New.
9540         (add_tlist): Use it.
9541         (merge_tlist): Use it.
9542         (warn_for_collisions_1): Likewise.
9543         (warning_candidate_p): Accept more candidates.
9544         (verify_tree): A warning candidate can be an expression. Use
9545         candidate_equal_p.
9546
9547 2009-04-21  Ben Elliston  <bje@au.ibm.com>
9548
9549         PR target/5267
9550         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
9551         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
9552         options.  Remove -mcall-solaris documentation.
9553
9554 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9555
9556         PR c++/13358
9557         * doc/invoke.texi (-Wlong-long): Update description.
9558         * c-lex (interpret_integer): Only warn if there was no previous
9559         overflow and -Wlong-long is enabled.
9560         * c-decl.c (declspecs_add_type): Drop redundant flags.
9561         * c.opt (Wlong-long): Init to -1.
9562         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
9563         and front-end warn_long_long. Wlong-long only depends on other
9564         flags if it is uninitialized.
9565         * c-parser.c (disable_extension_diagnostics): warn_long_long is
9566         the same for CPP and FE.
9567         (restore_extension_diagnostics): Likewise.
9568
9569 2009-04-20  Ian Lance Taylor  <iant@google.com>
9570
9571         Fix enum conversions which are invalid in C++:
9572         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
9573         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
9574         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9575         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
9576         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
9577         (dbxout_parms): Likewise.
9578         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
9579         (df_clear_flags): Likewise.
9580         * df-problems.c (df_rd_bb_local_compute_process_def): Change
9581         top_flag parameter to int.
9582         (df_chain_create_bb_process_use): Likewise.
9583         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9584         Remove cast.
9585         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9586         (df_ref_create_structure, df_def_record_1): Likewise.
9587         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9588         (df_notes_rescan): Change 0 to VOIDmode in function call.
9589         (df_get_call_refs, df_insn_refs_collect): Likewise.
9590         (df_bb_regs_collect): Likewise.
9591         (df_entry_block_defs_collect): Likewise.
9592         (df_exit_block_uses_collect): Likewise.
9593         * df.h: Update declarations.
9594         * double-int.c (double_int_divmod): Add cast to enum type.
9595         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9596         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9597         (based_loc_descr): Likewise.
9598         (loc_descriptor_from_tree_1): Change first_op and second_op to
9599         enum dwarf_location_atom.  Add cast to enum type.
9600         * expmed.c (init_expmed): Change 0 to SET in function call.
9601         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
9602         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9603         (do_store_flag): Likewise.
9604         * fixed-value.h (struct fixed_value): Change mode to enum
9605         machine_mode.
9606         * function.c (assign_parms): Change 0 to VOIDmode in function call.
9607         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9608         function call.
9609         (insert_insn_decl, insert_decl, insert_state): Likewise.
9610         (automata_list_finish): Likewise.
9611         * genrecog.c (process_define_predicate): Add cast to enum type.
9612         * gensupport.c (init_predicate_table): Add cast to enum type.
9613         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9614         function call.
9615         (gimple_build_call_1, gimple_build_label): Likewise.
9616         (gimple_build_goto, gimple_build_asm_1): Likewise.
9617         (gimple_build_switch_1, gimple_build_cdt): Likewise.
9618         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
9619         (enum fallback): Rename from enum fallback_t.
9620         (fallback_t): Typedef as int.
9621         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9622         GSI_SAME_STMT in function call.
9623         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9624         enum type.
9625         (setup_reg_class_relations): Likewise.
9626         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
9627         (setup_prohibited_class_mode_regs): Add cast to enum type.
9628         (setup_prohibited_mode_move_regs): Likewise.
9629         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
9630         (record_address_regs): Change i to enum reg_class.
9631         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9632         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9633         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9634         (GET_MODE_2XWIDER_MODE): Likewise.
9635         (GET_CLASS_NARROWEST_MODE): Likewise.
9636         * omp-low.c (expand_omp_for): Add cast to enum type.
9637         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9638         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9639         * postreload.c (reload_cse_simplify_operands): Change rclass local
9640         to enum reg_class.
9641         * predict.c (combine_predictions_for_insn): Change best_predictor
9642         and predictor to enum br_predictor.
9643         (combine_predictions_for_bb): Likewise.
9644         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9645         use SET_PREDICT_EXPR_OUTCOME.
9646         * real.c (real_arithmetic): Change icode to code in function call.
9647         * reginfo.c (init_move_cost): Add casts to enum type.
9648         (init_reg_sets_1, init_fake_stack_mems): Likewise.
9649         * regmove.c (regclass_compatible_p): Change class0 and class1 to
9650         enum reg_class.
9651         * reload.c (find_valid_class): Add casts to enum type.
9652         (push_reload): Change 0 to NO_REGS in function call.
9653         (find_reloads): Change this_alternative to array of enum
9654         reg_class.  Remove some now-unnecessary casts.
9655         (make_memloc): Change 0 to VOIDmode in function call.
9656         * reload1.c (reload): Change 0 to VOIDmode in function call.
9657         (eliminate_regs_1, elimination_effects): Likewise.
9658         (eliminate_regs_in_insn): Likewise.
9659         (emit_input_reload_insns): Add cast to enum type.
9660         (delete_output_reload): Change 0 to VOIDmode in function call.
9661         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9662         to enum type in function call.
9663         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9664         (SET_PREDICT_EXPR_OUTCOME): Define.
9665         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
9666         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9667         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9668         (dump_function): Likewise.
9669         * tree-dump.h: Update declarations.
9670         * tree-pass.h: Update declarations.
9671         * varasm.c (assemble_integer): Change mclass to enum mode_class.
9672         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9673         enum type.
9674         (arm_rtx_costs_1): Correct parenthesization.
9675         (arm_rtx_costs): Add casts to enum type.
9676         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9677         (vfp_emit_fstmd): Use add_rg_note.
9678         (emit_multi_reg_push, emit_sfm): Likewise.
9679         (thumb_set_frame_pointer): Likewise.
9680         (arm_expand_prologue): Likewise.
9681         (arm_regno_class): Change return type to enum reg_class.
9682         (thumb1_expand_prologue): Use add_reg_note.
9683         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9684         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9685         in function call.
9686         * config/arm/gentune.sh: Add cast to enum type.
9687         * config/arm/arm-tune.md: Rebuild.
9688         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9689         (ix86_split_fp_branch, predict_jump): Likewise.
9690         (ix86_expand_multi_arg_builtin): Change sub_code from enum
9691         insn_code to enum rtx_code.
9692         (ix86_builtin_vectorized_function): Add cast to enum type.
9693         * config/i386/i386.md (truncdfsf2): Change slot to enum
9694         ix86_stack_slot.
9695         (truncxf<mode>2, isinf<mode>2): Likewise.
9696         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9697         enum type.
9698         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9699         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9700         (insert_bundle_state): Change 1 to INSERT in function call.
9701         (ia64_add_bundle_selector_before): Likewise.
9702         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9703         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9704         (restore_stack_nonlocal): Likewise.
9705         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9706         function call.
9707         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9708         function call.
9709         (mips_rtx_costs): Likewise.
9710         (mips_override_options): Add casts to enum type.
9711         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9712         in function call.
9713         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9714         (store_reg, set_reg_plus_d): Likewise.
9715         (hppa_expand_prologue, hppa_profile_hook): Likewise.
9716         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9717         cast to enum type.
9718         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9719         function call.
9720         (emit_unlikely_jump): Use add_reg_note.
9721         (rs6000_emit_allocate_stack): Likewise.
9722         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9723         (output_toc): Change 1 to INSERT in function call.
9724         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9725         (rs6000_initialize_trampoline): Likewise.
9726         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9727         function call.
9728         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9729         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9730         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9731         (save_gprs): Use add_reg_note.
9732         (s390_emit_prologue): Likewise.
9733         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9734         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9735         (sparc_fold_builtin): Add cast to enum type.
9736         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9737         enum insn_code.
9738         (spu_expand_prologue): Use add_reg_note.
9739         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
9740
9741 2009-04-20  Ian Lance Taylor  <iant@google.com>
9742
9743         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9744         (c_parser_postfix_expression_after_primary): Get VEC for list of
9745         arguments.  Get original types of arguments.  Call
9746         build_function_call_vec.
9747         (cached_expr_list_1, cached_expr_list_2): New static variables.
9748         (c_parser_expr_list): Change return type to VEC *.  Add
9749         p_orig_types parameter.  Change all callers.
9750         (c_parser_release_expr): New static function.
9751         (c_parser_vec_to_tree_list): New static function.
9752         * c-typeck.c (build_function_call): Rewrite to build a VEC and
9753         call build_function_call_vec.
9754         (build_function_call_vec): New function, based on old
9755         build_function_call.
9756         (convert_arguments): Remove nargs and argarray parameters.  Change
9757         values to a VEC.  Add origtypes parameter.
9758         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
9759         (convert_for_assignment): Add origtype parameter.  Change all
9760         callers.  If warn_cxx_compat, check for conversion to an enum
9761         type when calling a function.
9762         (store_init_value): Add origtype parameter.  Change all callers.
9763         (digest_init): Likewise.
9764         (struct init_node): Add origtype field.
9765         (add_pending_init): Add origtype parameter.  Change all callers.
9766         (output_init_element): Likewise.
9767         (output_pending_init_elements): Pass origtype from init_node to
9768         output_init_element.
9769         (process_init_element): Pass origtype from c_expr to
9770         output_init_element.
9771         (c_finish_return): Add origtype parameter.  Change all callers.
9772         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
9773         caller.
9774         (sync_resolve_params): Likewise.
9775         (sync_resolve_return): Change params to first_param.  Change caller.
9776         (resolve_overloaded_builtins): Change params to VEC *.  Change
9777         callers.  Save first parameter around call to build_function_call_vec.
9778         * c-decl.c (finish_decl): Add origtype parameter.  Change all
9779         callers.  Call build_function_call_vec rather than
9780         build_function_call for cleanup.
9781         * c-tree.h: Update declarations.
9782         * c-common.h: Update declarations.
9783         * stub-objc.c (objc_rewrite_function_call): Change parameter from
9784         params to first_param.
9785         * target.h (struct gcc_target): Change resolve_overloaded_builtin
9786         params parameter from tree to void *.
9787         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9788         Change arglist parameter to have type void *, and to be a pointer
9789         to a VEC.
9790         * config/rs6000/rs6000-protos.h
9791         (altivec_resolve_overloaded_builtin): Update declaration.
9792         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9793         fnargs parameter to have type void *, and to be a pointer to a
9794         VEC.  Call build_function_call_vec instead of
9795         build_function_call.
9796         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
9797
9798 2009-04-20  Joey Ye  <joey.ye@intel.com>
9799             Xuepeng Guo  <xuepeng.guo@intel.com>
9800             H.J. Lu  <hongjiu.lu@intel.com>
9801
9802         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9803
9804         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9805         (IX86_LEA_PRIORITY): Likewise.
9806         (distance_non_agu_define): New function.
9807         (distance_agu_use): Likewise.
9808         (ix86_lea_for_add_ok): Likewise.
9809         (ix86_dep_by_shift_count): Likewise.
9810
9811         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9812         should split for LEA.
9813
9814         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9815         function.
9816         (ix86_dep_by_shift_count): Likewise.
9817
9818 2009-04-20  Richard Guenther  <rguenther@suse.de>
9819
9820         * expr.c (handled_component_p): Move ...
9821         * tree.h (handled_component_p): ... here.
9822         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9823         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9824         and REALPART_EXPR to be in one group.
9825
9826 2009-04-20  Richard Guenther  <rguenther@suse.de>
9827
9828         * basic-block.h (get_all_dominated_blocks): Declare.
9829         * dominance.c (get_all_dominated_blocks): New function.
9830         * tree-cfg.c (get_all_dominated_blocks): Remove.
9831         (remove_edge_and_dominated_blocks): Adjust.
9832         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9833         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
9834         instead of recursing.
9835
9836 2009-04-20  Doug Kwan  <dougkwan@google.com>
9837
9838         * cgraph.h (cgraph_node_ptr): New type for vector functions.
9839         (struct cgraph_node_set_def): New type.
9840         (cgraph_node_set) New type. Also declare vector functions.
9841         (struct cgraph_node_set_element_def): New type.
9842         (cgraph_node_set_element): Ditto.
9843         (cgraph_node_set_iterator): New iterator type.
9844         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9845         cgraph_node_set_remove, dump_cgraph_node_set,
9846         debug_cgraph_node_set): New prototypes.
9847         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9848         cgraph_node_set_size): New inlines.
9849         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9850         including cgraph.h.
9851         (struct ipa_opt_pass): Add struct cgraph_node_set_def
9852         argument to function 'write_summary'.
9853         * ipa.c: Include ggc.h.
9854         (hash_cgraph_node_set_element,
9855         eq_cgraph_node_set_element, cgraph_node_set_new,
9856         cgraph_node_set_add, cgraph_node_set_remove,
9857         cgraph_node_set_find, dump_cgraph_node_set,
9858         debug_cgraph_node_set): New functions.
9859         * Makefile.in (ipa.o): Add dependency on GGC_H.
9860
9861 2009-04-20  Ira Rosen  <irar@il.ibm.com>
9862
9863         PR tree-optimization/39675
9864         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
9865         check of the return code of vect_schedule_slp. Check that
9866         stmt_vec_info still exists for the statement, before checking its
9867         vectorization type.
9868
9869 2009-04-20  Michael Matz  <matz@suse.de>
9870
9871         * Makefile.in (generated_files): Take out $(simple_generated_c).
9872
9873 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
9874
9875         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
9876         (UINTPTR_TYPE):  Likewise.
9877
9878 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9879
9880         PR c/37481
9881         * c-typeck.c (digest_init): Check for initializing an array with a
9882         string literal.
9883
9884 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9885
9886         PR c/19771
9887         * c-semantics.c (pop_stmt_list): Propagate
9888         STATEMENT_LIST_HAS_LABEL to parent statement list.
9889
9890 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
9891
9892         * config/mips/mips.h (mips_tune_attr): New macro.
9893         * config/mips/mips.md (cpu): Use it.
9894
9895 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9896
9897         PR c/38243
9898         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9899         declaring a tag.
9900
9901 2009-04-19  Diego Novillo  <dnovillo@google.com>
9902
9903         * toplev.c (compile_file): Move call to coverage_finish ...
9904         * cgraphunit.c (ipa_passes): ... here.
9905         Call cgraph_process_new_functions.
9906         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9907         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9908
9909 2009-04-19  Jan Hubicka  <jh@suse.cz>
9910
9911         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9912         cfun.
9913         (dump_cgraph_node): Dump can throw external flag.
9914         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9915
9916 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9917
9918         PR c/32061
9919         PR c++/36954
9920         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9921         * common.opt (Wlogical-op): Move from here...
9922         * c.opt (Wlogical-op): ... to here.
9923         * c-typeck.c (parser_build_binary_op): Update call to
9924         warn_logical_operator.
9925         * c-opts.c (c_common_post_options): Enable warn_logical_op with
9926         extra_warnings.
9927         * c-common.c (warn_logical_op): Update.
9928         * c-common.h (warn_logical_op): Update declaration.
9929
9930 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9931
9932         * tree.c (protected_set_expr_location): Fix formatting.
9933
9934 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9935
9936         PR c/27676
9937         * c-typeck.c (readonly_warning): new.
9938         (build_unary_op, build_modify_expr): Use readonly_warning for
9939         storing into something readonly but not const-qualified.
9940
9941 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9942
9943         PR c/22367
9944         * c-typeck.c (build_unary_op): Check for taking address of
9945         expression of type void.
9946
9947 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9948
9949         PR c/35210
9950         * c-typeck.c (build_function_call): Check for calling a function
9951         with qualified void return types.  Call require_complete_type when
9952         generating a trap.
9953
9954 2009-04-18  Jan Hubicka  <jh@suse.cz>
9955
9956         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9957         Set nothrow flag.
9958         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9959         can_throw_external flag.
9960         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9961         * ipa-pure-const.c (ignore_edge): New function.
9962         (propagate): Compute order for NOTHROW computation; set NOTHROWs
9963         only over can_throw_external edges.
9964         (local_pure_const): Add nothrow flag.
9965         * ipa-utils.c (searchc): Add ignore_edge callback.
9966         (ipa_utils_reduced_inorder): Add ignore_edge callback.
9967         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9968         (set_nothrow_function_flags): Update cgraph.
9969         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9970
9971 2009-04-18  Richard Guenther  <rguenther@suse.de>
9972
9973         PR middle-end/39804
9974         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9975         (fold_stmt): ... this and ...
9976         (fold_stmt_inplace): ... this.
9977         (fold_stmt_1): Fold references in calls and asms.
9978         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9979
9980 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9981
9982         * tree-vrp.c (ssa_name_nonzero_p): Remove.
9983         * tree.h: Remove the prototype for ssa_name_nonzero_p.
9984
9985 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9986
9987         * tree.c (function_args_count): Remove.
9988         * tree.h: Remove the prototype for function_args_count.
9989
9990 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9991
9992         * tree-iterator.c (expr_only): Remove.
9993         * tree.h: Remove the prototype for expr_only.
9994
9995 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9996
9997         * reginfo.c (cannot_change_mode_set_regs): Remove.
9998         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9999
10000 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
10001
10002         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
10003         whether operands 0 and 1 overlaps.
10004
10005 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10006
10007         PR middle-end/36902
10008         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
10009         pointer. Use warning_at instead of warning.
10010         (search_for_addr_array): Likewise.
10011         (check_array_bounds): Likewise.
10012         (check_all_array_refs): Check that the incoming edge is not in the
10013         list of edges to be removed.
10014         (check_all_array_refs): Avoid the temporal pointer.
10015         (vrp_visit_cond_stmt): Fix typo.
10016         (simplify_switch_using_ranges): Handle the case where the switch
10017         index is an integer constant.
10018
10019 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
10020
10021         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
10022
10023 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
10024
10025         * doc/extend.texi, doc/invoke.texi: Fix typos.
10026
10027 2009-04-17  Cary Coutant  <ccoutant@google.com>
10028
10029         * tree-flow-inline.h (get_lineno): Fix inverted test.
10030
10031 2009-04-17  Diego Novillo  <dnovillo@google.com>
10032
10033         * tree-ssa-pre.c (create_expression_by_pieces): Remove
10034         assertion for AVAIL_OUT.
10035
10036 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
10037
10038         PR target/38627
10039         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
10040         * config/sh/linux-atomic.asm: Likewise.
10041
10042 2009-04-17  Diego Novillo  <dnovillo@google.com>
10043
10044         * except.c (debug_eh_tree): New.
10045         (struct eh_region, struct eh_status): Move ...
10046         * except.h: ... here.
10047         (add_type_for_runtime): Declare extern.
10048         (lookup_type_for_runtime): Likewise.
10049         (debug_eh_tree): Declare.
10050         * Makefile.in (GTFILES): List except.h before except.c
10051
10052 2009-04-17  Diego Novillo  <dnovillo@google.com>
10053
10054         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
10055         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
10056         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
10057         (find_vars_r): ... here.
10058         * tree-flow.h (find_referenced_vars_in): Declare.
10059         * tree-ssa-pre.c (create_expression_by_pieces): Assert
10060         that AVAIL_OUT exists for BLOCK.
10061         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
10062         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
10063         (tree-parloops.o): Likewise.
10064
10065 2009-04-17  Simon Baldwin  <simonb@google.com>
10066
10067         * toplev.c (default_tree_printer): Add handling for %E format.
10068
10069 2009-04-17  Diego Novillo  <dnovillo@google.com>
10070
10071         * tree-pretty-print.c (dump_generic_node): Add break after
10072         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
10073         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
10074         FUNCTION_TYPE together.  Call print_struct_decl when printing
10075         structures and TDF_SLIM is not given.
10076         (print_struct_decl): Fix logic for detecting recursion.
10077
10078 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
10079
10080         PR 31567
10081         * gcc.c (create_at_file): New.
10082         (compile_input_file_p): New.
10083         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
10084         * main.c (main): Update call to toplev_main.
10085         * toplev.c (toplev_main): Change signature. Call expandargv.
10086         * toplev.h (toplev_main): Change signature.
10087
10088 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10089
10090         * dwarf2out.c (field_byte_offset): Use the type size as the field size
10091         if the latter is not constant.
10092
10093 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
10094
10095         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
10096
10097 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10098
10099         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
10100         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
10101
10102 2009-04-17  Richard Guenther  <rguenther@suse.de>
10103
10104         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10105         Handle component references view-converting an invariant address.
10106
10107 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
10108
10109         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
10110         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
10111         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
10112         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
10113         Use @deftypevr rather than @deftypevar.
10114
10115 2009-04-17  Richard Guenther  <rguenther@suse.de>
10116
10117         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
10118         (get_prop_source_stmt): Likewise.
10119         (can_propagate_from): Likewise.
10120
10121 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
10122
10123         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
10124         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
10125         (--with-multilib-list): Add default value.
10126         * configure: Regenerate.
10127         * Makefile.in (TM_ENDIAN_CONFIG): Define.
10128         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
10129         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
10130         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
10131         Don't add default cpu to multilib list unnecessarily, but do enable
10132         the relevant compiler option..
10133         Add support for --with-multilib-list=<blank> and
10134         --with-multilib-list=!<somelib> to supress unwanted multilibs.
10135         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
10136         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
10137         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
10138         TM_MULTILIB_CONFIG.
10139         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
10140         (MULTILIB_OSDIRNAMES): New variable.
10141         * config/sh/t-1e: Delete file.
10142         * config/sh/t-mlib-sh1: Delete file.
10143         * config/sh/t-mlib-sh2: Delete file.
10144         * config/sh/t-mlib-sh2a: Delete file.
10145         * config/sh/t-mlib-sh2a-nofpu: Delete file.
10146         * config/sh/t-mlib-sh2a-single: Delete file.
10147         * config/sh/t-mlib-sh2a-single-only: Delete file.
10148         * config/sh/t-mlib-sh2e: Delete file.
10149         * config/sh/t-mlib-sh3e: Delete file.
10150         * config/sh/t-mlib-sh4: Delete file.
10151         * config/sh/t-mlib-sh4-nofpu: Delete file.
10152         * config/sh/t-mlib-sh4-single: Delete file.
10153         * config/sh/t-mlib-sh4-single-only: Delete file.
10154         * config/sh/t-mlib-sh4a: Delete file.
10155         * config/sh/t-mlib-sh4a-nofpu: Delete file.
10156         * config/sh/t-mlib-sh4a-single: Delete file.
10157         * config/sh/t-mlib-sh4a-single-only: Delete file.
10158         * config/sh/t-mlib-sh4al: Delete file.
10159         * config/sh/t-mlib-sh5-32media: Delete file.
10160         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
10161         * config/sh/t-mlib-sh5-64media: Delete file.
10162         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
10163         * config/sh/t-mlib-sh5-compact: Delete file.
10164         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
10165         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
10166         * doc/install.texi (Options specification): Add
10167         --with-multilib-list and --with-endian.
10168
10169 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
10170
10171         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
10172         REVISION_c.
10173         (OBJS-common): Add plugin-version.o.
10174         (plugin-version.o): New.
10175         * gcc-plugin.h (plugin_gcc_version): New.
10176         (plugin_default_version_check): New.
10177         (plugin_init_func, plugin_init): Add version argument.
10178         * plugin-version.c: New.
10179         * plugin.c (str_plugin_gcc_version_name): New.
10180         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
10181         pass it to the init function.
10182         (plugin_default_version_check): New.
10183
10184 2009-04-17  Richard Guenther  <rguenther@suse.de>
10185
10186         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
10187         for decl-vs-decl disambiguation.
10188
10189 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10190
10191         * config/s390/s390.h (s390_tune_attr): New macro definition.
10192         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
10193
10194 2009-04-17  Richard Guenther  <rguenther@suse.de>
10195
10196         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
10197         (fold_stmt_r): Likewise.
10198         (maybe_fold_reference): New function.
10199         (fold_gimple_assign): Handle cases fold_stmt_r did.
10200         (fold_stmt): Do not use fold_stmt_r.
10201         (fold_stmt_inplace): Likewise.
10202
10203 2009-04-17  Richard Guenther  <rguenther@suse.de>
10204
10205         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
10206         (record_equivalences_from_stmt): Remove useless checks and
10207         simplifications.
10208         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
10209         the type is already suitable.
10210
10211 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
10212
10213         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
10214
10215 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
10216
10217         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
10218         (CMPtype): Define as __gcc_CMPtype.
10219
10220 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
10221
10222         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
10223         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
10224
10225 2009-04-17  Richard Guenther  <rguenther@suse.de>
10226
10227         PR tree-optimization/39746
10228         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
10229         special-casing for builtins and static variable use/def.
10230         (call_may_clobber_ref_p_1): Likewise.
10231
10232 2009-04-16  Ian Lance Taylor  <iant@google.com>
10233
10234         * df.h: Include "timevar.h".
10235         (struct df_problem): Change tv_id field to timevar_id_t.
10236         * tree-pass.h: Include "timevar.h".
10237         (struct opt_pass): Change tv_id field to timevar_id_t.
10238         * timevar.h (timevar_id_t): Define TV_NONE.
10239         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
10240         TV_NONE rather than tv_id != 0.
10241         (execute_one_pass): Likewise.
10242         * Makefile.in (DF_H): Add $(TIMEVAR_H).
10243         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
10244         dependencies to $(TREE_PASS_H).
10245         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
10246         to TV_NONE.
10247         (pass_branch_target_load_optimize2): Likewise.
10248         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
10249         (pass_outof_cfg_layout_mode): Likewise.
10250         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
10251         (pass_rebuild_cgraph_edges): Likewise.
10252         (pass_remove_cgraph_callee_edges): Likewise.
10253         * df-core.c (pass_df_initialize_opt): Likewise.
10254         (pass_df_initialize_no_opt): Likewise.
10255         (pass_df_finish): Likewise.
10256         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
10257         * except.c (pass_set_nothrow_function_flags): Likewise.
10258         (pass_convert_to_eh_region_ranges): Likewise.
10259         * final.c (pass_compute_alignments): Likewise.
10260         * function.c (pass_instantiate_virtual_regs): Likewise.
10261         (pass_init_function): Likewise.
10262         (pass_leaf_regs): Likewise.
10263         (pass_match_asm_constraints): Likewise.
10264         * gimple-low.c (pass_lower_cf): Likewise.
10265         (pass_mark_used_blocks): Likewise.
10266         * init-regs.c (pass_initialize_regs): Likewise.
10267         * integrate.c (pass_initial_value_sets): Likewise.
10268         * ira.c (pass_ira): Likewise.
10269         * jump.c (pass_cleanup_barriers): Likewise.
10270         * omp-low.c (pass_expand_omp): Likewise.
10271         (pass_lower_omp): Likewise.
10272         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
10273         * recog.c (pass_split_all_insns): Likewise.
10274         (pass_split_after_reload): Likewise.
10275         (pass_split_before_regstack): Likewise.
10276         (pass_split_before_sched2): Likewise.
10277         (pass_split_for_shorten_branches): Likewise.
10278         * reginfo.c (pass_reginfo_init): Likewise.
10279         (pass_subregs_of_mode_init): Likewise.
10280         (pass_subregs_of_mode_finish): Likewise.
10281         * passes.c (pass_postreload): Likewise.
10282         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
10283         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
10284         (pass_warn_function_return): Likewise.
10285         (pass_warn_function_noreturn): Likewise.
10286         * tree-complex.c (pass_lower_complex): Likewise.
10287         (pass_lower_complex_O0): Likewise.
10288         * tree-if-conv.c (pass_if_conversion): Likewise.
10289         * tree-into-ssa.c (pass_build_ssa): Likewise.
10290         * tree-mudflap.c (pass_mudflap_1): Likewise.
10291         (pass_mudflap_2): Likewise.
10292         * tree-nomudflap.c (pass_mudflap_1): Likewise.
10293         (pass_mudflap_2): Likewise.
10294         * tree-nrv.c (pass_return_slot): Likewise.
10295         * tree-object-size.c (pass_object_sizes): Likewise.
10296         * tree-optimize.c (pass_all_optimizations): Likewise.
10297         (pass_early_local_passes): Likewise.
10298         (pass_all_early_optimizations): Likewise.
10299         (pass_cleanup_cfg): Likewise.
10300         (pass_cleanup_cfg_post_optimizing): Likewise.
10301         (pass_free_datastructures): Likewise.
10302         (pass_free_cfg_annotations): Likewise.
10303         (pass_fixup_cfg): Likewise.
10304         (pass_init_datastructures): Likewise.
10305         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
10306         (pass_late_warn_uninitialized): Likewise.
10307         (pass_update_address_taken): Likewise.
10308         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
10309         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
10310         (pass_cse_sincos): Likewise.
10311         (pass_convert_to_rsqrt): Likewise.
10312         * tree-ssa-structalias.c (pass_build_alias): Likewise.
10313         * tree-stdarg.c (pass_stdarg): Likewise.
10314         * tree-tailcall.c (pass_tail_recursion): Likewise.
10315         (pass_tail_calls): Likewise.
10316         * tree-vect-generic.c (pass_lower_vector): Likewise.
10317         (pass_lower_vector_ssa): Likewise.
10318         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
10319
10320 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
10321
10322         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
10323         XLR entry.
10324         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
10325         Handle -march=xlr.
10326         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
10327         logical and signext.
10328
10329 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10330
10331         PR target/39767
10332         * config/sh/predicates.md (arith_operand): Check if the operand
10333         of TRUNCATE is a REG.
10334
10335 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10336
10337         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
10338         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
10339
10340 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10341
10342         * tree-iterator.c (tsi_split_statement_list_after,
10343         tsi_split_statement_list_before): Remove.
10344         * tree-iterator.h: Remove the prototypes for
10345         tsi_split_statement_list_after and tsi_split_statement_list_before.
10346
10347 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10348
10349         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
10350         * tree-ssa-propagate.h: Remove the prototype for
10351         stmt_makes_single_load.
10352
10353 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10354
10355         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
10356         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
10357
10358 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10359
10360         * tree-iterator.c (EXPR_LAST_BODY): Remove.
10361
10362 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10363
10364         * except.c (eh_region_outer_p): Remove.
10365         * except.h: Remove the prototype for eh_region_outer_p.
10366
10367 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10368
10369         * function.c (current_function_assembler_name): Remove.
10370         * function.h: Remove the prototype for
10371         current_function_assembler_name.
10372
10373 2009-04-16  Ian Lance Taylor  <iant@google.com>
10374
10375         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
10376         (add_reg_note): Call alloc_reg_note.
10377         * rtl.h (alloc_reg_note): Declare.
10378         * combine.c (try_combine): Use alloc_reg_note.
10379         (recog_for_combine, move_deaths): Likewise.
10380         (distribute_notes): Use alloc_reg_note and add_reg_note.
10381         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
10382         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
10383         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
10384
10385 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
10386
10387         PR rtl-optimization/39762
10388         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
10389         ira_may_move_out_cost): Add comments about way of their usage.
10390         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
10391
10392         * ira-conflicts.c (process_regs_for_copy): Use function
10393         ira_get_register_move_cost instead of global
10394         ira_register_move_cost.
10395
10396         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
10397         color_pass, move_spill_restore, update_curr_costs): Ditto.
10398
10399         * ira-lives.c (process_single_reg_class_operands): Ditto.
10400
10401         * ira-emit.c (emit_move_list): Ditto.
10402
10403         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
10404         (record_reg_classes): Ditto.  Use functions
10405         ira_get_register_move_cost and ira_get_may_move_cost instead of
10406         global vars ira_register_move_cost, ira_may_move_out_cost and
10407         ira_may_move_in_cost.
10408         (record_address_regs): Don't call ira_init_register_move_cost.
10409         Use function ira_get_may_move_cost instead of global
10410         ira_may_move_in_cost.
10411         (process_bb_node_for_hard_reg_moves): Use function
10412         ira_get_register_move_cost instead of global ira_register_move_cost.
10413         (ira_costs): Don't call ira_init_register_move_cost.
10414
10415 2009-04-16  Richard Guenther  <rguenther@suse.de>
10416
10417         * tree-cfg.c (verify_gimple_assign_binary):
10418         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
10419         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
10420         (create_general_new_stmt): Note that this function is broken.
10421
10422 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10423
10424         * common.opt (fhelp): Add Var(help_flag).
10425         * gcc-plugin.h (plugin_info): Add help.
10426         * plugin.c (plugin_name_args): Add help.
10427         (register_plugin_info): Set plugin->help.
10428         (print_help_one_plugin): New.
10429         (print_plugins_help): New.
10430         * plugin.h (print_plugins_help): New.
10431         * toplev.c (toplev_main): Call print_plugins_help if needed.
10432
10433 2009-04-16  Richard Guenther  <rguenther@suse.de>
10434
10435         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
10436         (gimple_ior_addresses_taken_1): New function.
10437         (gimple_ior_addresses_taken): Likewise.
10438         * gimple.h (struct gimple_statement_with_ops_base): Remove
10439         addresses_taken member.
10440         (gimple_ior_addresses_taken): Declare.
10441         (gimple_addresses_taken, gimple_addresses_taken_ptr,
10442         gimple_set_addresses_taken): Remove.
10443         * ipa-reference.c (mark_address): New function.
10444         (scan_stmt_for_static_refs): Use it for marking addresses taken.
10445         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
10446         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
10447         (gimple_add_to_addresses_taken): Remove.
10448         (get_tmr_operands): Call mark_address_taken.
10449         (get_asm_expr_operands): Likewise.
10450         (get_expr_operands): Likewise.
10451         (build_ssa_operands): Do not clear the addresses_taken bitmap.
10452         (free_stmt_operands): Do not free it.
10453         * tree-ssa.c (delete_tree_ssa): Likewise.
10454         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
10455
10456 2009-04-16  Richard Guenther  <rguenther@suse.de>
10457
10458         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
10459         (walk_stmt_load_store_ops): Likewise.
10460         * gimple.c (get_base_loadstore): New function.
10461         (walk_stmt_load_store_addr_ops): Likewise.
10462         (walk_stmt_load_store_ops): Likewise.
10463         * ipa-pure-const.c (check_op): Simplify.
10464         (check_load, check_store): New functions.
10465         (check_stmt): Use walk_stmt_load_store_ops.
10466         * ipa-reference.c (mark_load): Adjust signature.
10467         (mark_store): Likewise.
10468         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
10469
10470 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10471
10472         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
10473         (plugin_info): New.
10474         * opts.c (common_handle_option): Don't call print_version.
10475         * plugin.c (plugin_name_args): Add version.
10476         (register_plugin_info): New.
10477         (register_callback): Handle PLUGIN_INFO.
10478         (try_init_one_plugin): New.
10479         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
10480         if failed to init.
10481         (finalize_one_plugin): New.
10482         (finalize_plugins): New.
10483         (print_one_plugin): New.
10484         (print_plugins_versions): New.
10485         * plugin.h (print_plugins_versions): New.
10486         (finalize_plugins): New.
10487         * toplev.c (compile_file): Don't call initialize_plugins.
10488         (print_version): Call print_plugins_versions.
10489         (toplev_main): Call initialize_plugins. Print version if needed.
10490         Call finalize_plugins.
10491
10492 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10493
10494         * common.opt (fversion): New.
10495         * gcc.c (print_version): New.
10496         (process_command): Don't print the version. Just set print_version.
10497         (main): Print version. Call subprocesses if print_version and
10498         verbose_flag are set.
10499         * opts.c (common_handle_option): Handle OPT_fversion.
10500
10501 2009-04-16  Richard Guenther  <rguenther@suse.de>
10502             Ira Rosen  <irar@il.ibm.com>
10503
10504         PR tree-optimization/39698
10505         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
10506         type of the reduction variable.  Only generate the def if
10507         it is needed.
10508
10509         * omp-low.c (expand_omp_for_generic): When converting to a pointer
10510         make sure to first convert to an integer of the same precision.
10511         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
10512         the type of the evolution correctly in computing the new
10513         induction variable base.
10514
10515 2009-04-16  Richard Guenther  <rguenther@suse.de>
10516
10517         PR middle-end/39625
10518         * tree-cfg.c (make_blocks): Split statements with to-be
10519         abnormal SSA names on the lhs.
10520
10521 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
10522
10523         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
10524         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
10525         * c-typeck.c (really_start_incremental_init): Likewise.
10526         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
10527         (TARGET_INITIALIZER): Remove it.
10528         * target.h (struct target): Remove vector_opaque_p.
10529         * tree.c (build_opaque_vector_type): New.
10530         * tree.h (TYPE_VECTOR_OPAQUE): New.
10531         (build_opaque_vector_type): Declare.
10532         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
10533         * config/rs6000/rs6000.c (build_opaque_vector_type,
10534         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
10535         (rs6000_init_builtins): Use build_opaque_vector_type for
10536         opaque_V4SI_type_node.
10537
10538 2009-04-15  Catherine Moore  <clm@codesourcery.com>
10539
10540         * debug.h (set_name):  Declare.
10541         * dwarf2out.c (dwarf2out_set_name): Declare.
10542         (dwarf2_debug_hooks): Add set_name.
10543         (find_AT_string): New.
10544         (add_AT_string): Call find_AT_string.
10545         (dwarf2out_set_name): New.
10546         * cp/decl.c (grokdeclarator): Call set_name.
10547         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
10548         * debug.c (do_nothing_debug_hooks):  Likewise.
10549         * dbxout.c (dbx_debug_hooks): Likewise.
10550         * sdbout.c (sdb_debug_hooks): Likewise.
10551
10552 2009-04-15  Michael Eager  <eager@eagercon.com>
10553
10554         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
10555         reg for single-precision FPU.
10556         * config/rs6000/rs6000.md (movsi_internal1): Only for
10557         !TARGET_SINGLE_FPU.
10558         (movsi_internal1_single): New. Add pattern to move SI values to/from
10559         single-precision FP regs.
10560
10561 2009-04-15  Richard Guenther  <rguenther@suse.de>
10562
10563         * omp-low.c (lower_rec_input_clauses): Build correct address
10564         expressions.
10565         (expand_omp_for_generic): Fix multiplication type.
10566         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
10567         (generate_memset_zero): Fix types.
10568         * tree-profile.c (prepare_instrumented_value): Correctly
10569         widen a pointer.
10570
10571 2009-04-15  Ian Lance Taylor  <iant@google.com>
10572
10573         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
10574         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
10575         for -Wall and for -Wc++-compat.
10576         (c_common_post_options): For C++, set warn_enum_compare if not
10577         already set.
10578         * c-tree.h (struct c_expr): Add field original_type.
10579         (build_external_ref): Update declaration.
10580         * c-parser.c (c_parser_braced_init): Set original_type.
10581         (c_parser_initelt): Likewise.
10582         (c_parser_expr_no_commas): Likewise.
10583         (c_parser_conditional_expression): Likewise.
10584         (c_parser_cast_expression): Likewise.
10585         (c_parser_unary_expression): Likewise.  Pull setting of
10586         original_code to top of function.
10587         (c_parser_sizeof_expression): Set original_type.
10588         (c_parser_alignof_expression): Likewise.
10589         (c_parser_postfix_expression): Likewise.  Pull setting of
10590         original_code to top of function.
10591         (c_parser_postfix_expression_after_paren_type): Set original_type.
10592         (c_parser_postfix_expression_after_primary): Likewise.
10593         (c_parser_expression): Likewise.
10594         * c-typeck.c (build_external_ref): Add type parameter.  Change all
10595         callers.
10596         (c_expr_sizeof_expr): Set original_type field.
10597         (parser_build_unary_op): Likewise.
10598         (parser_build_binary_op): Likewise.  Optionally warn about
10599         comparisons of enums of different types.
10600         (digest_init): Set original_type field.
10601         (really_start_incremental_init): Likewise.
10602         (push_init_level, pop_init_level): Likewise.
10603         * doc/invoke.texi (Warning Options): -Wenum-compare now
10604         supported in C.
10605
10606 2009-04-15  Richard Guenther  <rguenther@suse.de>
10607
10608         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10609         out a necessary conversion.
10610         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10611         names we didn't value number.
10612         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10613
10614 2009-04-15  Richard Guenther  <rguenther@suse.de>
10615
10616         PR tree-optimization/39764
10617         * tree-ssa-ccp.c (get_value): Canonicalize value with
10618         canonicalize_float_value.
10619
10620 2009-04-15  Jan Hubicka  <jh@suse.cz>
10621
10622         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10623         Wrong version of patch.
10624
10625 2009-04-15  Jan Hubicka  <jh@suse.cz>
10626
10627         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10628
10629 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
10630
10631         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10632         our distinct integral and vector types.
10633
10634 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
10635
10636         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10637         * init.c (build_vtbl_address): Remove call to assemble_external.
10638
10639 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
10640
10641         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10642         output for other floating point modes.
10643
10644 2009-04-14  Diego Novillo  <dnovillo@google.com>
10645
10646         * diagnostic.c (diagnostic_report_diagnostic): Do not
10647         warn about loaded plugins for DK_ERROR and DK_WARNING.
10648         * c-decl.c (declspecs_add_type): Move call to
10649         invoke_plugin_callbacks ...
10650         * c-parser.c (c_parser_declspecs): ... here.
10651         * plugin.c (dump_active_plugins): Tidy output.
10652
10653 2009-04-14  Diego Novillo  <dnovillo@google.com>
10654             Le-Chun Wu  <lcwu@google.com>
10655
10656         * configure.ac: Add --enable-plugin support.
10657         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10658         * Makefile.in (PLUGIN_H): Define.
10659         Export ENABLE_PLUGIN and GMPINC to site.exp.
10660         Add PLUGINLIBS to link command.
10661         Add/modify dependencies for plugin.o and files including plugin.h.
10662         (plugin.o): New.
10663         * config.in: Regenerate.
10664
10665         * opts.c (common_handle_option): Handle OPT_fplugin_ and
10666         OPT_fplugin_arg_.
10667
10668 2009-04-14  Le-Chun Wu  <lcwu@google.com>
10669
10670         * tree-pass.h (register_one_dump_file): Add a prototype for
10671         register_one_dump_file.
10672         * toplev.c (compile_file): Call initialize_plugins.
10673         (do_compile): Call invoke_plugin_callbacks.
10674         (toplev_main): Call invoke_plugin_callbacks.
10675         * common.opt: Add -fplugin= and -fplugin-arg-.
10676         * gcc-plugin.h: New public header file for plugins to include.
10677         * plugin.c: New source file.
10678         * plugin.h: New internal header file.
10679         * passes.c (register_one_dump_file): Make it external.
10680
10681         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10682
10683 2009-04-14  Diego Novillo  <dnovillo@google.com>
10684
10685         * doc/plugins.texi: New.
10686         * doc/gccint.texi: Add reference to Plugins chapter.
10687         * doc/invoke.texi: Document -fplugin and -fplugin-arg
10688         * diagnostic.c (diagnostic_report_diagnostic): Warn about
10689         loaded plugins, if any.
10690         * timevar.def (TV_PLUGIN_INIT): Define.
10691         (TV_PLUGIN_RUN): Define.
10692         * plugin.c: Include timevar.h
10693         (plugins_active_p): New.
10694         (dump_active_plugins): New.
10695         (debug_active_plugins): New.
10696
10697 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
10698
10699         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10700         library paths.
10701         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10702
10703 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
10704
10705         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10706         the same as a minus without a shift.
10707
10708 2009-04-14  Nick Clifton  <nickc@redhat.com>
10709
10710         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10711         comparisons with small integers will always produce a short
10712         branch.
10713
10714 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
10715
10716         Merge:
10717         2008-12-19  Diego Novillo  <dnovillo@google.com>
10718
10719         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
10720
10721 2009-04-14  Richard Guenther  <rguenther@suse.de>
10722
10723         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10724         verification.
10725         (verify_gimple_assign_binary): Likewise.  Handle shifts and
10726         rotates correctly.
10727         (verify_gimple_phi): Print the mismatched argument position.
10728         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10729         Fix types.
10730         (vect_update_init_of_dr): Likewise.
10731         * matrix-reorg.c (transform_access_sites): Do what the
10732         comment suggests.
10733         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10734
10735 2009-04-13  Michael Eager  <eager@eagercon.com>
10736
10737         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10738         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10739         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
10740         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
10741         remove duplicate config
10742
10743 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10744
10745         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10746         file_name:line_number type locator of the call site.
10747
10748 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
10749
10750         * genautomata.c: Put blank after comma.
10751         (automaton_decls): New.
10752         (struct unit_usage): Add comments to member next.
10753         (store_alt_unit_usage): Keep the list ordered.
10754         (unit_present_on_list_p, equal_alternatives_p): New.
10755         (check_regexp_units_distribution): Check units distribution
10756         correctness correctly.
10757         (main): Don't write automata if error is found.  Return correct
10758         exit code.
10759
10760         * config/m68k/cf.md (cfv4_ds): Remove.
10761         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10762         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10763
10764         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10765         power4-load-ext, power4-store, power4-store-update,
10766         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10767         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10768         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10769         power4-sqrt, power4-isync): Modify reservation to make correct
10770         unit distribution to automata.
10771
10772         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10773         power5-store-update, power5-two, power5-three, power5-lmul,
10774         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
10775
10776 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
10777
10778         * except.c (pass_set_nothrow_function_flags): Set name and add
10779         TODO_dump_func.
10780         (set_nothrow_function_flags): Mention in the dump file when
10781         changing a function to nothrow.
10782
10783 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
10784
10785         PR/39066
10786         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10787         instead of unsigned long.
10788
10789 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10790
10791         * config/arm/arm.c (return_used_this_function): Remove.
10792         (arm_output_function_prologue): Remove use of
10793         return_used_this_function.
10794         (output_return_instruction): Replace use of
10795         return_used_this_function
10796         by cfun->machine->return_used_this_function.
10797         (arm_output_epilogue): Likewise.
10798         (arm_output_function_epilogue): Likewise.
10799         (thumb_unexpanded_epilogue): Likewise.
10800         * config/arm/arm.h (struct machine_function):
10801         New member return_used_this_function.
10802
10803 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
10804
10805         * doc/install.texi: Correct description of default directory for
10806         --with-gxx-include-dir.
10807
10808 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10809
10810         * fold-const.c (build_range_check): Properly deal with enumeral and
10811         boolean base types.
10812
10813 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
10814
10815         * doc/invoke.texi (max_gcse_passes): Remove documentation.
10816         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10817         * params.h (MAX_GCSE_PASSES): Remove.
10818         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10819         in sequence.  Remove ability to run multiple passes.
10820         (bypass_jumps): Report run as third CPROP pass.
10821
10822 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
10823
10824         PR middle-end/39651
10825         * except.c (can_throw_external): Look at each insn in a SEQUENCE
10826         when deciding whether the whole SEQUENCE can throw.
10827
10828 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
10829
10830         PR target/39740
10831         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10832         offseted label references.
10833
10834 2009-04-11  Jan Hubicka  <jh@suse.cz>
10835
10836         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10837
10838 2009-04-11  Richard Guenther  <rguenther@suse.de>
10839
10840         PR middle-end/39732
10841         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10842         return variables as TREE_ADDRESSABLE.
10843
10844 2009-04-11  Richard Guenther  <rguenther@suse.de>
10845
10846         PR tree-optimization/39713
10847         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10848         reference trees have SSA_NAME operands.
10849
10850 2009-04-11  Richard Guenther  <rguenther@suse.de>
10851
10852         PR c/39712
10853         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10854         address expressions.
10855
10856 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10857
10858         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
10859         match changes in Cygwin 1.7
10860         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10861         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
10862
10863 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10864
10865         PR tree-optimization/39701
10866         * doc/invoke.texi (Optimization Options): Document change in
10867         meaning and initialization of -fdelete-null-pointer-checks.
10868
10869 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10870
10871         PR middle-end/39701
10872         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10873
10874         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10875         here.
10876
10877         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10878
10879 2009-04-10  Chao-ying Fu  <fu@mips.com>
10880
10881         * doc/tm.texi (Instruction Output): Document
10882         TARGET_ASM_FINAL_POSTSCAN_INSN.
10883         * target.h (final_postscan_insn): New field in asm_out.
10884         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10885         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10886         * final.c (final_scan_insn): Call
10887         targetm.asm_out.final_postscan_insn after outputting
10888         an asm macro and a normal instruction.
10889
10890         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10891         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10892         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10893         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10894         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10895
10896 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10897
10898         PR middle-end/39701
10899         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10900         variables as non-NULL even with -fdelete-null-pointer-checks.
10901
10902 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10903
10904         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10905
10906 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
10907
10908         PR target/39678
10909         * config/i386/i386.c (classify_argument): Handle SCmode with
10910         (bit_offset % 64) != 0.
10911
10912 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
10913
10914         * doc/invoke.texi (Optimize Options): Add cross-reference to
10915         -Q --help=optimizers examples.
10916
10917 2009-04-10  Ben Elliston  <bje@au.ibm.com>
10918
10919         PR target/36800
10920         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10921         regalign for the reg == fpr and TDmode case.
10922
10923 2009-04-09  David Ayers  <ayers@fsfe.org>
10924
10925         PR objc/29200
10926         * objc/objc-act.c (warn_with_method): Remove helper function.
10927         (check_duplicates): Call warning and inform directly.
10928         (really_start_method): Likewise.
10929
10930 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
10931
10932         * expmed.c (expand_divmod): Always use a comparison for a division
10933         by a large unsigned integer.
10934
10935         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10936         for things others than variables or functions as nonzero.
10937
10938 2009-04-09  Nick Clifton  <nickc@redhat.com>
10939
10940         * unwind-compat.c: Change copyright header to refer to version
10941         3 of the GNU General Public License with version 3.1 of the
10942         GCC Runtime Library Exception and to point readers at the
10943         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
10944         * config/alpha/crtfastmath.c: Likewise.
10945         * config/alpha/linux-unwind.h: Likewise.
10946         * config/alpha/qrnnd.asm: Likewise.
10947         * config/alpha/vms-crt0-64.c: Likewise.
10948         * config/alpha/vms-crt0.c: Likewise.
10949         * config/alpha/vms-dwarf2.asm: Likewise.
10950         * config/alpha/vms-dwarf2eh.asm: Likewise.
10951         * config/alpha/vms-psxcrt0-64.c: Likewise.
10952         * config/alpha/vms-psxcrt0.c: Likewise.
10953         * config/alpha/vms_tramp.asm: Likewise.
10954         * config/arc/initfini.c: Likewise.
10955         * config/arc/lib1funcs.asm: Likewise.
10956         * config/arm/bpabi-v6m.S: Likewise.
10957         * config/arm/bpabi.S: Likewise.
10958         * config/arm/bpabi.c: Likewise.
10959         * config/arm/crti.asm: Likewise.
10960         * config/arm/crtn.asm: Likewise.
10961         * config/arm/ieee754-df.S: Likewise.
10962         * config/arm/ieee754-sf.S: Likewise.
10963         * config/arm/lib1funcs.asm: Likewise.
10964         * config/arm/libunwind.S: Likewise.
10965         * config/arm/linux-atomic.c: Likewise.
10966         * config/arm/mmintrin.h: Likewise.
10967         * config/arm/pr-support.c: Likewise.
10968         * config/arm/unaligned-funcs.c: Likewise.
10969         * config/arm/unwind-arm.c: Likewise.
10970         * config/arm/unwind-arm.h: Likewise.
10971         * config/avr/libgcc.S: Likewise.
10972         * config/bfin/crti.s: Likewise.
10973         * config/bfin/crtlibid.s: Likewise.
10974         * config/bfin/crtn.s: Likewise.
10975         * config/bfin/lib1funcs.asm: Likewise.
10976         * config/bfin/linux-unwind.h: Likewise.
10977         * config/cris/arit.c: Likewise.
10978         * config/cris/cris_abi_symbol.c: Likewise.
10979         * config/darwin-64.c: Likewise.
10980         * config/darwin-crt2.c: Likewise.
10981         * config/darwin-crt3.c: Likewise.
10982         * config/darwin.h: Likewise.
10983         * config/dbxelf.h: Likewise.
10984         * config/dfp-bit.c: Likewise.
10985         * config/dfp-bit.h: Likewise.
10986         * config/elfos.h: Likewise.
10987         * config/fixed-bit.c: Likewise.
10988         * config/fixed-bit.h: Likewise.
10989         * config/fp-bit.c: Likewise.
10990         * config/fp-bit.h: Likewise.
10991         * config/fr30/crti.asm: Likewise.
10992         * config/fr30/crtn.asm: Likewise.
10993         * config/fr30/lib1funcs.asm: Likewise.
10994         * config/freebsd-spec.h: Likewise.
10995         * config/frv/cmovd.c: Likewise.
10996         * config/frv/cmovh.c: Likewise.
10997         * config/frv/cmovw.c: Likewise.
10998         * config/frv/frvbegin.c: Likewise.
10999         * config/frv/frvend.c: Likewise.
11000         * config/frv/lib1funcs.asm: Likewise.
11001         * config/glibc-stdint.h: Likewise.
11002         * config/h8300/clzhi2.c: Likewise.
11003         * config/h8300/crti.asm: Likewise.
11004         * config/h8300/crtn.asm: Likewise.
11005         * config/h8300/ctzhi2.c: Likewise.
11006         * config/h8300/fixunssfsi.c: Likewise.
11007         * config/h8300/lib1funcs.asm: Likewise.
11008         * config/h8300/parityhi2.c: Likewise.
11009         * config/h8300/popcounthi2.c: Likewise.
11010         * config/i386/ammintrin.h: Likewise.
11011         * config/i386/att.h: Likewise.
11012         * config/i386/avxintrin.h: Likewise.
11013         * config/i386/biarch64.h: Likewise.
11014         * config/i386/bmmintrin.h: Likewise.
11015         * config/i386/cpuid.h: Likewise.
11016         * config/i386/cross-stdarg.h: Likewise.
11017         * config/i386/crtfastmath.c: Likewise.
11018         * config/i386/crtprec.c: Likewise.
11019         * config/i386/cygming-crtbegin.c: Likewise.
11020         * config/i386/cygming-crtend.c: Likewise.
11021         * config/i386/cygwin.asm: Likewise.
11022         * config/i386/emmintrin.h: Likewise.
11023         * config/i386/gmm_malloc.h: Likewise.
11024         * config/i386/gthr-win32.c: Likewise.
11025         * config/i386/i386.h: Likewise.
11026         * config/i386/immintrin.h: Likewise.
11027         * config/i386/linux-unwind.h: Likewise.
11028         * config/i386/linux64.h: Likewise.
11029         * config/i386/mm3dnow.h: Likewise.
11030         * config/i386/mmintrin-common.h: Likewise.
11031         * config/i386/mmintrin.h: Likewise.
11032         * config/i386/nmmintrin.h: Likewise.
11033         * config/i386/pmm_malloc.h: Likewise.
11034         * config/i386/pmmintrin.h: Likewise.
11035         * config/i386/smmintrin.h: Likewise.
11036         * config/i386/sol2-c1.asm: Likewise.
11037         * config/i386/sol2-ci.asm: Likewise.
11038         * config/i386/sol2-cn.asm: Likewise.
11039         * config/i386/sol2-gc1.asm: Likewise.
11040         * config/i386/tmmintrin.h: Likewise.
11041         * config/i386/unix.h: Likewise.
11042         * config/i386/w32-unwind.h: Likewise.
11043         * config/i386/wmmintrin.h: Likewise.
11044         * config/i386/x86-64.h: Likewise.
11045         * config/i386/x86intrin.h: Likewise.
11046         * config/i386/xmmintrin.h: Likewise.
11047         * config/ia64/crtbegin.asm: Likewise.
11048         * config/ia64/crtend.asm: Likewise.
11049         * config/ia64/crtfastmath.c: Likewise.
11050         * config/ia64/crti.asm: Likewise.
11051         * config/ia64/crtn.asm: Likewise.
11052         * config/ia64/fde-glibc.c: Likewise.
11053         * config/ia64/lib1funcs.asm: Likewise.
11054         * config/ia64/linux-unwind.h: Likewise.
11055         * config/ia64/quadlib.c: Likewise.
11056         * config/ia64/unwind-ia64.c: Likewise.
11057         * config/linux.h: Likewise.
11058         * config/m32c/m32c-lib1.S: Likewise.
11059         * config/m32c/m32c-lib2-trapv.c: Likewise.
11060         * config/m32c/m32c-lib2.c: Likewise.
11061         * config/m32r/initfini.c: Likewise.
11062         * config/m68hc11/larith.asm: Likewise.
11063         * config/m68hc11/m68hc11-crt0.S: Likewise.
11064         * config/m68k/cf.md: Likewise.
11065         * config/m68k/crti.s: Likewise.
11066         * config/m68k/crtn.s: Likewise.
11067         * config/m68k/lb1sf68.asm: Likewise.
11068         * config/m68k/linux-unwind.h: Likewise.
11069         * config/mcore/crti.asm: Likewise.
11070         * config/mcore/crtn.asm: Likewise.
11071         * config/mcore/lib1.asm: Likewise.
11072         * config/mips/linux-unwind.h: Likewise.
11073         * config/mips/loongson.h: Likewise.
11074         * config/mips/mips16.S: Likewise.
11075         * config/mmix/crti.asm: Likewise.
11076         * config/mmix/crtn.asm: Likewise.
11077         * config/pa/fptr.c: Likewise.
11078         * config/pa/hpux-unwind.h: Likewise.
11079         * config/pa/lib2funcs.asm: Likewise.
11080         * config/pa/linux-atomic.c: Likewise.
11081         * config/pa/linux-unwind.h: Likewise.
11082         * config/pa/milli64.S: Likewise.
11083         * config/pa/quadlib.c: Likewise.
11084         * config/pa/stublib.c: Likewise.
11085         * config/picochip/libgccExtras/adddi3.asm: Likewise.
11086         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
11087         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
11088         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
11089         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
11090         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
11091         * config/picochip/libgccExtras/divmod15.asm: Likewise.
11092         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
11093         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
11094         * config/picochip/libgccExtras/longjmp.asm: Likewise.
11095         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
11096         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
11097         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
11098         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
11099         * config/picochip/libgccExtras/setjmp.asm: Likewise.
11100         * config/picochip/libgccExtras/subdi3.asm: Likewise.
11101         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
11102         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
11103         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
11104         * config/rs6000/750cl.h: Likewise.
11105         * config/rs6000/altivec.h: Likewise.
11106         * config/rs6000/biarch64.h: Likewise.
11107         * config/rs6000/crtresfpr.asm: Likewise.
11108         * config/rs6000/crtresgpr.asm: Likewise.
11109         * config/rs6000/crtresxfpr.asm: Likewise.
11110         * config/rs6000/crtresxgpr.asm: Likewise.
11111         * config/rs6000/crtsavfpr.asm: Likewise.
11112         * config/rs6000/crtsavgpr.asm: Likewise.
11113         * config/rs6000/darwin-asm.h: Likewise.
11114         * config/rs6000/darwin-fallback.c: Likewise.
11115         * config/rs6000/darwin-fpsave.asm: Likewise.
11116         * config/rs6000/darwin-ldouble.c: Likewise.
11117         * config/rs6000/darwin-tramp.asm: Likewise.
11118         * config/rs6000/darwin-unwind.h: Likewise.
11119         * config/rs6000/darwin-vecsave.asm: Likewise.
11120         * config/rs6000/darwin-world.asm: Likewise.
11121         * config/rs6000/e500crtres32gpr.asm: Likewise.
11122         * config/rs6000/e500crtres64gpr.asm: Likewise.
11123         * config/rs6000/e500crtres64gprctr.asm: Likewise.
11124         * config/rs6000/e500crtrest32gpr.asm: Likewise.
11125         * config/rs6000/e500crtrest64gpr.asm: Likewise.
11126         * config/rs6000/e500crtresx32gpr.asm: Likewise.
11127         * config/rs6000/e500crtresx64gpr.asm: Likewise.
11128         * config/rs6000/e500crtsav32gpr.asm: Likewise.
11129         * config/rs6000/e500crtsav64gpr.asm: Likewise.
11130         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11131         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
11132         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
11133         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
11134         * config/rs6000/eabi-ci.asm: Likewise.
11135         * config/rs6000/eabi-cn.asm: Likewise.
11136         * config/rs6000/eabi.asm: Likewise.
11137         * config/rs6000/linux-unwind.h: Likewise.
11138         * config/rs6000/linux64.h: Likewise.
11139         * config/rs6000/paired.h: Likewise.
11140         * config/rs6000/paired.md: Likewise.
11141         * config/rs6000/ppc64-fp.c: Likewise.
11142         * config/rs6000/ppu_intrinsics.h: Likewise.
11143         * config/rs6000/rs6000.h: Likewise.
11144         * config/rs6000/si2vmx.h: Likewise.
11145         * config/rs6000/sol-ci.asm: Likewise.
11146         * config/rs6000/sol-cn.asm: Likewise.
11147         * config/rs6000/spe.h: Likewise.
11148         * config/rs6000/spu2vmx.h: Likewise.
11149         * config/rs6000/sysv4.h: Likewise.
11150         * config/rs6000/tramp.asm: Likewise.
11151         * config/rs6000/vec_types.h: Likewise.
11152         * config/s390/linux-unwind.h: Likewise.
11153         * config/s390/tpf-unwind.h: Likewise.
11154         * config/score/crti.asm: Likewise.
11155         * config/score/crtn.asm: Likewise.
11156         * config/sh/crt1.asm: Likewise.
11157         * config/sh/crti.asm: Likewise.
11158         * config/sh/crtn.asm: Likewise.
11159         * config/sh/divtab-sh4-300.c: Likewise.
11160         * config/sh/divtab-sh4.c: Likewise.
11161         * config/sh/divtab.c: Likewise.
11162         * config/sh/lib1funcs-4-300.asm: Likewise.
11163         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
11164         * config/sh/lib1funcs.asm: Likewise.
11165         * config/sh/lib1funcs.h: Likewise.
11166         * config/sh/linux-atomic.asm: Likewise.
11167         * config/sh/linux-unwind.h: Likewise.
11168         * config/sh/shmedia.h: Likewise.
11169         * config/sh/sshmedia.h: Likewise.
11170         * config/sh/ushmedia.h: Likewise.
11171         * config/sparc/crtfastmath.c: Likewise.
11172         * config/sparc/linux-unwind.h: Likewise.
11173         * config/sparc/sol2-c1.asm: Likewise.
11174         * config/sparc/sol2-ci.asm: Likewise.
11175         * config/sparc/sol2-cn.asm: Likewise.
11176         * config/spu/divmodti4.c: Likewise.
11177         * config/spu/divv2df3.c: Likewise.
11178         * config/spu/float_disf.c: Likewise.
11179         * config/spu/float_unsdidf.c: Likewise.
11180         * config/spu/float_unsdisf.c: Likewise.
11181         * config/spu/float_unssidf.c: Likewise.
11182         * config/spu/mfc_multi_tag_release.c: Likewise.
11183         * config/spu/mfc_multi_tag_reserve.c: Likewise.
11184         * config/spu/mfc_tag_release.c: Likewise.
11185         * config/spu/mfc_tag_reserve.c: Likewise.
11186         * config/spu/mfc_tag_table.c: Likewise.
11187         * config/spu/multi3.c: Likewise.
11188         * config/spu/spu_internals.h: Likewise.
11189         * config/spu/spu_intrinsics.h: Likewise.
11190         * config/spu/spu_mfcio.h: Likewise.
11191         * config/spu/vec_types.h: Likewise.
11192         * config/spu/vmx2spu.h: Likewise.
11193         * config/stormy16/stormy16-lib2.c: Likewise.
11194         * config/svr4.h: Likewise.
11195         * config/sync.c: Likewise.
11196         * config/v850/lib1funcs.asm: Likewise.
11197         * config/vxlib-tls.c: Likewise.
11198         * config/vxlib.c: Likewise.
11199         * config/vxworks-dummy.h: Likewise.
11200         * config/xtensa/crti.asm: Likewise.
11201         * config/xtensa/crtn.asm: Likewise.
11202         * config/xtensa/ieee754-df.S: Likewise.
11203         * config/xtensa/ieee754-sf.S: Likewise.
11204         * config/xtensa/lib1funcs.asm: Likewise.
11205         * config/xtensa/lib2funcs.S: Likewise.
11206         * config/xtensa/linux-unwind.h: Likewise.
11207         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11208         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
11209         * coretypes.h: Likewise.
11210         * crtstuff.c: Likewise.
11211         * defaults.h: Likewise.
11212         * dwarf2.h: Likewise.
11213         * emutls.c: Likewise.
11214         * gbl-ctors.h: Likewise.
11215         * gcov-io.h: Likewise.
11216         * ginclude/float.h: Likewise.
11217         * ginclude/iso646.h: Likewise.
11218         * ginclude/stdarg.h: Likewise.
11219         * ginclude/stdbool.h: Likewise.
11220         * ginclude/stddef.h: Likewise.
11221         * ginclude/stdfix.h: Likewise.
11222         * ginclude/stdint-gcc.h: Likewise.
11223         * ginclude/tgmath.h: Likewise.
11224         * gthr-aix.h: Likewise.
11225         * gthr-dce.h: Likewise.
11226         * gthr-gnat.c: Likewise.
11227         * gthr-gnat.h: Likewise.
11228         * gthr-lynx.h: Likewise.
11229         * gthr-mipssde.h: Likewise.
11230         * gthr-nks.h: Likewise.
11231         * gthr-posix.c: Likewise.
11232         * gthr-posix.h: Likewise.
11233         * gthr-posix95.h: Likewise.
11234         * gthr-rtems.h: Likewise.
11235         * gthr-single.h: Likewise.
11236         * gthr-solaris.h: Likewise.
11237         * gthr-tpf.h: Likewise.
11238         * gthr-vxworks.h: Likewise.
11239         * gthr-win32.h: Likewise.
11240         * gthr.h: Likewise.
11241         * libgcc2.c: Likewise.
11242         * libgcc2.h: Likewise.
11243         * libgcov.c: Likewise.
11244         * tsystem.h: Likewise.
11245         * typeclass.h: Likewise.
11246         * unwind-c.c: Likewise.
11247         * unwind-compat.h: Likewise.
11248         * unwind-dw2-fde-compat.c: Likewise.
11249         * unwind-dw2-fde-darwin.c: Likewise.
11250         * unwind-dw2-fde-glibc.c: Likewise.
11251         * unwind-dw2-fde.c: Likewise.
11252         * unwind-dw2-fde.h: Likewise.
11253         * unwind-dw2.c: Likewise.
11254         * unwind-dw2.h: Likewise.
11255         * unwind-generic.h: Likewise.
11256         * unwind-pe.h: Likewise.
11257         * unwind-sjlj.c: Likewise.
11258         * unwind.inc: Likewise.
11259         * config/arm/neon-gen.ml: Change generated copyright header to
11260         refer to version 3 of the GNU General Public License with
11261         version 3.1 of the GCC Runtime Library Exception and to point
11262         readers at the COPYING3 and COPYING3.RUNTIME files and the
11263         FSF's license web page.
11264         * config/arm/arm_neon.h: Regenerate.
11265
11266 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
11267
11268         * config/cris/cris.md: Change copyright header to refer to version
11269         3 of the GNU General Public License.
11270         * doc/install.texi2html: Change copyright header to refer to version
11271         3 of the GNU General Public License and to point readers at the
11272         COPYING3 file and the FSF's license web page.
11273         * config/vax/linux.h: Likewise.
11274
11275 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
11276
11277         * config/i386/i386.md (cmpcc): New.
11278         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
11279         (sync_compare_and_swap_cc*): Delete.
11280
11281         * config/s390/s390.c (s390_compare_emitted): Remove.
11282         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
11283         s390_compare_emitted used to be handled.  Assert that modes match.
11284         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
11285         refer to sync_compare_and_swap_ccsi.
11286         * config/s390/s390.h (s390_compare_emitted): Remove.
11287         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
11288         instead of s390_compare_emitted.
11289         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
11290         instead of s390_compare_emitted.
11291         * config/s390/s390.md (cmpcc): New.
11292         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
11293         CC_REGNUM, do not pretend it's set.
11294         (sync_compare_and_swap_cc*): Delete.
11295         * config/s390/predicates.md (cc_reg_operand): New.
11296
11297         * expr.c (sync_compare_and_swap_cc): Delete.
11298         * optabs.h (sync_compare_and_swap_cc): Delete.
11299         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
11300         is being used with can_compare_p.
11301         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
11302         (find_cc_set): New.
11303         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
11304         look for a MODE_CC set instead.  Use emit_store_flag.
11305         (expand_compare_and_swap_loop): Likewise, with some additional
11306         complication to avoid a force_reg when useless.  Use
11307         emit_cmp_and_jump_insns.
11308         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
11309         * doc/md.texi (sync_compare_and_swap_cc): Merge with
11310         sync_compare_and_swap documentation.
11311
11312 2009-04-09  Jan Hubicka  <jh@suse.cz>
11313
11314         * except.c (find_prev_try): Break out from ....
11315         (duplicate_eh_regions): ... here; properly update prev_try pointers
11316         when duplication part of tree.
11317         (dump_eh_tree): Improve dumping.
11318         (verify_eh_region): New.
11319         (verify_eh_tree): Use it.
11320
11321 2009-04-06  Richard Guenther  <rguenther@suse.de>
11322
11323         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
11324         &ARRAY addresses by adjusting their types and prepending
11325         a conversion.
11326         * tree-cfg.c (verify_gimple_assign_single): Verify that
11327         addresses are correct.
11328
11329 2009-04-09  Richard Guenther  <rguenther@suse.de>
11330
11331         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
11332         indices into an array reference if possible.
11333         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11334         Fold POINTER_PLUS_EXPR statements with invariant address.
11335
11336 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
11337
11338         PR target/39634
11339         * config.gcc (powerpc64-*-linux*): Always build biarch.
11340
11341 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
11342
11343         PR c/39613
11344         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
11345         it and pedwarn if this results in an INTEGER_CST.
11346
11347 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11348
11349         * doc/install.texi: Update minimum GMP version.  Remove obsolete
11350         text in MPFR section.
11351
11352 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
11353
11354         * dwarf2out.c (class_scope_p): New static inline.
11355         (class_or_namespace_scope_p): Use it.
11356         (gen_variable_die): Use DW_TAG_member tag for static data member
11357         declarations instead of DW_TAG_variable.
11358
11359         PR middle-end/39573
11360         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
11361         variables.
11362
11363 2009-04-08  Richard Guenther  <rguenther@suse.de>
11364
11365         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
11366         valueize random data.
11367
11368 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
11369
11370         * config.gcc (aix tm_file):  Add aix-stdint.h.
11371         (aix tm clause use_gcc_stdint):  Set to wrap.
11372         * config/rs6000/aix-stdint.h:  New file.
11373
11374 2009-04-08  Richard Guenther  <rguenther@suse.de>
11375
11376         PR middle-end/36291
11377         * tree-dfa.c (add_referenced_var): Do not recurse into
11378         global initializers.
11379         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
11380         exposed variables.
11381         (fold_const_aggregate_ref): Likewise.
11382
11383 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
11384
11385         * recog.c (ordered_comparison_operator): New.
11386         * gensupport.c (std_preds): Add it.
11387         * doc/md.texi (Machine-Independent Predicates): Document it.
11388
11389 2009-04-08  Jan Hubicka  <jh@suse.cz>
11390
11391         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
11392         * function.h (rtl_eh): Remove exception_handler_label_map.
11393         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
11394         remove_exception_handler_label, for_each_eh_label_1): Remove.
11395         (rtl_remove_unreachable_regions): Remove.
11396         (convert_from_eh_region_ranges): Do not remove unreachable regions.
11397         (find_exception_handler_labels): Don't build the hashtable.
11398         (maybe_remove_eh_handler): Remove.
11399         (for_each_eh_label): Rewrite to walk the tree.
11400         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
11401         * except.h (maybe_remove_eh_handler): Remove.
11402         * passes.c (init_optimization_passes): Schedule second EH cleanup
11403         before out-of-ssa.
11404         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
11405         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
11406
11407 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
11408
11409         * genoutput.c (validate_optab_operands): New.
11410         (gen_insn, gen_expand): Call it.
11411
11412         * genflags.c (gen_insn): Detect misused iterators.
11413         (main): Pass line_no to gen_insn, exit with status 1 on error.
11414
11415         * genextract.c (line_no): Make global.
11416         (VEC_safe_set_locstr): Change assertion to error message.
11417         (main): Exit with status 1 on error.
11418
11419 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
11420
11421         PR c/39614
11422         PR c/39673
11423         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11424         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11425         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
11426         * c-convert.c (convert): Do not call fold on results of conversion
11427         functions when the result is a C_MAYBE_CONST_EXPR.
11428         * c-parser.c (c_parser_postfix_expression): Do not fold condition
11429         of __builtin_choose_expr.
11430         * c-typeck.c (remove_c_maybe_const_expr): New.
11431         (build_unary_op, build_conditional_expr, build_compound_expr,
11432         build_binary_op, c_objc_common_truthvalue_conversion): Call
11433         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
11434         integer operands.
11435
11436 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
11437
11438         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
11439         CODE to produce a new one. Add a prototype to use fold_convert_const
11440
11441 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
11442
11443         PR bootstrap/39660
11444         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
11445         mix declarations and code.
11446
11447 2009-04-08  Ben Elliston  <bje@au.ibm.com>
11448
11449         * gcc.c: Replace `CC' with `GCC' throughout.
11450
11451 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
11452
11453         * doc/invoke.texi: Document Atom support.
11454
11455 2009-04-07  Jason Merrill  <jason@redhat.com>
11456
11457         PR c++/25185
11458         * c-common.h, c-common.c: Add flag_pretty_templates.
11459         * c-opts.c (c_common_handle_option): Set it.
11460         * c.opt: Add -fno-pretty-templates.
11461         * doc/invoke.texi (C++ Dialect Options): Likewise.
11462
11463 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
11464
11465         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
11466         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
11467         (ia64_expand_builtin): Likewise.
11468
11469 2009-04-07  Martin Jambor  <mjambor@suse.cz>
11470
11471         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
11472         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11473         ADDR_EXPRS are include too.
11474
11475 2009-04-07  Richard Guenther  <rguenther@suse.de>
11476
11477         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
11478         decls are only used if passes as parameters or if they are
11479         local statics and the call is not to a builtin.
11480         (call_may_clobber_ref_p_1): Likewise.
11481
11482 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11483
11484         * expr.c (do_store_flag): Remove last argument.  Simplify code
11485         to avoid duplication of tests already done by can_compare_p.
11486         (expand_expr_real_1): Adjust caller.
11487
11488 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11489
11490         * optabs.c (can_compare_p): Test the predicate of a
11491         cbranch and cstore pattern.
11492
11493 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11494
11495         * expr.c (convert_move): Use emit_store_flag instead of
11496         "emulating" it.
11497
11498 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11499
11500         * config/i386/i386.c (ix86_compare_emitted): Remove.
11501         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
11502         ix86_compare_op0 like ix86_compare_emitted used to be handled.
11503         * config/i386/i386.h (ix86_compare_emitted): Remove.
11504         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
11505         instead of ix86_compare_emitted.
11506         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
11507
11508 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
11509
11510         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
11511         Add t-sysroot-suffix to tmake_file.
11512         * config/print-sysroot-suffix.sh: New file.
11513         * config/t-sysroot-suffix: New file.
11514
11515 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11516
11517         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
11518         as the latter produces a warning when the target does not support
11519         infinity.
11520
11521 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11522
11523         * dfp.c: Replace type punning assignments with memcpy throughout.
11524         * Makefile.in (dfp.o-warn): Remove.
11525
11526 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
11527
11528         PR target/39634
11529         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
11530         Include soft-fp/t-softfp after rs6000/t-linux64.
11531
11532 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11533
11534         * stor-layout.c (set_sizetype): Use the full precision of their
11535         machine mode for bitsize types.
11536
11537 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
11538
11539         * config/i386/i386.md: Revert 2 accidental checkins.
11540
11541 2009-04-06  Joey Ye  <joey.ye@intel.com>
11542             Xuepeng Guo  <xuepeng.guo@intel.com>
11543             H.J. Lu  <hongjiu.lu@intel.com>
11544
11545         Atom pipeline model, tuning and insn selection.
11546         * config.gcc (atom): Add atom config options and target.
11547
11548         * config/i386/atom.md: New.
11549
11550         * config/i386/i386.c (atom_cost): New cost.
11551         (m_ATOM): New macro flag.
11552         (initial_ix86_tune_features): Set m_ATOM.
11553         (x86_accumulate_outgoing_args): Likewise.
11554         (x86_arch_always_fancy_math_387): Likewise.
11555         (processor_target): Add Atom cost.
11556         (cpu_names): Add Atom cpu name.
11557         (override_options): Set Atom ISA.
11558         (ix86_issue_rate): New case PROCESSOR_ATOM.
11559         (ix86_adjust_cost): Likewise.
11560
11561         * config/i386/i386.h (TARGET_ATOM): New target macro.
11562         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
11563         (TARGET_OPT_AGU): New target option.
11564         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
11565         (processor_type): Add PROCESSOR_ATOM.
11566
11567         * config/i386/i386.md (cpu): Add new value "atom".
11568         (use_carry, movu): New attr.
11569         (atom.md): Include atom.md.
11570         (adddi3_carry_rex64): Set attr "use_carry".
11571         (addqi3_carry): Likewise.
11572         (addhi3_carry): Likewise.
11573         (addsi3_carry): Likewise.
11574         (*addsi3_carry_zext): Likewise.
11575         (subdi3_carry_rex64): Likewise.
11576         (subqi3_carry): Likewise.
11577         (subhi3_carry): Likewise.
11578         (subsi3_carry): Likewise.
11579         (x86_movdicc_0_m1_rex64): Likewise.
11580         (*x86_movdicc_0_m1_se): Likewise.
11581         (x86_movsicc_0_m1): Likewise.
11582         (*x86_movsicc_0_m1_se): Likewise.
11583         (*adddi_1_rex64): Emit add insn as much as possible.
11584         (*addsi_1): Likewise.
11585         (return_internal): Set atom_unit.
11586         (return_internal_long): Likewise.
11587         (return_pop_internal): Likewise.
11588         (*rcpsf2_sse): Set atom_sse_attr attr.
11589         (*qrt<mode>2_sse): Likewise.
11590         (*prefetch_sse): Likewise.
11591
11592         * config/i386/i386-c.c (ix86_target_macros_internal): New case
11593         PROCESSOR_ATOM.
11594         (ix86_target_macros_internal): Likewise.
11595
11596         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11597         (*prefetch_sse_rex): Likewise.
11598         (sse_rcpv4sf2): Likewise.
11599         (sse_vmrcpv4sf2): Likewise.
11600         (sse_sqrtv4sf2): Likewise.
11601         (<sse>_vmsqrt<mode>2): Likewise.
11602         (sse_ldmxcsr): Likewise.
11603         (sse_stmxcsr): Likewise.
11604         (*sse_sfence): Likewise.
11605         (sse2_clflush): Likewise.
11606         (*sse2_mfence): Likewise.
11607         (*sse2_lfence): Likewise.
11608         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11609         (<sse>_movup<ssemodesuffixf2c>): Likewise.
11610         (avx_movdqu<avxmodesuffix>): Likewise.
11611         (avx_lddqu<avxmodesuffix>): Likewise.
11612         (sse2_movntv2di): Change attr "type" to "ssemov".
11613         (sse2_movntsi): Likewise.
11614         (rsqrtv8sf2): Change attr "type" to "sseadd".
11615         (sse3_addsubv2df3): Set attr "atom_unit".
11616         (sse3_h<plusminus_insn>v4sf3): Likewise.
11617         (*sse2_pmaddwd): Likewise.
11618         (*vec_extractv2di_1_rex64): Likewise.
11619         (*vec_extractv2di_1_avx): Likewise.
11620         (sse2_psadbw): Likewise.
11621         (ssse3_phaddwv8hi3): Likewise.
11622         (ssse3_phaddwv4hi3): Likewise.
11623         (ssse3_phadddv4si3): Likewise.
11624         (ssse3_phadddv2si3): Likewise.
11625         (ssse3_phaddswv8hi3): Likewise.
11626         (ssse3_phaddswv4hi3): Likewise.
11627         (ssse3_phsubwv8hi3): Likewise.
11628         (ssse3_phsubwv4hi3): Likewise.
11629         (ssse3_phsubdv4si3): Likewise.
11630         (ssse3_phsubdv2si3): Likewise.
11631         (ssse3_phsubswv8hi3): Likewise.
11632         (ssse3_phsubswv4hi3): Likewise.
11633         (ssse3_pmaddubsw128): Likewise.
11634         (sse3_pmaddubsw: Likewise.
11635         (ssse3_palignrti): Likewise.
11636         (ssse3_palignrdi): Likewise.
11637
11638 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
11639
11640         * doc/install.texi (Specific): Fix two cross-references to MinGW.
11641
11642 2009-04-06  Richard Guenther  <rguenther@suse.de>
11643
11644         PR tree-optimization/28868
11645         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11646         of which PHI results we inserted.
11647         (insert_into_preds_of_block): Record inserted PHIs.
11648         (eliminate): Eliminate redundant PHI nodes.
11649         (init_pre): Init inserted_phi_names.
11650
11651 2009-04-06  Richard Guenther  <rguenther@suse.de>
11652
11653         PR tree-optimization/39643
11654         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11655         IMAGPART_EXPRs of complex constants.
11656         (execute_fold_all_builtins): If we folded a call queue
11657         TODO_update_address_taken.
11658
11659 2009-04-06  Jan Hubicka  <jh@suse.cz>
11660
11661         PR middle-end/39659
11662         * except.c (remove_unreachable_regions): Propagate may_contain_throw
11663         flag.
11664
11665 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
11666
11667         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11668         delay slot.
11669         (ic_invalidate_array): Likewise.
11670
11671 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11672
11673         * calls.c (emit_library_call_value_1): Fix a problem with parameter
11674         alignment for library calls.
11675
11676 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
11677
11678         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
11679         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
11680         * config/i386/mingw-stdint.h:  New file.
11681
11682 2009-04-05  Richard Guenther  <rguenther@suse.de>
11683
11684         PR tree-optimization/39648
11685         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11686         our &A vs. &A[0] IL deficiencies.
11687
11688 2009-04-04  Jan Hubicka  <jh@suse.cz>
11689
11690         * except.c (sjlj_find_directly_reachable_regions): Be ready for
11691         removed toplevel regions.
11692         (sjlj_mark_call_sites): Likewise.
11693
11694 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
11695
11696         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
11697         (cygwin tm clause use_gcc_stdint):  Set to wrap.
11698         * config/i386/cygwin-stdint.h:  New file.
11699
11700 2009-04-04  Richard Guenther  <rguenther@suse.de>
11701
11702         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11703         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11704         single-argument PHIs if we are in loop-closed SSA form.
11705         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11706         for the pre-condition.
11707         (slpeel_tree_peel_loop_to_edge): Likewise.
11708         (vect_build_loop_niters): Take an optional sequence to append stmts.
11709         (vect_generate_tmps_on_preheader): Likewise.
11710         (vect_do_peeling_for_loop_bound): Take extra guards for the
11711         pre-condition.
11712         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
11713         the cost model check.
11714         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
11715         guards if we are going to peel.  Do not apply versioning in that case.
11716         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11717         (vect_do_peeling_for_loop_bound): Likewise.
11718         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11719         loop bound only record extra pre-conditions, do not apply loop
11720         versioning.
11721
11722 2009-04-04  Richard Guenther  <rguenther@suse.de>
11723
11724         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11725         renaming code.
11726
11727 2009-04-04  Jan Hubicka  <jh@suse.cz>
11728
11729         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11730         last_basic_block for size of bb->index indexed array.
11731         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11732         compute_out, link_btr_uses, build_btr_def_use_webs,
11733         build_btr_def_use_webs, migrate_btr_defs): Likewise.
11734
11735 2009-04-04  Jan Hubicka  <jh@suse.cz>
11736
11737         * except.c (remove_eh_handler_and_replace): Break out from ...
11738         (remove_eh_handler): ... here.
11739         (bring_to_root): New function.
11740         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11741         handled ones, bring others to root of tree.
11742
11743 2009-04-04  Jan Hubicka  <jh@suse.cz>
11744
11745         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11746         (all_phis_safe_to_merge): New function.
11747         (update_info): New structure.
11748         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11749         (cleanup_empty_eh): Update SSA if possible.
11750
11751 2009-04-04  Richard Guenther  <rguenther@suse.de>
11752
11753         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11754         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11755         (append_vuse): Likewise.
11756
11757 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
11758
11759         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11760         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11761         instead of REG_UNSAVED for DW_CFA_undefined.
11762         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11763         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11764         outermost frame.
11765
11766 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
11767
11768         PR target/39501
11769         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11770         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11771         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11772
11773 2009-04-04  Richard Guenther  <rguenther@suse.de>
11774
11775         PR tree-optimization/8781
11776         PR tree-optimization/37892
11777         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11778         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11779         (valueize_refs): Call it for *& valueizations.
11780         (shared_reference_ops_from_ref): Rename to ...
11781         (valueize_shared_reference_ops_from_ref): ... this and valueize.
11782         (shared_reference_ops_from_call): Rename to ...
11783         (valueize_shared_reference_ops_from_call): ... this and valueize.
11784         (vn_reference_lookup): Update.
11785         (visit_reference_op_call): Likewise.
11786         * tree-ssa-pre.c (phi_translate_1): Fold *&.
11787         (eliminate): Value-replace the call address in call statements.
11788
11789 2009-04-04  Richard Guenther  <rguenther@suse.de>
11790
11791         PR tree-optimization/39636
11792         * tree-ssa-forwprop.c
11793         (forward_propagate_addr_into_variable_array_index): Check for
11794         GIMPLE_ASSIGN before accessing the rhs code.
11795
11796 2009-04-03  Jason Merrill  <jason@redhat.com>
11797
11798         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11799
11800 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
11801
11802         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11803         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11804         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11805         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11806         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11807         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11808         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11809         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11810         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11811         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11812         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11813         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11814         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11815         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11816         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11817         Use fr_reg_or_fp01_operand instead of fr_register_operand
11818
11819         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11820         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11821         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11822
11823 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
11824
11825         PR rtl-optimization/39607
11826         PR rtl-optimization/39631
11827
11828         Revert:
11829
11830         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11831         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11832         instead of DF_LR_OUT.
11833         * ira-lives.c (process_bb_node_lives): Ditto.
11834         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11835         instead of DF_LR_{OUT,IN}.
11836         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11837         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11838
11839 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
11840
11841         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11842         (execute_lower_omp): Always run but take the short way out if -fopenmp
11843         is not given.
11844         (gate_lower_omp): Remove, forcing the pass manager to always run the
11845         pass and always set PROP_gimple_lomp.
11846         (pass_lower_omp): Remove gate function.
11847         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11848         PROP_trees.  Instead, require it.
11849         * ipa-cp.c (pass_ipa_cp): Likewise.
11850         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11851         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11852         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11853         and PROP_gimple_leh.
11854
11855 2009-04-03  Richard Guenther  <rguenther@suse.de>
11856
11857         PR middle-end/13146
11858         PR tree-optimization/23940
11859         PR tree-optimization/33237
11860         PR middle-end/33974
11861         PR middle-end/34093
11862         PR tree-optimization/36201
11863         PR tree-optimization/36230
11864         PR tree-optimization/38049
11865         PR tree-optimization/38207
11866         PR tree-optimization/38230
11867         PR tree-optimization/38301
11868         PR tree-optimization/38585
11869         PR middle-end/38895
11870         PR tree-optimization/38985
11871         PR tree-optimization/39299
11872         * tree-ssa-structalias.h: Remove.
11873         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11874         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11875         (struct vuse_element_d): Remove.
11876         (struct vuse_vec_d): Likewise.
11877         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11878         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11879         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11880         VUSE_ELEMENT_VAR): Likewise.
11881         (struct voptype_d): Likewise.
11882         (NUM_VOP_FREE_BUCKETS): Likewise.
11883         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11884         (struct stmt_operands_d): Remove.
11885         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11886         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11887         VDEF_NUM, VDEF_VECT): Likewise.
11888         (copy_virtual_operands): Remove.
11889         (operand_build_cmp): Likewise.
11890         (create_ssa_artificial_load_stmt): Likewise.
11891         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11892         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11893         vuse_index and mayuse_index members.  Pack and move done and iter_type
11894         members to the front.
11895         (SSA_OP_VMAYUSE): Remove.
11896         (SSA_OP_VIRTUAL_USES): Adjust.
11897         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11898         (unlink_stmt_vdef): Declare.
11899         (add_to_addressable_set): Remove.
11900         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11901         (vrp_visit_stmt): Likewise.
11902         * doc/tree-ssa.texi (Alias analysis): Update.
11903         * doc/invoke.texi (max-aliased-vops): Remove docs.
11904         (avg-aliased-vops): Likewise.
11905         * tree-into-ssa.c (syms_to_rename): Remove.
11906         (need_to_update_vops_p): Likewise.
11907         (need_to_initialize_update_ssa_p): Rename to ...
11908         (update_ssa_initialized_fn): ... this.  Track function we are
11909         initialized for.
11910         (symbol_marked_for_renaming): Simplify.
11911         (add_new_name_mapping): Do not set need_to_update_vops_p.
11912         (dump_currdefs): Use SYMS_TO_RENAME.
11913         (rewrite_update_stmt): Always walk all uses/defs.
11914         (dump_update_ssa): Adjust.
11915         (init_update_ssa): Take function argument.  Track what we are
11916         initialized for.
11917         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11918         (create_new_def_for): Initialize for cfun, assert we are initialized
11919         for cfun.
11920         (mark_sym_for_renaming): Simplify.
11921         (mark_set_for_renaming): Do not initialize update-ssa.
11922         (need_ssa_update_p): Simplify.  Take function argument.
11923         (name_mappings_registered_p): Assert we ask for the correct function.
11924         (name_registered_for_update_p): Likewise.
11925         (ssa_names_to_replace): Likewise.
11926         (release_ssa_name_after_update_ssa): Likewise.
11927         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
11928         (dump_decl_set): Do not print a newline.
11929         (debug_decl_set): Do it here.
11930         (dump_update_ssa): And here.
11931         * tree-ssa-loop-im.c (move_computations): Adjust.
11932         (movement_possibility): Likewise.
11933         (determine_max_movement): Likewise.
11934         (gather_mem_refs_stmt): Likewise.
11935         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11936         or NAME_MEMORY_TAG.
11937         * tree-complex.c (update_all_vops): Remove.
11938         (expand_complex_move): Adjust.
11939         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11940         Simplify test for memory referencing statement.  Exclude
11941         non-invariant ADDR_EXPRs.
11942         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11943         * tree-loop-distribution.c (generate_memset_zero): Adjust.
11944         (rdg_flag_uses): Likewise.
11945         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11946         related code.
11947         (tree_optimize_tail_calls_1): Also split the
11948         edge from the entry block if we have degenerate PHI nodes in
11949         the first basic block.
11950         * tree.c (init_ttree): Remove memory-tag related code.
11951         (tree_code_size): Likewise.
11952         (tree_node_structure): Likewise.
11953         (build7_stat): Re-write to be build6_stat.
11954         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11955         (SSA_VAR_P): Adjust.
11956         (struct tree_memory_tag): Remove.
11957         (struct tree_memory_partition_tag): Likewise.
11958         (union tree_node): Adjust.
11959         (build7): Re-write to be build6.
11960         * tree-pass.h (pass_reset_cc_flags): Remove.
11961         (TODO_update_address_taken): New flag.
11962         (pass_simple_dse): Remove.
11963         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11964         * params.h (MAX_ALIASED_VOPS): Remove.
11965         (AVG_ALIASED_VOPS): Likewise.
11966         * omp-low.c (expand_omp_taskreg): Update SSA form.
11967         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11968         aliases the lhs in a copy stmt.
11969         * tree-ssa-dse.c (struct address_walk_data): Remove.
11970         (memory_ssa_name_same): Likewise.
11971         (memory_address_same): Likewise.
11972         (get_kill_of_stmt_lhs): Likewise.
11973         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
11974         unused stores.  Look through PHI nodes into post-dominated regions.
11975         (dse_optimize_stmt): Simplify.  Properly remove stores.
11976         (tree_ssa_dse): Compute dominators.
11977         (execute_simple_dse): Remove.
11978         (pass_simple_dse): Likewise.
11979         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11980         gimple_loaded_syms and gimple_stored_syms computation.
11981         * toplev.c (dump_memory_report): Dump alias and pta stats.
11982         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11983         (vn_reference_eq): Likewise.
11984         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11985         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11986         valueize_vuses): Remove.
11987         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
11988         (get_def_ref_stmt_vuse): ... this.
11989         (vn_reference_lookup_2): New function.
11990         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11991         walking equivalent vuses.  Simplify.
11992         (vn_reference_lookup): Likewise.
11993         (vn_reference_insert): Likewise.
11994         (vn_reference_insert_pieces): Likewise.
11995         (visit_reference_op_call): Simplify.
11996         (visit_reference_op_load): Likewise.
11997         (visit_reference_op_store): Likewise.
11998         (init_scc_vn): Remove shared_lookup_vuses initialization.
11999         (free_scc_vn): Remove shared_lookup_vuses freeing.
12000         (sort_vuses, sort_vuses_heap): Remove.
12001         (get_ref_from_reference_ops): Export.
12002         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
12003         vector with single vuse pointer.
12004         (vn_reference_lookup_pieces, vn_reference_lookup,
12005         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
12006         (shared_vuses_from_stmt): Remove.
12007         (get_ref_from_reference_ops): Declare.
12008         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
12009         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
12010         memory-tag related code.
12011         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
12012         (likely_value): Add comment, skip static-chain of call statements.
12013         (surely_varying_stmt_p): Adjust.
12014         (gimplify_and_update_call_from_tree): Likewise.
12015         (execute_fold_all_builtins): Do not rebuild alias info.
12016         (gimplify_and_update_call_from_tree): Properly update VOPs.
12017         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
12018         (copy_ref_info): Remove memory-tag related code.
12019         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
12020         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
12021         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
12022         computation.
12023         * tree-ssa-dom.c (gimple_p): Remove typedef.
12024         (eliminate_redundant_computations): Adjust.
12025         (record_equivalences_from_stmt): Likewise.
12026         (avail_expr_hash): Likewise.
12027         (avail_expr_eq): Likewise.
12028         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
12029         (stmt_makes_single_load): Likewise.
12030         (stmt_makes_single_store): Likewise.
12031         * tree-ssa-alias.c: Rewrite completely.
12032         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
12033         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
12034         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
12035         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
12036         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
12037         Remove public functions.
12038         (pass_reset_cc_flags): Remove.
12039         (pass_build_alias): Move ...
12040         * tree-ssa-structalias.c (pass_build_alias): ... here.
12041         * tree-ssa-alias.c (may_be_aliased): Move ...
12042         * tree-flow-inline.h (may_be_aliased): ... here.
12043         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
12044         count_uses_and_derefs): Move ...
12045         * gimple.c: ... here.
12046         * gimple.h (count_uses_and_derefs): Declare.
12047         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
12048         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
12049         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
12050         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
12051         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
12052         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
12053         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
12054         New functions.
12055         * tree-dfa.c (refs_may_alias_p): Move ...
12056         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
12057         * tree-ssa-alias.h: New file.
12058         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
12059         (statement_sink_location): Likewise.
12060         * opts.c (decode_options): Do not adjust max-aliased-vops or
12061         avg-aliased-vops values.
12062         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
12063         (TV_CALL_CLOBBER): Likewise.
12064         (TV_FLOW_SENSITIVE): Likewise.
12065         (TV_FLOW_INSENSITIVE): Likewise.
12066         (TV_MEMORY_PARTITIONING): Likewise.
12067         (TV_ALIAS_STMT_WALK): New timevar.
12068         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
12069         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
12070         (get_address_description): Remove memory-tag related code.
12071         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
12072         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
12073         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
12074         and immediate uses in statements.  Document.
12075         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
12076         (dump_symbols): Remove.
12077         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
12078         * alias.c (get_deref_alias_set): New function split out from ...
12079         (get_alias_set): ... here.
12080         * alias.h (get_deref_alias_set): Declare.
12081         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
12082         type parameter.  Remove restrict pointer handling.  Create a
12083         ref-all pointer in case type-based alias sets do not conflict.
12084         (vect_analyze_data_refs): Remove SMT related code.
12085         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
12086         (vectorizable_load): Likewise.
12087         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
12088         (DR_SYMBOL_TAG, DR_VOPS): Remove.
12089         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
12090         Ignore vops and SMTs.
12091         (dr_analyze_alias): Likewise..
12092         (free_data_ref): Likewise.
12093         (create_data_ref): Likewise.
12094         (analyze_all_data_dependences): Likewise.
12095         (get_references_in_stmt): Adjust.
12096         * tree-flow-inline.h (gimple_aliases_computed_p,
12097         gimple_addressable_vars, gimple_call_clobbered_vars,
12098         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
12099         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
12100         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
12101         gimple_mem_ref_stats): Remove.
12102         (gimple_vop): New function.
12103         (op_iter_next_use): Remove vuses and mayuses cases.
12104         (op_iter_next_def): Remove vdefs case.
12105         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
12106         (clear_and_done_ssa_iter): Do not set removed fields.
12107         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
12108         Assert we are not iterating over vuses or vdefs if not also
12109         iterating over uses or defs.
12110         (op_iter_init_use): Likewise.
12111         (op_iter_init_def): Likewise.
12112         (op_iter_next_vdef): Remove.
12113         (op_iter_next_mustdef): Likewise.
12114         (op_iter_init_vdef): Likewise.
12115         (compare_ssa_operands_equal): Likewise.
12116         (link_use_stmts_after): Handle vuse operand.
12117         (is_call_used): Use is_call_clobbered.
12118         (is_call_clobbered): Global variables are always call clobbered,
12119         query the call-clobbers bitmap.
12120         (mark_call_clobbered): Ignore global variables.
12121         (clear_call_clobbered): Likewise.
12122         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
12123         virtual operands sanity check.
12124         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
12125         Remove.
12126         (TARGET_MEM_REF): Remove TMR_TAG operand.
12127         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
12128         Remove call-clobber related code.
12129         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
12130         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
12131         partitions or escape reason.
12132         (get_single_def_stmt, get_single_def_stmt_from_phi,
12133         get_single_def_stmt_with_phi): Remove.
12134         (dump_referenced_vars): Tidy.
12135         (get_ref_base_and_extent): Allow bare decls.
12136         (collect_dfa_stats): Adjust.
12137         * graphite.c (rename_variables_in_stmt): Adjust.
12138         (graphite_copy_stmts_from_block): Likewise.
12139         (translate_clast): Likewise.
12140         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
12141         (EXPR_DIES): New.
12142         (translate_vuse_through_block): Use the oracle.
12143         (phi_translate_1): Adjust.
12144         (value_dies_in_block_x): Use the oracle.  Cache the outcome
12145         in EXPR_DIES.
12146         (valid_in_sets): Check if the VUSE for
12147         a REFERENCE is available.
12148         (eliminate): Do not remove stmts during elimination,
12149         instead queue and remove them afterwards.
12150         (do_pre): Do not rebuild alias info.
12151         (pass_pre): Run TODO_rebuild_alias before PRE.
12152         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
12153         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
12154         (mark_all_v_defs_stmt): Remove.
12155         (mark_all_v_defs_seq): Adjust.
12156         (sra_replace): Likewise.
12157         (scalarize_use): Likewise.
12158         (scalarize_copy): Likewise.
12159         (scalarize_init): Likewise.
12160         (scalarize_ldst): Likewise.
12161         (todoflags): Remove.
12162         (tree_sra): Do not rebuild alias info.
12163         (tree_sra_early): Adjust.
12164         (pass_sra): Run TODO_update_address_taken before SRA.
12165         * tree-predcom.c (set_alias_info): Remove.
12166         (prepare_initializers_chain): Do not call it.
12167         (mark_virtual_ops_for_renaming): Adjust.
12168         (mark_virtual_ops_for_renaming_list): Remove.
12169         (initialize_root_vars): Adjust.
12170         (initialize_root_vars_lm): Likewise.
12171         (prepare_initializers_chain): Likewise.
12172         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
12173         (may_propagate_copy_into_stmt): Likewise.
12174         (merge_alias_info): Do nothing for now.
12175         (propagate_tree_value_into_stmt): Adjust.
12176         (stmt_may_generate_copy): Likewise.
12177         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
12178         not mark symbols for renaming.
12179         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
12180         with the same statement, make sure to update the new pointed-to one.
12181         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
12182         call statements, do not mark symbols for renaming.
12183         (mark_operand_necessary): Dump something.
12184         (ref_may_be_aliased): New function.
12185         (mark_aliased_reaching_defs_necessary_1): New helper function.
12186         (mark_aliased_reaching_defs_necessary): Likewise.
12187         (mark_all_reaching_defs_necessary_1): Likewise.
12188         (mark_all_reaching_defs_necessary): Likewise.
12189         (propagate_necessity): Do not process virtual PHIs.  For
12190         non-aliased loads mark all reaching definitions as necessary.
12191         For aliased loads and stores mark the immediate dominating
12192         aliased clobbers as necessary.
12193         (visited): New global static.
12194         (perform_tree_ssa_dce): Free visited bitmap after propagating
12195         necessity.
12196         (remove_dead_phis): Perform simple dead virtual PHI removal.
12197         (remove_dead_stmt): Properly unlink virtual operands when
12198         removing stores.
12199         (eliminate_unnecessary_stmts): Schedule PHI removal after
12200         stmt removal.
12201         * tree-ssa-ter.c (is_replaceable_p): Adjust.
12202         (process_replaceable): Likewise.
12203         (find_replaceable_in_bb): Likewise.
12204         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
12205         based on the single gimple vop.
12206         (verify_flow_insensitive_alias_info): Remove.
12207         (verify_flow_sensitive_alias_info): Likewise.
12208         (verify_call_clobbering): Likewise.
12209         (verify_memory_partitions): Likewise.
12210         (verify_alias_info): Likewise.
12211         (verify_ssa): Adjust..
12212         (execute_update_addresses_taken): Export.  Update SSA
12213         manually.  Optimize only when optimizing.  Use a local bitmap.
12214         (pass_update_address_taken): Remove TODO_update_ssa, add
12215         TODO_dump_func.
12216         (pass_update_address_taken): Just use TODO_update_address_taken.
12217         (init_tree_ssa): Do not initialize addressable_vars.
12218         (verify_ssa): Verify new VUSE / VDEF properties.
12219         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
12220         Do not call verify_alias_info.
12221         (delete_tree_ssa): Clear the VUSE, VDEF operands.
12222         Do not free the loaded and stored syms bitmaps.  Reset the escaped
12223         and callused solutions.  Do not free addressable_vars.
12224         Remove memory-tag related code.
12225         (warn_uninitialized_var): Aliases are always available.
12226         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
12227         * lambda-code.c (can_put_in_inner_loop): Adjust.
12228         (can_put_after_inner_loop): Likewise.
12229         (perfect_nestify): Likewise.
12230         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
12231         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
12232         (vectorizable_conversion): Do not mark symbols for renaming.
12233         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
12234         (expand_call_inline): Unlink the calls virtual operands before
12235         replacing it.
12236         (tree_function_versioning): Do not call update_ssa if we are not
12237         updating clones.  Simplify.
12238         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
12239         (propagate_with_phi): Likewise..
12240         * tree-outof-ssa.c (create_temp): Remove memory tag and call
12241         clobber code.  Assert we are not aliased or global.
12242         * tree-flow.h: Include tree-ssa-alias.h
12243         (enum escape_type): Remove.
12244         (struct mem_sym_stats_d): Likewise.
12245         (struct mem_ref_stats_d): Likewise.
12246         (struct gimple_df): Add vop member.  Remove global_var,
12247         call_clobbered_vars, call_used_vars, addressable_vars,
12248         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
12249         escaped and callused members.
12250         (struct ptr_info_def): Remove all members, add points-to solution
12251         member pt.
12252         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
12253         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
12254         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
12255         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
12256         (tree-ssa-alias.o): Likewise.
12257         (toplev.o): Add tree-ssa-alias.h
12258         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
12259         * gimple.c (gimple_set_bb): Fix off-by-one error.
12260         (is_gimple_reg): Do not handle memory tags.
12261         (gimple_copy): Also copy virtual operands.
12262         Delay updating the statement.  Do not reset loaded and stored syms.
12263         (gimple_set_stored_syms): Remove.
12264         (gimple_set_loaded_syms): Likewise.
12265         (gimple_call_copy_skip_args): Copy the virtual operands
12266         and mark the new statement modified.
12267         * tree-ssa-structalias.c (may_alias_p): Remove.
12268         (set_uids_in_ptset): Take the alias set to prune with as
12269         parameter.  Fold in the alias test of may_alias_p.
12270         (compute_points_to_sets): Compute whether a ptr is dereferenced
12271         in a local sbitmap.
12272         (process_constraint): Deal with &ANYTHING on the lhs, reject all
12273         other ADDRESSOF constraints on the lhs.
12274         (get_constraint_for_component_ref): Assert that we don't get
12275         ADDRESSOF constraints from the base of the reference.
12276         Properly generate UNKNOWN_OFFSET for DEREF if needed.
12277         (struct variable_info): Remove collapsed_to member.
12278         (get_varinfo_fc): Remove.
12279         (new_var_info): Do not set collapsed_to.
12280         (dump_constraint): Do not follow cycles.
12281         (dump_constraint_graph): Likewise.
12282         (build_pred_graph): Likewise.
12283         (build_succ_graph): Likewise.
12284         (rewrite_constraints): Likewise.
12285         (do_simple_structure_copy): Remove.
12286         (do_rhs_deref_structure_copy): Remove.
12287         (do_lhs_deref_structure_copy): Remove.
12288         (collapse_rest_of_var): Remove.
12289         (do_structure_copy): Re-implement.
12290         (pta_stats): New global variable.
12291         (dump_pta_stats): New function.
12292         (struct constraint_expr): Make offset signed.
12293         (UNKNOWN_OFFSET): Define special value.
12294         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
12295         (solution_set_expand): New helper function split out from ...
12296         (do_sd_constraint): ... here.
12297         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
12298         (do_ds_constraint): Likewise.
12299         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
12300         and CALLUSED = *CALLUSED.
12301         (set_union_with_increment): Make inc argument signed.
12302         (type_safe): Remove.
12303         (get_constraint_for_ptr_offset): Handle unknown and negative
12304         constant offsets.
12305         (first_vi_for_offset): Handle offsets before start.  Bail
12306         out early for offsets beyond the variable extent.
12307         (first_or_preceding_vi_for_offset): New function.
12308         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
12309         Together with ESCAPED = *ESCAPED this properly computes reachability.
12310         (find_what_var_points_to): New function.
12311         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
12312         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
12313         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
12314         pt_solutions_intersect): New functions.
12315         (compute_call_used_vars): Remove.
12316         (compute_may_aliases): New main entry into PTA computation.
12317         * gimple.h (gimple_p): New typedef.
12318         (struct gimple_statement_base): Remove references_memory_p.
12319         (struct gimple_statement_with_memory_ops_base): Remove
12320         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
12321         members.
12322         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
12323         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
12324         gimple_set_references_memory): Remove.
12325         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
12326         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
12327         New functions.
12328         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
12329         (verify_expr): Allow RESULT_DECL.
12330         (gimple_duplicate_bb): Do not copy virtual operands.
12331         (gimple_duplicate_sese_region): Adjust.
12332         (gimple_duplicate_sese_tail): Likewise.
12333         (mark_virtual_ops_in_region): Remove.
12334         (move_sese_region_to_fn): Do not call it.
12335         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
12336         and pass_simple_dse.
12337         (execute_function_todo): Handle TODO_update_address_taken,
12338         call execute_update_addresses_taken for TODO_rebuild_alias.
12339         (execute_todo): Adjust.
12340         (execute_one_pass): Init dump files early.
12341         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
12342         call-clobbered.
12343         (create_general_new_stmt): Clear vops.
12344         * tree-ssa-reassoc.c (get_rank): Adjust.
12345         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
12346         symbols for renaming.
12347         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
12348         (PARAM_AVG_ALIASED_VOPS): Likewise.
12349         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
12350         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
12351         * tree-ssa-operands.c: Simplify for new virtual operand representation.
12352         (operand_build_cmp, copy_virtual_operands,
12353         create_ssa_artificial_load_stmt, add_to_addressable_set,
12354         gimple_add_to_addresses_taken): Remove public functions.
12355         (unlink_stmt_vdef): New function.
12356
12357 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
12358
12359         * config.gcc (powerpc-*-linux*): Merge variants.
12360
12361 2009-04-02  Chao-ying Fu  <fu@mips.com>
12362             James Grosbach  <james.grosbach@microchip.com>
12363
12364         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
12365         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
12366         cop0_sp_offset.
12367         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
12368         keep_interrupts_masked_p, use_debug_exception_return_p.
12369         (mips_attribute_table): Add interrupt, use_shadow_register_set,
12370         keep_interrupts_masked, use_debug_exception_return.
12371         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
12372         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
12373         New functions.
12374         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
12375         (mips_print_operand): Process COP0 registers to print $0 .. $31
12376         correctly for GAS to process.
12377         (mips_interrupt_extra_call_saved_reg_p): New function.
12378         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
12379         extra registers.
12380         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
12381         (mips_compute_frame_info): Add supports for interrupt context that
12382         includes doubleword accumulators and COP0 registers.
12383         (mips_for_each_saved_acc): New function.
12384         (mips_for_each_saved_gpr_and_fpr): Change the function name from
12385         mips_for_each_saved_reg.
12386         (mips_save_reg): Save accumulators.
12387         (mips_kernel_reg_p): A new for_each_rtx callback.
12388         (mips_expand_prologue): Support interrupt handlers.
12389         (mips_restore_reg): Restore accumulators.
12390         (mips_expand_epilogue): Support interrupt handlers.
12391         (mips_can_use_return_insn): Return false for interrupt handlers.
12392         (mips_epilogue_uses): New function.
12393         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
12394         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
12395         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
12396         cop0_move): New instructions.
12397         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
12398         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
12399         defines.
12400         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
12401         New defines.
12402         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
12403         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
12404         interrupt handlers, we use K0 as the temporary register.
12405         (EPILOGUE_USES): Change to a function call.
12406         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
12407         handlers, we use K0 as the temporary register.
12408
12409         * doc/extend.texi (Function Attributes): Document interrupt,
12410         use_shadow_register_set, keep_interrupts_masked,
12411         use_debug_exception_return for MIPS attributes.
12412
12413 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
12414
12415         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
12416         Remove a number of t-files from tmake_file.
12417         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
12418         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
12419         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12420         target_prototype, not TARGET_PROTOTYPE.
12421         (LINK_OS_GNU_SPEC): Define.
12422         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
12423         and darwin-ldoubdle.c.
12424
12425 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12426
12427         PR driver/39293
12428         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
12429         (cpp_options): Ditto.
12430         (default_compilers): Ditto.
12431         (display_help): Ditto.
12432         (process_command): Ditto.
12433         (do_spec_1): Ditto.
12434         (set_input): Use lbasename instead of duplicate code.
12435         (save_temps_prefix): New static for -save-temps=obj.
12436         (save_temps_length): Ditto.
12437
12438         * doc/invoke.texi (-save-temps=obj): Document new variant to
12439         -save-temps switch.
12440
12441 2009-04-02  Jeff Law  <law@redhat.com>
12442
12443         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
12444         variable.
12445
12446 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12447
12448         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
12449         * configure: Regenerated.
12450
12451 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12452
12453         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
12454         share the argument list.
12455
12456 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12457
12458         Merge
12459
12460         2009-02-12  Diego Novillo  <dnovillo@google.com>
12461
12462         * varpool.c (debug_varpool): New.
12463         * cgraph.h (debug_varpool): Declare.
12464
12465 2009-04-02  Jan Hubicka  <jh@suse.cz>
12466
12467         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
12468         pass.
12469
12470 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12471
12472         * config/i386/i386.c (ix86_abi): Move initialization to ...
12473         (override_options): Here.
12474
12475 2009-04-02  Christian Bruel  <christian.bruel@st.com>
12476
12477         * config/sh/sh.c (sh_dwarf_register_span): New function.
12478         (TARGET_DWARF_REGISTER_SPAN): Define.
12479         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
12480
12481 2009-04-02  Ira Rosen  <irar@il.ibm.com>
12482
12483         PR tree-optimization/39595
12484         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
12485         interleaved loads group is not  greater than the SLP group size.
12486
12487 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12488
12489         * builtins.c (is_builtin_name): New.
12490         (called_as_built_in): Use is_builtin_name.
12491         * tree.h (is_builtin_name): New.
12492         * varasm.c (incorporeal_function_p): Use is_builtin_name
12493
12494 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
12495
12496         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
12497
12498 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
12499
12500         PR c++/26693
12501         * c-decl.c (clone_underlying_type): Move this ...
12502         * c-common.c (set_underlying_type): ... here.
12503         Also, make sure the function properly sets TYPE_STUB_DECL() on
12504         the newly created typedef variant type.
12505         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
12506         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
12507         points.
12508
12509 2009-04-02  Richard Guenther  <rguenther@suse.de>
12510
12511         PR tree-optimization/37221
12512         * tree-flow.h (degenerate_phi_result): Declare.
12513         * tree-ssa-dom.c (degenerate_phi_result): Export.
12514         * tree-scalar-evolution.c (analyze_initial_condition): If
12515         the initial condition is defined by a degenerate PHI node
12516         use the degenerate value.
12517
12518 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
12519
12520         PR rtl-optimization/39588
12521         * combine.c (merge_outer_ops): Do not set the constant when this
12522         is not necessary.
12523         (simplify_shift_const_1): Do not modify it either in this case.
12524
12525 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
12526
12527         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
12528         tuning is deprecated if -mtune value is set to an Itanium1 variant.
12529
12530 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
12531
12532         PR c/29027
12533         * c-lex.c (interpret_float): Default (no suffix) is double.
12534
12535 2009-04-1  Xinliang David Li  <davidxl@google.com>
12536
12537         * config/i386/i386.c (legitimate_constant_p): Recognize
12538         all one vector constant.
12539
12540 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12541
12542         * config/vax/vax.c: Add #includes to silence warnings.
12543         Change #include order to silence two warnings.
12544
12545 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12546
12547         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
12548         (ASM_SPEC): Pass -k to the assembler for PIC code.
12549
12550 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12551
12552         * config.gcc: Add vax-*-linux* to the switch.
12553         * config/vax/linux.h: New file. (TARGET_VERSION,
12554         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
12555
12556 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12557
12558         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
12559         Use predicate macros instead of GET_CODE() == foo.
12560         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
12561         ashlsi3, rotrsi3, <unnamed>): Likewise.
12562
12563 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12564
12565         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
12566         jbbccihi, jbbccisi): Remova trailing whitespace.
12567         * config/vax/constraints.md: Likewise.
12568         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12569         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
12570         * config/vax/predicates.md: Likewise.
12571         * config/vax/vax.c (print_operand_address, vax_output_int_move,
12572         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
12573         * config/vax/vax.h: Likewise.
12574         * config/vax/vax.md (nonlocal_goto): Likewise.
12575
12576 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12577
12578         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
12579         (indirectable_address_p, adjacent_operands_p): Add spaces around
12580         braces.
12581         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
12582
12583 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12584
12585         * config/vax/vax.c (legitimate_constant_address_p,
12586         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12587         index_term_p, reg_plus_index_p, legitimate_address_p,
12588         vax_mode_dependent_address_p): Update comments to match functions
12589         modified by the recent int->bool conversion.
12590
12591 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12592
12593         * config/vax/builtins.md: Update copyright message.
12594         * config/vax/constraints.md: Likewise.
12595         * config/vax/netbsd-elf.h: Likewise.
12596         * config/vax/predicates.md: Likewise.
12597         * config/vax/vax-protos.h: Likewise.
12598         * config/vax/vax.c: Likewise.
12599         * config/vax/vax.h: Likewise.
12600         * config/vax/vax.md: Likewise.
12601         * config/vax/vax.opt: Likewise.
12602
12603 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12604
12605         * config/vax/builtins.md (ffssi2, ffssi2_internal,
12606         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
12607         * config/vax/constraints.md (B, R): Likewise.
12608         * config/vax/predicates.md (external_memory_operand,
12609         nonimmediate_addsub_di_operand): Likewise.
12610         * config/vax/vax.c (vax_output_int_add): Likewise.
12611         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
12612         untyped_call): Likewise.
12613
12614 2009-04-01  Matt Thomas  <matt@3am-software.com>
12615
12616         * config/vax/predicates.md: New file.
12617         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
12618         external_const_operand, nonsymbolic_operand, external_memory_operand,
12619         indirect_memory_operand, indexed_memory_operand,
12620         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12621         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12622         predicate.
12623         * config/vax/constraints.md: New file.
12624         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12625         New constraint.
12626         * config/vax/builtins.md: New file.
12627         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12628         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12629         jbbccisi): Define.
12630         * config/vax/vax.opt (mqmath): Add option.
12631         * config/vax/vax.md (isfx): Extend with DI.
12632         (VAXintQH, VAXintQHSD): Define.
12633         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12634         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12635         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12636         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12637         (movdi): Update constraints and use vax_output_int_move().
12638         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12639         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12640         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12641         nonlocal_goto): New.
12642         (mov<mode>): Extend accepted operand types.
12643         (subdi3_old): Rename from subdi3, change update constraints and use
12644         a new implementation.
12645         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
12646         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12647         MOVE_RATIO, CLEAR_RATIO): Define.
12648         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12649         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12650         (PRINT_OPERAND): Redefine using a function instead of inlined code.
12651         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
12652         (split_quadword_operands): Make static and really allow variable
12653         splitting.
12654         (print_operand_address): Update for PIC generation.
12655         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12656         indexable_address_p, fixup_mathdi_operand,
12657         vax_expand_addsub_di_operands, adjacent_operands_p): New.
12658         (vax_float_literal, legitimate_constant_p,
12659         indirectable_constant_address_p, index_term_p,
12660         reg_plus_index_p): Return bool instead of int.
12661         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12662         where needed.
12663         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12664         generation.
12665         (vax_output_conditional_branch): Indent.
12666         (legitimate_constant_address_p, indirectable_constant_address_p,
12667         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12668         vax_mode_dependent_address_p): Return bool instead of int, update for
12669         PIC generation.
12670         * config/vax/vax-protos.h (legitimate_constant_address_p,
12671         legitimate_constant_p, legitimate_address_p,
12672         vax_mode_dependent_address_p): Change declaration to bool.
12673         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12674         vax_expand_addsub_di_operands, vax_output_int_subtract,
12675         vax_output_movmemsi): Declare.
12676         (split_quadword_operands, vax_float_literal): Delete declaration.
12677         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12678         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12679         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12680         ASM_OUTPUT_DWARF_PCREL): Define.
12681         (ASM_SPEC): Change definition to allow PIC generation.
12682
12683 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
12684
12685         * doc/sourcebuild.texi: Update front-end requirements.
12686
12687 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12688
12689         PR target/39226
12690         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12691         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12692         (booldi3_internal3): Use boolean_or_operator instead of
12693         boolean_operator.
12694
12695 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
12696
12697         PR c/39605
12698         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12699         declarator whose size is not an integer constant expression but
12700         folds to an integer constant, then treat it as a constant
12701         subsequently.
12702
12703 2009-04-01  Richard Guenther  <rguenther@suse.de>
12704
12705         * fold-const.c (fold_plusminus_mult_expr): Do not fold
12706         i * 4 + 2 to (i * 2 + 1) * 2.
12707
12708 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12709
12710         PR c/37772
12711         * c-parser.c (c_parser_asm_statement): Skip until close paren and
12712         return if c_parser_asm_string_literal returned NULL.
12713
12714 2009-04-01  Nick Clifton  <nickc@redhat.com>
12715
12716         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12717         already defined.
12718         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12719         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
12720         other typedefs to avoid conflicts with libgcc2.c.  Define labels
12721         to gain 16-bit bit-manipulation functions from libgcc2.c and then
12722         include it.
12723         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
12724         to gain 16-bit trapping arithmetic functions from libgcc2.c and
12725         then include it.
12726
12727 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
12728
12729         * varasm.c (default_function_rodata_section): Declare DOT as
12730         const char*.
12731
12732 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
12733             Andrey Galkin  <agalkin@hypercom.com>
12734
12735         PR/39492
12736         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12737         Make object_name unique for each process.
12738
12739 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12740
12741         PR other/39591
12742         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12743         addressable variables in the parallel that could go out of scope while
12744         running queued tasks.
12745
12746 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
12747
12748         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12749         (CASE_VALUES_THRESHOLD): Redefine.
12750         * config/avr/avr.c (avr_override_options): Remove initialization of
12751         avr_case_values_threshold variable.
12752         (avr_case_values_threshold): Remove variable. Add new function.
12753         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12754         * config/avr/avr.opt (mno-tablejump): Remove option.
12755         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12756
12757 2009-04-01  DJ Delorie  <dj@redhat.com>
12758
12759         * varasm.c (default_function_rodata_section): Don't assume
12760         anything about where the first '.' in the section name is.
12761
12762 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
12763
12764         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12765         rs6000_emit_stack_tie.
12766
12767 2009-03-31  Ian Lance Taylor  <iant@google.com>
12768
12769         * tree-eh.c (tree_remove_unreachable_handlers): Compare
12770         gimple_code with GIMPLE_RESX, not RESX.
12771
12772 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12773
12774         * c-common.c (c_get_ident): New.
12775         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
12776
12777 2009-04-01  Ben Elliston  <bje@au.ibm.com>
12778
12779         * config/rs6000/sysv4.opt (msdata): Improve option description.
12780
12781 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
12782
12783         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12784         (divdf3_internal_lat): Remove.
12785         (divxf3_internal_lat): Remove.
12786         (divxf3_internal_thr): Remove.
12787         (divxf): Use divxf3_internal.
12788         * config/ia64/div.md (divsf3_internal_lat): New.
12789         (divdf3_internal_lat): New.
12790         (divxf3_internal): New.
12791
12792 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12793
12794         PR c/448
12795         * Makefile.in (USE_GCC_STDINT): Define.
12796         (stmp-int-hdrs): Install stdint.h if applicable.
12797         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12798         if known.
12799         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12800         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12801         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12802         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12803         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12804         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12805         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12806         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12807         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12808         (c_common_nodes_and_builtins): Initialize
12809         underlying_wchar_type_node.  Do not initialize
12810         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
12811         nodes for new types.
12812         (c_stddef_cpp_builtins): Define macros for new types.
12813         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12814         Remove.
12815         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12816         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12817         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12818         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12819         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12820         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12821         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12822         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12823         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12824         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12825         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12826         int16_type_node, int32_type_node, int64_type_node,
12827         uint8_type_node, uint16_type_node, c_uint32_type_node,
12828         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12829         int_least32_type_node, int_least64_type_node,
12830         uint_least8_type_node, uint_least16_type_node,
12831         uint_least32_type_node, uint_least64_type_node,
12832         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12833         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12834         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12835         uintptr_type_node): Define.
12836         * c-cppbuiltin.c (builtin_define_constants,
12837         builtin_define_type_minmax): New.
12838         (builtin_define_stdint_macros): Define more macros.
12839         (c_cpp_builtins): Define more limit macros.
12840         (type_suffix): New.
12841         (builtin_define_type_max): Define in terms of
12842         builtin_define_type_minmax.  Remove is_long parameter.  All
12843         callers changed.
12844         * config.gcc (use_gcc_stdint): Define.
12845         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12846         Add newlib-stdint.h for generic targets.
12847         * config/glibc-stdint.h, config/newlib-stdint.h,
12848         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12849         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12850         * config/score/score.h (UINTPTR_TYPE): Define.
12851         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12852         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12853         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12854         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12855         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12856         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12857         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12858         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12859         * config/spu/spu.h (STDINT_LONG32): Define.
12860         * configure.ac (use_gcc_stdint): Substitute.
12861         * configure: Regenerate.
12862         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12863         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12864         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12865         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12866         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12867         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12868         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12869         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12870         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12871         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12872         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12873         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12874         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12875         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12876         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12877         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12878         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12879         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12880         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12881         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12882         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12883         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12884         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12885         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12886         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12887         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12888         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12889         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12890         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12891
12892 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
12893
12894         * loop-iv.c (suitable_set_for_replacement): Renamed from
12895         simplify_using_assignment; changed to return bool and to accept new
12896         args DEST and SRC.  Return true iff we find a source/destination pair
12897         that can be used to make a replacement, and fill SRC and DEST if so.
12898         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
12899         changed.
12900         (simplify_using_initial_values): Deal with altered regs here and track
12901         more precisely the effect they have on the validity of our expression.
12902
12903         * loop-iv.c (simplify_using_condition): A condition of the form
12904         (EQ REG CONST) can be used to simply make a substitution.
12905         (simplify_using_initial_values): Keep track of conditions we have seen
12906         and keep using them to simplify new expressions, while applying the
12907         same substitutions to them as to the expression.
12908
12909         * simplify-rtx.c (simplify_relational_operation_1): Simplify
12910         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12911         GEU/LTU reversed.
12912
12913         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
12914         changed.  Use this when trying to improve the upper bound.
12915         Generate the comparison by using simplify_gen_relational.
12916
12917         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12918
12919         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12920         functions.
12921         (simplify_using_assignment, simplify_using_initial_values): Call
12922         replace_in_expr to make replacements.  Call replace_single_def_regs
12923         once on the initial version of the expression.
12924
12925 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12926
12927         PR target/27237
12928         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
12929
12930 2009-03-31  Richard Guenther  <rguenther@suse.de>
12931
12932         PR middle-end/31029
12933         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12934         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
12935
12936 2009-03-31  Richard Guenther  <rguenther@suse.de>
12937
12938         * tree.h (div_if_zero_remainder): Declare.
12939         * fold-const.c (div_if_zero_remainder): Export.
12940         * tree-ssa-forwprop.c
12941         (forward_propagate_addr_into_variable_array_index): Handle
12942         constant array index addition outside of the variable index.
12943
12944 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12945
12946         PR target/39592
12947         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12948         define_splits, floatunssi<mode>2): Require x87 conversions from
12949         DImode to be permitted.
12950
12951 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12952
12953         PR preprocessor/15638
12954         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12955
12956 2009-03-31  Richard Guenther  <rguenther@suse.de>
12957
12958         PR middle-end/23401
12959         PR middle-end/27810
12960         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12961         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12962         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12963         a separate statement.
12964         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12965         (lookup_tmp_var): Likewise.
12966         (is_gimple_formal_tmp_or_call_rhs): Remove.
12967         (is_gimple_reg_or_call_rhs): Rename to ...
12968         (is_gimple_reg_rhs_or_call): ... this.
12969         (is_gimple_mem_or_call_rhs): Rename to ...
12970         (is_gimple_mem_rhs_or_call): ... this.
12971         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
12972         DECL_GIMPLE_REG_P only if is_formal is true.
12973         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
12974         for non-proper post-modify expression gimplification.
12975         (gimplify_self_mod_expr): For post-modify expressions gimplify
12976         the lvalue to a minimal lvalue.
12977         (rhs_predicate_for): Remove formal temp case.
12978         (gimplify_modify_expr_rhs): Likewise.
12979         (gimplify_addr_expr): Use is_gimple_reg.
12980         (gimplify_expr): Remove formal temp cases.
12981         (gimple_regimplify_operands): Likewise.
12982         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12983         and FILTER_EXPR like constants.
12984         * gimple.c (walk_gimple_op): Fix val_only initialization, use
12985         is_gimple_reg.
12986         (is_gimple_formal_tmp_rhs): Remove.
12987         (is_gimple_reg_rhs): Remove special casing.
12988         (is_gimple_mem_rhs): Fix.
12989         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12990         (is_gimple_formal_tmp_var): Remove.
12991         (is_gimple_formal_tmp_reg): Likewise.
12992         (is_gimple_min_lval): Allow invariant component ref parts.
12993         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12994         is_gimple_formal_tmp_reg): Remove declarations.
12995         * tree-cfg.c (verify_expr): Verify that variables with address
12996         taken do not have DECL_GIMPLE_REG_P set.
12997         * tree-mudflap.c (mf_build_check_statement_for): Use
12998         force_gimple_operand instead of gimplify_expr.
12999
13000 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
13001
13002         * modulo-sched.c (sms_schedule_by_order): Pass the actual
13003         schedulable rows to compute_split_row.
13004
13005 2009-03-31  Ben Elliston  <bje@au.ibm.com>
13006
13007         PR target/31635
13008         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
13009         OPT_mvrsave.
13010
13011 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
13012
13013         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
13014         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
13015         * configure: Regenerate.
13016         * config.in: Regenerate.
13017         * config/rs6000/rs6000.opt (mtls-markers): Add.
13018         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
13019         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
13020         (tls_ld_aix, tls_ld_sysv): Likewise.
13021         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
13022         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
13023
13024 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
13025
13026         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
13027
13028 2009-03-30  Jan Hubicka  <jh@suse.cz>
13029
13030         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
13031         out of RESX.
13032         (tree_remove_unreachable_handlers): Cleanup EH predecestor
13033         detection and label handling.
13034
13035 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13036
13037         * ira-int.h (ira_allocno): Rename left_conflicts_num to
13038         left_conflicts_size.
13039         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
13040         ALLOCNO_LEFT_CONFLICTS_SIZE.
13041
13042         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
13043         remove_allocno_from_bucket_and_push,
13044         allocno_spill_priority_compare, push_allocnos_to_stack,
13045         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
13046         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
13047         (setup_allocno_left_conflicts_num): Ditto.  Rename to
13048         setup_allocno_left_conflicts_size.
13049         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
13050         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
13051         setup_allocno_left_conflicts_size instead of
13052         setup_allocno_left_conflicts_num.
13053
13054         * ira-build.c (ira_create_allocno): Use
13055         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
13056         ALLOCNO_LEFT_CONFLICTS_NUM.
13057
13058 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13059
13060         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
13061         instead of DF_LR_OUT.
13062
13063         * ira-lives.c (process_bb_node_lives): Ditto.
13064
13065         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
13066         instead of DF_LR_{OUT,IN}.
13067
13068         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
13069
13070         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
13071
13072 2009-03-30  Jan Hubicka  <jh@suse.cz>
13073
13074         * except.c (label_to_region_map): Fix thinko.
13075
13076 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
13077
13078         PR middle-end/38237
13079         * tree.h (tree_find_value): New declaration.
13080         * tree.c (tree_find_value): New function.
13081         * varasm.c (assemble_external): Avoid duplicate entries on lists.
13082
13083 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
13084
13085         PR debug/39563
13086         * c-decl.c (struct c_binding): Add locus field.
13087         (bind): Add locus argument, set locus field from it.
13088         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
13089         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
13090         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
13091         implicitly_declare, undeclared_variable, lookup_label,
13092         declare_label, c_make_fname_decl, c_builtin_function,
13093         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
13094         bind callers.
13095
13096 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13097
13098         PR target/38781
13099         * config/i386/i386.c (classify_argument): Check total size of
13100         structure.
13101
13102 2009-03-30  Martin Jambor  <mjambor@suse.cz>
13103
13104         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
13105         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
13106         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
13107         respectively.
13108
13109         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
13110         seen_variable_array_ref while also traversing a union.
13111
13112         * tree-inline.c (optimize_inline_calls): Do not call
13113         cgraph_node_remove_callees.
13114         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
13115         (pass_remove_cgraph_callee_edges): New variable.
13116         * passes.c (init_optimization_passes): Add
13117         pass_remove_cgraph_callee_edges after early inlining and before all
13118         late intraprocedural passes.
13119
13120         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
13121
13122 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13123
13124         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
13125         Fix typos in names.
13126
13127 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13128
13129         * combine.c (simplify_comparison): Use have_insn_for.
13130         * dojump.c (do_jump): Likewise.
13131
13132 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13133
13134         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
13135         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
13136         sparc_compare_op0 like sparc_compare_emitted used to be handled.
13137         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
13138         instead of sparc_compare_emitted.
13139         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
13140         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
13141         instead of sparc_compare_emitted.
13142
13143 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13144
13145         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
13146         enter/exit cfglayout mode.
13147         (pass_partition_block): Require it.
13148         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
13149         (combine_instructions): Track basic blocks instead of labels.
13150         (update_cfg_for_uncondjump): New.
13151         (try_combine): Use it.  Update jumps after rescanning.
13152         (pass_combine): Require PROP_cfglayout.
13153         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
13154
13155 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13156
13157         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
13158         Provide/destroy PROP_cfglayout respectively.
13159         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
13160         * tree-pass.h (PROP_cfglayout): New.
13161
13162 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13163
13164         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
13165         fold_convert_const_fixed_from_fixed,
13166         fold_convert_const_fixed_from_int,
13167         fold_convert_const_fixed_from_real, fold_negate_const): Do not
13168         set TREE_CONSTANT_OVERFLOW.
13169         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
13170         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
13171
13172 2009-03-30  Ira Rosen  <irar@il.ibm.com>
13173
13174         * tree-vect-loop-manip.c: New file.
13175         * tree-vectorizer.c: Update documentation and included files.
13176         (vect_loop_location): Make extern.
13177         (rename_use_op): Move to tree-vect-loop-manip.c
13178         (rename_variables_in_bb, rename_variables_in_loop,
13179         slpeel_update_phis_for_duplicate_loop,
13180         slpeel_update_phi_nodes_for_guard1,
13181         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
13182         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
13183         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
13184         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
13185         find_loop_location): Likewise.
13186         (new_stmt_vec_info): Move to tree-vect-stmts.c.
13187         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
13188         get_vectype_for_scalar_type, vect_is_simple_use,
13189         supportable_widening_operation, supportable_narrowing_operation):
13190         Likewise.
13191         (bb_in_loop_p): Move to tree-vect-loop.c.
13192         (new_loop_vec_info, destroy_loop_vec_info,
13193         reduction_code_for_scalar_code, report_vect_op,
13194         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
13195         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
13196         (vect_supportable_dr_alignment): Likewise.
13197         * tree-vectorizer.h (tree-data-ref.h): Include.
13198         (vect_loop_location): Declare.
13199         Reorganize function declarations according to the new file structure.
13200         * tree-vect-loop.c: New file.
13201         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
13202         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
13203         * tree-vect-data-refs.c: New file.
13204         * tree-vect-patterns.c (timevar.h): Don't include.
13205         * tree-vect-stmts.c: New file.
13206         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
13207         tree-vect-slp.c, tree-vect-loop.c.
13208         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
13209         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
13210         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
13211         (tree-vect-analyze.o): Remove.
13212         (tree-vect-transform.o): Likewise.
13213         (tree-vect-data-refs.o): Add rule.
13214         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
13215         tree-vect-slp.o): Likewise.
13216         (tree-vect-patterns.o): Remove redundant dependencies.
13217         (tree-vectorizer.o): Likewise.
13218         * tree-vect-slp.c: New file.
13219
13220 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13221
13222         * optc-gen.awk: Warn if an option flag has multiple different
13223         help strings.
13224
13225 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
13226
13227         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
13228         -floop-block): Document dependences on PPL, CLooG and Graphite.
13229
13230 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
13231
13232         PR rtl-optimization/323
13233         * c-common.c (c_fully_fold, convert_and_check,
13234         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
13235         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
13236         * c-common.def (EXCESS_PRECISION_EXPR): New.
13237         * c-cppbuiltin.c (builtin_define_float_constants): Define
13238         constants with enough digits for long double.
13239         * c-lex.c (interpret_float): Interpret constant with excess
13240         precision where appropriate.
13241         * c-opts.c (c_common_post_options): Set
13242         flag_excess_precision_cmdline.  Give an error for
13243         -fexcess-precision=standard for C++ for processors where the
13244         option is significant.
13245         * c-parser.c (c_parser_conditional_expression): Handle excess
13246         precision in condition.
13247         * c-typeck.c (convert_arguments): Handle arguments with excess
13248         precision.
13249         (build_unary_op): Move excess precision outside operation.
13250         (build_conditional_expr): Likewise.
13251         (build_compound_expr): Likewise.
13252         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
13253         (build_modify_expr): Handle excess precision in RHS.
13254         (convert_for_assignment): Handle excess precision in converted
13255         value.
13256         (digest_init, output_init_element, process_init_element): Handle
13257         excess precision in initializer.
13258         (c_finish_return): Handle excess precision in return value.
13259         (build_binary_op): Handle excess precision in operands and add
13260         excess precision as needed for operation.
13261         * common.opt (-fexcess-precision=): New option.
13262         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
13263         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13264         For standard excess precision, output explicit conversion to and
13265         truncation from XFmode.
13266         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
13267         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
13268         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
13269         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
13270         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
13271         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
13272         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
13273         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
13274         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
13275         define_splits, sqrt<mode>2): Disable where appropriate for
13276         standard excess precision.
13277         * convert.c (convert_to_real): Do not shorten arithmetic to type
13278         for which excess precision would be used.
13279         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
13280         * doc/invoke.texi (-fexcess-precision=): Document option.
13281         (-mfpmath=): Correct index entry.
13282         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
13283         flag_excess_precision): New.
13284         * langhooks.c (lhd_post_options): Set
13285         flag_excess_precision_cmdline.
13286         * opts.c (common_handle_option): Handle -fexcess-precision=.
13287         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
13288         init_excess_precision): New.
13289         (lang_dependent_init_target): Call init_excess_precision.
13290         * tree.c (excess_precision_type): New.
13291         * tree.h (excess_precision_type): Declare.
13292
13293 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
13294
13295         PR c/35235
13296         * c-typeck.c (build_component_ref): Do not copy qualifiers from
13297         non-lvalue to component.
13298
13299 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
13300
13301         PR preprocessor/34695
13302         * Makefile.in (c-opts.o): Depend on c-tree.h.
13303         * c-common.c: Move down include of diagnostic.h.
13304         (done_lexing, c_cpp_error): New.
13305         * c-common.h (done_lexing): Declare.
13306         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
13307         (parse_in).
13308         * c-opts.c: Include c-tree.h.
13309         (c_common_init_options): Set preprocessor error callback.
13310         (c_common_handle_option): Do not set preprocessor
13311         inhibit_warnings, warnings_are_errors, warn_system_headers,
13312         pedantic_errors or inhibit_warnings flags.
13313         (c_common_post_options): Do not check cpp_errors (parse_in).
13314         (c_common_finish): Do not output dependencies if there were
13315         errors.  Do not check return value of cpp_finish.
13316         * c-ppoutput.c (pp_file_change): Set input_location.
13317         * c-tree.h (c_cpp_error): Declare.
13318         * diagnostic.c (diagnostic_set_info_translated): Also initialize
13319         override_column.
13320         (diagnostic_build_prefix): Check override_column.
13321         * diagnostic.h (diagnostic_info): Add override_column field.
13322         (diagnostic_override_column): Define.
13323
13324 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
13325
13326         * c-common.c (c_expand_expr, c_staticp): Remove.
13327         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
13328         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
13329         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
13330         * c-gimplify.c (gimplify_compound_literal_expr,
13331         optimize_compound_literals_in_ctor): Remove.
13332         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
13333         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
13334         * c-semantics.c (emit_local_var): Remove.
13335
13336         * langhooks-def.h (lhd_expand_expr): Remove.
13337         * langhooks.c (lhd_expand_expr): Remove.
13338         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
13339
13340         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
13341         handling from c-semantics.c; don't call into langhook.
13342         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
13343         * gimplify.c (gimplify_compound_literal_expr,
13344         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
13345         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
13346         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
13347         as was done in c-gimplify.c.
13348         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
13349         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
13350         Move from c-common.h.
13351         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
13352
13353         * tree.c (staticp): Do not call langhook.
13354         * langhooks.c (lhd_staticp): Delete.
13355         * langhooks-def.h (lhd_staticp): Delete prototype.
13356         (LANG_HOOKS_STATICP): Delete.
13357         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
13358
13359         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
13360         instead of DECL_STMTs.
13361
13362 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
13363
13364         PR c/456
13365         PR c/5675
13366         PR c/19976
13367         PR c/29116
13368         PR c/31871
13369         PR c/35198
13370         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
13371         void_type_node.
13372         (fold_call_expr): Return a NOP_EXPR from folding rather than the
13373         contained expression.
13374         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
13375         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
13376         conditional expressions for C.
13377         (decl_constant_value_for_optimization): Move from
13378         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
13379         whether optimizing and that the expression is a VAR_DECL not of
13380         array type instead of doing such checks in the caller.  Do not
13381         check pedantic.  Call gcc_unreachable for C++.
13382         * c-common.def (C_MAYBE_CONST_EXPR): New.
13383         * c-common.h (c_fully_fold, c_save_expr,
13384         decl_constant_value_for_optimization): New prototypes.
13385         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
13386         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
13387         EXPR_INT_CONST_OPERANDS): Define.
13388         * c-convert.c (convert): Strip nops from expression.
13389         * c-decl.c (groktypename): Take extra parameters expr and
13390         expr_const_operands.  Update call to grokdeclarator.
13391         (start_decl): Update call to grokdeclarator.  Add statement for
13392         expressions used in type of decl.
13393         (grokparm): Update call to grokdeclarator.
13394         (push_parm_decl): Update call to grokdeclarator.
13395         (build_compound_literal): Add parameter non_const and build a
13396         C_MAYBE_COSNT_EXPR if applicable.
13397         (grokdeclarator): Take extra parameters expr and
13398         expr_const_operands.  Track expressions used in declaration
13399         specifiers and declarators.  Fold array sizes and track whether
13400         they are constant expressions and whether they are integer
13401         constant expressions.
13402         (parser_xref_tag): Set expr and expr_const_operands fields in
13403         return value.
13404         (grokfield): Update call to grokdeclarator.
13405         (start_function): Update call to grokdeclarator.
13406         (build_null_declspecs): Set expr and expr_const_operands fields in
13407         return value.
13408         (declspecs_add_type): Handle expressions in typeof specifiers.
13409         * c-parser.c (c_parser_declspecs): Set expr and
13410         expr_const_operands fields for declaration specifiers.
13411         (c_parser_enum_specifier): Likewise.
13412         (c_parser_struct_or_union_specifier): Likewise.
13413         (c_parser_typeof_specifier): Likewise.  Update call to
13414         groktypename.  Fold expression as needed.  Return expressions with
13415         type instead of adding statements.
13416         (c_parser_attributes): Update calls to c_parser_expr_list.
13417         (c_parser_statement_after_labels): Fold expression before passing
13418         to objc_build_throw_stmt.
13419         (c_parser_condition): Fold expression.
13420         (c_parser_asm_operands): Fold expression.
13421         (c_parser_conditional_expression): Use c_save_expr.  Update call
13422         to build_conditional_expr.
13423         (c_parser_alignof_expression): Update call to groktypename.
13424         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
13425         original_code.  Fold expression argument of va_arg.  Create
13426         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
13427         argument to va_arg.  Update calls to groktypename.  Fold array
13428         index for offsetof.  Verify that first argument to
13429         __builtin_choose_expr has integer type.
13430         (c_parser_postfix_expression_after_paren_type): Update calls to
13431         groktypename and build_compound_literal.  Handle expressions with
13432         side effects in type name.
13433         (c_parser_postfix_expression_after_primary): Update call to
13434         c_parser_expr_list.  Set original_code for calls to
13435         __builtin_constant_p.
13436         (c_parser_expr_list): Take extra parameter fold_p.  Fold
13437         expressions if requested.
13438         (c_parser_objc_type_name): Update call to groktypename.
13439         (c_parser_objc_synchronized_statement): Fold expression.
13440         (c_parser_objc_receiver): Fold expression.
13441         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
13442         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
13443         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
13444         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
13445         (struct c_typespec): Add elements expr and expr_const_operands.
13446         (struct c_declspecs): Add elements expr and expr_const_operands.
13447         (groktypename, build_conditional_expr, build_compound_literal):
13448         Update prototypes.
13449         (in_late_binary_op): Declare.
13450         * c-typeck.c (note_integer_operands): New function.
13451         (in_late_binary_op): New variable.
13452         (decl_constant_value_for_broken_optimization): Move to c-common.c
13453         and rename to decl_constant_value_for_optimization.
13454         (default_function_array_conversion): Do not strip nops.
13455         (default_conversion): Do not call
13456         decl_constant_value_for_broken_optimization.
13457         (build_array_ref): Do not fold result.
13458         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
13459         result when operand is a VLA.
13460         (c_expr_sizeof_type): Update call to groktypename.  Handle
13461         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
13462         result when operand names a VLA type.
13463         (build_function_call): Update call to build_compound_literal.
13464         Only fold result for calls to __builtin_* functions.  Strip
13465         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
13466         the function designator.
13467         (convert_arguments): Fold arguments.  Update call to
13468         convert_for_assignment.
13469         (build_unary_op): Handle increment and decrement of
13470         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
13471         decrement earlier.  Fold operand of increment and decrement.
13472         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
13473         built for integer operand.  Wrap returns that are INTEGER_CSTs
13474         without being integer constant expressions or that have integer
13475         constant operands without being INTEGER_CSTs.
13476         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
13477         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
13478         result is an integer constant expression or can be used in
13479         unevaluated parts of one and avoid folding and wrap as
13480         appropriate.  Fold operands before possibly doing -Wsign-compare
13481         warnings.
13482         (build_compound_expr): Wrap result for C99 if operands can be used
13483         in integer constant expressions.
13484         (build_c_cast): Update call to digest_init.  Do not ignore
13485         overflow from casting floating-point constants to integers.  Wrap
13486         results that could be confused with integer constant expressions,
13487         null pointer constants or floating-point constants.
13488         (c_cast_expr): Update call to groktypename.  Handle expressions
13489         included in type name.
13490         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
13491         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
13492         Update calls to convert_for_assignment.
13493         (convert_for_assignment): Take new parameter
13494         null_pointer_constant.  Do not strip nops or call
13495         decl_constant_value_for_broken_optimization.  Set
13496         in_late_binary_op for conversions to boolean.
13497         (store_init_value): Update call to digest_init.
13498         (digest_init): Take new parameter null_pointer_constant.  Do not
13499         call decl_constant_value_for_broken_optimization.  pedwarn for
13500         initializers not constant expressions.  Update calls to
13501         convert_for_assignment.
13502         (constructor_nonconst): New.
13503         (struct constructor_stack): Add nonconst element.
13504         (really_start_incremental_init, push_init_level, pop_init_level):
13505         Handle constructor_nonconst and nonconst element.
13506         (set_init_index): Call constant_expression_warning for array
13507         designators.
13508         (output_init_element): Fold value.  Set constructor_nonconst as
13509         applicable.  pedwarn for initializers not constant expressions.
13510         Update call to digest_init.  Call constant_expression_warning
13511         where constant initializers are required.
13512         (process_init_element): Use c_save_expr.
13513         (c_finish_goto_ptr): Fold expression.
13514         (c_finish_return): Fold return value.  Update call to
13515         convert_for_assignment.
13516         (c_start_case): Fold switch expression.
13517         (c_process_expr_stmt): Fold expression.
13518         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
13519         ensure statement expression is not evaluated in constant expression.
13520         (build_binary_op): Track whether results are integer constant
13521         expressions or may occur in such, disable folding and wrap results
13522         as applicable.  Fold operands for -Wsign-compare warnings unless
13523         in_late_binary_op.
13524         (c_objc_common_truthvalue_conversion): Handle results folded to
13525         integer constants that are not integer constant expressions.
13526         * doc/extend.texi: Document when typeof operands are evaluated,
13527         that condition of __builtin_choose_expr is an integer constant
13528         expression, and more about use of __builtin_constant_p in
13529         initializers.
13530
13531 2009-03-29  Richard Guenther  <rguenther@suse.de>
13532
13533         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
13534         propagate addresses of array references.
13535
13536 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
13537
13538         * regmove.c (perhaps_ends_bb_p): Remove.
13539         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
13540         from INSN and check that the main loop stays within that basic block.
13541         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
13542         (regmove_forward_pass): Split out from regmove_optimize.  Use
13543         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
13544         (regmove_backward_pass): Split out from regmove_optimize.  Use
13545         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
13546         (regmove_optimize): Simplify.
13547
13548 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13549
13550         PR target/39545
13551         * config/i386/i386.c (classify_argument): Ignore flexible array
13552         member in struct and warn ABI change.
13553
13554 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13555
13556         * config/i386/i386-protos.h (ix86_agi_dependent): New.
13557
13558         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
13559         (ix86_adjust_cost): Updated.
13560
13561 2009-03-29  Jan Hubicka  <jh@suse.cz>
13562
13563         PR middle-end/28850
13564         * tree-pass.h (pass_cleanup_eh): New function.
13565         (remove_unreachable_regions): Break code handling RTL
13566         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
13567         that can not be reached by runtime.
13568         (can_be_reached_by_runtime): New function.
13569         (label_to_region_map): New function.
13570         (num_eh_regions): New function.
13571         (rtl_remove_unreachable_regions): New function.
13572         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
13573         (remove_eh_region): New function.
13574         * except.h: Include sbitmap and vecprim.
13575         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
13576         num_eh_regions): Declare.
13577         * passes.c (init_optimization_passes): Schedule cleanup_eh.
13578         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
13579         * tree-eh.c (tree_remove_unreachable_handlers): New function.
13580         (tree_empty_eh_handler_p): New function.
13581         (cleanup_empty_eh): New function.
13582         (cleanup_eh): New function.
13583         (pass_cleanup_eh): New function.
13584
13585 2009-03-29  Jan Hubicka  <jh@suse.cz>
13586
13587         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13588         for removed regions.
13589
13590 2009-03-29  Jan Hubicka  <jh@suse.cz>
13591
13592         * except.c (dump_eh_tree): Dump all datastructures.
13593
13594 2009-03-29  Jan Hubicka  <jh@suse.cz>
13595
13596         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13597         (duplicate_eh_regions_1): Likewise.
13598         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13599         vector; call EH verification.
13600         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13601         Be ready for region being removed.
13602
13603 2009-03-29  Jan Hubicka  <jh@suse.cz>
13604
13605         * bitmap.c (bitmap_last_set_bit): New function.
13606         * bitmap.h (bitmap_last_set_bit): Declare.
13607
13608 2009-03-29  David Ayers  <ayers@fsfe.org>
13609
13610         PR objc/27377
13611         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13612         by calling objc_compare_types and surpress warnings about
13613         incompatible C pointers that are compatible ObjC pointers.
13614
13615 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
13616
13617         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13618         call initialize_inline_failed.
13619         (initialize_inline_failed): Move it from here ...
13620         * cgraph.c (initialize_inline_failed): ... to here.
13621         (cgraph_create_edge): Call initialize_inline_failed rather than
13622         setting inline_failed directly.
13623
13624 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13625
13626         PR target/32542
13627         * sysv4.opt (msdata): Improve comment.
13628         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13629         * sysv4.h (SVR4_ASM_SPEC): Likewise.
13630
13631 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13632
13633         PR target/30451
13634         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13635         load and store attributes.
13636
13637 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13638
13639         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13640         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13641         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13642         * doc/extend.texi (X86 Built-in Functions): Add index entries for
13643         __builtin_infq and __builtin_huge_valq.
13644
13645 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
13646
13647         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13648         atmega8m1 devices.
13649         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13650         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13651
13652 2009-03-28  Xinliang David Li  <davidxl@google.com>
13653
13654         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
13655         (do_dbg_cnt): New function.
13656
13657 2009-03-28  Jan Hubicka  <jh@suse.cz>
13658
13659         Merge from pretty-ipa:
13660
13661         2009-03-27  Jan Hubicka  <jh@suse.cz>
13662
13663         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13664         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13665         * passes.c (function_called_by_processed_nodes_p): New.
13666         * ipa-pure-const.c (check_call): Fix handling of operands.
13667         (analyze_function): Dump debug output for skipped bodies.
13668         (local_pure_const): Use function_called_by_processed_nodes_p.
13669         * dwarf2out.c (reference_to_unused): Use output.
13670         * passes.c (do_per_function_toporder): Likewise.
13671
13672         2008-11-12  Jan Hubicka  <jh@suse.cz>
13673
13674         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13675         * ipa-pure-const.c (funct_state_d): Add can throw field; make
13676         state_set_in_source enum
13677         (check_decl): Ignore memory tags; do not set fake looping flags;
13678         dump diagnostics.
13679         (check_operand, check_tree, check_rhs_var, check_lhs_var,
13680         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13681         (check_call, analyze_function): Rewrite.
13682         (check_stmt): New.
13683         (add_new_function): Update call of analyze_function.
13684         (generate_summary): Add call of analyze_function.
13685         (propagate): Propagate can_throw; handle state_set_in_source correctly.
13686         (local_pure_const): New function.
13687         (pass_local_pure_const): New pass.
13688         * ipa-inline.c (inline_transform): Set after_inlining.
13689         * tree-eh.c (stmt_can_throw_external): New.
13690         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13691         work with aliasing built.
13692         * tree-flow.h (stmt_can_throw_external): New.
13693         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13694         and local pure/const pass in early and late optimization queue.
13695
13696 2009-03-28  Martin Jambor  <mjambor@suse.cz>
13697
13698         * fold-const.c (get_pointer_modulus_and_residue): New parameter
13699         allow_func_align.
13700         (fold_binary): Allow function decl aligment consideration is the
13701         second argument is integer constant one.
13702         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13703         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13704         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13705
13706 2009-03-28  Jan Hubicka  <jh@suse.cz>
13707
13708         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13709         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13710         * function.h (rtl_data): Add nothrow flag.
13711         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13712         set DECL_NOTHROW for AVAILABLE functions.
13713
13714 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
13715
13716         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13717         following vector keyword has expansion starting with pixel or bool
13718         keyword, expand vector to __vector and pixel or bool to __pixel or
13719         __bool.
13720
13721         PR c++/39554
13722         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13723         warn_if_disallowed_function_p): Removed.
13724         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13725         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13726         warning_if_disallowed_function_p.
13727         * flags.h (warn_if_disallowed_function_p,
13728         warn_disallowed_functions): Removed.
13729         * common.opt (Wdisallowed-function-list=): Removed.
13730         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13731
13732 2009-03-28  Richard Guenther  <rguenther@suse.de>
13733
13734         PR tree-optimization/38723
13735         * tree-ssa-pre.c (compute_avail): Add all default definitions to
13736         the entry block.
13737
13738 2009-03-28  Jan Hubicka  <jh@suse.cz>
13739
13740         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13741         test introduced by my previous patch.
13742
13743 2009-03-28  Richard Guenther  <rguenther@suse.de>
13744
13745         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13746         the PHIs value undefined.
13747
13748 2009-03-28  Jan Hubicka  <jh@suse.cz>
13749
13750         * tree-pass.h (pass_fixup_cfg): New pass.
13751         * ipa-inline.c (inline_transform): Set
13752         always_inline_functions_inlined/after_inlining.
13753         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13754         (pass_fixup_cfg): New pass.
13755         * passes.c (init_optimization_passes): Add fixup_cfg.
13756
13757 2009-03-28  Richard Guenther  <rguenther@suse.de>
13758
13759         PR tree-optimization/38458
13760         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13761         argument use the arguments copy-of value.
13762
13763 2009-03-28  Richard Guenther  <rguenther@suse.de>
13764
13765         PR tree-optimization/38180
13766         * tree-ssa-ccp.c (get_default_value): Simplify.
13767         (likely_value): Likewise.
13768         (surely_varying_stmt_p): Properly handle VOP case.
13769         (ccp_initialize): Likewise.
13770         (ccp_fold): Handle propagating through *&.
13771         (fold_const_aggregate_ref): Also handle decls.
13772
13773 2009-03-28  Jan Hubicka  <jh@suse.cz>
13774
13775         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13776         * cgraph.h (cgraph_node): Likewise.
13777         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13778         (cgraph_reset_node): Use process flag.
13779         (cgraph_mark_functions_to_output): Likewise.
13780         (cgraph_expand_function): Likewise.
13781         (cgraph_expand_all_functions): Likewise.
13782         (cgraph_output_in_order): Likewise.
13783         * dwarf2out.c (reference_to_unused): Likewise.
13784         * passes.c do_per_function_toporder): Likewise.
13785
13786 2009-03-28  Jan Hubicka  <jh@suse.cz>
13787
13788         Bring from lto-branch:
13789
13790         2008-09-03  Doug Kwan  <dougkwan@google.com>
13791
13792         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13793         enums instead of reason strings.
13794         * cgraph.c (cgraph_create_edge): Same.
13795         (cgraph_inline_failed_string): New function.
13796         * cgraph.h (cgraph_inline_failed_t): New enum type.
13797         (cgraph_inline_failed_string): New prototype.
13798         (struct cgraph_edge): Change type of INLINED_FAILED from constant
13799         char pointer to cgraph_inline_failed_t.
13800         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13801         (cgraph_default_inline_p): Ditto.
13802         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
13803         to cgraph_inline_failed_t pointer.
13804         * cif-code.def: New file.
13805         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13806         reason string.
13807         (cgraph_check_inline_limits): Change type of REASON to pointer to
13808         cgraph_inline_failed_t.  Replace reason strings with enums.
13809         (cgraph_default_inline_p): Ditto.
13810         (cgraph_recursive_inlining_p): Ditto.
13811         (update_caller_keys): Change type of FAILED_REASON to
13812         cgraph_inline_failed_t.
13813         (cgraph_set_inline_failed): Change type of REASON to pointer to
13814         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
13815         convert enums to strings for text output.
13816         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13817         to be of type cgraph_inline_failed_t.  Replace reason strings with
13818         enums.  Call cgraph_inline_failed_string to covert enums
13819         to strings for text output.
13820         (cgraph_decide_inlining): Replace reason strings with enums.
13821         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13822         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
13823         for text output.
13824         * tree-inline.c (expand_call_inline): Change type of REASON
13825         to cgraph_inline_failed_t.  Replace reason strings with enums.
13826         Call cgraph_inline_failed_string for text output.
13827         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13828         (cgraph.o): Ditto.
13829
13830 2009-03-28  Jan Hubicka  <jh@suse.cz>
13831
13832         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13833         cgraph_clone_node): Remove master clone handling.
13834         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13835         * cgraph.h (master_clone): Remove.
13836         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13837         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13838         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13839
13840 2009-03-28  Jan Hubicka  <jh@suse.cz>
13841
13842         * cgraph.c (cgraph_function_body_availability): Functions declared
13843         inline are always safe to assume that it is not going to be replaced.
13844
13845 2009-03-28  Richard Guenther  <rguenther@suse.de>
13846
13847         PR tree-optimization/38513
13848         * tree-ssa-pre.c (eliminate): Remove redundant stores.
13849         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13850         EXC_PTR_EXPR and FILTER_EXPR.
13851         (get_ref_from_reference_ops): Likewise.
13852
13853 2009-03-28  Richard Guenther  <rguenther@suse.de>
13854
13855         PR tree-optimization/38968
13856         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13857         Use FLOOR_MOD_EXPR to compute misalignment.
13858
13859 2009-03-28  Richard Guenther  <rguenther@suse.de>
13860
13861         PR tree-optimization/37795
13862         * tree.h (combine_comparisons): Declare.
13863         * fold-const.c (combine_comparisons): Export.
13864         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13865         comparisons.
13866         (ifcombine_iforif): Use combine_comparisons.
13867
13868 2009-03-28  Jan Hubicka  <jh@suse.cz>
13869
13870         * tree-eh.c (inlinable_call_p): New function.
13871         (make_eh_edges): Use it.
13872         (verify_eh_edges): Use it.
13873         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13874         * except.c (reachable_next_level): Add inlinable_function argument
13875         (sjlj_find_directly_reachable_regions): Update.
13876         (add_reachable_handler): Do not set saw_any_handlers.
13877         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13878         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13879         Add new inlinable call parameter.
13880         (can_throw_internal, can_throw_external): Update.
13881         * except.h (can_throw_internal_1, can_throw_external_1,
13882         foreach_reachable_handler): Update declaration.
13883
13884 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
13885
13886         * config/arm/t-arm-coff, config/h8300/coff.h,
13887         config/i386/i386-aout.h, config/i386/i386-coff.h,
13888         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13889         config/pdp11/2bsd.h, config/rs6000/aix41.h,
13890         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13891         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13892         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13893         sys-types.h: Remove.
13894         * Makefile.in: Remove protoize and fixproto support and references
13895         in comments.
13896         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13897         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13898         Remove.
13899         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13900         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13901         unprotoize$(exeext).
13902         (rest.encap): Don't depend on $(STMP_FIXPROTO)
13903         (.PHONY): Don't depend on proto.
13904         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13905         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13906         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13907         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13908         build/gen-protos.o, build/scan.o, xsys-protos.h,
13909         build/fix-header$(build_exeext), build/fix-header.o,
13910         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13911         stmp-install-fixproto): Remove.
13912         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13913         SYSCALLS.c or fixproto files.
13914         (install-common): Don't install protoize.
13915         (install-headers-tar, install-headers-cpio, install-headers-cp):
13916         Don't depend on $(STMP_FIXPROTO).
13917         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
13918         install fixproto files or write out fixproto settings.
13919         (uninstall): Don't uninstall protoize.
13920         * config.gcc (use_fixproto): Remove.
13921         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13922         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13923         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13924         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13925         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13926         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13927         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13928         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13929         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13930         * config/t-vxworks (STMP_FIXPROTO): Remove.
13931         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13932         STMP_FIXPROTO): Remove.
13933         * config.in, configure: Regenerate.
13934         * crtstuff.c (gid_t, uid_t): Don't undefine.
13935         * doc/install.texi: Change m68k-coff to m68k-elf in example.
13936         (arm-*-coff, arm-*-aout: Remove target entries.
13937         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13938         Remove mention of AIX 4.1.
13939         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13940         * doc/invoke.texi (Running Protoize): Remove.
13941         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13942         (Protoize Caveats): Remove.
13943         * tsystem.h: Update comments on headers assumed to exist.
13944
13945 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
13946
13947         * genautomata.c: Add a new year to the copyright.  Add a new
13948         reference.
13949         (struct insn_reserv_decl): Add comments for member bypass_list.
13950         (find_bypass): Remove.
13951         (insert_bypass): New.
13952         (process_decls): Use insert_bypass.
13953         (output_internal_insn_latency_func): Output all bypasses with the
13954         same input insn in one switch case.
13955
13956         * rtl.def (define_bypass): Describe bypass choice.
13957         * doc/md.texi (define_bypass): Ditto.
13958
13959 2009-03-27  Richard Guenther  <rguenther@suse.de>
13960
13961         * gimplify.c (mark_addressable): Export.
13962         * tree-flow.h (mark_addressable): Declare.
13963         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13964         * tree-ssa.c (verify_phi_args): Verify that address taken
13965         variables have TREE_ADDRESSABLE set.
13966
13967 2009-03-27  Richard Guenther  <rguenther@suse.de>
13968
13969         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13970         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
13971         Do not mark decls TREE_ADDRESSABLE.
13972         (build_fold_addr_expr): Adjust.
13973         (fold_addr_expr): Remove.
13974         (fold_unary): Use build_fold_addr_expr.
13975         (fold_comparison): Likewise.
13976         (split_address_to_core_and_offset): Likewise.
13977         * coverage.c (tree_coverage_counter_addr): Mark the array decl
13978         TREE_ADDRESSABLE.
13979         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13980         (gimplify_modify_expr_to_memcpy): Mark source and destination
13981         addressable.
13982         * omp-low.c (create_omp_child_function): Mark the object decl
13983         TREE_ADDRESSABLE.
13984         (lower_rec_input_clauses): Mark the var we take the address of
13985         TREE_ADDRESSABLE.
13986         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13987
13988 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13989
13990         PR middle-end/39315
13991         * cfgexpand.c (expand_one_stack_var_at): Change alignment
13992         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13993
13994 2009-03-27  Richard Guenther  <rguenther@suse.de>
13995
13996         PR tree-optimization/39120
13997         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13998         constraints.
13999         (handle_lhs_call): Process return constraints.  Add escape
14000         constraints if necessary.
14001         (handle_const_call): Fill out return constraints.  Make nested
14002         case more precise.  Avoid consttmp if possible.
14003         (handle_pure_call): Fill out return constraints.  Avoid
14004         callused if possible.
14005         (find_func_aliases): Simplify call handling.
14006
14007 2009-03-27  Richard Guenther  <rguenther@suse.de>
14008
14009         PR tree-optimization/39120
14010         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
14011         as a representative.
14012         (solve_graph): Do propagate CALLUSED.
14013         (handle_pure_call): Use a scalar constraint from CALLUSED for
14014         the return value.
14015         (find_what_p_points_to): CALLUSED shall not appear in poins-to
14016         solutions.
14017
14018 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14019
14020         PR c/39323
14021         * c-common.c (handle_aligned_attribute): Properly check alignment
14022         overflow.  Use (1U << i) instead of (1 << i).
14023
14024         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
14025
14026         * expr.h (get_mem_align_offset): Updated.
14027
14028         * tree.h (tree_decl_common): Change align to "unsigned int" and
14029         move it before pointer_alias_set.
14030
14031 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14032             Jakub Jelinek  <jakub@redhat.com>
14033
14034         PR target/38034
14035         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
14036         gr_register_operand with gr_reg_or_0_operand.
14037         (cmpxchg_rel_di): Likewise.
14038         (sync_lock_test_and_set<mode>): Likewise.
14039
14040 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14041
14042         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
14043         (true_regnum): Likewise.
14044
14045         * rtlanal.c (subreg_info): Moved to ...
14046         * rtl.h (subreg_info): Here.  New.
14047         (subreg_get_info): New.
14048
14049         * rtlanal.c (subreg_get_info): Make it extern.
14050
14051 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14052
14053         PR target/39472
14054         * config/i386/i386.c (ix86_abi): New.
14055         (override_options): Handle -mabi=.
14056         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
14057         (ix86_call_abi_override): Likewise.
14058         (init_cumulative_args): Likewise.
14059         (function_arg_advance): Likewise.
14060         (function_arg_64): Likewise.
14061         (function_arg): Likewise.
14062         (ix86_pass_by_reference): Likewise.
14063         (ix86_function_value_regno_p): Likewise.
14064         (ix86_build_builtin_va_list_abi): Likewise.
14065         (setup_incoming_varargs_64): Likewise.
14066         (is_va_list_char_pointer): Likewise.
14067         (ix86_init_machine_status): Likewise.
14068         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
14069         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
14070         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
14071         (ix86_function_abi): Make it static and return enum calling_abi.
14072         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
14073         with ix86_abi.
14074         (ix86_fn_abi_va_list): Updated.
14075
14076         * config/i386/i386.h (ix86_abi): New.
14077         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
14078         (CONDITIONAL_REGISTER_USAGE): Likewise.
14079         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
14080         (machine_function): Likewise.
14081
14082         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
14083         with ix86_abi.
14084         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
14085         (STACK_BOUNDARY): Likewise.
14086         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
14087
14088         * config/i386/i386.opt (mabi=): New.
14089
14090         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
14091         return enum calling_abi.
14092         (ix86_function_type_abi): Likewise.
14093         (ix86_function_abi): Removed.
14094
14095         * doc/invoke.texi: Document -mabi= option for x86.
14096
14097 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14098
14099         * builtins.c (real_dconstp): Delete.
14100         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
14101
14102 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
14103             Jakub Jelinek  <jakub@redhat.com>
14104
14105         PR debug/37959
14106         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
14107         (gen_subprogram_die): When a function is explicit, generate the
14108         DW_AT_explicit attribute.
14109         * langhooks.h (struct lang_hooks_for_decls): Add
14110         function_decl_explicit_p langhook.
14111         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
14112         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
14113
14114 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
14115
14116         * builtins.c (fold_builtin_memory_op): Optimize memmove
14117         into memcpy if we can prove source and destination don't overlap.
14118
14119         * tree-inline.c: Include gt-tree-inline.h.
14120         (clone_fn_id_num): New variable.
14121         (clone_function_name): New function.
14122         (tree_function_versioning): Use it.
14123         * Makefile.in (GTFILES): Add tree-inline.c.
14124
14125 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
14126
14127         * BASE-VER: Change to 4.5.0.
14128
14129 2009-03-27  Xinliang David Li  <davidxl@google.com>
14130
14131         PR tree-optimization/39557
14132         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
14133
14134 2009-03-27  Xinliang David Li  <davidxl@google.com>
14135
14136         PR tree-optimization/39548
14137         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
14138         candidate check.
14139
14140 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14141
14142         * c-common.c (pointer_int_sum): Use %wd on return from
14143         tree_low_cst.
14144
14145 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14146
14147         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
14148         on return from tree_low_cst.
14149
14150 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14151
14152         PR c++/36799
14153         * ginclude/stdarg.h (va_copy): Define also for
14154         __GXX_EXPERIMENTAL_CXX0X__.
14155
14156 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14157
14158         PR c++/35652
14159         * builtins.h (c_strlen): Do not warn here.
14160         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
14161         * c-common.c (pointer_int_sum): Take an explicit location.
14162         Warn about offsets out of bounds.
14163         * c-common.h (pointer_int_sum): Adjust declaration.
14164
14165 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14166
14167         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
14168         markup glitch.
14169
14170 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR c++/39554
14173         * opts.c (warn_if_disallowed_function_p): Don't assume
14174         get_callee_fndecl must return non-NULL.
14175
14176 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
14177
14178         PR rtl-optimization/39522
14179         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
14180         when reg_reloaded_valid is set.
14181
14182 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14183
14184         * config/spu/divv2df3.c: New file.
14185         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
14186         (DPBIT_FUNCS): Filter out _div_df.
14187
14188 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
14189
14190         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
14191         a jump insn, count that jump in the distance to the loop start.
14192
14193 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
14194
14195         PR target/39523
14196         * config/sh/sh.c (calc_live_regs): Fix condition for global
14197         registers except PIC_OFFSET_TABLE_REGNUM.
14198
14199 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
14200
14201         PR/39518
14202         * doc/invoke.texi (-mconsole): New.
14203         (-mcygwin): New.
14204         (-mno-cygwin): New.
14205         (-mdll): New.
14206         (-mnop-fun-dllimport): New.
14207         (-mthread): New.
14208         (-mwin32): New.
14209         (-mwindows): New.
14210         (sub section "i386 and x86-64 Windows Options"): New.
14211
14212 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
14213
14214         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
14215         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
14216
14217 2009-03-25  Richard Guenther  <rguenther@suse.de>
14218
14219         PR middle-end/39497
14220         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
14221         of -Wno-error.
14222
14223 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
14224
14225         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
14226         neither of haifa/selective schedulers are working.
14227
14228 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14229
14230         * doc/invoke.texi (Debugging Options): Fix description of
14231         -fno-merge-debug-strings.
14232
14233 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
14234
14235         * config/cris/libgcc.ver: New version-script.
14236         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
14237
14238         * configure.ac <GAS features, nop mnemonic>: Add pattern
14239         crisv32-*-* for "nop".
14240         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
14241         * configure: Regenerate.
14242
14243 2009-03-24  Ira Rosen  <irar@il.ibm.com>
14244
14245         PR tree-optimization/39529
14246         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
14247         mark_sym_for_renaming for the tag copied to the new vector
14248         pointer.
14249
14250 2009-03-24  Arthur Loiret  <aloiret@debian.org>
14251
14252         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
14253         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
14254         EXTRA_SPEC_FUNCTIONS.
14255         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
14256         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
14257         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
14258         -march and -mtune options.
14259
14260 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
14261
14262         * config/m68k/t-rtems: Add m5329 multilib.
14263
14264 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
14265             Jakub Jelinek  <jakub@redhat.com>
14266
14267         PR debug/39524
14268         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
14269         nodes.
14270
14271 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
14272
14273         PR c/39495
14274         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
14275         instead of c_parser_expression_conv, if original_code isn't one of the
14276         4 allowed comparison codes, fail.
14277
14278 2009-03-23  Richard Guenther  <rguenther@suse.de>
14279
14280         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
14281         * tree.h (struct tree_type): Likewise.
14282         * reload.h (struct insn_chain): Likewise.
14283         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
14284         * function.h (struct function): Likewise.
14285         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
14286
14287 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
14288
14289         PR tree-optimization/39516
14290         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
14291
14292 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
14293
14294         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
14295         should be set true if BITS_PER_WORD of target is bigger than 32
14296
14297 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
14298
14299         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
14300         Translate -B-options to -rpath-link.  Correct existing
14301         rpath-link and conditionalize on !nostdlib.
14302
14303 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14304
14305         * doc/extend.texi (Function Attributes, Variable Attributes):
14306         Fix typos.
14307         * doc/invoke.texi (Debugging Options, Optimize Options)
14308         (i386 and x86-64 Options, MCore Options): Likewise.
14309
14310 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
14311
14312         PR debug/37890
14313         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
14314         it for block local namespace aliases.
14315         (gen_decl_die): Pass context_die to gen_namespace_die.
14316
14317 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
14318
14319         PR c/39495
14320         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
14321         minimum or maximum value.
14322
14323 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
14324
14325         * reginfo.c (globalize_reg): Recompute derived reg sets.
14326
14327 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
14328
14329         PR target/39063
14330         * libgcc2.c (mprotect): Do not use signed arguments for
14331         VirtualProtect, use DWORD arguments.  Also fix the 'may
14332         be used uninitialized' warning for the np variable.
14333
14334 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
14335
14336         PR target/39496
14337         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
14338         functions using regparm calling conventions when not optimizing.
14339         (ix86_function_sseregparm): Similarly for sseregparm calling
14340         conventions.
14341
14342 2009-03-19  Li Feng  <nemokingdom@gmail.com>
14343
14344         PR middle-end/39500
14345         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
14346         dependence if the first conflict is after niter iterations.
14347
14348 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
14349
14350         PR middle-end/38609
14351         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
14352         functions with dynamic stack-pointer adjustments.
14353
14354 2009-03-19  Ben Elliston  <bje@au.ibm.com>
14355
14356         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
14357         option; change to -msdata=data.
14358
14359 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14360
14361         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
14362         and -fopenmp.
14363
14364 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
14365
14366         PR target/35180
14367         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
14368
14369 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
14370
14371         * doc/invoke.texi (Code Gen Options): Expand discussion of
14372         -fno-common.
14373
14374 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
14375
14376         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
14377         * matrix-reorg.c (struct matrix_info): Likewise.
14378         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
14379         * rtl.h (struct mem_attrs): Likewise.
14380         * df.h (struct df): Likewise.
14381         * tree-data-ref.h (struct data_dependence_relation): Likewise.
14382         * ira-int.h (struct ira_allocno): Likewise.
14383         * df-scan.c (struct df_collection_rec): Likewise.
14384         * ira.c (struct equivalence): Likewise.
14385         * function.c (struct temp_slot): Likewise.
14386         * cfgloop.h (struct loop): Likewise.
14387
14388         PR debug/39485
14389         * function.c (use_register_for_decl): When not optimizing, disregard
14390         register keyword for variables with types containing methods.
14391
14392 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
14393
14394         PR middle-end/39447
14395         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
14396         (is_simple_operand): Call contains_component_ref_p before calling data
14397         reference analysis that would fail on COMPONENT_REFs.
14398
14399         * tree-vrp.c (search_for_addr_array): Fix formatting.
14400
14401 2009-03-18  Richard Guenther  <rguenther@suse.de>
14402
14403         * tree-vect-transform.c (vect_loop_versioning): Fold the
14404         generated comparisons.
14405         * tree-vectorizer.c (set_prologue_iterations): Likewise.
14406         (slpeel_tree_peel_loop_to_edge): Likewise.
14407
14408 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14409
14410         PR middle-end/37805
14411         * opts.c (print_specific_help): In addition to `undocumented',
14412         accept `separate' and `joined' flags if passed alone.  Describe
14413         output by the first matched one of those.
14414         (common_handle_option): Skip over empty strings.
14415         * gcc.c (display_help): Fix help string for `--help='.
14416         * doc/invoke.texi (Option Summary, Overall Options): With
14417         `--help=', classes and qualifiers can both be repeated, but
14418         only the latter can be negated.  One should not pass only
14419         negated qualifiers.  Fix markup and examples.
14420
14421         Revert
14422         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
14423         PR middle-end/37805
14424         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
14425         and -fhelp=separate.
14426
14427 2009-03-17  Jing Yu  <jingyu@google.com>
14428
14429         PR middle-end/39378
14430         * function.h (struct rtl_data): Move is_thunk from here...
14431         (struct function): ...to here.
14432         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
14433         * varasm.c (assemble_start_function): Change is_thunk from crtl to
14434         cfun.
14435         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
14436         cfun.
14437         (alpha_does_function_need_gp, alpha_start_function): Likewise.
14438         (alpha_output_function_end_prologue): Likewise.
14439         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
14440         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
14441         (rs6000_output_function_epilogue): Likewise.
14442         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
14443
14444 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
14445
14446         PR target/39482
14447         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
14448         from different units in a single alternative.
14449         (*truncdfsf_i387): Ditto.
14450         (*truncxfsf2_mixed): Ditto.
14451         (*truncxfdf2_mixed): Ditto.
14452
14453 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
14454
14455         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
14456         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
14457
14458         PR debug/39474
14459         * tree-ssa-live.c (remove_unused_locals): Don't remove local
14460         unused non-artificial variables when not optimizing.
14461
14462         PR debug/39471
14463         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
14464         DW_TAG_imported_module even if decl is IMPORTED_DECL with
14465         NAMESPACE_DECL in its DECL_INITIAL.
14466
14467         PR middle-end/39443
14468         * optabs.c (set_user_assembler_libfunc): New function.
14469         * expr.h (set_user_assembler_libfunc): New prototype.
14470         * c-common.c: Include libfuncs.h.
14471         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
14472         for memcmp, memset, memcpy, memmove and abort.
14473         * Makefile.in (c-common.o): Depend on libfuncs.h.
14474
14475         PR debug/39412
14476         * dwarf2out.c (gen_inlined_enumeration_type_die,
14477         gen_inlined_structure_type_die, gen_inlined_union_type_die,
14478         gen_tagged_type_instantiation_die): Removed.
14479         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
14480         do nothing.
14481
14482 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
14483
14484         PR testsuite/38526
14485         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
14486         its use.
14487         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
14488         (check-parallel-%): Ditto.
14489         (check-consistency): Ditto.
14490
14491 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
14492
14493         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
14494         local variable rhs by NULL_TREE.
14495
14496 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14497
14498         PR target/39477
14499         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
14500
14501 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14502
14503         PR target/39476
14504         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
14505
14506 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14507
14508         PR target/39473
14509         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
14510         for ms->sysv ABI calls only in 64bit mode.
14511
14512         * config/i386/i386.md (untyped_call): Support 32bit.
14513
14514 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
14515
14516         * doc/extend.texi: Replace x86_65 with x86_64.
14517
14518 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
14519
14520         PR tree-optimization/39455
14521         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
14522         mismatches for POINTER_TYPE_P (type).
14523         (number_of_iterations_le): Likewise.
14524
14525 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14526
14527         * config/picochip/picochip.c: Removed profiling support.
14528         * config/picochip/picochip.md: Removed profiling instruction.
14529         * config/picochip/picochip.h: Removed profiling builtin.
14530
14531 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
14532
14533         * doc/install.texi (--with-host-libstdcxx): Document.
14534
14535 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
14536
14537         PR target/34299
14538         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
14539         generate a warning if the function name does not begin with
14540         "__vector" and the function has either the 'signal' or 'interrupt'
14541         attribute, from here to ...
14542         (avr_declare_function_name): ...here. New function.
14543         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
14544         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
14545
14546 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
14547
14548         PR bootstrap/39454
14549         * cse.c (fold_rtx): Don't modify original const_arg1 when
14550         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
14551         separate variable instead.
14552         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
14553         from out of range shift counts.
14554         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
14555
14556 2009-03-13  Catherine Moore  <clm@codesourcery.com>
14557
14558         * config/i386/x-mingw32 (host-mingw32.o): Replace
14559         diagnostic.h with $(DIAGNOSTIC_H).
14560
14561 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
14562
14563         PR target/39431
14564         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
14565         predicate.
14566         * config/i386/sync.md (sync_compare_and_swap<mode>,
14567         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
14568         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
14569         into a register.
14570         (sync_double_compare_and_swapdi_pic,
14571         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
14572         cmpxchg8b_pic_memory_operand instead of just memory_operand.
14573
14574 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14575
14576         PR target/39445
14577         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
14578
14579 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14580
14581         PR target/39327
14582         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14583         (avx_addsubv4df3): Likewise.
14584         (*avx_addsubv4sf3): Likewise.
14585         (sse3_addsubv4sf3): Likewise.
14586
14587 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14588
14589         PR target/38824
14590         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
14591
14592 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
14593
14594         PR debug/39432
14595         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14596         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14597         registers for allocnos created from user-defined variables.
14598
14599 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14600
14601         PR target/39181
14602         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14603         of non-integer mode as well.
14604
14605 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
14606
14607         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14608         for functions for which the parameter types are unknown.
14609
14610 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
14611
14612         PR target/39137
14613         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
14614         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14615         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14616         * config/i386/i386.c (ix86_local_alignment): For
14617         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14618         long long variables on the stack to avoid dynamic realignment.
14619         Allow the first argument to be a decl rather than type.
14620         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14621
14622 2009-03-11  Nick Clifton  <nickc@redhat.com>
14623
14624         PR target/5362
14625         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14626         options.
14627         Add description to mno-lsim option.
14628         * config/mcore/mcore.h: Remove comment about deprecated m4align
14629         option.
14630         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14631         * doc/invoke.texi: Add description of mno-lsim and
14632         mstack-increment options.
14633
14634         * config/fr30/fr30.opt: Document the -mno-lsim option.
14635         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14636         and -mno-lsim options.
14637
14638 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14639
14640         * fold-const.c (fold_comparison): Only call fold_inf_compare
14641         if the mode supports infinities.
14642
14643 2009-03-11  Jason Merrill  <jason@redhat.com>
14644
14645         PR debug/39086
14646         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14647         end already did.  Notice GIMPLE_CALL modifications of the result.
14648         Don't copy debug information from an ignored decl or a decl from
14649         another function.
14650
14651 2009-03-10  Richard Guenther  <rguenther@suse.de>
14652             Nathan Froyd  <froydnj@codesourcery.com>
14653
14654         PR middle-end/37850
14655         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
14656         (__divMODE3): Likewise.
14657
14658 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
14659
14660         PR tree-optimization/39394
14661         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14662         DECL_SIZE_UNIT of variable length FIELD_DECLs.
14663
14664 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14665
14666         * recog.c (verfiy_changes): Disallow renaming of hard regs in
14667         inline asms for register asm ("") declarations.
14668
14669 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
14670
14671         * fold-const.c (fold_unary): Fix comment.
14672
14673 2009-03-07  Jan Hubicka  <jh@suse.cz>
14674
14675         PR target/39361
14676         * tree-inline.c (setup_one_parameter): Do replacement of const
14677         argument by constant in SSA form.
14678
14679 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14680
14681         PR middle-end/38028
14682         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14683         determine alignment passed to assign_stack_local.
14684         (assign_parms_unsplit_complex): Likewise.
14685         * except.c (sjlj_build_landing_pads): Likewise.
14686
14687 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14688
14689         PR middle-end/39360
14690         * tree-flow.h (add_referenced_var): Return bool instead of void.
14691         * tree-dfa.c (add_referenced_var): Return result of
14692         referenced_var_check_and_insert call.
14693         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14694         of referenced_var_check_and_insert.
14695
14696         PR debug/39372
14697         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
14698         (gen_variable_die): Emit DW_AT_location on abstract static variable's
14699         DIE, don't emit it if abstract origin already has it.
14700         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14701         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14702
14703 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14704
14705         * genpreds.c (needs_variable): Fix parentheses at variable name
14706         detection.
14707         (write_tm_constrs_h): Indent generated code.
14708
14709 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14710
14711         * doc/extend.texi (Function Attributes): Add documentation
14712         for isr attributes.
14713
14714 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14715
14716         PR debug/39387
14717         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14718         take locus from its DECL_SOURCE_LOCATION instead of input_location.
14719
14720 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
14721
14722         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14723         the loop as bad.
14724
14725 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
14726
14727         PR debug/39379
14728         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14729         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14730
14731 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
14732
14733         * config/i386/i386.md (R8_REG, R9_REG): New constants.
14734         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14735         constants instead of magic numbers.
14736         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14737         (QI_REG_P): Ditto.
14738         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14739         (x86_64_ms_abi_int_parameter_registers): Ditto.
14740         (x86_64_int_return_registers): Ditto.
14741         (ix86_maybe_switch_abi): Ditto.
14742         (ix86_expand_call): Ditto for clobbered_registers array.
14743         (ix86_hard_regno_mode_ok): Ditto.
14744         (x86_extended_QIreg_mentioned_p): Ditto.
14745
14746 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
14747
14748         PR tree-optimization/39349
14749         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14750
14751         * combine.c (gen_lowpart_for_combine): Use omode when generating
14752         clobber.
14753
14754 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
14755
14756         PR rtl-optimization/39235
14757         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14758
14759 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14760
14761         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14762
14763 2009-03-04  Richard Guenther  <rguenther@suse.de>
14764
14765         PR tree-optimization/39362
14766         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14767         that occur in abnormal PHIs should be varying.
14768
14769 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14770
14771         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14772         Extend comments.
14773         (simple_iv):  Take loop as an argument instead of statement.
14774         * tree-scalar-evolution.h (simple_iv): Declaration changed.
14775         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14776         to simple_iv.
14777         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14778         Ditto.
14779         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14780         * matrix-reorg.c (analyze_transpose): Ditto.
14781         * tree-data-ref.c (dr_analyze_innermost): Ditto.
14782         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14783         * tree-predcom.c (ref_at_iteration): Ditto.
14784         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14785
14786 2009-03-04  Richard Guenther  <rguenther@suse.de>
14787
14788         PR tree-optimization/39358
14789         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14790         escaped_id and callused_id.
14791         (solve_graph): Likewise.
14792
14793 2009-03-04  Richard Guenther  <rguenther@suse.de>
14794
14795         PR tree-optimization/39339
14796         * tree-sra.c (try_instantiate_multiple_fields): Make it
14797         no longer ICE on the above.
14798
14799 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
14800
14801         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14802         that fits within Pmode.
14803
14804 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14805
14806         PR middle-end/10109
14807         * tm.texi (LIBCALL_VALUE): Update description.
14808
14809 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14810
14811         PR middle-end/34443
14812         * doc/extend.texi (section): Update description.
14813
14814 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
14815
14816         PR middle-end/39345
14817         * tree-inline.c (remapped_type): New.
14818         (can_be_nonlocal): Call remapped_type instead of remap_type.
14819
14820 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14821
14822         PR fortran/39354
14823         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14824         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14825
14826 2009-03-03  Richard Guenther  <rguenther@suse.de>
14827
14828         PR middle-end/39272
14829         * tree.c (tree_nonartificial_location): New function.
14830         * tree.h (tree_nonartificial_location): Declare.
14831         * builtins.c (expand_builtin_memory_chk): Provide location
14832         of the call location for artificial function pieces.
14833         (maybe_emit_chk_warning): Likewise.
14834         (maybe_emit_sprintf_chk_warning): Likewise.
14835         (maybe_emit_free_warning): Likewise.
14836         * expr.c (expand_expr_real_1): Likewise.
14837
14838 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14839
14840         PR tree-optimization/39343
14841         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14842         COMPONENT_REF t has ARRAY_TYPE.
14843
14844 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
14845
14846         PR middle-end/39335
14847         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14848         when the type precision of the induction variable should be
14849         larger than the type precision of nit.
14850         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14851         * graphite.c (graphite_loop_normal_form): Same.
14852         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14853
14854 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14855
14856         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14857         (*call_1_rex64_ms_sysv): Use named constants instead of magic
14858         numbers to describe clobbered registers.
14859         (*call_value_0_rex64_ms_sysv): Ditto.
14860         * config/i386/mmx.md (mmx_emms): Ditto.
14861         (mmx_femms): Ditto.
14862
14863 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
14864
14865         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14866         of ABI_64.
14867
14868 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14869
14870         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14871         (spu_section_type_flags): New function.
14872
14873 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14874
14875         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14876         reg_class_contents of FLOAT_REGS into a temporary.
14877
14878 2009-03-02  Richard Guenther  <rguenther@suse.de>
14879             Ira Rosen  <irar@il.ibm.com>
14880
14881         PR tree-optimization/39318
14882         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14883         information to the vectorized statement.
14884
14885 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
14886
14887         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14888         variable.  Use defined names instead of magic constants for REX SSE
14889         registers.
14890
14891 2009-03-01  Richard Guenther  <rguenther@suse.de>
14892
14893         PR tree-optimization/39331
14894         * omp-low.c (lower_send_shared_vars): Do not receive new
14895         values for the reference of DECL_BY_REFERENCE parms or results.
14896
14897 2009-03-01  Jan Hubicka  <jh@suse.cz>
14898
14899         PR debug/39267
14900         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14901         BLOCK_NONLOCALIZED_VAR): New macros.
14902         (tree_block): Add nonlocalized_vars.
14903         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14904         gen_decl_die): Add origin argument.  Allow generation of die with
14905         origin at hand only.
14906         (gen_member_die, gen_type_die_with_usage, force_decl_die,
14907         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14908         of gen_*.
14909         (gen_block_die): Fix checking for unused blocks.
14910         (process_scope_var): Break out from .... ; work with origins only.
14911         (decls_for_scope) ... here; process nonlocalized list.
14912         (dwarf2out_ignore_block): Look for nonlocalized vars.
14913         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14914         vars.
14915         (dump_scope_block): Dump them.
14916         * tree-inline.c (remap_decls): Handle nonlocalized vars.
14917         (remap_block): Likewise.
14918         (can_be_nonlocal): New predicate.
14919         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14920
14921 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14922
14923         * configure: Regenerate.
14924
14925 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14926
14927         * optc-gen.awk: No need to duplicate option flags twice.
14928         Reuse help texts for duplicate options which do not have any.
14929
14930         * gcc.c (display_help): Document --version.
14931
14932         * gcc.c (main): If print_help_list and verbose_flag, ensure
14933         driver output comes before subprocess output.
14934
14935         * optc-gen.awk: Assign all remaining fields to help string,
14936         space-separated, for multi-line help in *.opt.
14937
14938         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14939         -Wno-pedantic-ms-format is for MinGW targets only.
14940
14941         * doc/options.texi (Option file format): Fix bad indentation,
14942         restoring dropped sentence.
14943
14944 2009-02-28  Jan Hubicka  <jh@suse.cz>
14945
14946         * tree-inline.c (tree_function_versioning): Output debug info.
14947
14948 2009-02-28  Jan Hubicka  <jh@suse.cz>
14949
14950         PR debug/39267
14951         * tree-inline.c (setup_one_parameter): Do not copy propagate
14952         arguments when not optimizing.
14953
14954 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
14955
14956         PR target/39327
14957         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14958         (avx_addsubv4df3): Likewise.
14959         (*avx_addsubv4sf3): Likewise.
14960         (sse3_addsubv4sf3): Likewise.
14961         (*avx_addsubv2df3): Likewise.
14962         (sse3_addsubv2df3): Likewise.
14963         (avx_unpckhps256): Correct item selectors.
14964         (avx_unpcklps256): Likewise.
14965         (avx_unpckhpd256): Likewise.
14966         (avx_unpcklpd256): Likewise.
14967
14968 2009-02-28  Jan Hubicka  <jh@suse.cz>
14969
14970         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14971         static vars.
14972         (copy_arguments_for_versioning): If var is declared don't declare it.
14973         (tree_function_versioning): First setup substitutions and then copy
14974         args.
14975
14976 2009-02-27  Jan Hubicka  <jh@suse.cz>
14977
14978         PR debug/39267
14979         * cgraph.h (varpool_output_debug_info): Remove.
14980         * cgraphunit.c (varpool_output_debug_info): Remove.
14981         * dwarf2out.c (deferred_locations_struct): New struct
14982         (deferred_locations): New type.
14983         (deferred_locations_list): New static var.
14984         (deffer_location): New function.
14985         (gen_variable_die): Use it.
14986         (decls_for_scope): Output info on local static vars.
14987         (dwarf2out_finish): Process deferred locations.
14988         * varpool.c (varpool_output_debug_info): Remove.
14989
14990 2009-02-27  Jan Hubicka  <jh@suse.cz>
14991
14992         PR debug/39267
14993         * tree.h (TREE_PROTECTED): Fix comment.
14994         (BLOCK_HANDLER_BLOCK): Remove.
14995         (struct tree_block): Remove handler_block add body_block.
14996         (inlined_function_outer_scope_p): New.
14997         (is_body_block): Remove.
14998         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14999         * dwarf2out.c (is_inlined_entry_point): Remove.
15000         (add_high_low_attributes): Use inlined_function_outer_scope_p.
15001         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
15002         code.
15003         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
15004         * gimplify.c (gimplify_expr): Gimplify body blocks.
15005         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
15006         block with multiple subblocks.
15007         (dump_scope_block): Prettier output; dump more flags and info.
15008         (dump_scope_blocks): New.
15009         (remove_unused_locals): Use dump_scope_blocks.
15010         * tree-flow.h (dump_scope_blocks): Declare.
15011         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
15012         * stmt.c (is_body_block): Remove.
15013         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
15014         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
15015
15016 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
15017
15018         PR middle-end/39308
15019         * graphite.c (graphite_loop_normal_form): Do not call
15020         number_of_iterations_exit from a gcc_assert.
15021
15022 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15023
15024         * config/s390/s390.c (s390_swap_cmp): Look for conditional
15025         jumps if COND is NULL.
15026         (find_cond_jump): New function.
15027         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
15028         * config/s390/s390.md: Remove z10_cobra attribute value.
15029
15030 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
15031
15032         * config/alpha/alpha.h (alpha_expand_mov): Return false if
15033         force_const_mem returns NULL_RTX.
15034
15035 2009-02-26  Jan Hubicka  <jh@suse.cz>
15036
15037         PR debug/39267
15038         * cgraph.h (varpool_output_debug_info): Remove.
15039         * cgraphunit.c (varpool_output_debug_info): Remove.
15040         * dwarf2out.c (deferred_locations_struct): New struct
15041         (deferred_locations): New type.
15042         (deferred_locations_list): New static var.
15043         (deffer_location): New function.
15044         (gen_variable_die): Use it.
15045         (decls_for_scope): Output info on local static vars.
15046         (dwarf2out_finish): Process deferred locations.
15047         * varpool.c (varpool_output_debug_info): Remove.
15048
15049 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
15050
15051         PR rtl-optimization/39241
15052         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
15053         to subreg_offset_representable_p.
15054
15055 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
15056
15057         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
15058         execute function prototype.  Get f and nregs from max_reg_num
15059         and get_insns.  Remove the first backward pass as it's dead,
15060         guard the forward pass by flag_expensive_optimizations.
15061         (rest_of_handle_regmove): Delete.
15062         (pass_regmove): Replace it with regmove_optimize.
15063
15064 2009-02-25  Martin Jambor  <mjambor@suse.cz>
15065
15066         PR tree-optimization/39259
15067         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
15068         calls_alloca function flags.
15069         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
15070         calls are detected.
15071
15072 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
15073
15074         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
15075         flags_set_1_rtx, flags_set_1_set): Delete.
15076         (regmove_optimize): Do not call mark_flags_life_zones.
15077
15078 2009-02-24  Julian Brown  <julian@codesourcery.com>
15079
15080         PR target/35965
15081         * config/arm/arm.c (require_pic_register): Only set
15082         cfun->machine->pic_reg once per function.
15083
15084 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
15085
15086         * doc/invoke.texi (Link Options): Document an easier way to pass
15087         options that take arguments to the GNU linker using -Xlinker and -Wl.
15088
15089 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
15090
15091         PR target/33785
15092         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
15093
15094 2009-02-24  Richard Guenther  <rguenther@suse.de>
15095
15096         PR debug/39285
15097         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
15098
15099 2009-02-24  Richard Guenther  <rguenther@suse.de>
15100             Zdenek Dvorak  <ook@ucw.cz>
15101
15102         PR tree-optimization/39233
15103         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
15104         from converting them to a generic type.
15105
15106 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
15107
15108         PR tree-optimization/39260
15109         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
15110         contains a condition with a real type.
15111         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
15112
15113 2009-02-23  Jason Merrill  <jason@redhat.com>
15114
15115         PR c++/38880
15116         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
15117         narrowing_initializer_constant_valid_p.
15118         (narrowing_initializer_constant_valid_p): Don't return
15119         null_pointer_node for adding a pointer to itself.
15120
15121 2009-02-23  Jan Hubicka  <jh@suse.cz>
15122
15123         PR c/12245
15124         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
15125         resizing.
15126
15127 2009-02-23  Jan Hubicka  <jh@suse.cz>
15128
15129         PR tree-optimization/37709
15130         * tree.c (block_ultimate_origin): Move here from dwarf2out.
15131         * tree.h (block_ultimate_origin): Declare.
15132         * dwarf2out.c (block_ultimate_origin): Move to tree.c
15133         * tree-ssa-live.c (remove_unused_scope_block_p):
15134         Eliminate blocks containig no instructions nor live variables nor
15135         nested blocks.
15136         (dump_scope_block): New function.
15137         (remove_unused_locals): Enable removal of dead blocks by default;
15138         enable dumping at TDF_DETAILS.
15139
15140 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15141
15142         * config/i386/i386.c (classify_argument): Don't allow COImode
15143         and OImode.
15144         (function_arg_advance_32): Don't allow OImode.
15145         (function_arg_32): Likewise.
15146         (function_value_32): Likewise.
15147         (return_in_memory_32): Likewise.
15148         (function_arg_64): Remove OImode comment.
15149
15150 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15151
15152         PR target/39261
15153         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
15154         ix86_expand_vector_set for V4DImode in 64bit mode only.
15155         (ix86_expand_vector_init_one_var): Likewise.
15156
15157 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
15158
15159         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
15160
15161 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
15162
15163         PR bootstrap/39257
15164         * loop-iv.c: Revert last change.
15165         * emit-rtl.c: Likewise.
15166
15167 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15168
15169         PR target/39256
15170         * config/i386/i386.c (type_natural_mode): Remove an extra
15171         space in the warning message.
15172         (function_value_32): Handle 32-byte vector modes.
15173         (return_in_memory_32): Likewise.
15174
15175 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
15176
15177         * loop-iv.c (truncate_value): New function.
15178         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
15179         of lowpart_subreg.
15180         (lowpart_subreg): Move to...
15181         * emit-rtl.c: ...here.
15182
15183 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
15184
15185         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
15186         accidental and undocumented change at revision 140860.
15187
15188 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
15189
15190         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
15191         take gimple_seq * arguments.
15192         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
15193         types_compatible_p langhook.
15194
15195 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
15196             Joseph Myers  <joseph@codesourcery.com>
15197
15198         * config/arm/arm.c (arm_builtin_va_list): New function.
15199         (arm_expand_builtin_va_start): Likewise.
15200         (arm_gimplify_va_arg_expr): Likewise.
15201         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
15202         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
15203         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
15204         (va_list_type): New variable.
15205         (arm_mangle_type): Mangle va_list_type appropriately.
15206
15207 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
15208
15209         PR middle-end/39157
15210         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
15211         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
15212         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
15213         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
15214         parameter to 1000 for -O1 by default.
15215         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
15216         parameter.
15217         * loop-invariant.c: Include params.h.
15218         (move_loop_invariants): Don't call move_single_loop_invariants on
15219         very large loops.
15220
15221 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
15222
15223         * calls.c (emit_library_call_value_1): Use slot_offset instead of
15224         offset when calculating bounds for indexing stack_usage_map.  Fixes
15225         a buffer overflow with certain target setups.
15226
15227 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
15228
15229         PR target/39240
15230         * calls.c (expand_call): Clear try_tail_call if caller and callee
15231         disagree in promotion of function return value.
15232
15233 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
15234
15235         PR target/39175
15236         * c-common.c (c_determine_visibility): If visibility changed and
15237         DECL_RTL has been already set, call make_decl_rtl to update symbol
15238         flags.
15239
15240 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
15241
15242         PR c++/39188
15243         * varasm.c (assemble_variable): Don't check DECL_NAME when
15244         globalizing a variable.
15245
15246 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
15247
15248         PR c/38483
15249         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
15250         expression before any __builtin_trap call.
15251         * c-typeck.c (build_function_call): Convert and check function
15252         arguments before generating a call to a trap.  Evaluate the
15253         function arguments before the trap.
15254
15255 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
15256
15257         PR target/39228
15258         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
15259         (UNSPEC_FXAM_MEM): New unspec.
15260         (fxam<mode>2_i387_with_temp): New insn and split pattern.
15261         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
15262         memory using fxam<mode>2_i387_with_temp to remove excess precision.
15263
15264 2009-02-19  Richard Guenther  <rguenther@suse.de>
15265
15266         PR tree-optimization/39207
15267         PR tree-optimization/39074
15268         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
15269         storedanything_tree): New.
15270         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
15271         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
15272         (build_succ_graph): Add edges from STOREDANYTHING to all
15273         non-direct nodes.
15274         (init_base_vars): Initialize STOREDANYTHING.
15275         (compute_points_to_sets): Free substitution info after
15276         building the succ graph.
15277         (ipa_pta_execute): Likewise.
15278
15279         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
15280         field.
15281         (do_ds_constraint): Do not add to special var or non-pointer
15282         field solutions.
15283         (type_could_have_pointers): Split out from ...
15284         (could_have_pointers): ... here.  For arrays use the element type.
15285         (create_variable_info_for): Initialize may_have_pointers.
15286         (new_var_info): Likewise.
15287         (handle_lhs_call): Make the HEAP variable unknown-sized.
15288         (intra_create_variable_infos): Use a type with pointers for
15289         PARM_NOALIAS, make it unknown-sized.
15290
15291 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
15292
15293         PR target/39224
15294         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
15295
15296 2009-02-18  Jason Merrill  <jason@redhat.com>
15297
15298         PR target/39179
15299         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
15300         value if DECL_EXTERNAL.
15301         * tree-sra.c (sra_walk_gimple_assign): Likewise.
15302         * target.h (gcc_target::binds_local_p): Clarify "module".
15303         * tree.h (TREE_PUBLIC): Clarify "module".
15304
15305 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
15306
15307         PR target/38891
15308         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
15309         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
15310
15311 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
15312
15313         PR target/39082
15314         * c.opt (Wabi): Support C and ObjC.
15315         (Wpsabi): New.
15316
15317         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
15318
15319         * config/i386/i386.c (classify_argument): Warn once about the ABI
15320         change when passing union with long double.
15321
15322         * doc/invoke.texi: Update -Wabi for warning psABI changes.
15323
15324 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
15325
15326         PR c/35447
15327         * c-parser.c (c_parser_compound_statement): Always enter and leave
15328         a scope.
15329
15330 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15331
15332         PR target/34587
15333         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
15334
15335 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
15336
15337         PR tree-optimization/36922
15338         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
15339         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
15340         Likewise.
15341
15342 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15343
15344         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
15345         to 0 for EABI64.
15346
15347 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15348
15349         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
15350
15351 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15352
15353         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
15354         tree sharing.
15355
15356 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
15357             Richard Sandiford  <rdsandiford@googlemail.com>
15358
15359         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
15360         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
15361         (loongson_biadd): ...this.
15362
15363 2009-02-17  Richard Guenther  <rguenther@suse.de>
15364
15365         PR tree-optimization/39202
15366         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
15367         a var make sure to follow existing collapses.
15368
15369 2009-02-17  Richard Guenther  <rguenther@suse.de>
15370
15371         PR middle-end/39214
15372         * langhooks.c (lhd_print_error_function): Check for NULL block.
15373
15374 2009-02-17  Richard Guenther  <rguenther@suse.de>
15375
15376         PR tree-optimization/39204
15377         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
15378         of the PHI arg.
15379
15380 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
15381
15382         * config/soft-fp/double.h: Update from glibc CVS.
15383
15384 2009-02-17  Richard Guenther  <rguenther@suse.de>
15385
15386         PR tree-optimization/39207
15387         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
15388         strict-aliasing warnings for pointers pointing to NULL.
15389
15390 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
15391
15392         PR c/35446
15393         * c-parser.c (c_parser_braced_init): Call pop_init_level when
15394         skipping until next close brace.
15395
15396 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
15397
15398         PR target/37049
15399         * config/i386/i386.c (ix86_expand_push): Set memory alignment
15400         to function argument boundary.
15401
15402 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15403
15404         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
15405         in the lea_add. Reload eventually constraints it properly.
15406         * config/picochip/constraints.md: Remove the target constraint
15407         "b", since it is not needed anymore.
15408
15409 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
15410
15411         * gthr-dce.h: Uglify function parameter and local variable names.
15412         * gthr-gnat.h: Likewise.
15413         * gthr-mipssde.h: Likewise.
15414         * gthr-nks.h: Likewise.
15415         * gthr-posix95.h: Likewise.
15416         * gthr-posix.h: Likewise.
15417         * gthr-rtems.h: Likewise.
15418         * gthr-single.h: Likewise.
15419         * gthr-solaris.h: Likewise.
15420         * gthr-tpf.h: Likewise.
15421         * gthr-vxworks.h: Likewise.
15422         * gthr-win32.h: Likewise.
15423
15424 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
15425
15426         PR target/39196
15427         * config/i386/i386.md: Restrict the new peephole2 to move
15428         between MMX/SSE registers.
15429
15430 2009-02-15  Richard Guenther  <rguenther@suse.de>
15431
15432         Revert
15433         2009-02-13  Richard Guenther  <rguenther@suse.de>
15434
15435         * configure.ac: Enable LFS.
15436         * configure: Re-generate.
15437         * config.in: Likewise.
15438
15439 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15440
15441         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
15442         spu_srqwbyte, spu_srqwbytebc): Define.
15443         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
15444         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
15445         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
15446         "shrqby_<mode>"): New insn-and-split patterns.
15447         * config/spu/spu.c (expand_builtin_args): Determine and return
15448         number of operands using spu_builtin_description data.
15449         (spu_expand_builtin_1): Use it.
15450
15451 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
15452
15453         PR target/38056
15454         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
15455         TARGET_CONST_GP.
15456
15457 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15458
15459         PR target/39149
15460         * config/i386/i386.c (override_options): Correct warning
15461         messages for -malign-loops, -malign-jumps and -malign-functions.
15462
15463 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15464
15465         PR target/39152
15466         * config/i386/i386.md: Restrict the new peephole2 to move
15467         between the general purpose registers.
15468
15469 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15470
15471         PR target/39162
15472         * config/i386/i386.c (type_natural_mode): Add a new argument.
15473         Return the original mode and warn ABI change if vector size is 32byte.
15474         (function_arg_advance): Updated.
15475         (function_arg): Likewise.
15476         (ix86_function_value): Likewise.
15477         (ix86_return_in_memory): Likewise.
15478         (ix86_sol10_return_in_memory): Likewise.
15479         (ix86_gimplify_va_arg): Likewise.
15480         (function_arg_32): Don't warn ABX ABI change here.
15481         (function_arg_64): Likewise.
15482
15483 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15484
15485         * loop-iv.c (implies_p): In the final case, test that operands 0
15486         of the two comparisons match.
15487
15488         * config/bfin/bfin.c (find_prev_insn_start): New function.
15489         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
15490         (find_next_insn_start): Move.
15491
15492 2009-02-13  Richard Guenther  <rguenther@suse.de>
15493
15494         * configure.ac: Enable LFS.
15495         * configure: Re-generate.
15496         * config.in: Likewise.
15497
15498 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
15499
15500         PR c/35444
15501         * c-parser.c (c_parser_parms_list_declarator): Discard pending
15502         sizes on syntax error after some arguments have been parsed.
15503
15504 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15505
15506         * doc/invoke.texi (-fira): Remove.
15507
15508 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15509
15510         * caller-save.c: Replace regclass.c with reginfo.c in comments.
15511         * recog.c: Likewise.
15512         * rtl.h: Likewise.
15513
15514 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
15515
15516         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
15517         (umul_ppmm): Likewise.
15518         (count_leading_zeros): Likewise.
15519         (count_trailing_zeros): Likewise.
15520         (UMUL_TIME): Likewise.
15521
15522 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15523
15524         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
15525         soft-fp/t-softfp to tmake_file.
15526
15527         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
15528         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
15529         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
15530         IA64_BUILTIN_INFQ]: New.
15531         (ia64_init_builtins): Initialize __builtin_infq,
15532         __builtin_fabsq and __builtin_copysignq if not HPUX.
15533         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
15534         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
15535
15536         * config/ia64/lib1funcs.asm (__divtf3): Define only if
15537         SHARED is defined.
15538         (__fixtfti): Likewise.
15539         (__fixunstfti): Likewise.
15540         (__floattitf): Likewise.
15541
15542         * config/ia64/libgcc-glibc.ver: New.
15543         * config/ia64/t-fprules-softfp: Likewise.
15544         * config/ia64/sfp-machine.h: Likewise.
15545
15546         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
15547         (LIBGCC2_TF_CEXT): Likewise.
15548         (TF_SIZE): Likewise.
15549         (TARGET_INIT_LIBFUNCS): Likewise.
15550
15551         * config/ia64/t-glibc (SHLINB_MAPFILES):
15552         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
15553
15554 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15555
15556         * config/i386/i386.c (construct_container): Rewrite processing
15557         BLKmode with X86_64_SSE_CLASS.
15558
15559 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
15560
15561         PR target/39152
15562         * config/i386/i386.md: Replace simplify_replace_rtx with
15563         replace_rtx in the new peephole2.
15564
15565 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
15566
15567         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
15568         loop unrolling do not happen at -O2.
15569
15570 2009-02-12  Michael Matz  <matz@suse.de>
15571
15572         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
15573
15574 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15575
15576         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
15577         for -g3.
15578
15579 2009-02-12  Ben Elliston  <bje@au.ibm.com>
15580
15581         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15582         patterns when updating the back chain.  Missed in the 2009-02-10
15583         change.
15584
15585 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
15586
15587         * doc/extend.texi (Decimal Floating Types): Update identifier of
15588         draft TR and list of missing support.
15589
15590 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
15591
15592         PR middle-end/39154
15593         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15594         bit to variable length decl's flags, add it also to its
15595         pointer replacement variable.
15596
15597 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
15598             Jakub Jelinek  <jakub@redhat.com>
15599
15600         PR target/39118
15601         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15602         (memory_blockage): New expander.
15603         (*memory_blockage): New insn pattern.
15604         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15605         instead of general blockage at the end of function prologue when
15606         frame pointer is used to access red zone area.  Do not emit blockage
15607         when profiling, it is emitted in generic code.
15608         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15609         function epilogue when frame pointer is used to access red zone area.
15610
15611 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
15612
15613         PR target/38824
15614         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15615         by arithmetic with memory operands.
15616         * config/i386/predicates.md (commutative_operator): New.
15617
15618 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
15619
15620         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15621         bulleted lists.
15622
15623 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
15624
15625         * alias.h (record_alias_subset): Declare.
15626         * alias.c (record_alias_subset): Make global.
15627
15628 2009-02-10  Nick Clifton  <nickc@redhat.com>
15629
15630         * tree-parloops.c: Change license to GPLv3.
15631         * ipa-struct-reorg.c: Change license to GPLv3.
15632         * ipa-struct-reorg.h: Change license to GPLv3.
15633
15634 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
15635
15636         PR c/39084
15637         * c-decl.c (start_struct): Return NULL on error.
15638
15639 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
15640
15641         PR middle-end/39124
15642         * cfgloopmanip.c (remove_path): Call remove_bbs after
15643         cancel_loop_tree, not before it.
15644
15645         PR target/39139
15646         * function.h (struct function): Add has_local_explicit_reg_vars bit.
15647         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15648         VAR_DECLs were seen.
15649         * tree-ssa-live.c (remove_unused_locals): Recompute
15650         cfun->has_local_explicit_reg_vars.
15651         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15652         copies or clearings if cfun->has_local_explicit_reg_vars.
15653
15654 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
15655
15656         PR target/39118
15657         * config/i386/i386.c (expand_prologue): Emit blockage at the end
15658         of function prologue when frame pointer is used to access
15659         red zone area.
15660
15661 2009-02-10  Richard Guenther  <rguenther@suse.de>
15662
15663         PR middle-end/39127
15664         * gimplify.c (gimple_regimplify_operands): Always look if
15665         we need to create a temporary.
15666
15667 2009-02-10  Richard Guenther  <rguenther@suse.de>
15668
15669         PR tree-optimization/39132
15670         * tree-loop-distribution.c (todo): New global var.
15671         (generate_memset_zero): Trigger TODO_rebuild_alias.
15672         (tree_loop_distribution): Return todo.
15673
15674 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
15675
15676         PR target/39119
15677         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15678         (x86_64_reg_class_name): Removed.
15679         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
15680         first one isn't X86_64_SSE_CLASS or any other ones aren't
15681         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
15682         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15683         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
15684         and 3 X86_64_SSEUP_CLASS.
15685         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
15686         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15687
15688 2009-02-10  Ben Elliston  <bje@au.ibm.com>
15689
15690         * config/rs6000/rs6000.md (allocate_stack): Always use an update
15691         form instruction to update the stack back chain word, even if the
15692         user has disabled the generation of update instructions.
15693         (movdi_<mode>_update_stack): New.
15694         (movsi_update_stack): Likewise.
15695         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15696         always use an update form instruction to update the stack back
15697         chain word.
15698
15699 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
15700
15701         PR middle-end/38953
15702         * graphite.c (if_region_set_false_region): After moving a region in
15703         the false branch of a condition, remove the empty dummy basic block.
15704         (gloog): Remove wrong fix for PR38953.
15705
15706 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15707
15708         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15709         generation due to implicit sign extension.
15710
15711 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
15712
15713         PR middle-end/38981
15714         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15715         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15716
15717 2009-02-09  Richard Guenther  <rguenther@suse.de>
15718
15719         PR middle-end/35202
15720         * convert.c (convert_to_real): Disable (float)fn((double)x)
15721         to fnf(x) conversion if errno differences may occur and
15722         -fmath-errno is set.
15723
15724 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
15725
15726         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15727         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15728         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15729
15730 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15731
15732         PR c/35434
15733         * c-common.c (handle_alias_attribute): Disallow attribute for
15734         anything not a FUNCTION_DECL or VAR_DECL.
15735
15736 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
15737
15738         PR c/39035
15739         * real.c (do_compare): Special-case compare of zero against
15740         decimal float value.
15741
15742 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15743
15744         PR c/36432
15745         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15746         as indicating flexible array members unless the field itself is
15747         being declarared as the incomplete array.
15748
15749 2009-02-06  Jan Hubicka  <jh@suse.cz>
15750
15751         PR tree-optimization/38844
15752         * ipa-inline.c (try_inline): Stop inlining recursion when edge
15753         is already inlined.
15754
15755 2009-02-06  Richard Guenther  <rguenther@suse.de>
15756
15757         PR middle-end/38977
15758         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15759         fork because we may expand it as __gcov_fork.
15760
15761 2009-02-06  Nick Clifton  <nickc@redhat.com>
15762
15763         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
15764
15765 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
15766
15767         PR tree-optimization/35659
15768         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15769         vn_phi_eq): Shortcut if hashcode does not match.
15770         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15771         NULL operands.
15772         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15773         and avoid iterative_hash_expr.
15774         (FOR_EACH_VALUE_ID_IN_SET): New.
15775         (value_id_compare): Remove.
15776         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15777         sort expressions by value id.
15778
15779 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
15780
15781         PR target/38991
15782         * config/sh/predicates.md (general_movsrc_operand): Don't check
15783         the subreg of system registers here.
15784
15785 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
15786
15787         PR c++/39106
15788         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15789         on the copied decl.
15790
15791 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
15792
15793         PR rtl-optimization/39110
15794         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15795         addresses, not aligned ones.
15796
15797 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
15798             Richard Guenther  <rguenther@suse.de>
15799
15800         PR tree-optimization/39100
15801         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15802         comment says and add edges.
15803
15804 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
15805
15806         PR c/35435
15807         * c-common.c (handle_tls_model_attribute): Ignore attribute for
15808         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15809
15810 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
15811
15812         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15813         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15814         register_bb_in_sese, new_sese, free_sese): Moved.
15815         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15816         outermost_loop_in_scop, build_scop_iteration_domain,
15817         expand_scalar_variables_ssa_name, get_vdef_before_scop,
15818         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15819         Use loop_in_sese_p instead of loop_in_scop_p.
15820         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15821         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15822         (scopdet_basic_block_info): Fix bug in scop detection.
15823         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15824         eq_loop_to_cloog_loop): Remove.
15825         (nb_loops_around_loop_in_scop, nb_loop
15826         ref_nb_loops): Moved here...
15827         * graphite.h (ref_nb_loops): ... from here.
15828         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15829         (loop_domain_dim, loop_iteration_vector_dim): Remove.
15830         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15831         * testsuite/gcc.dg/graphite/scop-19.c: New
15832
15833 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
15834             Hans-Peter Nilsson  <hp@axis.com>
15835
15836         PR rtl-optimization/37889
15837         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15838         Move offset handling from PLUS to before the switch.  Use new
15839         arguments when considering SYMBOL_REFs too.
15840         (rtx_addr_can_trap_p): Pass dummy offset and size.
15841         (enum may_trap_p_flags): Remove.
15842         (may_trap_p_1): Pass size from MEM_SIZE.
15843
15844         PR rtl-optimization/38921
15845         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15846         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15847         * rtlanal.c (may_trap_after_code_motion_p): Delete.
15848         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15849
15850 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
15851
15852         AVX Programming Reference (January, 2009)
15853         * config/i386/sse.md (*vpclmulqdq): New.
15854
15855 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
15856
15857         PR tree-optimization/38977
15858         PR gcov-profile/38292
15859         * calls.c (special_function_p): Disregard __builtin_ prefix.
15860
15861 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15862
15863         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15864         non-indexable addresses even before reload.
15865
15866 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15867
15868         PR c/29129
15869         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15870         as having variable size.  Do not give an error for unnamed
15871         parameters with [*] declarators.  Give a warning for type names
15872         with [*] declarators and mark them as variable size.
15873         * c-parser.c (c_parser_sizeof_expression): Do not give an error
15874         for sizeof applied to [*] type names.
15875
15876 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15877
15878         PR C++/36607
15879         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15880
15881 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15882
15883         * gcc.c (process_command): Update copyright notice dates.
15884         * gcov.c (print_version): Likewise.
15885         * gcov-dump.c (print_version): Likewise.
15886         * mips-tfile.c (main): Likewise.
15887         * mips-tdump.c (main): Likewise.
15888
15889 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15890
15891         PR c/35433
15892         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15893         for composite type involving a zero-length array type.
15894
15895 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15896
15897         PR target/35318
15898         * function.c (match_asm_constraints_1): Skip over
15899         initial optional % in the constraint.
15900
15901         PR inline-asm/39059
15902         * c-parser.c (c_parser_postfix_expression): If fixed point is not
15903         supported, don't accept FIXED_CSTs.
15904         * c-decl.c (finish_declspecs): Error if fixed point is not supported
15905         and _Sat is used without _Fract/_Accum.  Set specs->type to
15906         integer_type_node for cts_fract/cts_accum if fixed point is not
15907         supported.
15908
15909 2009-02-02  Catherine Moore  <clm@codesourcery.com>
15910
15911         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
15912
15913 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15914
15915         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15916         (ABI_HAS_64BIT_SYMBOLS): Use it.
15917         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15918
15919 2009-02-02  Paul Brook  <paul@codesourcery.com>
15920
15921         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15922
15923 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
15924
15925         PR inline-asm/39058
15926         * recog.h (asm_operand_ok): Add constraints argument.
15927         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
15928         recurse on matching constraint.
15929         (check_asm_operands): Pass constraints as 3rd argument to
15930         asm_operand_ok.  Don't look up matching constraint here.
15931         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15932         to asm_operand_ok.
15933
15934 2009-02-02  Ben Elliston  <bje@au.ibm.com>
15935
15936         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15937         TARGET_NARROW_VOLATILE_BITFIELD macro names.
15938
15939 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15940
15941         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15942         information.  Remove some obsolete information.  Reorganize.
15943
15944         * config/pa/fptr.c: Revert license to GPL 2.
15945         * config/pa/milli64.S: Likewise.
15946
15947 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15948
15949         PR target/38904
15950         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
15951         LIBRARY name in, instead of hard-coding it.
15952         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
15953         extra target make frag to tmake_files according to EH model.
15954         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
15955         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
15956         frags that define makefile variable EH_MODEL appropriately.
15957         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
15958         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
15959         to "-sjlj" according to type of EH configured.
15960         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15961         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
15962         to "_sjlj" according to type of EH configured.
15963         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15964         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
15965         (SHLIB_LINK):  Add missing semicolon to if-else construct.
15966         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15967         string value of "pe_dll" command-line option.
15968         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
15969         (SHLIB_SONAME):  Use it when overriding t-cygming default.
15970         (SHLIB_IMPLIB):  Override t-cygming default.
15971         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15972         string value of "pe_dll" command-line option.
15973
15974 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15975
15976         PR target/38952
15977         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
15978         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
15979
15980 2009-01-31  Richard Guenther  <rguenther@suse.de>
15981
15982         PR tree-optimization/38937
15983         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15984         computing the transitive closure.
15985
15986 2009-01-30  Richard Guenther  <rguenther@suse.de>
15987
15988         PR tree-optimization/39041
15989         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15990         Propagate variable indices only if the types match for this stmt.
15991
15992 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
15993
15994         PR target/39013
15995         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15996         inline but never defined.
15997
15998 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
15999
16000         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
16001         (*insv_h_di_reg_extimm): New insn.
16002         (*insv_l<mode>_reg_extimm): New insn.
16003
16004 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16005
16006         * config/picochip/picochip.c (flag_conserve_stack): set
16007         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
16008         fconserve-stack. Reduce call-overhead used by inliner.
16009
16010 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16011
16012         PR/38157
16013         * common.opt (flag_conserve_stack): Initialised to zero.
16014
16015 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
16016
16017         PR/39002
16018         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
16019         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
16020         method.
16021
16022 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
16023
16024         * ira-color.c (allocno_reload_assign): Update comments.
16025         * regmove.c (regmove_optimize): Likewise.
16026
16027         * ra.h: Removed.
16028
16029 2009-01-29  Robert Millan  <rmh@aybabtu.com>
16030
16031         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
16032         * config/i386/kopensolaris-gnu.h: New file.  Undefine
16033         `MD_UNWIND_SUPPORT'.
16034         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
16035
16036 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
16037
16038         PR tree-optimization/39007
16039         * tree-loop-distribution.c (generate_builtin): Use
16040         recompute_dominator to compute the immediate dominator of the
16041         basic block just after the loop.
16042
16043 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16044
16045         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
16046         (ASM_OUTPUT_DWARF_PCREL): Define.
16047
16048 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
16049
16050         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
16051         * doc/passes.texi: Remove entries about regclass, local-alloc, and
16052         global.  Modify entries about regmove and IRA.
16053
16054         * ra-conflict.c: Remove the file.
16055
16056         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
16057
16058         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
16059         (pass_regclass_init): Rename to pass_reginfo_init.
16060
16061         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
16062
16063         * toplev.h (flag_ira): Remove.
16064
16065         * caller-save.c (setup_save_areas): Remove flag_ira.
16066
16067         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
16068
16069         * global.c: Remove the file.
16070
16071         * opts.c (decode_options): Remove flag_ira.
16072
16073         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
16074
16075         * regmove.c: Modify file description.
16076         (find_use_as_address, try_auto_increment): Define them only if
16077         AUTO_INC_DEC is defined.
16078         (replacement_quality, replace_in_call_usage, fixup_match_1,
16079         stable_and_no_regs_but_for_p): Remove.
16080         (reg_set_in_bb): Make it static.
16081         (regmove_optimize): Remove flag_ira and code which worked for
16082         !flag_ira.
16083
16084         * local-alloc.c: Remove the file.
16085
16086         * common.opt (fira): Remove.
16087
16088         * ira.c: Include except.h.
16089         (eliminable_regset): Move from global.c.
16090         (mark_elimination): Ditto.  Remove flag_ira.
16091         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
16092         equiv_mem_modified, validate_equiv_mem_from_store,
16093         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
16094         contains_replace_regs, memref_referenced_p, memref_used_between_p,
16095         no_equiv, recorded_label_ref): Move from local-alloc.c.
16096         (update_equiv_regs): Ditto.  Make it static.
16097         (print_insn_chain, print_insn_chains): Move it from global.c.
16098         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
16099         (build_insn_chain): Ditto.  Make it static.
16100         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
16101         Rename to init_live_subregs.
16102         (gate_ira): Remove flag_ira.
16103
16104         * regclass.c: Rename reginfo.c.  Change file description.
16105         (FORBIDDEN_INC_DEC_CLASSES): Remove.
16106         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
16107         (init_reg_sets_1): Remove code for evaluation of
16108         reg_class_superclasses and losing_caller_save_reg_set.
16109         (init_regs): Remove init_reg_autoinc.
16110         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
16111         ok_for_base_p_nonstrict): Remove.
16112         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
16113         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
16114         corresponding entries.
16115         (dump_regclass, record_operand_costs, scan_one_insn,
16116         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
16117         record_address_regs, auto_inc_dec_reg_p): Remove.
16118         (gt-regclass.h): Rename to gt-reginfo.h.
16119
16120         * rtl.h (dump_global_regs, retry_global_alloc,
16121         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
16122
16123         * Makefile.in (RA_H): Remove.
16124         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
16125         Rename regclass.o to reginfo.o.
16126         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
16127         gt-reginfo.h.
16128         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
16129         (GTFILES): Rename regclass.c to reginfo.c.
16130
16131         * passes.c (init_optimization_passes): Remove pass_local_alloc and
16132         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
16133
16134         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16135         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
16136         Remove flag_ira.
16137         (finish_spills): Ditto.  Remove code for !flag_ira.
16138
16139 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
16140
16141         PR middle-end/35854
16142         * doc/invoke.texi (rtl debug options): Complete rewrite.
16143         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
16144         to auto_inc_dec".
16145         * mode-switching.c (pass_mode_switching): Rename pass from
16146         "mode-sw" to "mode_sw".
16147         * except.c (pass_convert_to_eh_ranges): Rename pass from
16148         "eh-ranges" to "eh_ranges".
16149         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
16150         to "subreg1".
16151
16152
16153 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
16154             Alexander Monakov  <amonakov@ispras.ru>
16155
16156         PR middle-end/38857
16157         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
16158         register.
16159         (move_exprs_to_boundary): Change return type and pass through
16160         should_move from move_op.  Relax assert.  Update usage ...
16161         (schedule_expr_on_boundary): ... here.  Use should_move instead of
16162         cant_move.
16163         (move_op_orig_expr_found): Indicate that insn was disconnected from
16164         stream.
16165         (code_motion_process_successors): Do not call after_merge_succs
16166         callback if original expression was not found when traversing any of
16167         the branches.
16168         (code_motion_path_driver): Change return type.  Update prototype.
16169         (move_op): Update comment.  Add a new parameter (should_move).  Update
16170         prototype.  Set *should_move based on indication provided by
16171         move_op_orig_expr_found.
16172
16173 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
16174
16175         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
16176         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
16177         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
16178         * config/rs6000/rs6000.c (rs6000_override_options): Default
16179         avoid-indexed-addresses on for Power6, off for everything else.
16180         (avoiding_indexed_address_p): New function.
16181         (rs6000_legitimize_address): Use it.
16182         (rs6000_legitimate_address): Likewise.
16183         * config/rs6000/rs6000.md (movXX_updateX): Likewise
16184
16185 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
16186
16187         PR tree-optimization/38997
16188         * tree-loop-distribution.c (generate_memset_zero): Use
16189         POINTER_PLUS_EXPR for a pointer addition.
16190
16191 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
16192
16193         * config/s390/s390.md (bswap<mode>2): New pattern added.
16194
16195 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16196
16197         * config/s390/s390.md (*tls_load_31): Added type attribute.
16198
16199 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16200
16201         * config/s390/s390.md: Fix a few comments.
16202
16203 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16204
16205         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
16206         (*tm<mode>_full): Fixed z10prop attribute.
16207         (*tst<mode>_extimm): Fixed z10prop attribute.
16208         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
16209         (*tstqiCCT_cconly): Fixed z10prop attribute.
16210         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
16211         (*movsi_larl): Fixed z10prop attribute.
16212         (*movsi_zarch): Fixed z10prop attribute.
16213         (*movsi_eas): Fixed z10prop attribute.
16214         (*movhi): Fixed z10prop attribute.
16215         (*movqi): Fixed z10prop attribute.
16216         (*movstrictqi): Fixed z10prop attribute.
16217         (*mov<mode>): Fixed z10prop attribute.
16218         (*movcc): Fixed z10prop attribute.
16219         (*sethighpartdi_64): Fixed z10prop attribute.
16220         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
16221         (*negdi2_sign_cc): Fixed z10prop attribute.
16222         (*negdi2_sign): Fixed z10prop attribute.
16223         (*absdi2_sign_cc): Fixed z10prop attribute.
16224         (*absdi2_sign): Fixed z10prop attribute.
16225         (*negabsdi2_sign_cc): Fixed z10prop attribute.
16226         (*negabsdi2_sign): Fixed z10prop attribute.
16227         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
16228         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
16229         (doloop_si64): Fixed z10prop attribute.
16230         (doloop_si31): Fixed z10prop attribute.
16231         (doloop_long): Fixed z10prop attribute.
16232         (indirect_jump): Fixed z10prop attribute.
16233         (nop): Fixed z10prop attribute.
16234         (main_base_64): Fixed z10prop attribute.
16235         (reload_base_64): Fixed z10prop attribute.
16236
16237 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
16238
16239         PR rtl-optimization/38740
16240         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
16241         if !optimize.
16242         * config/mips/mips.c (mips_reorg): Likewise.
16243
16244 2009-01-28  Richard Guenther  <rguenther@suse.de>
16245
16246         PR tree-optimization/38926
16247         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
16248         with the correct value id to a value.
16249         (do_regular_insertion): Use the value number of edoubleprime
16250         for the value number of the expr.
16251
16252         Revert
16253         2008-08-21  Richard Guenther  <rguenther@suse.de>
16254
16255         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
16256         a PHI ask VN if it is already available.
16257         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
16258         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
16259
16260 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
16261
16262         PR middle-end/38934
16263         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
16264         set to varying whenever max has TREE_OVERFLOW set, similarly
16265         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
16266
16267 2009-01-28  Richard Guenther  <rguenther@suse.de>
16268
16269         PR middle-end/38908
16270         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
16271         uninitialized aggregate uses in call arguments.
16272
16273 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
16274
16275         PR tree-optimization/38984
16276         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
16277         the nothing_id variable if -fno-delete-null-pointer-checks.
16278
16279 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
16280
16281         PR target/38988
16282         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
16283         (set_got_offset_rex64): Ditto.
16284
16285 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
16286
16287         PR target/38941
16288         * doc/extend.texi: Improve local variable with asm reg.
16289
16290 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
16291
16292         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
16293         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
16294         was not supplied then set warn_packed_bitfield_compat to the
16295         default value of 1.
16296         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
16297         against 1.
16298
16299 2009-01-27  Richard Guenther  <rguenther@suse.de>
16300
16301         PR tree-optimization/38503
16302         * cfgexpand.c (expand_gimple_basic_block): Ignore
16303         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
16304         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
16305         variables that cannot have TBAA applied.
16306         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
16307         statements.
16308
16309 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
16310
16311         PR middle-end/38969
16312         * calls.c (initialize_argument_information): Do not wrap complex
16313         arguments in SAVE_EXPR.
16314
16315 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
16316
16317         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
16318         (INSTALL_LIBGCC): Revert typo commit.
16319
16320 2009-01-26  Richard Guenther  <rguenther@suse.de>
16321
16322         PR tree-optimization/38745
16323         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
16324         from special handling.
16325
16326 2009-01-26  Richard Guenther  <rguenther@suse.de>
16327
16328         PR tree-optimization/38745
16329         * tree-ssa.c (execute_update_addresses_taken): Do not include
16330         variables that cannot possibly be a register in not_reg_needs.
16331         Do not clear TREE_ADDRESSABLE on vars that may not become
16332         registers.
16333         * tree-ssa.c (update_alias_info_1): Include those in the set
16334         of addressable vars.
16335
16336 2009-01-26  Richard Guenther  <rguenther@suse.de>
16337
16338         PR middle-end/38851
16339         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
16340         * tree-ssa-dse.c: Include langhooks.h
16341         (execute_simple_dse): Remove stores with zero size.
16342
16343 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
16344
16345         PR c/38957
16346         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
16347         as PLUS_EXPR.
16348
16349 2009-01-24  Julian Brown  <julian@codesourcery.com>
16350
16351         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
16352         config/arm/linux-atomic.c.
16353         * config/arm/linux-atomic.c: New.
16354
16355 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
16356
16357         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
16358         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
16359         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
16360
16361 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
16362
16363         PR c/38938
16364         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
16365         properly.
16366
16367 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
16368
16369         PR tree-optimization/38953
16370         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
16371         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
16372         (gloog): Split the exit of the scop when the scop exit is a loop exit.
16373         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
16374         changed the CFG.
16375
16376 2009-01-24  Paul Brook  <paul@codesourcery.com>
16377
16378         * config/arm/neon.md (neon_type): Move to arm.md.
16379         (neon_mov<VSTRUCT>): Add neon_type attribute.
16380         * config/arm/arm.md (neon_type): Move to here.
16381         (conds): Add "unconditioal" and use as default for NEON insns.
16382
16383 2009-01-24  Ben Elliston  <bje@au.ibm.com>
16384
16385         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
16386         void *' warning from -Wc++-compat.
16387         * Makefile.in (dominance.o-warn): Remove.
16388
16389 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
16390
16391         PR tree-optimization/38932
16392         * fold-const.c (fold_unary_ignore_overflow): New.
16393         * tree.h (fold_unary_ignore_overflow): Declare.
16394         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
16395         * tree-ssa-sccvn.c (visit_reference_op_load,
16396         simplify_unary_expression): Likewise.
16397
16398 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
16399
16400         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
16401         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
16402         regardless of their type.
16403         * c-common.c (handle_packed_attribute): Don't ignore packed on
16404         bitfields.
16405         * c.opt (Wpacked-bitfield-compat): New warning option.
16406         * stor-layout.c (place_field): Warn if offset of a field changed.
16407         * doc/extend.texi (packed): Mention the ABI change.
16408         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
16409         (Warning Options): Add it to the list.
16410
16411 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
16412
16413         * c-opts.c (c_common_post_options): Fix a typo in comments.
16414
16415 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
16416
16417         PR middle-end/38615
16418         * gimplify.c (gimplify_init_constructor): Fix promotion of const
16419         variables to static.
16420         * doc/invoke.texi (-fmerge-all-constants): Update description.
16421
16422 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
16423
16424         PR target/38931
16425         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
16426         (*movdi_1_rex64): Use type "mmx" for alternative 5.
16427
16428 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
16429
16430         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
16431         a word boundary.
16432         (LOCAL_ALIGNMENT): Similarly.
16433
16434 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
16435             Joseph Myers  <joseph@codesourcery.com>
16436
16437         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
16438         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
16439         * config/arm/arm-tune.md: Regenerate.
16440         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
16441         -march=iwmmxt2.
16442
16443 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
16444
16445         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
16446         version number to five.
16447
16448 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
16449
16450         PR c++/38930
16451         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
16452         * c-common.c (set_underlying_type): Likewise.
16453         (is_typedef_decl ): Likewise
16454         * tree.h: Likewise
16455         (set_underlying_type): Likewise.
16456         (is_typedef_type): Likewise.
16457
16458 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
16459
16460         PR middle-end/38587
16461         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
16462         crossing setjmps.
16463
16464 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
16465
16466         PR bootstrap/37660
16467         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
16468         (LIBGCC_SPEC):  Don't define.
16469         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
16470
16471 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
16472
16473         PR rtl-optimization/38879
16474         * alias.c (base_alias_check): Unaligned access via AND address can
16475         alias all surrounding object types except those with sizes equal
16476         or wider than the size of unaligned access.
16477
16478 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
16479
16480         PR c++/26693
16481         * c-decl.c (clone_underlying_type): Move this ...
16482         * c-common.c (set_underlying_type): ... here.
16483         Also, make sure the function properly sets TYPE_STUB_DECL() on
16484         the newly created typedef variant type.
16485         (is_typedef_decl ): New entry point.
16486         * tree.h: Added a new member member_types_needing_access_check to
16487         struct tree_decl_non_common.
16488         (set_underlying_type): New entry point.
16489         (is_typedef_type): Likewise.
16490
16491 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
16492
16493         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
16494         Check whether two instructions have memory references that
16495         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
16496         are helper functions for traversing.
16497         * alias.h (insn_alias_sets_confilict_p): New prototypes.
16498         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
16499         not to draw dependency edge for instructions with non-conflicting
16500         alias sets.
16501
16502 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
16503
16504         PR other/38758
16505         * longlong.h: Update copyright years.  Use soft-fp license notice.
16506         Sync __clz_tab declaration with glibc.
16507
16508 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
16509
16510         PR target/30687
16511         * doc/extend.texi (syscall_linkage): New.
16512         (version_id): Modify.
16513
16514 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16515             Richard Guenther  <rguenther@suse.de>
16516
16517         PR tree-optimization/38747
16518         PR tree-optimization/38748
16519         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
16520         conversion if the base address is an indirect reference and the
16521         aliasing sets could cause issues.
16522
16523 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16524
16525         * common.opt (fgraphite, fgraphite-identity): Add comment for
16526         explaining why these options are not documented.
16527
16528 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16529
16530         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
16531         gimple_call_lhs is NULL.
16532
16533 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
16534
16535         PR target/38868
16536         * emit-rtl.c (adjust_address_1): Make sure memref is never
16537         overwritten.
16538
16539 2009-01-20  Ben Elliston  <bje@au.ibm.com>
16540
16541         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16542         const qualifier from arg parameter. Remove unnecessary cast to char *.
16543         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16544         const qualifier from arg 2.
16545
16546 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
16547
16548         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
16549
16550 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
16551
16552         PR c/38869
16553         * rtl.h (reinit_regs): New prototype.
16554         * regclass.c: Include ira.h.
16555         (reinit_regs): New.
16556         * Makefile.in (regclass.o): Add ira.h.
16557         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
16558
16559 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
16560
16561         PR target/38736
16562         * c-common.c (handle_aligned_attribute): Use
16563         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
16564         default alignment value.
16565
16566         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
16567
16568         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
16569         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
16570
16571         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
16572         __BIGGEST_ALIGNMENT__.
16573
16574         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
16575
16576 2009-01-18  Richard Guenther  <rguenther@suse.de>
16577
16578         PR tree-optimization/38819
16579         * tree-flow.h (operation_could_trap_helper_p): Declare.
16580         * tree-eh.c (operation_could_trap_helper_p): Export.
16581         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16582         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16583         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16584         are about to insert a possibly trapping instruction and fail
16585         in this case.
16586
16587 2009-01-18  Andreas Schwab  <schwab@suse.de>
16588
16589         * doc/install.texi (Configuration): Remove obsolete paragraph
16590         about use of --with-gnu-ld with --with-gnu-as.
16591
16592 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
16593
16594         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16595         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16596         Follow spelling conventions.
16597
16598 2009-01-18  Ben Elliston  <bje@au.ibm.com>
16599
16600         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16601         C++ warning about implicit conversion from void * to struct
16602         bitmap_head_def *.
16603         (bitmap_obstack_free): Likewise for bitmap_element *.
16604         * Makefile.in (bitmap.o-warn): Remove.
16605
16606 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
16607
16608         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
16609
16610 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
16611             Tobias Grosser  <tobi.grosser@amd.com>
16612
16613         * graphite.c (graphite_trans_scop_block): Do not block single
16614         nested loops.
16615
16616 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
16617
16618         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16619         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16620         test with assertion.
16621
16622 2009-01-16  Richard Guenther  <rguenther@suse.de>
16623
16624         PR tree-optimization/38835
16625         PR middle-end/36227
16626         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16627         and INT + PTR -> (INT)(PTR p+ INT) folding.
16628         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16629
16630 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
16631
16632         PR target/38554
16633         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16634         the subreg from a lowpart subreg if it is also casting the value.
16635
16636 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16637             Tobias Grosser  <tobi.grosser@amd.com>
16638
16639         * graphite.c (compare_prefix_loops): New.
16640         (build_scop_canonical_schedules): Rewritten.
16641         (graphite_transform_loops): Move build_scop_canonical_schedules
16642         after build_scop_iteration_domain.
16643
16644 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16645             Tobias Grosser  <tobi.grosser@amd.com>
16646
16647         * graphite.c (add_conditions_to_domain): Add the loops to
16648         the dimension of the iteration domain.  Do copy the domain
16649         only when it exists.
16650         (build_scop_conditions_1): Do not call add_conditions_to_domain.
16651         (add_conditions_to_constraints): New.
16652         (can_generate_code_stmt, can_generate_code): Removed.
16653         (gloog): Do not call can_generate_code.
16654         (graphite_transform_loops): Call add_conditions_to_constraints
16655         after building the iteration domain.
16656
16657 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
16658
16659         PR tree-optimization/38789
16660         * tree-ssa-threadedge.c
16661         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16662         __builtin_constant_p.
16663
16664 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
16665
16666         * dce.c (delete_unmarked_insns): Reversed the order that insns are
16667         examined before deleting them.
16668
16669 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
16670
16671         * function.c (aggregate_value_p): Correctly extract the function
16672         type from CALL_EXPR_FN lookup.
16673
16674 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16675
16676         * config/picochip/picochip.c (picochip_override_options): Revert
16677         CFI asm flag disable commited previously.
16678
16679 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
16680             Tobias Grosser  <tobi.grosser@amd.com>
16681             Jan Sjodin  <jan.sjodin@amd.com>
16682
16683         * graphite.c (scan_tree_for_params): On substractions negate
16684         all the coefficients of the term.
16685         (clast_to_gcc_expression_red): New.  Handle reduction expressions
16686         of more than two operands.
16687         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16688         (get_vdef_before_scop): Handle also the case of default definitions.
16689
16690 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
16691
16692         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16693         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16694         Also use them when walking CALL_INSN_FUNCTION_USAGE.
16695
16696 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16697             Joey Ye  <joey.ye@intel.com>
16698
16699         PR middle-end/37843
16700         * cfgexpand.c (expand_stack_alignment): Don't update stack
16701         boundary nor check incoming stack boundary here.
16702         (gimple_expand_cfg): Update stack boundary and check incoming
16703         stack boundary here.
16704
16705 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
16706
16707         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
16708
16709 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
16710
16711         PR rtl-optimization/38245
16712         * calls.c (expand_call): Add stack arguments to
16713         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16714         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16715         in regs and partially in memory or BLKmode arguments.
16716         (emit_library_call_value_1): Add stack arguments to
16717         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16718         ACCUMULATE_OUTGOING_ARGS).
16719         * dce.c: Include tm_p.h.
16720         (find_call_stack_args): New function.
16721         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
16722         argument.
16723         (mark_insn): Call find_call_stack_args for CALL_Ps.
16724         (prescan_insns_for_dce): Walk insns backwards in bb rather than
16725         forwards.  Allocate and free arg_stores bitmap if needed, pass it
16726         down to deletable_insn_p, don't mark stores set in arg_stores
16727         bitmap, clear the bitmap at the beginning of each bb.
16728         * Makefile.in (dce.o): Depend on $(TM_P_H).
16729
16730 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
16731
16732         PR target/22599
16733         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16734         to make sure the insn is a conditional test (bug 22599).  Reformat a
16735         few long lines.
16736
16737 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
16738
16739         PR middle-end/38431
16740         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16741         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16742         (gloog): Do not call cleanup_tree_cfg.
16743         (graphite_transform_loops): Call cleanup_tree_cfg after all
16744         scops have been code generated.
16745
16746 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
16747         * doc/gty.texi (Invoking the garbage collector): Added new node
16748         and section documenting ggc_collect.
16749
16750 2009-01-14  Richard Guenther  <rguenther@suse.de>
16751
16752         PR tree-optimization/38826
16753         PR middle-end/38477
16754         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16755         initialization notes only if we actually emitted a warning.
16756         (intra_create_variable_infos): Add constraints for a result decl
16757         that is passed by hidden reference.
16758         (build_pred_graph): Mark all related variables non-direct on
16759         address-taking.
16760
16761 2009-01-14  Nick Clifton  <nickc@redhat.com>
16762
16763         * ira-conflicts.c: Include addresses.h for the definition of
16764         base_reg_class.
16765         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16766         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
16767
16768 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16769
16770         PR target/38811
16771         * Makefile.in (ira-lives.o): Add except.h.
16772
16773         * ira-lives.c: Include except.h.
16774         (process_bb_node_lives): Process can_throw_internal.
16775
16776 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
16777
16778         PR rtl-optimization/38774
16779         * combine.c (simplify_set): When undoing cc_use change, don't do
16780         PUT_CODE on the newly created comparison, but instead put back the
16781         old comparison.
16782
16783 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
16784
16785         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16786         values.  Remove duplicate arm8 entry.
16787
16788 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16789
16790         PR tree-optimization/38786
16791         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16792         the SSA_NAME case of expand_scalar_variables_expr.
16793         Set the type of an expression to the type of its assign statement.
16794         (expand_scalar_variables_expr): Also gather the scalar computation
16795         used to index the memory access.  Do not pass loop_p.
16796         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
16797         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
16798         the gimple_stmt_iterator where it inserts new code.
16799         Do not pass loop_p.
16800         (copy_bb_and_scalar_dependences): Do not pass loop_p.
16801         (translate_clast): Update call to copy_bb_and_scalar_dependences.
16802
16803 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16804
16805         * graphite.h (debug_value): Removed.
16806         * graphite.c (debug_value): Removed.
16807
16808 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16809
16810         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16811         ldrd/strd with two 32-bit instructions.
16812
16813 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16814
16815         * config/arm/arm.c (struct processors): Pass for speed down into
16816         cost helper functions.
16817         (const_ok_for_op): Handle COMPARE and inequality nodes.
16818         (arm_rtx_costs_1): Rewrite.
16819         (arm_size_rtx_costs): Update prototype.
16820         (arm_rtx_costs): Pass speed down to helper functions.
16821         (arm_slowmul_rtx_costs): Rework cost calculations.
16822         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16823         (arm_9e_rtx_costs): Likewise.
16824
16825 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
16826
16827         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
16828         relocations of local symbols wider than UNITS_PER_WORD are not valid.
16829         (alpha_legitimize_address): Do not split local symbols wider than
16830         UNITS_PER_WORD into HIGH/LO_SUM parts.
16831
16832 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
16833
16834         PR bootstrap/38580
16835         * gcc.c (process_command): Replace call to execvp with calls
16836         to pex_one and exit.
16837
16838 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
16839
16840         PR target/29141
16841         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16842         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16843         variant for devices with 3-byte PC.
16844         (__tablejump_elpm__): New.
16845
16846 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16847
16848         PR c/32041
16849         * c-parser.c (c_parser_postfix_expression): Allow `->' in
16850         offsetof member-designator, handle it as `[0].'.
16851
16852 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16853
16854         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16855         function when not using named sections on targets with named sections
16856         if branch distance is less than 262132.
16857
16858 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
16859
16860         * combine.c (combine_instructions):  Recompute
16861         optimize_this_for_speed_p  for each BB in the main combine loop.
16862
16863 2009-01-12  Tomas Bily  <tbily@suse.cz>
16864
16865         PR middlend/38385
16866         * tree-loop-distribution.c (prop_phis): New function.
16867         (generate_builtin): Call prop_phis.
16868         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
16869
16870 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16871
16872         PR tree-optimization/38807
16873         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16874         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16875
16876 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
16877
16878         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16879         subreg of op0 to the original op0.
16880
16881 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
16882
16883         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
16884
16885 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
16886
16887         PR debug/7055
16888         * mips-tfile.c (parse_def): Fix parsing of def strings
16889         starting with digits.
16890
16891 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
16892
16893         PR target/38695
16894         * config/arm/arm.c (arm_is_long_call_p): Don't call
16895         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16896
16897 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
16898
16899         * regrename.c (regrename_optimize): Fix dumping.
16900         (find_oldest_value_reg): Preserve REG_POINTER.
16901         (copy_hardreg_forward_1): Likewise.
16902
16903 2009-01-09  Diego Novillo  <dnovillo@google.com>
16904
16905         * gimple.h (struct gimple_statement_base) <uid>: Document
16906         the restrictions on its use.
16907         (gimple_uid): Tidy.
16908         (gimple_set_uid): Tidy.
16909
16910 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16911
16912         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16913         zero guard even if align_bytes != 0 and count is smaller than
16914         size_needed.
16915
16916 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
16917
16918         PR rtl-optimization/38495
16919         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
16920         (add_range_and_copies_from_move_list): Print all added ranges.
16921         Add ranges to memory optimized destination.
16922
16923 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16924
16925         PR target/38686
16926         PR target/38708
16927         * config/i386/i386.c (override_options): Reject
16928         -mstringop-strategy=rep_8byte with -m32.
16929         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16930         to 1.  Do count comparison against epilogue_size_needed at compile
16931         time even when count_exp was constant forced into register.  For
16932         size_needed don't jump to epilogue, instead just avoid aligning
16933         and invoke the body algorithm.  If need_zero_guard, add zero guard
16934         even if count is non-zero, but smaller than size_needed + number of
16935         bytes that could be stored for alignment.
16936         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16937         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
16938         but smaller than size_needed + number of bytes that could be stored
16939         for alignment.  Compare size_needed with epilogue_size_needed instead
16940         of desired_align - align, don't adjust size_needed, pass
16941         epilogue_size_needed to the epilogue expanders.
16942
16943         PR c/35742
16944         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
16945
16946 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16947
16948         * pa.c (last_address): Change to unsigned.
16949         (update_total_code_bytes): Change argument to unsigned.  Don't
16950         check if insn addresses are set.
16951         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16952         addresses are not set.
16953         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16954
16955 2009-01-09  Nick Clifton  <nickc@redhat.com>
16956
16957         * config/sh/symbian.c: Replace uses of DECL_INLINE with
16958         DECL_DECLARED_INLINE_P.
16959
16960 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16961
16962         PR middle-end/38347
16963         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16964         GET_MODE (op0) in operand_subword_force calls.
16965
16966         PR middle-end/38771
16967         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16968         fold_convert arg0 operands to TREE_TYPE (op0) first.
16969
16970 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
16971
16972         * params.def (ira-max-conflict-table-size): Decrease default value
16973         to 1000.
16974
16975 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
16976
16977         PR tree-optimization/37031
16978         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16979         on parameter_set.
16980         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16981         allocate it using gc instead of heap, use VEC_quick_push instead of
16982         VEC_safe_push.
16983         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16984         instead of heap, use VEC_quick_push instead of VEC_safe_push.
16985         * tree-data-ref.h (struct access_matrix): Change matrix to gc
16986         allocated vector from heap allocated.
16987         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16988         * tree-loop-linear.c (linear_transform_loops): Allocate nest
16989         vector only after perfect_loop_nest_depth call.
16990
16991 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
16992             Jan Sjodin  <jan.sjodin@amd.com>
16993
16994         PR tree-optimization/38559
16995         * graphite.c (debug_value, copy_constraint,
16996         swap_constraint_variables, scale_constraint_variable, ): New.
16997         (get_lower_bound, get_upper_bound): Removed.
16998         (graphite_trans_bb_strip_mine): Clean up this code that works
16999         only for constant number of iterations.  Fully copy upper and
17000         lower bound constraints, not only the constant part of them.
17001         * graphite.h (debug_value): Declared.
17002
17003 2009-01-08  Ira Rosen  <irar@il.ibm.com>
17004
17005         PR tree-optimization/37194
17006         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
17007         Don't add the cost of cost model guard in prologue to scalar
17008         outside cost in case of known number of iterations.
17009
17010 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
17011             Alan Modra  <amodra@bigpond.net.au>
17012
17013         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
17014         non-word-aligned REG+CONST addressing.
17015
17016 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
17017
17018         PR target/38706
17019         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
17020         free_after_compilation when outputting a thunk.
17021         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
17022         Do not call free_after_compilation here.
17023
17024 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
17025
17026         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
17027         (ix86_valid_target_attribute_inner_p): Ditto.
17028
17029 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
17030
17031         PR tree-optimization/38492
17032         PR tree-optimization/38498
17033         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
17034         * tree-chrec.h (scev_is_linear_expression): Declared.
17035         * graphite.c (graphite_cannot_represent_loop_niter): New.
17036         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
17037         (graphite_loop_normal_form): Use gcc_assert.
17038         (scan_tree_for_params): Use CASE_CONVERT.
17039         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
17040         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
17041         Use gcc_assert.  Discard scops that contain unhandled cases.
17042         (build_scop_conditions): Return a boolean status for unhandled cases.
17043         (strip_mine_profitable_p): Print the loop number, not its depth.
17044         (is_interchange_valid): Pass the depth of the loop nest, don't
17045         recompute it wrongly.
17046         (graphite_trans_bb_block): Same.
17047         (graphite_trans_bb_block): Print tentative of loop blocking.
17048         (graphite_trans_scop_block): Do not print that the loop has been
17049         blocked.
17050         (graphite_transform_loops): Do not handle scops that contain condition
17051         scalar phi nodes.
17052
17053 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
17054
17055         AVX Programming Reference (December, 2008)
17056         * config/i386/avxintrin.h (_mm256_stream_si256): New.
17057         (_mm256_stream_pd): Likewise.
17058         (_mm256_stream_ps): Likewise.
17059
17060         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
17061         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
17062         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
17063         (bdesc_special_args): Add __builtin_ia32_movntdq256,
17064         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
17065         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
17066         (ix86_expand_special_args_builtin): Likewise.
17067
17068         * config/i386/sse.md (AVXMODEDI): New.
17069         (avx_movnt<mode>): Likewise.
17070         (avx_movnt<mode>): Likewise.
17071         (<sse>_movnt<mode>): Remove AVX support.
17072         (sse2_movntv2di): Likewise.
17073
17074 2009-01-07  Richard Guenther  <rguenther@suse.de>
17075
17076         PR middle-end/38751
17077         * fold-const.c (extract_muldiv): Remove obsolete comment.
17078         (fold_plusminus_mult_expr): Undo MINUS_EXPR
17079         to PLUS_EXPR canonicalization for the canonicalization.
17080
17081 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
17082
17083         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
17084         hosted cross-compilers generating less efficient code.
17085
17086 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
17087
17088         * function.h (rtl_data): Add a dbr_scheduled_p field.
17089         * reorg.c (dbr_schedule): Set it.
17090         (gate_handle_delay_slots): Check it.
17091         * config/mips/mips.c (mips_base_delayed_branch): Delete.
17092         (mips_reorg): Check flag_delayed_branch instead of
17093         mips_base_delayed_branch.
17094         (mips_override_options): Don't set mips_base_delayed_branch
17095         or flag_delayed_branch.
17096
17097 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
17098
17099         PR rtl-optimization/38426.
17100         * ira.c (ira): Set current_function_is_leaf earlier.
17101
17102 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
17103
17104         PR rtl-optimization/38722
17105         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
17106         too early, only set a flag and modify after last possible
17107         undo_all point.
17108
17109 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
17110
17111         PR c/34252
17112         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
17113         * real.c (decimal_single_format): Correct values of emin and emax.
17114         (decimal_double_format): Ditto.
17115         (decimal_quad_format): Ditto.
17116         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
17117         computation of DECnn_MIN and DECnn_MAX for corrected values of
17118         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
17119         __DECnn_MIN__, and adjust its computation for the corrected value
17120         of emin.
17121
17122 2009-01-06  Jan Hubicka  <jh@suse.cz>
17123
17124         PR target/38744
17125         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
17126
17127 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
17128
17129         * doc/contrib.texi (Contributors): Slightly adjust the end note.
17130         Add Robert Clark to the list of testers.
17131
17132 2009-01-06  Jan Hubicka  <jh@suse.cz>
17133             Kai Tietz  <kai.tietz@onevision.com>
17134
17135         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
17136         * config/i386/i386.c (ix86_expand_call): Add clobbers.
17137
17138 2009-01-06  Jan Hubicka  <jh@suse.cz>
17139             Kai Tietz  <kai.tietz@onevision.com>
17140
17141         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
17142         for w64 ABI.
17143         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
17144         (ix86_nsaved_regs): Count only general purpose regs.
17145         (ix86_nsaved_sseregs): New.
17146         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
17147         to 16 for w64; compute padding and size of sse reg save area.
17148         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
17149         general purpose regs.
17150         (ix86_emit_save_sse_regs_using_mov): New.
17151         (ix86_expand_prologue): Save SSE regs if needed.
17152         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
17153         (ix86_emit_restore_sse_regs_using_mov): New.
17154         (ix86_expand_epilogue): Save SSE regs if needed.
17155
17156 2009-01-06  Jan Hubicka  <jh@suse.cz>
17157             Kai Tietz  <kai.tietz@onevision.com>
17158
17159         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
17160         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
17161         functions when accumulate outgoing args is off.
17162
17163 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
17164
17165         PR bootstrap/38742
17166         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
17167         before using pseudos_have_intersected_live_ranges_p.
17168
17169         * ira-int.h (ira_assert): Always define.
17170
17171 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
17172
17173         AVX Programming Reference (December, 2008)
17174         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
17175         (_mm256_permute2_pd): Likewise.
17176         (_mm_permute2_ps): Likewise.
17177         (_mm256_permute2_ps): Likewise.
17178         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
17179         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
17180
17181         * config/i386/i386.c (ix86_builtins): Remove
17182         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
17183         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
17184         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
17185         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
17186         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
17187         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
17188         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
17189         __builtin_ia32_vpermil2ps256.
17190         (ix86_init_mmx_sse_builtins): Updated.
17191         (ix86_expand_args_builtin): Likewise.
17192
17193 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17194
17195         * pa.c (output_call): Relocate non-jump insns in the delay slot of
17196         long absolute calls when generating PA 2.0 code.
17197
17198 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
17199
17200         PR rtl-optimization/38583
17201         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
17202
17203         * params.def (ira-max-conflict-table-size): New.
17204
17205         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
17206
17207         * ira.h (ira_conflicts_p): New external definition.
17208
17209         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
17210         table.  Report this.  Return result of building.
17211         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
17212         building conflict table.
17213
17214         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
17215         (ira_color): Use ira_conflicts_p.
17216
17217         * global.c: Include ira.h.
17218         (pseudo_for_reload_consideration_p, build_insn_chain): Use
17219         ira_conflicts_p.
17220
17221         * Makefile.in (global.o): Add ira.h.
17222
17223         * ira-build.c (mark_all_loops_for_removal,
17224         propagate_some_info_from_allocno): New.
17225         (remove_unnecessary_allocnos): Call
17226         propagate_some_info_from_allocno.
17227         (remove_low_level_allocnos): New.
17228         (remove_unnecessary_regions): Add parameter.  Call
17229         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
17230         parameter to remove_unnecessary_regions.
17231         (ira_build): Remove all regions but root if the conflict table was
17232         not built.  Update conflict hard regs for allocnos crossing calls.
17233
17234         * ira.c (ira_conflicts_p): New global.
17235         (ira): Define and use ira_conflicts_p.
17236
17237         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17238         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
17239         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
17240
17241 2009-01-06  Ben Elliston  <bje@au.ibm.com>
17242
17243         * gengtype-lex.l (YY_NO_INPUT): Define.
17244
17245 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17246
17247         PR c/34911
17248         * c-common.c (handle_vector_size_attribute): Also reject
17249         BOOLEAN_TYPE types.
17250
17251 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
17252
17253         PR tree-optimization/38492
17254         * graphite.c (rename_map_elt, debug_rename_elt,
17255         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
17256         rename_map_elt_info, eq_rename_map_elts,
17257         get_new_name_from_old_name, bb_in_sese_p): Moved around.
17258         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
17259         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
17260         (sese_build_livein_liveouts): New.
17261         (new_sese, free_sese): New.
17262         (new_scop): Call new_sese.
17263         (free_scop): Call free_sese.
17264         (rename_variables_from_edge, rename_phis_end_scop): Removed.
17265         (register_old_new_names): Renamed register_old_and_new_names.
17266         (register_scop_liveout_renames, add_loop_exit_phis,
17267         insert_loop_close_phis, struct igp,
17268         default_liveout_before_guard, add_guard_exit_phis,
17269         insert_guard_phis, copy_renames): New.
17270         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
17271         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
17272         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
17273         (scop_adjust_phis_for_liveouts): New.
17274         (gloog): Call scop_adjust_phis_for_liveouts.
17275
17276         * graphite.h (struct sese): Documented.  Added fields liveout,
17277         num_ver and livein.
17278         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
17279         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
17280         (struct scop): Added field liveout_renames.
17281         (SCOP_LIVEOUT_RENAMES): New.
17282
17283 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17284
17285         PR tree-optimization/38510
17286         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
17287         (translate_clast): Call recompute_all_dominators before
17288         graphite_verify.
17289         (gloog): Call recompute_all_dominators before graphite_verify.
17290
17291 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17292             Jan Sjodin  <jan.sjodin@amd.com>
17293
17294         PR tree-optimization/38500
17295         * graphite.c (create_sese_edges): Call fix_loop_structure after
17296         splitting blocks.
17297
17298 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
17299
17300         * config.gcc: Add m32r*-*-rtems*.
17301         * config/m32r/rtems.h: New file.
17302
17303 2009-01-05  Ben Elliston  <bje@au.ibm.com>
17304
17305         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
17306         (.po.pox): Likewise.
17307         (po/gcc.pot): Likewise.
17308
17309 2009-01-04  David S. Miller  <davem@davemloft.net>
17310
17311         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
17312         (STARTING_FRAME_OFFSET): Always set to zero.
17313
17314 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
17315
17316         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
17317         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
17318         fixed-point types, and vectors of the same.
17319
17320 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
17321
17322         * config/mips/sync.md (*mb_barrier): Rename to...
17323         (*memory_barrier): ...this.
17324
17325 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
17326
17327         * doc/extend.texi (Function Attributes): Move @cindex after @item
17328         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
17329         and put in alphabetical order. Fix 'target' name and put in order.
17330         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
17331         typos.
17332
17333 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
17334
17335         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
17336         (memory_barrier): Expand as unspec instead of unspec_volatile.
17337         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17338         (*memory_barrier): Define as unspec instead of unspec_volatile.
17339         Use (match_dup 0) as input operand.
17340
17341         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
17342         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
17343         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
17344         scratch register.  Remove operand 1.
17345         (*stbar): Define as unspec instead of unspec_volatile.
17346         Use (match_dup 0) as input operand, remove (const_int 8).
17347         (*membar): Define as unspec instead of unspec_volatile.
17348         Use (match_dup 0) as input operand, remove input operand 2.
17349
17350         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
17351         (memory_barrier): Expand as unspec instead of unspec_volatile.
17352         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17353         (*memory_barrier): Define as unspec instead of unspec_volatile.
17354         Use (match_dup 0) as input operand.
17355
17356         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
17357         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17358         Set volatile flag on operand 0.
17359         (*memory_barrier): New insn pattern.
17360
17361         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
17362         insn operands.
17363         (*memory_barrier): Use (match_dup 0) as input operand.
17364
17365         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
17366         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17367         Set volatile flag on operand 0.
17368         (*mb_internal): New insn pattern.
17369
17370         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
17371
17372 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
17373
17374         PR middle-end/38586
17375         * function.c (struct temp_slot): Move to the section of the file
17376         that deals with temp slots.  Remove field 'address'.
17377         (temp_slot_address_table): New hash table of address -> temp slot.
17378         (struct temp_slot_address_entry): New struct, items for the table.
17379         (temp_slot_address_compute_hash, temp_slot_address_hash,
17380         temp_slot_address_eq, insert_temp_slot_address): Support functions
17381         for the new table.
17382         (find_temp_slot_from_address): Rewrite to use the new hash table.
17383         (remove_unused_temp_slot_addresses): Remove addresses of temp
17384         slots that have been made available.
17385         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
17386         worker function for remove_unused_temp_slot_addresses.
17387         (assign_stack_temp_for_type): Don't clear the temp slot address list.
17388         Add the temp slot address to the address -> temp slot map.
17389         (update_temp_slot_address): Update via insert_temp_slot_address.
17390         (free_temp_slots): Call remove_unused_temp_slot_addresses.
17391         (pop_temp_slots): Likewise.
17392         (init_temp_slots): Allocate the address -> temp slot map, or empty
17393         the map if it is already allocated.
17394         (prepare_function_start): Initialize temp slot processing.
17395
17396 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
17397
17398         PR middle-end/38584
17399         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
17400         Calculate the size of all stack vars assuming no packing of stack
17401         vars will happen, replacing a quadratic algorithm with a linear one.
17402
17403 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
17404
17405         PR target/38707
17406         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
17407         can't be used.
17408
17409 2009-01-03  Diego Novillo  <dnovillo@google.com>
17410
17411         * doc/contrib.texi: Update contributions.
17412
17413 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
17414
17415         PR c++/38705
17416         * builtins.c (fold_builtin_memory_op): Give up if either operand
17417         is volatile.  Set srctype or desttype to non-qualified version
17418         of the other type.
17419
17420         PR c/38700
17421         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
17422         and FUNCTION_DECLs.
17423
17424 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
17425
17426         PR rtl-optimization/35805
17427         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
17428         problem if fast dce is able to remove any instructions.
17429         * dce.c (dce_process_block): Fix dump message.
17430
17431 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
17432
17433         PR 33649
17434         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
17435
17436 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
17437
17438         PR middle-end/38690
17439         * tree-flow.h (op_code_prio, op_prio): New prototypes.
17440         * tree-pretty-print.c (op_code_prio): New function.
17441         (op_prio): No longer static.  Use op_code_prio.
17442         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
17443         Use op_prio and op_code_prio to determine if () should be
17444         printed around operand(s) or not.
17445
17446         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
17447         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
17448         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
17449         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
17450         pp_character instead of pp_string for single letter printing.
17451
17452 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
17453
17454         * doc/extend.texi: Fix '#pragma GCC option' typo.
17455
17456 2009-01-02  Richard Guenther  <rguenther@suse.de>
17457
17458         * doc/install.texi (--enable-checking): Mention different
17459         default for stage1.
17460         (--enable-stage1-checking): Document.
17461
17462 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
17463
17464         PR middle-end/30142
17465         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
17466         case to be an error.
17467
17468 2009-01-02  Ben Elliston  <bje@au.ibm.com>
17469
17470         * config/fp-bit.h (pack_d): Constify argument.
17471         * config/fp-bit.c (makenan): Constify return type. Remove casts.
17472         (isnan): Constify argument.
17473         (isinf): Likewise.
17474         (iszero): Likewise.
17475         (pack_d): Likewise.
17476         (_fpadd_parts): Constify return type.
17477         (_fpmul_parts): Likewise.
17478         (_fpdiv_parts): Likewise.
17479
17480 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
17481
17482         PR c/36489
17483         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
17484         warn about overwriting initializer with side-effects or
17485         -Woverride-init if !IMPLICIT.
17486         (output_init_element): Likewise.  Pass IMPLICIT down to
17487         add_pending_init.
17488         (process_init_element): Add IMPLICIT argument.  Pass it down
17489         to output_init_element.
17490         (push_init_element, pop_init_level, set_designator): Adjust
17491         process_init_element callers.
17492         (set_nonincremental_init, set_nonincremental_init_from_string):
17493         Adjust add_pending_init callers.
17494         (output_pending_init_elements): Adjust output_init_element callers.
17495         * c-tree.h (process_init_element): Adjust prototype.
17496         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
17497         process_init_element callers.
17498
17499 \f
17500 Copyright (C) 2009 Free Software Foundation, Inc.
17501
17502 Copying and distribution of this file, with or without modification,
17503 are permitted in any medium without royalty provided the copyright
17504 notice and this notice are preserved.