OSDN Git Service

* doc/extend.texi (Additional Floating Types): __float128 is also
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
2
3         * doc/extend.texi (Additional Floating Types): __float128 is also
4         supported on i386 targets.
5
6 2009-06-29  Richard Guenther  <rguenther@suse.de>
7
8         PR middle-end/14187
9         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
10         flag.
11         (pt_solutions_same_restrict_base): Declare.
12         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
13         flag.
14         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
15         (make_constraint_from, make_copy_constraint): Move earlier.
16         (make_constraint_from_heapvar): New function.
17         (make_constraint_from_restrict): Likewise.
18         (handle_lhs_call): Use it.
19         (find_func_aliases): Use it to track conversions to restrict
20         qualified pointers.
21         (struct fieldoff): Add only_restrict_pointers flag.
22         (push_fields_onto_fieldstack): Initialize it.
23         (create_variable_info_for): Track global restrict qualified pointers.
24         (intra_create_variable_infos): Use make_constraint_from_heapvar.
25         Track restrict qualified pointer arguments.
26         (set_uids_in_ptset): Use varinfo is_global_var flag.
27         (find_what_var_points_to): Set the vars_contains_restrict flag.
28         Always create the points-to solution for sets including restrict tags.
29         (pt_solutions_same_restrict_base): New function.
30         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
31         qualified pointers use pt_solutions_same_restrict_base as
32         additional source for disambiguation.
33
34 2009-06-29  Richard Guenther  <rguenther@suse.de>
35
36         PR middle-end/38212
37         * alias.c (find_base_decl): Remove.
38         (get_deref_alias_set_1): Remove restrict handling.
39         * c-common.c (c_apply_type_quals_to_decl): Do not set
40         DECL_POINTER_ALIAS_SET.
41         * gimplify.c (find_single_pointer_decl_1): Remove.
42         (find_single_pointer_decl): Likewise.
43         (internal_get_tmp_var): Remove restrict handling.
44         (gimple_regimplify_operands): Likewise.
45         * omp-low.c (expand_omp_atomic_pipeline): Do not set
46         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
47         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
48         * tree.c (restrict_base_for_decl): Remove.
49         (init_ttree): Do not allocate it.
50         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
51         LABEL_DECL_UID for label decls.
52         (copy_node_stat): Do not copy restrict information.
53         (decl_restrict_base_lookup): Remove.
54         (decl_restrict_base_insert): Likewise.
55         (print_restrict_base_statistics): Likewise.
56         (dump_tree_statistics): Do not call print_restrict_base_statistics.
57         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
58         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
59         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
60         (LABEL_DECL_UID): Adjust.
61         (DECL_BASED_ON_RESTRICT_P): Remove.
62         (DECL_GET_RESTRICT_BASE): Likewise.
63         (SET_DECL_RESTRICT_BASE): Likewise.
64         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
65
66         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
67         instead of DECL_POINTER_ALIAS_SET.
68         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
69         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
70         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
71
72 2009-06-29  Richard Guenther  <rguenther@suse.de>
73
74         PR tree-optimization/40579
75         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
76         the IL to simplify has constants that overflowed.
77
78 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
79
80         PR tree-optimization/40550
81         * tree-vect-generic.c (expand_vector_operations_1): Compute in
82         vector_compute_type only when the size of vector_compute_type is
83         less than the size of type.
84
85 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
86
87         * fold-const.c (contains_label_1): Fix comments.
88         (contains_label_p): Do not walk trees multiple time.
89
90 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
91
92         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
93         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
94         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
95         ix86_fp_comparison_operator.
96         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
97         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
98         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
99         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
100         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
101         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
102         (related splits): Change predicate to ix86_fp_comparison_operator.
103         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
104         instead of ix86_fp_comparison_codes.
105         (ix86_trivial_fp_comparison_operator,
106         ix86_fp_comparison_operator): New.
107         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
108         (ix86_expand_compare): Eliminate last two parameters.
109         (ix86_fp_jump_nontrivial_p): Kill.
110         * config/i386/i386.c (put_condition_code): Eliminate call to
111         ix86_fp_comparison_codes and subsequent assertion.
112         (ix86_fp_comparison_codes): Eliminate.
113         (ix86_fp_swap_condition): New.
114         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
115         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
116         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
117         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
118         and ix86_fp_swap_condition.
119         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
120         Use ix86_fp_comparison_strategy.
121         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
122         (ix86_fp_jump_nontrivial_p): Eliminate.
123         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
124         call to ix86_expand_compare.
125         (ix86_split_fp_branch, ix86_expand_setcc,
126         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
127         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
128
129 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
130
131         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
132         related to jump_clobbers.
133         * config/arm/arm.md (conds): Remove jump_clob case.
134         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
135         splits): Change comparison_operator to arm_comparison_operator.
136         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
137         Eliminate.
138
139 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
140
141         * dojump.c (do_compare_rtx_and_jump): Try swapping the
142         condition for floating point modes.
143         * expmed.c (emit_store_flag_1): Move here a bigger part
144         of emit_store_flag.
145         (emit_store_flag): Try swapping the condition for floating point
146         modes.
147         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
148
149 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
150
151         * expr.c (expand_expr_real_1): Just use do_store_flag.
152         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
153         emit_store_flag_force.
154         * expmed.c (emit_store_flag_force): Copy here trick
155         previously in expand_expr_real_1.  Try reversing the comparison.
156         (emit_store_flag_1): Work if target is NULL.
157         (emit_store_flag): Work if target is NULL, using the result mode
158         from the comparison.  Use split_comparison, restructure final part
159         to simplify conditionals.
160
161 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
162
163         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
164         * dojump.c (do_jump): Change handling of floating-point
165         ops to use just do_compare_and_jump.
166         (split_comparison): New.
167         (do_compare_rtx_and_jump): Add here logic coming previously
168         in do_jump, using split_comparison.
169
170 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
171
172         PR target/40489
173         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
174
175 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
176
177         * tree-ssa-alias.c: Fix unintentional commit.
178
179 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
180
181         * passes.c (execute_one_pass): Fix unintentional commit.
182
183 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
184
185         * df-problems.c (df_set_seen, df_unset_seen): Delete.
186         (df_rd_local_compute, df_md_local_compute): Inline them.
187
188         (df_md_scratch): New.
189         (df_md_alloc, df_md_free): Allocate/free it.
190         (df_md_local_compute): Only include live registers in init.
191         (df_md_transfer_function): Prune the in-set computed by
192         the confluence function, and the gen-set too.
193
194 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
195
196         PR rtl-optimization/26854
197         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
198         * df-problems.c (df_rd_add_problem): Fix comment.
199         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
200         df_md_simulate_artificial_defs_at_top,
201         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
202         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
203         df_md_transfer_function, df_md_init, df_md_confluence_0,
204         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
205         problem_MD, df_md_add_problem): New.
206         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
207         df_md_get_bb_info): New.
208         (DF_LAST_PROBLEM_PLUS1): Adjust.
209
210         * Makefile.in (fwprop.o): Include domwalk.h.
211         * fwprop.c: Include domwalk.h.
212         (reg_defs, reg_defs_stack): New.
213         (bitmap_only_bit_between): Remove.
214         (process_defs): New.
215         (process_uses): Use reg_defs and local_md instead of
216         bitmap_only_bit_between and local_rd.
217         (single_def_use_enter_block): New, from build_single_def_use_links.
218         (single_def_use_leave_block): New.
219         (build_single_def_use_links): Remove code moved to
220         single_def_use_enter_block, invoke domwalk.
221         (use_killed_between): Adjust comment.
222
223 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
224
225         * bitmap.h (bitmap_ior_and_into): New.
226         * bitmap.c (bitmap_ior_and_into): New.
227
228 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
229
230         * domwalk.h (struct dom_walk_data): Remove all callbacks except
231         before_dom_children_before_stmts and after_dom_children_after_stmts.
232         Rename the two remaining callbacks to just before_dom_children and 
233         after_dom_children. Remove other GIMPLE statement walking bits.
234         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
235         * graphite.c: Do not include domwalk.h.
236         * tree-into-ssa.c (interesting_blocks): New global.
237         (struct mark_def_sites_global_data): Remove it and names_to_rename.
238         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
239         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
240         now that they're not domwalk callbacks.
241         (rewrite_initialize_block): Rename to...
242         (rewrite_enter_block): ... this, place after called functions.  Test
243         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
244         (rewrite_finalize_block): Rename to...
245         (rewrite_leave_block): ... this, place after called functions.
246         (rewrite_update_init_block): Rename to...
247         (rewrite_update_enter_block): ... this, place after called functions.
248         Test interesting_blocks, call rewrite_update_stmt and 
249         rewrite_update_phi_arguments.
250         (rewrite_update_fini_block): Rename to...
251         (rewrite_leave_block): ... this, place after called functions.
252         (rewrite_blocks): Remove last argument, simplify initialization of
253         walk_data.
254         (mark_def_sites_initialize_block): Rename to...
255         (mark_def_sites_block): ... this, call mark_def_sites.
256         (mark_def_sites_blocks): Remove argument, simplify initialization of
257         walk_data.
258         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
259         (update_ssa): Likewise.
260         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
261         callback.
262         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
263         (dom_opt_initialize_block): Rename to...
264         (dom_opt_enter_block): ... this, place after called functions.  Walk
265         statements here, inline propagate_to_outgoing_edges.
266         (dom_opt_finalize_block): Rename to...
267         (dom_opt_leave_block): ... this, place after called functions.
268         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
269         domwalk callback.
270         (dse_enter_block, dse_record_phi): New.
271         (dse_record_phis): Delete.
272         (dse_finalize_block): Rename to...
273         (dse_leave_block): ... this.
274         (tree_ssa_dse): Simplify initialization of walk_data.
275         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
276         Adjust initialization of walk_data.
277         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
278         * tree-ssa-loop-phiopt.c (get_non_trapping):
279         Adjust initialization of walk_data.
280         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
281         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
282         it's not a domwalk callback.
283         (uncprop_initialize_block): Rename to...
284         (dse_enter_block): ... this, call uncprop_into_successor_phis.
285         (dse_finalize_block): Rename to...
286         (dse_leave_block): ... this.
287         (tree_ssa_uncprop): Simplify initialization of walk_data.
288         * Makefile.in: Adjust dependencies.
289
290 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
291
292         * arm.md (casesi): Fix test for Thumb1.
293         (thumb1_casesi_internal_pic): Likewise.
294         (thumb1_casesi_dispatch): Likewise.
295
296 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
297
298         * config/arm/arm-cores.def: Added core cortex-m0.
299         * config/arm/arm-tune.md: Regenerated.
300         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
301
302 2009-06-26  DJ Delorie  <dj@redhat.com>
303
304         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
305
306         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
307         the scheduler doesn't tag jump insns.
308
309 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
310
311         * c-decl.c (merge_decls): Re-indent.
312
313 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
314
315         PR c/39902
316         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
317         Special-case decimal float constants.
318
319 2009-06-26  Richard Henderson  <rth@redhat.com>
320
321         * function.h (struct function): Add cannot_be_copied_reason,
322         and cannot_be_copied_set.
323         * tree-inline.c (has_label_address_in_static_1): Rename from
324         inline_forbidden_p_2; don't set inline_forbidden_reason here.
325         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
326         don't set inline_forbidden_reason.
327         (copy_forbidden): New function, split out of inline_forbidden_p.
328         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
329         (inline_forbidden_p): Use copy_forbidden.
330         (tree_versionable_function_p): Likewise.
331         (inlinable_function_p): Merge into tree_inlinable_function_p.
332         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
333         * ipa-cp.c (ipcp_versionable_function_p): New function.
334         (ipcp_cloning_candidate_p): Use it.
335         (ipcp_node_modifiable_p): Likewise.
336
337 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
338
339         * builtins.c (expand_builtin_alloca): Handle builtin alloca
340         that is marked not to be inlined. Remove flag_mudflap use.
341         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
342         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
343
344 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
345
346         PR bootstrap/40338
347         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
348         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
349
350 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
351
352         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
353         shared libgcc.
354         (__mingwthr_remove_key_dtor): Likewise.
355
356 2009-06-26  Richard Guenther  <rguenther@suse.de>
357
358         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
359
360 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
361
362         PR middle-end/40525
363         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
364         try the non-cond_exec path also.
365
366 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
367
368         PR target/40468
369         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
370         (output_cbranch): Use new functions.
371         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
372         Likewise.
373
374 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
375             Pat Haugen  <pthaugen@us.ibm.com>
376             Revital Eres <ERES@il.ibm.com>
377
378         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
379         Change some of the functions called by macros to being called
380         through a pointer, so debug functions can be inserted if
381         -mdebug=addr or -mdebug=cost. 
382         (rs6000_preferred_reload_class_ptr): Ditto.
383         (rs6000_secondary_reload_class_ptr): Ditto.
384         (rs6000_secondary_memory_needed_ptr): Ditto.
385         (rs6000_cannot_change_mode_class_ptr): Ditto.
386         (rs6000_secondary_reload_inner): Ditto.
387         (rs6000_legitimize_reload_address): Ditto.
388         (rs6000_legitimize_reload_address_ptr): Ditto.
389         (rs6000_mode_dependent_address): Ditto.
390         (rs6000_mode_dependent_address_ptr): Ditto.
391
392         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
393         function to return true if the mode allows reg + integer
394         addresses.
395         (virtual_stack_registers_memory_p): New function to return true if
396         the address refers to a virtual stack register.
397         (rs6000_legitimate_offset_address_p): Move code to say whether a
398         mode supports reg+int addressing to reg_offset_addressing_ok_p and
399         call it.
400         (rs6000_legitimate_address_p): Add checks for modes that only can
401         do reg+reg addressing.  Start adding VSX support.
402         (rs6000_legitimize_reload_address): Ditto.
403         (rs6000_legitimize_address): Ditto.
404         (rs6000_debug_legitimate_address_p): New debug functions for
405         -mdebug=addr and -mdebug=cost.
406         (rs6000_debug_rtx_costs): Ditto.
407         (rs6000_debug_address_costs): Ditto.
408         (rs6000_debug_adjust_cost): Ditto.
409         (rs6000_debug_legitimize_address): Ditto.
410         (rs6000_legitimize_reload_address_ptr): Point to call normal
411         function or debug function.  Make functions called via pointer
412         static.
413         (rs6000_mode_dependent_address_ptr): Ditto.
414         (rs6000_secondary_reload_class_ptr): Ditto.
415         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
416         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
417         into a friendlier error.
418         (rs6000_init_builtins): Add initial VSX support.
419         (rs6000_adjust_cost): Fix some spacing issues.
420
421         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
422         (REG_CLASS_NAMES): Ditto.
423         (REG_CLASS_CONTENTS): Ditto.
424         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
425         pointer, to add -mdebug=addr support.
426         (CANNOT_CHANGE_MODE_CLASS): Ditto.
427         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
428         -mdebug=addr support.
429         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
430         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
431         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
432
433         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
434         16-bit values.
435         (bswapsi*): Set attribute types for load/store.  Add combiner
436         patterns to eliminate zero extend on 64-bit.
437         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
438         stdbrx if the hardware supports those instructions.
439
440 2009-06-25  Ian Lance Taylor  <iant@google.com>
441
442         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
443         (Link Options): Document -static-libstdc++.
444
445 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
446
447         PR target/38731
448         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
449         DATA_ALIGNMENT instead.
450
451 2009-06-25  Richard Guenther  <rguenther@suse.de>
452
453         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
454         indirect references against the callused/escaped solutions.
455         (call_may_clobber_ref_p_1): Likewise.
456
457 2009-06-25  Martin Jambor  <mjambor@suse.cz>
458
459         PR tree-optimization/40493
460         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
461         (enum unscalarized_data_handling): New type.
462         (handle_unscalarized_data_in_subtree): Return what has been done.
463         (load_assign_lhs_subreplacements): Handle left flushes differently.
464         (sra_modify_assign): Use unscalarized_data_handling, simplified
465         condition determining whether to remove the statement.
466
467 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
468
469         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
470         excerpt - @ should be doubled for texinfo.
471
472 2009-06-24  Ian Lance Taylor  <iant@google.com>
473
474         * config/arc/arc.c: Include "df.h".
475         (arc_attribute_table): Make static.  Move higher in file.
476         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
477         (output_shift): Initialize n later to avoid warning.
478         * config/arm/arm.c (arm_attribute_table): Make static.  Move
479         higher in file.
480         * config/avr/avr.c (avr_attribute_table): Make static.  Move
481         higher in file.
482         (reg_class_tab): Change array type from int to enum reg_class.
483         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
484         LABEL_REF.
485         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
486         (lshrhi3_out): Likewise.
487         (class_likely_spilled_p): Change return type to bool.
488         (avr_rtx_costs): Use local code variable with enum type.
489         * config/avr/avr.md (movmemhi): Use add_reg_note.
490         (andhi3, andsi3): Don't use AS2 with "and".
491         (iorhi3, iorsi3): Don't use AS2 with "or".
492         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
493         * config/crx/crx.c: Include "df.h".
494         (crx_attribute_table): Make static.
495         * config/m32r/m32r.c: Include "df.h".
496         (m32r_attribute_table): Make static.  Move higher in file.
497         (pop): Use add_reg_note.
498         (block_move_call): Change 0 to LCT_NORMAL in function call.
499         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
500         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
501         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
502         declare, not just when TREE_CODE is defined.
503         * config/m68hc11/m68hc11.c: Include "expr.h".
504         (m68hc11_attribute_table): Make static.  Move higher in file.
505         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
506         function call.
507         (m68hc11_register_indirect_p): Likewise.
508         (m68hc11_function_arg_padding): Change return type to enum
509         direction.
510         (emit_move_after_reload): Use add_reg_note.
511         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
512         (m68hc11_split_logical): Likewise.
513         (m68hc11_rtx_costs): Add local code_and outer_code variables with
514         enum type.
515         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
516         to VOIDmode in function call.
517         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
518         tree is defined.
519         (m68hc11_split_logical): Update declaration.
520         (m68hc11_function_arg_padding): Update declaration.
521         * config/mcore/mcore.c (regno_reg_class): Change form array of int
522         to array of enum reg_class.
523         (mcore_attribute_table): Make static.  Move higher in file.
524         (mcore_rtx_costs): Add cast to enum type.
525         * config/mcore/mcore.h (regno_reg_class): Update declaration.
526         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
527         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
528         in file.
529         * config/sh/predicates.md (trapping_target_operand): Rename and to
530         and_expr.
531         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
532         higher in file.
533         * config/spu/spu.c (spu_attribute_table): Make static.  Move
534         higher in file.
535         * config/v850/v850.c (v850_attribute_table): Make static.  Move
536         higher in file.
537         (v850_rtx_costs): Use local code with enum type.
538         (expand_epilogue): Add cast.
539         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
540
541 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
542
543         PR target/40515
544         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
545         -m2a-single-only and -m2a-nofpu.
546         * config/sh/sh.opt: Document m2a generates FPU code.  
547
548 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
549
550         * defaults.h (CAN_ELIMINATE): Provide default.
551         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
552         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
553         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
554         * config/spu/spu.h (CAN_ELIMINATE): Delete.
555         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
556         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
557         * config/cris/cris.h (CAN_ELIMINATE): Delete.
558         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
559         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
560         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
561
562 2009-06-24  DJ Delorie  <dj@redhat.com>
563
564         * mep-ext-cop.cpu: Fix copyright notice.
565         * mep-default: Fix copyright notice.
566         * mep-core: Fix copyright notice.
567         * mep: Fix copyright notice.
568         * mep-ivc2: Fix copyright notice.
569         * mep-c5: Fix copyright notice.
570
571 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
572
573         * doc/contrib.texi (Contributors): 
574
575 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
576         
577         PR middle-end/40501
578         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
579         src and dst operands if necessary.
580
581 2009-06-23  DJ Delorie  <dj@redhat.com>
582
583         Add MeP port.
584         * config.gcc: Add mep support.
585         * recog.c: Resurrect validate_replace_rtx_subexp().
586         * recog.h: Likewise.
587         * config/mep/: Add new port:
588         * config/mep/constraints.md: New file.
589         * config/mep/default.h: New file.
590         * config/mep/intrinsics.h: New file.
591         * config/mep/intrinsics.md: New file.
592         * config/mep/ivc2-template.h: New file.
593         * config/mep/mep-c5.cpu: New file.
594         * config/mep/mep-core.cpu: New file.
595         * config/mep/mep-default.cpu: New file.
596         * config/mep/mep-ext-cop.cpu: New file.
597         * config/mep/mep-intrin.h: New file.
598         * config/mep/mep-ivc2.cpu: New file.
599         * config/mep/mep-lib1.asm: New file.
600         * config/mep/mep-lib2.c: New file.
601         * config/mep/mep-pragma.c: New file.
602         * config/mep/mep-protos.h: New file.
603         * config/mep/mep-tramp.c: New file.
604         * config/mep/mep.c: New file.
605         * config/mep/mep.cpu: New file.
606         * config/mep/mep.h: New file.
607         * config/mep/mep.md: New file.
608         * config/mep/mep.opt: New file.
609         * config/mep/predicates.md: New file.
610         * config/mep/t-mep: New file.
611
612 2009-06-23  Ian Lance Taylor  <iant@google.com>
613
614         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
615         from loose_warn into c_loose_warn and from strict_warn into
616         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
617         --enable-build-with-cxx.  Set and substitute
618         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
619         * Makefile.in (CXXFLAGS): New variable.
620         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
621         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
622         the default is the same as $(STRICT_WARN).
623         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
624         (CXX): New variable.
625         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
626         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
627         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
628         (HOST_LIBS): New variable.
629         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
630         (ALL_CXXFLAGS): New variable.
631         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
632         * doc/install.texi (Configuration): Document
633         --enable-build-with-cxx, --with-stage1-ldflags,
634         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
635         * configure: Rebuild.
636
637 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
638
639         * config/arm/arm.c (arm_override_options): Fix braces and formatting
640         from previous commit.
641
642 2009-06-23  Ian Lance Taylor  <iant@google.com>
643
644         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
645
646 2009-06-23  Ian Lance Taylor  <iant@google.com>
647
648         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
649         with ATTRIBUTE_UNUSED.
650
651 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
652             Pat Haugen  <pthaugen@us.ibm.com>
653             Revital Eres  <eres@il.ibm.com>
654
655         * config.in (HAVE_AS_POPCNTD): Add default definition.
656         (HAVE_AS_LWSYNC): Ditto.
657
658         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
659         release number.
660         (gcc_cv_as_powerpc_cmpb): Ditto.
661         (gcc_cv_as_powerpc_dfp): Ditto.
662         (gcc_cv_as_powerpc_vsx): Ditto.
663         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
664         supporting the popcntd/lwsync instructions.
665         (gcc_cv_as_powerpc_lwsync): Ditto.
666         * configure: Regenerate.
667
668         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
669         -mcpu=native and -mcpu=power7.
670         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
671
672         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
673         a variable instead of a mask to reduce the number of mask bits.
674         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
675         (-mbit-word): Ditto.
676         (-mregnames): Ditto.
677         * config/rs6000/rs6000.opt (-mupdate): Ditto.
678         (-mfused-madd): Ditto.
679
680         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
681         2.06 instructions.
682         (-mvsx): New switch for VSX instructions.
683         (-misel): Move from a variable to a mask to allow it to be set by
684         -mcpu=.
685
686         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
687         function declaration to an array declaration.
688         (rs6000_hard_regno_nregs): New external array declaration.
689
690         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
691         files included by rs6000.md.
692
693         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
694         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
695
696         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
697         a target mask.
698         (rs6000_debug_reg): New -mdebug= variables.
699         (rs6000_debug_addr): Ditto.
700         (rs6000_debug_cost): Ditto.
701         (rs6000_pmode): New variable to hold Pmode.
702         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
703         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
704         calculated at compiler start.
705         (rs6000_hard_regno_nregs): Change function to an array which holds
706         HARD_REGNO_NREGS calculated at compiler start.
707         (rs6000_explicit_options): Delete isel field.
708         (rs6000_vector_unit): New array to hold which vector unit
709         supports arithmetic options for a given type.
710         (rs6000_vector_mem): New array to hold which vector unit supports
711         memory reference operations for a given type.
712         (rs6000_vector_align): New array to given the alignment of each
713         vector type.
714         (power7_cost): New basic costs for power7.
715         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
716         (rs6000_hard_regno_nregs_internal): New function, moved from
717         HARD_REGNO_NREGS, to calculate the number of registers each hard
718         register takes for each type.
719         (rs6000_debug_reg_print): New function for -mdebug=reg support.
720         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
721         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
722         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
723         unit information here so it is calculated once at compiler startup
724         time.
725         (rs6000_override_options): Make -misel a target mask.  Add more
726         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
727         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
728         -mdebug=cost.
729         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
730         (rs6000_handle_option): Move -misel from variable to target mask.
731         (rs6000_builtin_mask_for_load): Add VSX support.
732         (rs6000_conditional_register_usage): Ditto.
733         (USE_ALTIVEC_FOR_ARG_P): Ditto.
734         (function_arg_boundary): Ditto.
735         (rs6000_expand_builtin): Ditto.
736         (def_builtin): Make abort message a little friendlier.
737         (rs6000_emit_int_cmove): Add support for 64-bit isel.
738
739         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
740         assembler support the popcntd instruction instead of a vsx
741         instruction to enable power7 support.
742         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
743         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
744         option to the assembler if -mcpu=native.
745         (ASM_CPU_NATIVE_SPEC): Ditto.
746         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
747         ISA 2.06 features.
748         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
749         the lwsync instruction.
750         (enum processor_type): Add PROCESSOR_POWER7.
751         (rs6000_debug_reg): New -mdebug= options.
752         (rs6000_debug_addr): Ditto.
753         (rs6000_debug_cost): Ditto.
754         (rs6000_isel): Delete.
755         (enum rs6000_vector): New enum to say what vector unit we have.
756         (VECTOR_UNIT_*): New macros to say which vector unit has
757         arithmetic operations for a given type.
758         (VECTOR_MEM_*): New macros to say which vector unit has memory
759         operations for a given type.
760         (TARGET_LDBRX): Whether the machine supports the ldbrx
761         instruction.
762         (TARGET_ISEL): Delete, -misel moved to be a mask.
763         (TARGET_ISEL64): New macro for 64-bit isel support.
764         (UNITS_PER_VSX_WORD): New macro.
765         (POINTER_SIZE): Move to be an external variable, rather than
766         calculating whether we are generating 32 ot 64-bit code.
767         (Pmode): Ditto.
768         (STACK_BOUNDARY): Add VSX support.
769         (LOCAL_ALIGNMENT): Ditto.
770         (SLOW_UNALIGNED_ACCESS): Ditto.
771         (VSX_REGNO_P): New macro for VSX support.
772         (VFLOAT_REGNO_P): Ditto.
773         (VINT_REGNO_P): Ditto.
774         (VLOGICAL_REGNO_P): Ditto.
775         (VSX_VECTOR_MODE): Ditto.
776         (VSX_SCALAR_MODE): Ditto.
777         (VSX_MODE): Ditto.
778         (VSX_MOVE_MODE): Ditto.
779         (VSX_REG_CLASS_P): Ditto.
780         (HARD_REGNO_NREGS): Instead of calling a function, use an array
781         lookup.
782         (UNITS_PER_SIMD_WORD): Add VSX support.
783         (MODES_TIEABLE_P): Ditto.
784         (STARTING_FRAME_OFFSET): Ditto.
785         (STACK_DYNAMIC_OFFSET): Ditto.
786         (EPILOGUE_USES): Ditto.
787         (REGNO_REG_CLASS): Move to array lookup.
788         (CLASS_MAX_NREGS): Ditto.
789         (rs6000_vector_reg_class): Add declaration.
790         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
791         overlap with the floating point and Altivec registers.
792
793         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
794
795         * config/rs6000/driver-rs6000.c (asm_names): New static array to
796         give the appropriate asm switches if -mcpu=native.
797         (host_detect_local_cpu): Add support for "asm".
798         (host_detect_local_cpu): Follow GNU code guidelines for name.
799
800         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
801         -mbit-word to a variable instead of being a target mask.
802
803         * config/rs6000/sync.md (lwsync): If the assembler supports it,
804         emit the lwsync instruction instead of emitting the instruction as
805         an integer constant.
806
807         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
808         fixuns_trundfsi2, move expander into rs6000.md.
809
810         * config/rs6000/rs6000.md (cpu): Add power7.
811         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
812         (logical predicate patterns): Change the single instruction
813         primitives that set CR0 to be fast_compare instead of compare.
814         (norsi*): Ditto.
815         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
816         (popcntddi2): Ditto.
817         (popcount<mode>): Ditto.
818         (floating multiply/add insns): Name the floating point
819         multiply/add insns.
820         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
821         (isel_unsigned_<mode>): Ditto.
822         (fixuns_trundfsi2): Move expander here from spe.md.
823         (smindi3): Define if we have -misel on 64-bit systems.
824         (smaxdi3): Ditto.
825         (umindi3): Ditto.
826         (umaxdi3): Ditto.
827
828 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
829
830         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
831         extra_objs.
832         * config/avr/avr.c (avr_current_device): New variable.
833         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
834         (avr_arch, mcu_type_s): Move to avr.h.
835         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
836         default_data_section_start fields.
837         (avr_arch): Moved from avr.c.
838         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
839         library_name fields.
840         (avr_current_device, avr_mcu_types, avr_arch_types,
841         avr_device_to_arch, avr_device_to_data_start,
842         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
843         (EXTRA_SPEC_FUNCTIONS): Define.
844         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
845         options mapping. Use device_to_arch and device_to_data_start insted.
846         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
847         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
848         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
849         * config/avr/driver-avr.c: New file.
850         * config/avr/avr-devices.c: New file.
851
852 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
853
854         * var-tracking.c (unshare_variable): Force initialized to
855         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
856         (set_variable_part): Likewise.
857         (struct variable_union_info): Remove pos_src field.
858         (vui_vec, vui_allocated): New variables.
859         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
860         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
861         == 1 use a simpler sorting algorithm.  Compute pos field right
862         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
863         Avoid quadratic comparison if !flag_var_tracking_uninit.
864         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
865         unshare_variable unconditionally.   
866         (dataflow_set_different_2): Removed.
867         (dataflow_set_different): Don't traverse second hash table.
868         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
869         unconditionally to var_reg_set or var_mem_set.
870         (emit_notes_in_bb): Likewise.
871         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
872         unshare_variable.
873         (emit_note_insn_var_location): Don't set initialized to
874         VAR_INIT_STATUS_INITIALIZED early.
875         (vt_finalize): Free vui_vec if needed, clear vui_vec and
876         vui_allocated.
877         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
878
879         * tree-object-size.c (addr_object_size): Instead of checking
880         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
881         are no FIELD_DECLs following it.
882
883 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
884
885         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
886         order to match bswaps with signed source operands.
887
888 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
889
890         * sdbout.c (sdbout_one_type): Fix braces in switch.
891
892 2009-06-23  Richard Guenther  <rguenther@suse.de>
893
894         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
895         member.
896         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
897         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
898         var_callused, callused_tree, var_storedanything, storedanything_tree,
899         var_integer, integer_tree): Remove global variables.
900         (new_var_info): Do not pass new id, append the new var to the
901         global variable vector.
902         (do_ds_constraint): Use is_global_var member of the variable-info.
903         (new_scalar_tmp_constraint_exp): Adjust.
904         (create_function_info_for): Likewise.
905         (create_variable_info_for): Likewise.
906         (find_what_var_points_to): Remove dead code.
907         (init_base_vars): Simplify.
908         (compute_points_to_sets): Adjust.
909
910 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
911
912         * combine.c (try_combine): Dump information about the insns we're
913         combining.
914
915 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
916
917         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
918         check when calling force_to_mode on TRUNCATE's operand.
919
920 2009-06-22  Ian Lance Taylor  <iant@google.com>
921
922         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
923
924 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
925
926         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
927
928 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
929
930         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
931         override library linkage flags such as -static-libgcc or
932         -shared-libgcc.
933
934 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
935
936         * config/m68k/m68k-devices.def: Add line for MCF5221x.
937
938 2009-06-22  Ian Lance Taylor  <iant@google.com>
939
940         * config/linux.opt: Put mglibc ahead of muclibc.
941
942         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
943         for duplicate decls.
944
945 2009-06-22  Matthias Klose  <doko@ubuntu.com>
946
947         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
948
949 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
950
951         PR objc/28050
952         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
953         instead of NULL if a parser error occurs.
954
955 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
956
957         * dwarf2out.c (dwarf2_debug_hooks): Initialize
958         non-DWARF2_DEBUGGING_INFO version.
959
960 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
961
962         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
963         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
964
965         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
966         (LIBGCC2_TF_CEXT): Define.
967         (TF_SIZE): Define.
968
969 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
970
971         PR target/40463
972         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
973
974 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
975
976         * config/arm/arm.c (arm_override_options): Disable
977         -mcaller-super-interworking and -mcallee-super-interworking.
978         * doc/invoke.texi (ARM Options): Document this.
979
980 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
981
982         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
983         * config/arm/constraints.md (j): New constraint for movw operands.
984         (N): Remove thumb2 meaning.
985         * config/arm/arm.md (*arm_movw): Delete.
986         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
987         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
988         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
989
990 2009-06-22  Martin Jambor  <mjambor@suse.cz>
991
992         PR tree-optimization/40492
993         * tree-sra.c (sra_modify_assign): Pass zero offsets to
994         build_ref_for_offset.
995
996 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
997
998         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
999         JUMP_TABLE_DATA_P predicates where applicable.
1000         * auto-inc-dec.c: Ditto.
1001         * builtins.c: Ditto.
1002         * caller-save.c: Ditto.
1003         * calls.c: Ditto.
1004         * cfgcleanup.c: Ditto.
1005         * cfglayout.c: Ditto.
1006         * cfgrtl.c: Ditto.
1007         * combine.c: Ditto.
1008         * combine-stack-adj.c: Ditto.
1009         * cse.c: Ditto.
1010         * cselib.c: Ditto.
1011         * dbxout.c: Ditto.
1012         * df-scan.c: Ditto.
1013         * dse.c: Ditto.
1014         * dwarf2asm.c: Ditto.
1015         * dwarf2out.c: Ditto.
1016         * emit-rtl.c: Ditto.
1017         * except.c: Ditto.
1018         * explow.c: Ditto.
1019         * expmed.c: Ditto.
1020         * expr.c: Ditto.
1021         * final.c: Ditto.
1022         * function.c: Ditto.
1023         * fwprop.c: Ditto.
1024         * gcse.c: Ditto.
1025         * genpreds.c: Ditto.
1026         * genrecog.c: Ditto.
1027         * ifcvt.c: Ditto.
1028         * ira-costs.c: Ditto.
1029         * ira-lives.c: Ditto.
1030         * jump.c: Ditto.
1031         * loop-iv.c: Ditto.
1032         * lower-subreg.c: Ditto.
1033         * modulo-sched.c: Ditto.
1034         * optabs.c: Ditto.
1035         * postreload.c: Ditto.
1036         * print-rtl.c: Ditto.
1037         * recog.c: Ditto.
1038         * reginfo.c: Ditto.
1039         * regmove.c: Ditto.
1040         * reload1.c: Ditto.
1041         * reload.c: Ditto.
1042         * reorg.c: Ditto.
1043         * rtlanal.c: Ditto.
1044         * rtl.c: Ditto.
1045         * sched-vis.c: Ditto.
1046         * sdbout.c: Ditto.
1047         * sel-sched-ir.c: Ditto.
1048         * simplify-rtx.c: Ditto.
1049         * targhooks.c: Ditto.
1050         * var-tracking.c: Ditto.
1051         * vmsdbgout.c: Ditto.
1052
1053 2009-06-22  Matthias Klose  <doko@ubuntu.com>
1054
1055         * Makefile.in (install-plugin): Always use DESTDIR.
1056
1057 2009-06-22  Olivier Hainque  <hainque@adacore.com>
1058         
1059         * config/pa/pa.c (output_call): Don't optimize post call jumps
1060         into return address adjustments if the call may throw.
1061
1062 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
1063
1064         * arm.c (thumb1_output_casesi): New function.
1065         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
1066         optimizing for size or PIC.
1067         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
1068         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
1069         (casesi): Handle Thumb-1 when optimizing for size or PIC.
1070         (thumb1_casesi_internal_pic): New expand rule.
1071         (thumb1_casesi_dispatch): New pattern.
1072         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
1073         thumb-1 mode.
1074         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
1075         in the text seciton when PIC or optimizing for size.
1076         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
1077         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
1078         preservation properties of code.
1079         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
1080         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
1081         (__gnu_thumb1_case_si): New function.
1082         * t-arm (LIB1ASMSRC): Define here.
1083         (LIB1ASMFUNCS): Add some common functions.
1084         * t-arm-elf (LIB1ASMSRC): Delete.
1085         (LIB1ASMFUNCS): Append to existing set.
1086         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1087         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1088         * t-symbian (LIB1ASMFUNCS): Likewise.
1089         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1090         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1091
1092 2009-06-21  Richard Guenther  <rguenther@suse.de>
1093
1094         PR tree-optimization/38729
1095         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
1096         to loops with a single exit if -fno-expensive-optimizations.
1097
1098 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
1099
1100         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
1101         (dataflow_set): Change vars type from htab_t to shared_hash.
1102         (shared_hash_pool, empty_shared_hash): New variables.
1103         (vars_clear): Removed.
1104         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
1105         shared_hash_find_slot_unshare, shared_hash_find_slot,
1106         shared_hash_find_slot_noinsert, shared_hash_find): New
1107         static inlines.
1108         (shared_hash_unshare, shared_hash_destroy): New functions.
1109         (unshare_variable): Unshare set->vars if shared, use
1110         shared_hash_htab.
1111         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
1112         (get_init_value, find_src_set_src, dump_dataflow_set,
1113         clobber_variable_part, emit_notes_for_differences): Use
1114         shared_hash_htab.
1115         (dataflow_set_init): Remove second argument, set vars to
1116         empty_shared_hash instead of creating a new htab.
1117         (dataflow_set_clear): Call shared_hash_destroy and set vars
1118         to empty_shared_hash instead of calling vars_clear.
1119         (dataflow_set_copy): Don't call vars_copy, instead just share
1120         the src htab with dst.
1121         (variable_union): Use shared_hash_*, use initially NO_INSERT
1122         lookup if set->vars is shared.  Don't keep slot cleared before
1123         calling unshare_variable.  Unshare set->vars if needed.
1124         Even ->refcount == 1 vars must be unshared if set->vars is shared
1125         and var needs to be modified.
1126         (variable_canonicalize): New function.
1127         (dataflow_set_union): If dst->vars is empty, just share src->vars
1128         with dst->vars and traverse with variable_canonicalize to canonicalize
1129         and unshare what is needed.
1130         (dataflow_set_different): If old_set and new_set use the same shared
1131         htab, they aren't different.  If number of htab elements is different,
1132         htabs are different.  Use shared_hash_*.
1133         (dataflow_set_destroy): Call shared_hash_destroy instead of
1134         htab_delete.
1135         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
1136         second argument to dataflow_set_init.
1137         (vt_initialize): Likewise.  Initialize shared_hash_pool and
1138         empty_shared_hash, move bb in/out initialization afterwards.
1139         Use variable_htab_free instead of NULL as changed_variables del hook.
1140         (variable_was_changed): Change type of second argument to pointer to
1141         dataflow_set.  When inserting var into changed_variables, bump
1142         refcount.  Unshare set->vars if set is shared htab and slot needs to
1143         be cleared.
1144         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
1145         lookup if set->vars is shared.  Unshare set->vars if needed.
1146         Even ->refcount == 1 vars must be unshared if set->vars is shared
1147         and var needs to be modified.  Adjust variable_was_changed caller.
1148         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
1149         vars must be unshared if set->vars is shared and var needs to be
1150         modified.  Adjust variable_was_changed caller.
1151         (emit_note_insn_var_location): Don't pool_free var.
1152         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
1153         instead of 1.
1154         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
1155         free_alloc_pool on shared_hash_pool.
1156
1157 2009-06-20  Anthony Green  <green@moxielogic.com>
1158
1159         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
1160         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
1161
1162 2009-06-20  Richard Guenther  <rguenther@suse.de>
1163
1164         * tree-ssa-structalias.c (find_func_aliases): For memset use
1165         a constraint from NULL if we memset to zero.
1166         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
1167         we explicitly handle that do not read from memory.
1168         (call_may_clobber_ref_p_1): Properly handle builtins that may
1169         set errno.
1170
1171 2009-06-20  Richard Guenther  <rguenther@suse.de>
1172
1173         PR tree-optimization/40495
1174         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
1175         (new_scalar_tmp_constraint_exp): New function.
1176         (process_constraint): Do not create temporary decls.
1177         (process_all_all_constraints): Likewise.
1178         (handle_const_call): Likewise.
1179         (create_function_info_for): Do not set decl.
1180
1181 2009-06-19  Ian Lance Taylor  <iant@google.com>
1182
1183         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
1184         (rs6000_attribute_table): Make static; move before use.
1185
1186 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
1187
1188         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
1189         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
1190         Propagate the TREE_READONLY flag without overwriting it.
1191         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
1192         Propagate the TREE_READONLY flag onto the result.
1193         (process_call_operands): Move around.  Use correct constant value.
1194
1195 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1196
1197         PR target/40482
1198         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
1199         * config/arm/arm.md: Likewise.
1200
1201 2009-06-19  Ian Lance Taylor  <iant@google.com>
1202
1203         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
1204         to GIMPLE_ERROR_MARK.
1205
1206         * c-typeck.c (build_conditional_expr): Add op1_original_type and
1207         op2_original_type parameters.  Warn about using different enum types.
1208         * c-parser.c (c_parser_conditional_expression): Pass original
1209         types to build_conditional_expr.
1210         * c-tree.h (build_conditional_expr): Update declaration.
1211
1212 2009-06-19  Ian Lance Taylor  <iant@google.com>
1213
1214         * config/i386/i386.c (ix86_function_specific_save): Test that
1215         fields match values, rather than testing the values are in a
1216         certain range.
1217
1218 2009-06-19  Richard Guenther  <rguenther@suse.de>
1219
1220         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1221         ADDR_EXPR pointers.
1222         (ptr_derefs_may_alias_p): Likewise.
1223         (ptr_deref_may_alias_ref_p_1): New function.
1224         (ptr_deref_may_alias_ref_p): Likewise.
1225         (ref_maybe_used_by_call_p_1): Handle builtins that are not
1226         covered by looking at the ESCAPED solution.
1227         (call_may_clobber_ref_p_1): Likewise.
1228         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1229         Handle NULL_TREE offset.  Do not produce redundant constraints.
1230         (process_all_all_constraints): New helper function.
1231         (do_structure_copy): Use it.
1232         (handle_lhs_call): Likewise.
1233         (find_func_aliases): Handle some builtins with pointer arguments
1234         and/or return values explicitly.
1235
1236 2009-06-19  Ian Lance Taylor  <iant@google.com>
1237
1238         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1239
1240 2009-06-19  Ian Lance Taylor  <iant@google.com>
1241
1242         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1243
1244 2009-06-19  Ian Lance Taylor  <iant@google.com>
1245
1246         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1247         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1248         version.
1249
1250         * c-decl.c (finish_decl): If -Wc++-compat, warn about
1251         uninitialized const.
1252
1253 2009-06-19  Ian Lance Taylor  <iant@google.com>
1254
1255         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
1256         all uses.
1257
1258         * c-decl.c (in_struct, struct_types): Remove.
1259         (struct c_binding): Add in_struct field.
1260         (c_binding_ptr): Define type, along with VEC.
1261         (struct c_struct_parse_info): Define.
1262         (struct_parse_info): New static variable.
1263         (bind): Initialize in_struct field.
1264         (start_struct): Remove enclosing_in_struct and
1265         enclosing_struct_types parameters.  Add
1266         enclosing_struct_parse_info parameter.  Change all callers.  Set
1267         struct_parse_info rather than in_struct and struct_types.
1268         (grokfield): If -Wc++-compat and there is a symbol binding for the
1269         field name, set the in_struct flag and push it on the
1270         struct_parse_info->fields vector.
1271         (warn_cxx_compat_finish_struct): New static function.
1272         (finish_struct): Remove enclosing_in_struct and
1273         enclosing_struct_types parameters.  Add
1274         enclosing_struct_parse_info parameter.  Change all callers.  Don't
1275         set C_TYPE_DEFINED_IN_STRUCT here.  Call
1276         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
1277         parameter.  Only push on struct_types if warn_cxx_compat.
1278         (finish_enum): Only push on struct_types if warn_cxx_compat.
1279         (declspecs_add_type): Add loc parameter.  Change all callers.
1280         Change all error calls to error_at.  Pass loc, not input_location,
1281         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
1282         defined in a struct.  If -Wc++-compat and parsing a struct, record
1283         that a typedef name was used.
1284         * c-parser.c (c_parser_declspecs): Get location to pass to
1285         declspecs_add_type.
1286         (c_parser_struct_or_union_specifier): Update calls to start_struct
1287         and finish_struct.
1288         * c-tree.h (struct c_struct_parse_info): Declare.
1289         (finish_struct, start_struct): Update declarations.
1290         (declspecs_add_type): Update declaration.
1291
1292 2009-06-19  Ian Lance Taylor  <iant@google.com>
1293
1294         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1295         variable with an anonymous type.
1296
1297 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1298
1299         * see.c: Remove for real.
1300
1301 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1302
1303         * optabs.h (enum optab_index): Add new OTI_significand.
1304         (significand_optab): Define corresponding macro.
1305         * optabs.c (init_optabs): Initialize significand_optab.
1306         * genopinit.c (optabs): Implement significand_optab using
1307         significand?f2 patterns.
1308         * builtins.c (expand_builtin_mathfn): Handle
1309         BUILT_IN_SIGNIFICAND{,F,L}.
1310         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1311         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1312
1313         * config/i386/i386.md (significandxf2, significand<mode>2): New
1314         expanders to implement significandf, significand and significandl
1315         built-ins as inline x87 intrinsics.
1316
1317 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
1318
1319         * config/avr/avr.c (avr_override_options): Remove setting value of
1320         PARAM_INLINE_CALL_COST.
1321
1322 2009-06-18  Richard Henderson  <rth@redhat.com>
1323
1324         PR 40488
1325         * tree-pass.h (TDF_ASMNAME): New.
1326         * tree-dump.c (dump_options): Add asmname.
1327         * doc/invoke.texi: Document it.
1328
1329         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1330         (dump_decl_name): ...here.
1331         (dump_function_name): New flags arg; mind TDF_ASMNAME.
1332         (dump_generic_node): Update dump_function_name calls.
1333         (print_call_name): New flags arg; update all dump calls.
1334         * diagnostic.h (print_call_name): Update.
1335         * gimple-pretty-print.c (dump_gimple_call): Update.
1336
1337 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1338
1339         PR target/40470
1340         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1341
1342 2009-06-18  Diego Novillo  <dnovillo@google.com>
1343
1344         * doc/plugins.texi: Document plugin_is_GPL_compatible.
1345         * plugin.c (str_license): Declare.
1346         (try_init_one_plugin): Assert that the symbol
1347         'plugin_is_GPL_compatible' exists.
1348
1349 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
1350
1351         * see.c: Remove.
1352         * Makefile.in (OBJS-common): Remove see.o.
1353         (see.o): Remove.
1354         * common.opt (fsee): Mark as preserved for backward compatibility.
1355         * opts.c (common_handle_option): Add OPT_fsee to the backward 
1356         compatibility section.
1357         * passes.c (init_optimization_passes, pass_see): Remove pass.
1358         * timevar.def (TV_SEE): Remove.
1359         * tree-pass.h (pass_see): Remove declaration.
1360         * doc/invoke.texi (-fsee): Remove documentation.
1361         
1362 2009-06-18  Martin Jambor  <mjambor@suse.cz>
1363
1364         * tree-sra.c: Include statistics.h
1365         (sra_stats): New variable.
1366         (sra_initialize): Clear sra_stats.
1367         (create_access_replacement): Increment sra_stats.replacements.
1368         (get_access_replacement): Do not return twice.
1369         (analyze_all_variable_accesses): Increment statistics counter by the
1370         number of scalarized aggregates.
1371         (generate_subtree_copies): Increment sra_stats.subtree_copies.
1372         (sra_modify_expr): Increment sra_stats.exprs.
1373         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1374         (sra_modify_assign): Increment sra_stats.exprs,
1375         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1376         (perform_intra_sra): Update statistics counters.
1377         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1378
1379 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1380
1381         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1382         (arm_scalar_mode_supported_p): New function.
1383
1384 2009-06-18  Paul Brook  <paul@codesourcery.com>
1385             Sandra Loosemore  <sandra@codesourcery.com>
1386
1387         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1388         (__extendhfsf2, __truncsfhf2): Define.
1389         * config/arm/fp16.c: New file.
1390         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1391         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
1392
1393 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1394
1395         * doc/extend.texi (Half-Precision): New section.
1396         * doc/invoke.texi (Option Summary): List -mfp16-format.
1397         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
1398         * config/arm/arm.opt (mfp16-format=): New.
1399         * config/arm/arm.c: Include intl.h.
1400         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1401         (TARGET_INVALID_RETURN_TYPE): Redefine.
1402         (TARGET_PROMOTED_TYPE): Redefine.
1403         (TARGET_CONVERT_TO_TYPE): Redefine.
1404         (arm_fp16_format): Define.
1405         (all_fpus): Add entry for neon-fp16.
1406         (fp_model_for_fpu): Likewise.
1407         (struct fp16_format): Declare.
1408         (all_fp16_formats): Define.
1409         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1410         functions.
1411         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1412         and no ldrh.
1413         (arm_legitimate_index_p): Treat HFmode like HImode.
1414         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1415         (coproc_secondary_reload_class): Special-case HFmode.
1416         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1417         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1418         (arm_init_fp16_builtins): New.
1419         (arm_init_builtins): Call it.
1420         (arm_invalid_parameter_type): New.
1421         (arm_invalid_return_type): New.
1422         (arm_promoted_type): New.
1423         (arm_convert_to_type).
1424         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
1425         format.
1426         (arm_emit_fp16_const): New function.
1427         (arm_mangle_type): Mangle __fp16 as "Dh".
1428         * config/arm/arm.h (TARGET_VFPD32): Make it know about
1429         FPUTYPE_NEON_FP16.
1430         (TARGET_NEON_FP16): New.
1431         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1432         (enum fputype): Add FPUTYPE_NEON_FP16.
1433         (enum arm_fp16_format_type): Declare.
1434         (arm_fp16_format): Declare.
1435         (LARGEST_EXPONENT_IS_NORMAL): Define.
1436         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1437         * config/arm/arm-modes.def (HFmode): Define.
1438         * config/arm/vfp.md: (*movhf_vfp): New.
1439         (extendhfsf2): New.
1440         (truncsfhf2): New.
1441         * config/arm/arm.md: (fpu): Add neon_fp16.
1442         (floatsihf2, floatdihf2): New.
1443         (fix_trunchfsi2, fix_trunchfdi2): New.
1444         (truncdfhf2): New.
1445         (extendhfdf2): New.
1446         (movhf): New.
1447         (*arm32_movhf): New.
1448         (*thumb1_movhf): New.
1449         (consttable_2): Add check for HFmode constants.
1450         (consttable_4): Handle HFmode constants.
1451
1452 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
1453
1454         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1455
1456 2009-06-17  Olivier Hainque  <hainque@adacore.com>
1457
1458         * collect2.c (main): Use CONST_CAST2 to perform char ** to
1459         const char ** conversion in AIX specific section.
1460         
1461 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1462
1463         * config/i386/i386.c (ix86_special_builtin_type): Remove
1464         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
1465         (bdesc_special_args): Updated.
1466         (ix86_init_mmx_sse_builtins): Likewise.
1467         (ix86_expand_special_args_builtin): Likewise.
1468
1469 2009-06-17  Richard Henderson  <rth@redhat.com>
1470
1471         * tree-pretty-print.c (maybe_dump_asm_name): New.
1472         (dump_decl_name): Use it.
1473         (PRINT_FUNCTION_NAME): Merge into...
1474         (dump_function_name): ... here.  Use maybe_dump_asm_name.
1475
1476 2009-06-17  Cary Coutant  <ccoutant@google.com>
1477
1478         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1479         Change caller.
1480         * debug.c (struct gcc_debug_hooks): Change placeholder for
1481         source_line hook.
1482         (debug_nothing_int_charstar_int): Replaced by...
1483         (debug_nothing_int_charstar_int_bool): ...this.
1484         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1485         source_line prototype.
1486         (debug_nothing_int_charstar_int): Replaced by...
1487         (debug_nothing_int_charstar_int_bool): ...this.
1488         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1489         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1490         Output is_stmt operand when necessary.
1491         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1492         (notice_source_line): Add is_stmt parameter.
1493         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1494         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1495         Change callers.
1496         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1497         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1498
1499 2009-06-17  Ian Lance Taylor  <iant@google.com>
1500
1501         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1502         Change all uses.
1503         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
1504         call uses.
1505
1506 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
1507
1508         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1509         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1510         tree_strip_sign_nop_conversions and
1511         tree_ssa_strip_useless_type_conversions rather than stripping
1512         the operations here.
1513         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1514         Declare them.
1515         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1516         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1517         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1518         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1519         functions.
1520
1521 2009-06-17  Michael Eager  <eager@eagercon.com>
1522
1523         * config/rs6000/constraints.md (register_constraint "d"): New.
1524         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1525         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1526         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1527         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1528         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1529         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1530         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1531         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1532         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1533         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1534         __fctiwz): Same.
1535         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1536         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1537         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1538         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1539         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1540         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1541         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1542         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1543         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1544         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1545         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1546         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1547         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1548         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1549
1550 2009-06-16  Ian Lance Taylor  <iant@google.com>
1551
1552         * profile.c (total_num_never_executed): Don't define.
1553         (compute_branch_probabilities): Don't count or print
1554         num_never_executed.
1555         (init_branch_prob): Don't set total_num_never_executed.
1556         (end_branch_prob): Don't print total_num_never_executed.
1557
1558 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
1559
1560         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1561
1562 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
1563
1564         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1565         (nabstd2_fpr): Same.
1566
1567 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
1568
1569         * expr.c (expand_assignment): Change complex type check.
1570
1571 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
1572
1573         * doc/plugins.texi (Building GCC plugins): Added new section. 
1574
1575 2009-06-17  Ian Lance Taylor  <iant@google.com>
1576
1577         * c-pch.c (get_ident): Don't set size of templ array.
1578         (pch_init): Don't set size of partial_pch array.
1579
1580         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1581         string constant to intialize an array whose size is the length of
1582         the string.
1583
1584 2009-06-17  Richard Guenther  <rguenther@suse.de>
1585
1586         PR tree-optimization/40389
1587         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1588         to addressable types.
1589         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1590
1591 2009-06-17  Richard Guenther  <rguenther@suse.de>
1592
1593         PR middle-end/40460
1594         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1595         if there is no evolution of left in the loop bail out.
1596         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1597         chrec_fold_multiply.
1598
1599 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
1600             Janis Johnson  <janis187@us.ibm.com>
1601
1602         PR target/39254
1603         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1604         for the symbol ref of a constant that is the source of a move
1605         - nor for any other not-obvious-label-ref constants.
1606
1607 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
1608
1609         * plugin.c (position_pass): Skip newly inserted pass during list
1610         traversal to avoid repeated insertion.
1611
1612 2009-06-16  Ian Lance Taylor  <iant@google.com>
1613
1614         * vec.h (VEC_stack_alloc): Define different version if
1615         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1616         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1617         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1618         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1619
1620 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1621
1622         * config.gcc (extra_headers): Add ia32intrin.h for x86.
1623
1624         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1625         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1626         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1627         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1628         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1629         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1630         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1631         (bdesc_special_args): Add __builtin_ia32_rdtsc and
1632         __builtin_ia32_rdtscp.
1633         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1634         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1635         and __builtin_ia32_rorhi.
1636         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1637         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1638         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1639         (ix86_expand_args_builtin): Likewise.
1640         (ix86_expand_special_args_builtin): Likewise.
1641
1642         * config/i386/i386.md (UNSPECV_RDTSCP): New.
1643         (UNSPECV_RDTSC): Likewise.
1644         (UNSPECV_RDPMC): Likewise.
1645         (*bsr): Renamed to ...
1646         (bsr): This
1647         (*bsr_rex64): Renamed to ...
1648         (bsr_rex64): This.
1649         (rdpmc): New.
1650         (*rdpmc): Likewise.
1651         (*rdpmc_rex64): Likewise.
1652         (rdtsc): Likewise.
1653         (*rdtsc): Likewise.
1654         (*rdtsc_rex64): Likewise.
1655         (rdtscp): Likewise.
1656         (*rdtscp): Likewise.
1657         (*rdtscp_rex64): Likewise.
1658
1659         * config/i386/ia32intrin.h: New.
1660
1661         * config/i386/x86intrin.h: Include <ia32intrin.h>.
1662
1663 2009-06-16  Ian Lance Taylor  <iant@google.com>
1664
1665         * ira-build.c (copy_info_to_removed_store_destinations):
1666         Initialize parent_a.
1667
1668 2009-06-16  Ian Lance Taylor  <iant@google.com>
1669
1670         * c-decl.c (grokdeclarator): Change size_varies to bool.
1671
1672 2009-06-16  Ian Lance Taylor  <iant@google.com>
1673
1674         * sel-sched.c: Make forward declarations of move_op_hooks and
1675         fur_hooks explicitly extern.
1676
1677 2009-06-16  Ian Lance Taylor  <iant@google.com>
1678
1679         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1680         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1681
1682 2009-06-16  Ian Lance Taylor  <iant@google.com>
1683
1684         * resource.c (mark_referenced_resources): Change
1685         include_delayed_effects parameter to bool.  Change all callers.
1686         (mark_end_of_function_resources): Likewise.
1687         * reorg.c (insn_references_resource_p): Likewise.
1688         (insn_sets_resource_p): Likewise.
1689         * resource.h (mark_referenced_resources): Update declaration.
1690         (mark_end_of_function_resources): Update declaration.
1691
1692 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1693
1694         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1695
1696 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1697
1698         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1699         GCC can bootstrap on AIX with GNU Binutils 2.20.
1700
1701 2009-06-16  Ian Lance Taylor  <iant@google.com>
1702
1703         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1704
1705 2009-06-16  Ian Lance Taylor  <iant@google.com>
1706
1707         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1708         inline, not extern inline.
1709         (exact_log2): Likewise.
1710         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1711         test CLZ_HWI.
1712         (exact_log2): Likewise, but don't test CTZ_HWI.
1713
1714 2009-06-16  Ian Lance Taylor  <iant@google.com>
1715
1716         * bitmap.c (bitmap_clear): Don't declare as inline.
1717         * gimple.c (gimplify_assign): Likewise.
1718         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1719         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1720         (sched_scan_info): Remove duplicate definition.
1721
1722 2009-06-16  Ian Lance Taylor  <iant@google.com>
1723
1724         * c-common.c (skip_evaluation): Don't define.
1725         (c_inhibit_evaluation_warnings): Define global variable.
1726         (overflow_warning): Check c_inhibit_evaluation_warnings rather
1727         than skip_evaluation.
1728         (convert_and_check, warn_for_div_by_zero): Likewise.
1729         * c-common.h (skip_evaluation): Don't declare.
1730         (c_inhibit_evaluation_warnings): Declare.
1731         * c-parser.c (c_parser_typeof_specifier): Set
1732         c_inhibit_evaluation_warnings rather than skip_evaluation.
1733         (c_parser_conditional_expression): Likewise.
1734         (c_parser_binary_expression): Likewise.
1735         (c_parser_sizeof_expression): Likewise.
1736         (c_parser_alignof_expression): Likewise.
1737         * c-typeck.c (build_indirect_ref): Check
1738         c_inhibit_evaluation_warnings rather than skip_evaluation.
1739         (build_conditional_expr, build_binary_op): Likewise.
1740
1741 2009-06-16  Richard Guenther  <rguenther@suse.de>
1742
1743         * tree-ssa-alias.c (is_escape_site): Remove.
1744         * tree-ssa-alias.h (enum escape_type): Remove.
1745         (is_escape_site): Likewise.
1746         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1747         via casts and asms without deferring to is_escape_site.
1748
1749 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
1750
1751         PR middle-end/40446
1752         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1753         use gen_lowpart if op0 has complex mode.
1754
1755 2009-06-16  Richard Guenther  <rguenther@suse.de>
1756
1757         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1758         variables add them to ESCAPED.
1759         (find_func_aliases): Do not make all indirectly stored values escaped.
1760
1761 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
1762
1763         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1764         make_decl_one_only.
1765
1766 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1767
1768         PR tree-optimization/40432
1769         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1770         check whether we need to force gimple register operand.
1771
1772 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1773
1774         PR tree-optimization/40413
1775         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1776         build_ref_for_offset.
1777         (propagate_subacesses_accross_link): Fix a typo in a comment.
1778
1779 2009-06-16  Ira Rosen  <irar@il.ibm.com>
1780
1781         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1782         with additional parameter.
1783         * tree-vectorizer.h (enum vect_def_type): Add new value
1784         vect_nested_cycle.
1785         (enum vect_relevant): Add comments.
1786         (vect_is_simple_reduction): Add new argument.
1787         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1788         Detect nested cycles.
1789         (vect_is_simple_reduction): Update documentation, add an argument to
1790         distinguish inner-loop reduction from nested cycle, detect nested
1791         cycles, fix printings and indentation, don't swap operands in case
1792         of nested cycle.
1793         (get_initial_def_for_reduction): Handle subtraction.
1794         (vect_create_epilog_for_reduction): Add new argument to specify
1795         reduction variable.
1796         (vect_finalize_reduction): Handle subtraction, fix comments.
1797         (vectorizable_reduction): Handle nested cycles. In case of nested
1798         cycle keep track of the reduction variable position. Call 
1799         vect_is_simple_reduction with additional parameter. Use original 
1800         statement code in reduction epilogue for nested cycle. Call
1801         vect_create_epilog_for_reduction with additional parameter.
1802         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1803         inner-loop vectorization.
1804         (vect_recog_widen_sum_pattern): Likewise.
1805         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1806         and reductions.
1807         (vect_mark_stmts_to_be_vectorized): Likewise.
1808         (vect_get_vec_def_for_operand): Handle nested cycles.
1809
1810 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1811
1812         * doc/invoke.texi (Debugging Options): Fix option index entries
1813         for -fdump-statistics, -frandom-seed add entries for
1814         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1815         (FRV Options): Fix entries for -mTLS, -mtls.
1816         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1817         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1818         (M68hc1x Options): Fix @itemx for -mnominmax.
1819         (MCore Options): Fix entry for -mno-lsim.
1820         (MMIX Options): Fix entry for -mabi=mmixware.
1821         (PDP-11 Options): Fix entry for -mbcopy-builtin.
1822
1823 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
1824
1825         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1826         Mention the plugin mode of gengtype.
1827         * doc/gty.texi (Source Files Containing Type Information): Likewise.
1828         * gengtype.c: Updated copyright.
1829         (plugin_files, nb_plugin_files) Added new static variables.
1830         (measure_input_list) Care about plugin_files.
1831         (write_rtx_next): Added early return in plugin mode.
1832         (create_file): Updated copyright year in generated file. Added
1833         asserts.
1834         (oprintf): Added early return if NULL outf.
1835         (get_output_file_with_visibility): Care of plugin_files.
1836         (get_output_file_name): May return null.
1837         (write_local): Added early return.
1838         (put_mangled_filename): Ditto.
1839         (finish_root_table): Added check for base_files.
1840         (write_roots): Care about null when plugins.
1841         (main): Added plugin mode.
1842
1843 2009-06-15  Ian Lance Taylor  <iant@google.com>
1844
1845         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1846         * gcov.c (read_count_file): Add braces around variables declared
1847         before label.
1848
1849         * c.opt (Wjump-misses-init): New warning.
1850         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1851         -Wall and -Wc++-compat if not already set.
1852         (c_common_post_options): Clear warn_jump_misses_init if it was not
1853         set.
1854         * c-decl.c (struct c_binding): Change type field to a union with
1855         new label field.  Make it the first field in the struct.  Update
1856         references to type to use u.type instead.
1857         (struct c_spot_bindings): Define.
1858         (struct c_goto_bindings): Define.
1859         (c_goto_bindings_p): Define, along with VECs.
1860         (struct c_label_vars): Define.
1861         (struct c_scope): Add has_label_bindings field.
1862         (bind_label, set_spot_bindings): New static functions.
1863         (decl_jump_unsafe, update_spot_bindings): New static functions.
1864         (update_label_decls): New static function.
1865         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
1866         Update binding u.label field to shadowed field.
1867         (c_binding_start_stmt_expr): New function.
1868         (c_binding_end_stmt_expr): New function.
1869         (pushdecl): Don't call c_begin_vm_scope.
1870         (make_label): Add defining and p_label_vars parameters.  Change
1871         all callers.
1872         (lookup_label): Correct test for whether a label has not yet been
1873         defined.  Call bind_label rather than bind.
1874         (warn_about_goto): New static function.
1875         (lookup_label_for_goto): New function.
1876         (declare_label): Call bind_label rather than bind.
1877         (check_earlier_gotos): New static function.
1878         (define_label): Don't give errors about jumping into statement
1879         expressions or scopes of variably modified types.  Call
1880         set_spot_bindings and check_earlier_gotos.  Call bind_label
1881         instead of bind.  Don't set label_context_stack_se or
1882         label_context_stack_vm.
1883         (c_get_switch_bindings): New function.
1884         (c_release_switch_bindings): New function.
1885         (c_check_switch_jump_warnings): New function.
1886         (start_function): Don't set label_context_stack_se or
1887         label_context_stack_vm.
1888         (finish_function): Likewise.
1889         * c-typeck.c (label_context_stack_se): Don't define.
1890         (label_context_stack_vm): Don't define.
1891         (c_finish_goto_label): Call lookup_label_for_goto rather than
1892         lookup_label.  Don't give errors about jumping into a statement
1893         expression or the scope of a variably modified type.  Don't set
1894         label_context_stack_se or label_context_stack_vm.
1895         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1896         fields.  Add bindings field.
1897         (c_start_case): Don't set deleted fields.  Set bindings field.
1898         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
1899         or blocked_vm.  Call c_check_switch_jump_warnings.
1900         (c_finish_case): Don't test blocked_stmt_expr field.  Call
1901         c_release_switch_bindings.
1902         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1903         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1904         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
1905         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1906         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1907         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
1908         (c_begin_vm_scope, c_end_vm_scope): Don't define.
1909         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1910         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1911         (C_DECL_UNJUMPABLE_VM): Don't define.
1912         (C_DECL_UNDEFINABLE_VM): Don't define.
1913         (struct c_label_list): Don't define.
1914         (struct c_label_context_se): Don't define.
1915         (struct c_label_context_vm): Don't define.
1916         (struct c_spot_bindings): Declare.
1917         (c_bindings_start_stmt_expr): Declare.
1918         (c_bindings_end_stmt_expr): Declare.
1919         (lookup_label_for_goto): Declare.
1920         (c_get_switch_bindings, c_release_switch_bindings): Declare.
1921         (c_check_switch_jump_warnings): Declare.
1922         (label_context_stack_se, label_context_stack_vm): Don't declare.
1923         (c_finish_goto_label): Update declaration.
1924         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1925         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1926         (Warning Options): Document -Wjump-misses-init.
1927
1928 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
1929
1930         * tree-object-size.c (addr_object_size): Fix a pasto in the last
1931         change.
1932
1933 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1934
1935         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1936
1937 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1938
1939         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1940
1941 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1942
1943         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1944
1945 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1946
1947         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1948         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1949         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1950         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1951         * dwarf2asm.c (dw2_force_const_mem): Update call to
1952         make_decl_one_only.
1953         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1954         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1955         * langhooks.c (lhd_comdat_group): Remove.
1956         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1957         * tree.h (DECL_COMDAT_GROUP): New.
1958         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1959         (tree_decl_with_vis): Add comdat_group. Remove one_only.
1960         (make_decl_one_only): Change signature.
1961         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1962         make_decl_one_only.
1963         (make_decl_one_only): Change signature.
1964         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1965
1966 2009-06-15  Richard Guenther  <rguenther@suse.de>
1967
1968         PR middle-end/40439
1969         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1970
1971 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1972
1973         * tree-ssa-math-opts.c: Remove extra divide.
1974
1975 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1976
1977         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1978
1979 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1980
1981         * passes.c: Add bswap pass.
1982         * tree-pass.h: Add pass_optimize_bswap declaration.
1983         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1984         Include rtl.h, expr.h and optabs.h for optab_handler check.
1985         (struct symbolic_number, pass_optimize_bswap): New definition.
1986         (do_shift_rotate, verify_symbolic_number_p): New functions.
1987         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1988         (gate_optimize_bswap): New function.
1989         * tree.c (widest_int_cst_value): New function.
1990         * tree.h (widest_int_cst_value): Prototype added.
1991
1992 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1993
1994         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1995         REG_EQUAL/REG_EQUIV notes.
1996
1997 2009-06-14  Richard Guenther  <rguenther@suse.de>
1998
1999         PR middle-end/40389
2000         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
2001         has its address taken if NRV was applied and it is addressable.
2002         * tree-ssa-structalias.c (get_constraint_for_address_of): New
2003         function split out from ...
2004         (get_constraint_for_1): ... here.
2005         (handle_rhs_call): Use it to mark the return slot escaped if
2006         it is addressable and NRV was applied.
2007
2008 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
2009
2010         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
2011         Change first argument type to location_t.
2012         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
2013         Do not set input_location.
2014         Use loc instead of input_location throughout.
2015
2016 2009-06-13  Richard Guenther  <rguenther@suse.de>
2017
2018         PR tree-optimization/40421
2019         * tree-predcom.c (should_unroll_loop_p): Remove.
2020         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
2021
2022 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
2023
2024         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2025         Add location argument.
2026
2027 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
2028
2029         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
2030         build_decl.
2031         * config/s390/s390.c (s390_build_builtin_va_list): Same.
2032         (s390_gimplify_va_arg): Pass location to create_artificial_label.
2033         * config/spu/spu-protos.h: Add location to
2034         spu_resolve_overloaded_builtin.
2035         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
2036         spu_build_builtin_va_list.
2037         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
2038         argument.  Pass location to build_function_call_vec.
2039         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
2040         build_decl.
2041         (emit_fpu_switch): Same.
2042         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
2043         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
2044         to build_decl and create_artificial_label.
2045         (xtensa_gimplify_va_arg_expr): Same.
2046         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
2047         (xstormy16_gimplify_va_arg_expr): Same.
2048         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
2049         * config/arm/arm.c (arm_build_builtin_va_list): Same.
2050         * config/mips/mips.c (mips_build_builtin_va_list): Same.
2051         (mips16_build_function_stub): Same.
2052         (mips16_build_call_stub): Same.
2053
2054 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
2055
2056         PR target/40327
2057         * arm/constraints.md (Pa, Pb): New constraints.
2058         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
2059         split pattern to deal with them.
2060
2061 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
2062
2063         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
2064         fix index entry for -Xpreprocessor.
2065
2066 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2067
2068         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2069         Add location argument to build_decl call.
2070         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
2071         (rs6000_init_builtins): Same.
2072         (spe_init_builtins): Same.
2073         (rs6000_gimplify_va_arg): Add location argument to
2074         create_artificial_label call.
2075
2076 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
2077
2078         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
2079         * combine-stack-adj.c (pass_stack_adjustments): Use it.
2080         * Makefile.in: Fix GGC dependency for gcse.o.
2081
2082 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2083
2084         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
2085         * gimple-pretty-print.c (dump_gimple_stmt): Same.
2086         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
2087         created.
2088         * c-parser.c (c_parser_binary_expression): Use current column while
2089         building binary operations.
2090         * common.opt (fshow-column): Enable by default.
2091         * tree-vrp.c (check_array_ref): Use warning_at.
2092         (check_array_bounds): Use location from call back if expr has no
2093         location.
2094         * tree.h: Add location argument to maybe_fold_*.
2095         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
2096         (maybe_fold_offset_to_array_ref): Add location argument and use it.
2097         (maybe_fold_offset_to_component_ref): Same.
2098         (maybe_fold_offset_to_reference): Same.
2099         (maybe_fold_offset_to_address): Same.
2100         (maybe_fold_stmt_indirect): Same.
2101         (maybe_fold_stmt_addition): Same.
2102         (fold_stmt_r): Pass location to maybe_fold_*.
2103         (fold_gimple_assign): Same.
2104         * c-tree.h: Add location argument to finish_decl,
2105         default_function_array_conversion, store_init_value.
2106         * c-decl.c (define_label): Use error_at.
2107         (c_make_fname_decl): Pass location to finish_decl.
2108         (finish_decl): New location argument.
2109         (build_compound_literal): Pass location to store_init_value.
2110         (grokdeclarator): Pass location to finish_decl.
2111         (grokfield): Same.
2112         * c-typeck.c (array_to_pointer_conversion): New location argument.
2113         (function_to_pointer_conversion): Same.
2114         (default_function_array_conversion): Same.
2115         (parser_build_unary_op): Pass location to overflow_warning.
2116         (parser_build_binary_op): Same.  Use warning_at.
2117         (build_unary_op): Pass location to array_to_pointer_conversion.
2118         (build_c_cast): Pass location to digest_init.
2119         (build_modify_expr): New location argument.
2120         (convert_for_assignment): Same.
2121         (store_init_value): Same.
2122         (digest_init): Same.
2123         (output_init_element): Pass location to digest_init and
2124         array_to_pointer_conversion.
2125         (c_finish_return): Pass location to convert_for_assignment.
2126         * gimplify.c (gimplify_conversion): Pass location to
2127         maybe_fold_offset_to_address.
2128         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
2129         to maybe_fold_stmt_addition.
2130         * c-omp.c (c_finish_omp_atomic): Pass new location to
2131         build_modify_expr.
2132         (c_finish_omp_for): Same.
2133         * c-common.c (overflow_warning): New argument.
2134         * c-common.h: New argument to build_modify_expr, overflow_warning.
2135         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
2136         finish_decl.
2137         (c_parser_initializer): Pass location to
2138         default_function_array_conversion.
2139         (c_parser_initelt): Same.
2140         (c_parser_initval): Same.
2141         (c_parser_asm_operands): Same.
2142         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
2143         (c_parser_conditional_expression): Same.
2144         (c_parser_binary_expression): Add location info to stack.  Use it.
2145         (c_parser_unary_expression): Pass location to
2146         default_function_array_conversion, parser_build_unary_op,
2147         build_indirect_ref, c_parser_postfix_expression_after_primary.
2148         (c_parser_postfix_expression_after_primary): New location argument.
2149         Use it.
2150         (c_parser_expression_conv): Pass location to
2151         default_function_array_conversion.
2152         (c_parser_expr_list): Same.
2153         (c_parser_omp_atomic): Same.
2154         (c_parser_omp_for_loop): Same.
2155         * c-tree.h: (struct c_declarator): Add comment to id_loc.
2156         (build_array_declarator): New argument.
2157         * c-decl.c (build_array_declarator): Add location argument.
2158         (grokdeclarator): Set id_loc for cdk_array.
2159         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
2160         build_array_declarator.
2161         * tree.c (build_omp_clause): Add location argument.
2162         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
2163         (OMP_CLAUSE_LOCATION): New macro.
2164         (struct tree_omp_clause): Add location field.
2165         (build_omp_clause): Add argument.
2166         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
2167         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
2168         build_omp_clause.
2169         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
2170         (cp_parser_omp_clause_collapse): Same.
2171         (cp_parser_omp_clause_default): Same.
2172         (cp_parser_omp_clause_if): Same.
2173         (cp_parser_omp_clause_nowait): Same.
2174         (cp_parser_omp_clause_num_threads): Same.
2175         (cp_parser_omp_clause_ordered): Same.
2176         (cp_parser_omp_clause_schedule): Same.
2177         (cp_parser_omp_clause_untied): Same.
2178         (cp_parser_omp_for_loop): Same.
2179         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2180         * c-tree.h (c_start_case): Add location argument.
2181         (c_process_expr_stmt): Same.
2182         (c_finish_goto_*): Same.
2183         * tree-parloops.c (initialize_reductions): Pass location to
2184         build_omp_clause.
2185         (create_parallel_loop): Same.
2186         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
2187         (gfc_trans_omp_reduction_list): Same.
2188         (gfc_trans_omp_clauses): Same.
2189         (gfc_trans_omp_do): Same.
2190         * c-typeck.c (c_finish_goto_label): Same.
2191         (c_finish_goto_ptr): New location argument.
2192         (c_start_case): Same.
2193         (emit_side_effect_warnings): Same.
2194         (c_process_expr_stmt): Same.
2195         (c_finish_stmt_expr): Same.
2196         (c_finish_omp_clauses): Use error_at instead of error.
2197         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
2198         build_omp_clause.
2199         * c-omp.c (c_split_parallel_clauses): New location argument.
2200         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
2201         to build_omp_clause.
2202         (convert_local_reference_stmt): Same.
2203         (convert_gimple_call): Same.
2204         * c-common.h (c_split_parallel_clauses): New argument.
2205         * c-parser.c (c_parser_statement_after_labels): Pass location to
2206         c_finish_goto_label.
2207         (c_parser_switch_statement): Pass location to c_start_case.
2208         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
2209         and c_process_expr_stmt.
2210         (c_parser_omp_variable_list): Add location argument.
2211         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
2212         (c_parser_omp_clause_default): Same.
2213         (c_parser_omp_clause_if): Same.
2214         (c_parser_omp_clause_num_threads): Same.
2215         (-c_parser_omp_clause_ordered): Same.
2216         (c_parser_omp_clause_reduction): Pass location to
2217         c_parser_omp_variable_list.
2218         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2219         (c_parser_omp_clause_untied): Same.
2220         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2221         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2222
2223         * c-tree.h (check_for_loop_decls, undeclared_variable,
2224         build_component_ref, build_array_ref, build_external_ref,
2225         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2226         build_conditional_expr, build_compound_expr, c_cast_expr,
2227         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2228         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2229         argument.
2230         * c-semantics.c (build_stmt): Same.
2231         (build_case_label): Same.
2232         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2233         (undeclared_variable): New argument.
2234         (make_label): Same.
2235         (lookup_label): Pass location on down.
2236         (define_label): Same.
2237         (finish_decl): Same.
2238         (build_compound_literal): Same.
2239         (finish_struct): Same.
2240         (finish_function): Do not set location here.
2241         (check_for_loop_decls): New argument.
2242         * tree.c (save_expr): Set location.
2243         (build_empty_stmt): New argument.
2244         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2245         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2246         * builtins.c (gimplify_va_arg_expr): Use locations.
2247         (expand_builtin_sync_operation): Same.
2248         * c-typeck.c (build_component_ref): New argument.
2249         (build_array_ref): Same.
2250         (build_external_ref): Same.
2251         (c_expr_sizeof_expr): Same.
2252         (c_expr_sizeof_type): Same.
2253         (parser_build_unary_op): Same.
2254         (build_conditional_expr): Same.
2255         (build_compound_expr): Pass location on down.
2256         (build_compound_expr): New argument.
2257         (build_c_cast): Same.
2258         (c_cast_expr): Same.
2259         (build_asm_expr): Same.
2260         (c_finish_return): Same.
2261         (c_process_expr_stmt): Pass location on down.
2262         (c_finish_stmt_expr): New argument.
2263         (push_clenaup): Same.
2264         (c_finish_omp_parallel): Same.
2265         (c_finish_omp_task): Same.
2266         * gimplify.c (gimplify_call_expr): Pass location on down.
2267         * c-omp.c (c_finish_omp_master): New argument.
2268         (c_finish_omp_critical): Same.
2269         (c_finish_omp_ordered): Same.
2270         (c_finish_omp_barrier): Same.
2271         (-c_finish_omp_taskwait): Same.
2272         (c_finish_omp_atomic): Same.
2273         (c_finish_omp_flush): Same.
2274         * tree-inline.c (copy_tree_body_r): Pass location on down.
2275         (inline_forbidden_p): Remove use of input_location.
2276         * c-gimplify.c (c_build_bind_expr): New argument.
2277         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2278         (c_sizeof_or_alignof_type): New argument.
2279         (c_alignof_expr): Same.
2280         (build_va_arg): Same.
2281         (c_add_case_label): Same.
2282         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2283         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2284         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2285         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2286         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2287         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2288         New argument.
2289         * stub-objc.c (objc_build_selector_expr): Same.
2290         (objc_build_throw_stmt): Same.
2291         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2292         (c_parser_initelt): Same.
2293         (c_parser_compound_statement): Same.
2294         (c_parser_compound_statement_nostart): Same.
2295         (c_parser_label): Same.
2296         (c_parser_statement_after_labels): Same.
2297         (c_parser_if_body): Same.
2298         (c_parser_else_body): Same.
2299         (c_parser_if_statement): Same.
2300         (c_parser_switch_statement): Same.
2301         (c_parser_while_statement): Same.
2302         (c_parser_do_statement): Same.
2303         (c_parser_for_statement): Same.
2304         (c_parser_asm_statement): Same.
2305         (c_parser_conditional_expression): Same.
2306         (c_parser_binary_expression): Same.
2307         (c_parser_cast_expression): Same.
2308         (c_parser_unary_expression): Same.
2309         (c_parser_sizeof_expression): Same.
2310         (c_parser_alignof_expression): Same.
2311         (c_parser_postfix_expression): Same.
2312         (c_parser_expression): Same.
2313         (c_parser_objc_receiver): Same.
2314         (c_parser_omp_variable_list): Same.
2315         (c_parser_omp_structured_block): Same.
2316         (c_parser_omp_atomic): New argument.
2317         (c_parser_omp_barrier): Same.
2318         (c_parser_omp_critical): Same.
2319         (c_parser_omp_flush): Pass location on down.
2320         (c_parser_omp_for_loop): New argument.
2321         (c_parser_omp_for): Same.
2322         (c_parser_omp_master): Same.
2323         (c_parser_omp_ordered): Same.
2324         (c_parser_omp_sections_scope): Same.
2325         (c_parser_omp_sections): Same.
2326         (c_parser_omp_parallel): Same.
2327         (c_parser_omp_single): Same.
2328         (c_parser_omp_task): Same.
2329         (c_parser_omp_taskwait): Pass location on down.
2330         (c_parser_omp_construct): Same.
2331         (c_parser_omp_threadprivate): Same.
2332         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2333         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2334         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2335         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2336         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2337         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2338         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2339         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2340         config/i386/i386.c, stmt.c:
2341         Add location argument to the following function definitions and/or
2342         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2343         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2344         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2345         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2346         do_case, c_finish_bc_stmt, build_compound_literal,
2347         build_function_call.
2348         * c-decl.c (build_compound_literal): Add location argument.
2349         Make all diagnostic calls use location.
2350         (start_struct): Same.
2351         (finish_struct): Same.
2352         (start_enum): Same.
2353         (build_enumerator): Same.
2354         (start_function): Same.
2355         (grokdeclarator): Make all diagnostic calls use location.
2356         (store_parm_decls_oldstyle): Same.
2357         * c-typeck.c (build_function_call): Add location argument.
2358         Make all diagnostic calls use location.
2359         (do_case): Same.
2360         (c_finish_bc_stmt): Same.
2361         * tree-nested.c (get_trampoline_type): Add argument.
2362         Pass location to build_decl.
2363         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2364         * rtl.h (RTL_LOCATION): New.
2365         * c-common.c (c_add_case_label): Add location argument.
2366         Make all diagnostic calls use location.
2367         * c-common.h: Add location argument to make_fname_decl, do_case,
2368         c_add_case_label, build_function_call, resolve_overloaded_builtin.
2369         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2370         Set it appropriately for every case.  Pass enum_loc to start_enum
2371         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
2372         parser_xref_tag.
2373         (c_parser_struct_or_union_specifier): Save location.  Use it for
2374         start_struct, finish_struct, and parser_xref_tag.
2375
2376 2009-06-12  Ian Lance Taylor  <iant@google.com>
2377
2378         * fold-const.c (fold_unary): Rename local variable and to and_expr.
2379
2380         * c-opts.c (c_common_handle_option): For -Wc++-compat set
2381         cpp_opts->warn_cxx_operator_names.
2382
2383 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2384
2385         PR tree-opt/38865
2386         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2387         is returns NULL and OP is a VCE, look through the VCE.
2388
2389 2009-06-12  Ian Lance Taylor  <iant@google.com>
2390
2391         PR bootstrap/40430
2392         * collect2.c (main): Use CONST_CAST2 in code inside #if
2393         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2394
2395 2009-06-12  Joey Ye  <joey.ye@intel.com>
2396
2397         PR middle-end/39146
2398         * cfgexpand.c (get_decl_align_unit): Update
2399         max_used_stack_slot_alignment with align instead of
2400         stack_alignment_needed.
2401
2402         * function.c (assign_stack_local_1): Update
2403         max_used_stack_slot_alignment with alignment_in_bits instead
2404         of stack_alignment_needed.
2405         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2406         here.
2407
2408 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
2409
2410         * dwarf2out.c (last_var_location_insn): New variable.
2411         (dwarf2out_end_epilogue): Clear last_var_location_insn.
2412         (dwarf2out_var_location): Don't record anything after last real
2413         insn.  Only change labels if there were any real instructions
2414         in between last note and this one, or if changed sections.
2415
2416 2009-06-11  Richard Henderson  <rth@redhat.com>
2417
2418         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2419         note when storing the frame pointer in a register.
2420         (FRP): Don't redefine to nothing for epilogue.
2421         (alpha_expand_epilogue): Mark register and sp restores.
2422         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2423
2424         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2425         when gen_lowpart is needed.
2426
2427 2009-06-11  Richard Henderson  <rth@redhat.com>
2428
2429         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2430
2431         * dwarf2out.c (need_data_align_sf_opcode): New.
2432         (div_data_align): Move earlier.
2433         (def_cfa_1, reg_save): Use it.
2434
2435 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
2436
2437         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2438         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2439         (ix86_handle_option): Handle OPT_mcrc32.
2440         (ix86_target_string): Add -mcrc32.
2441         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2442
2443         * config/i386/i386.h (TARGET_CRC32): New.
2444
2445         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2446         (sse4_2_crc32di): Likewise.
2447
2448         * config/i386/i386.opt (mcrc32): New.
2449
2450         * doc/invoke.texi: Document -mcrc32.
2451
2452 2009-06-11  Richard Henderson  <rth@redhat.com>
2453
2454         * common.opt (gdwarf-): Accept a version number.
2455         * doc/invoke.texi (gdwarf-): Update docs.
2456         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2457         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2458         version level, and record it.
2459
2460         * dwarf2.h (DW_CIE_VERSION): Remove.
2461         * dwarf2out.c (DWARF_VERSION): Remove.
2462         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2463         (output_call_frame_info): Use CIE version 3 for dwarf3,
2464         or if the return register column is out of range for version 1.
2465         (dwarf_stack_op_name): Add all dwarf3 values.
2466         (DEBUG_PUBTYPES_SECTION): New.
2467         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2468         encoding change for dwarf3.
2469         (output_die) [dw_val_class_die_ref]: Likewise.
2470         (output_compilation_unit_header): Emit correct version for dwarf3.
2471         (output_line_info): Likewise.
2472         (output_pubnames): Update for DWARF_VERSION removal.
2473         (output_aranges): Likewise.
2474         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2475         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2476         (dwarf2out_finish): Likewise.
2477
2478 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2479
2480         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2481         in r148403.
2482
2483 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2484
2485         PR c/39252
2486         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2487         * builtins.c (expand_builtin_unreachable): New function.
2488         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2489         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2490         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2491         successors.
2492         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2493         searching for missing barriers.
2494
2495 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2496
2497         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2498         when -fprofile-generate* was passed.
2499         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2500
2501 2009-06-11  Anthony Green  <green@moxielogic.com>
2502
2503         * config/moxie/moxie.md: Define length attribute for all instructions.
2504         (rCC): Define.
2505         (*b<cond:code>): Support limited branch ranges for new PC-relative
2506         branch instructions.
2507         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2508
2509 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
2510
2511         * config/i386/i386.c (min_insn_size): Use get_attr_length
2512         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2513         For __asm return 0.
2514
2515         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2516         instead of emit_insn_before.
2517
2518 2009-06-10  Ian Lance Taylor  <iant@google.com>
2519
2520         PR bootstrap/40408
2521         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2522         GIMPLE_SWITCH.
2523
2524 2009-06-10  Revital Eres  <eres@il.ibm.com>
2525
2526         * passes.c (init_optimization_passes): Reschedule
2527         predictive-commoning pass before complete unroll pass.
2528
2529 2009-06-10  Martin Jambor  <mjambor@suse.cz>
2530
2531         * cgraph.c (cgraph_node_can_be_local_p): New function.
2532         (cgraph_make_node_local): New function.
2533         * cgraph.h (cgraph_node_can_be_local_p): Declare.
2534         (cgraph_make_node_local): Declare.
2535
2536 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
2537
2538         * tree.h (tree_base): Add packed_flag and user_align fields.
2539         Decrease size of spare field.
2540         (TYPE_USER_ALIGN): Use user_align from tree_base.
2541         (DECL_USER_ALIGN): Likewise.
2542         (TYPE_PACKED): Use packed_flag from tree_base.
2543         (DECL_PACKED): Likewise.
2544         (tree_type): Delete packed_flag and user_align fields.  Widen
2545         precision field.  Widen mode field and shuffle fields to align
2546         mode on an 8-bit boundary.
2547         (tree_decl_common): Delete decl_flag_1 and user_align fields.
2548         Renumber decl_flag_* fields.  Fix comments.  Widen
2549         decl_common_unused field.
2550         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2551         (DECL_EXTERNAL): Likewise.
2552         (DECL_BIT_FIELD): Likewise.
2553         (DECL_NONADDRESSABLE_P): Likewise.
2554         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2555         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2556
2557 2009-06-10  Ian Lance Taylor  <iant@google.com>
2558
2559         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2560         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2561         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2562         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2563         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2564         DEF_VEC_ALLOC_FUNC_P.
2565         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2566         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2567         DEF_VEC_ALLOC_FUNC_O.
2568         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2569         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2570         DEF_VEC_ALLOC_FUNC_I.
2571         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2572         (vec_stack_p_reserve_exact_1): Declare.
2573         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2574         (vec_stack_free): Declare.
2575         (VEC_stack_alloc): Define.
2576         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2577         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2578         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2579         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
2580         for void_p.
2581         (stack_vecs): New static variable.
2582         (vec_stack_p_reserve_exact_1): New function.
2583         (vec_stack_o_reserve_1): New static function.
2584         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2585         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2586         (vec_stack_free): New function.
2587         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2588         (VEC_df_ref_stack_alloc): Define.
2589         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
2590         DEF_VEC_ALLOC_P_STACK.
2591         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2592         (struct df_collection_rec): Change _vec fields to VEC.  Remove
2593         _use fields.
2594         (df_free_collection_rec): Adjust for new fields.
2595         (df_insn_rescan): Use new df_collection_rec fields.
2596         (df_notes_rescan, df_canonize_collection_rec): Likewise.
2597         (df_ref_create_structure, df_ref_record): Likewise.
2598         (df_get_conditional_uses, df_get_call_refs): Likewise.
2599         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2600         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2601         (df_record_exit_block_uses, df_bb_verify): Likewise.
2602         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
2603         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2604         Remove count parameter.  Change return type to void.  Change all
2605         callers.
2606         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2607         Remove count parameter.  Change return type to void.  Change all
2608         callers.
2609         (df_install_refs): Change old_vec parameter to VEC.  Remove count
2610         parameter.  Change all callers.
2611         (df_install_mws): Change old_vec parameter to VEC.  Remove count
2612         parameter.  Change all callers.
2613         (df_refs_verify): Change new_rec parameter to VEC.  Change call
2614         callers.
2615         (df_mws_verify): Likewise.
2616
2617 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
2618
2619         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2620
2621 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2622
2623         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2624
2625 2009-06-10  Anthony Green  <green@moxielogic.com>
2626
2627         * config/moxie/crti.asm: New file.
2628         * config/moxie/crtn.asm: New file.
2629         * config/moxie/moxie.c: New file.
2630         * config/moxie/moxie.h: New file.
2631         * config/moxie/sfp-machine.h: New file.
2632         * config/moxie/moxie-protos.h: New file.
2633         * config/moxie/t-moxie: Created.
2634         * config/moxie/t-moxie-softfp: Created.
2635         * config/moxie/moxie.md: Created.
2636         * config/moxie/constraints.md: Created.
2637         * config.gcc: Add moxie support.
2638         * doc/md.texi (Machine Constraints): Add moxie constraints.
2639         * doc/contrib.texi (Contributors): Mention moxie port.
2640         * doc/install.texi (Specific): Mention the moxie port.
2641
2642 2009-06-09  Ian Lance Taylor  <iant@google.com>
2643
2644         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2645         compiling with C++.
2646         * optabs.c (optab_table): Only use designated initializers if
2647         HAVE_DESIGNATED_INITIALIZERS is defined.
2648         (convert_optab_table): Likewise.
2649         (init_optabs): Always call init_insn_codes if
2650         HAVE_DESIGNATED_INITIALIZERS is not defined.
2651
2652 2009-06-09  Ian Lance Taylor  <iant@google.com>
2653
2654         * targhooks.c (default_builtin_vectorized_function): Change fn
2655         parameter to unsigned int.
2656         (default_builtin_vectorized_conversion): Change code parameter to
2657         unsigned int.
2658         (default_builtin_reciprocal): Change fn parameter to unsigned int.
2659         * targhooks.h: Update declarations.
2660         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2661         parameter to unsigned int.
2662
2663         * c-typeck.c (comptypes_check_enum_int): New static function.
2664         (comptypes_internal): Add enum_and_int_p parameter.  Change all
2665         callers.
2666         (comp_target_types): Add location parameter.  Change all callers.
2667         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2668         Change all callers.
2669         (function_types_compatible_p, type_lists_compatible_p): Likewise.
2670         (build_conditional_expr): Add colon_loc parameter.  Change all
2671         callers.
2672         (convert_for_assignment): Add location parameter.  Change all callers.
2673         * c-parser.c (c_parser_conditional_expression): Pass location of
2674         colon to build_conditional_expr.
2675         * c-tree.h (build_conditional_expr): Update declaration.
2676
2677 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2678
2679         * graphite.c: Revert previous patch.
2680
2681 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2682
2683         PR bootstrap/40103
2684         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2685
2686 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2687
2688         * tree-ssa-loop-prefetch.c
2689         (loop_prefetch_arrays): Fixed a portability problem in printf format
2690         string.
2691
2692 2009-06-09  Martin Jambor  <mjambor@suse.cz>
2693
2694         PR tree-optimization/40351
2695         * tree-sra.c (propagate_subacesses_accross_link): Check that a
2696         refrence to a potential artifical subaccess can be constructed.
2697
2698 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2699
2700         * config/sh/sh-protos.h (sh_optimization_options): Declare.
2701         (sh_override_options): Likewise.
2702         * config/sh/sh.c: Include params.h.
2703         (sh_optimization_options): New.
2704         (sh_override_options): Likewise.
2705         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2706         (OVERRIDE_OPTIONS): Use sh_override_options.
2707
2708 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2709
2710         * dwarf2out.c (emit_cfa_remember): New variable.
2711         (add_fde_cfi): If emit_cfa_remember, recurse to add
2712         DW_CFA_remember_state first.
2713         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2714         instead just set emit_cfa_remember.
2715
2716 2009-06-08  Jan Hubicka  <jh@suse.cz>
2717
2718         PR debug/40126
2719         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2720
2721 2009-06-08  Jan Hubicka  <jh@suse.cz>
2722
2723         PR middle-end/39834
2724         * cgraphunit.c (save_inline_function_body): Do not copy transform
2725         hooks for saved inline bodies.
2726         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2727         for given function.
2728
2729 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
2730
2731         * jump.c (returnjump_p): Handle delayed branches.  Add missing
2732         function comment.
2733
2734 2009-06-08  Jan Hubicka  <jh@suse.cz>
2735
2736         PR middle-end/40102
2737         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2738         original node might've been modified.
2739         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2740
2741 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2742
2743         * tree-object-size.c (addr_object_size): Add OSI argument.
2744         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2745         (compute_builtin_object_size, expr_object_size): Adjust callers.
2746         (plus_stmt_object_size): Call addr_object_size instead of
2747         compute_builtin_object_size.
2748
2749 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2750             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2751         
2752         * tree-ssa-loop-prefetch.c 
2753         (gather_memory_references): Introduced a counter for the number of 
2754         memory references.
2755         (anything_to_prefetch_p): Introduced a counter for the number of 
2756         prefetches.
2757         (is_loop_prefetching_profitable): New function with a cost model 
2758         for prefetching.
2759         (loop_prefetch_arrays): Use the new cost model to determine if 
2760         prefetching is profitable.
2761         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
2762         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2763         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
2764         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2765         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
2766         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2767         
2768 2009-06-08  Michael Matz  <matz@suse.de>
2769
2770         PR debug/40012
2771         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2772         partitions use the same.
2773         (expand_one_var): Deal with DECL_RTL sometimes begin set also
2774         for basevars of SSA_NAMEs.
2775         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2776         to not expand them twice.
2777         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2778         multiple places.
2779
2780 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2781
2782         * common.opt (fcompare-debug=, fcompare-debug-second): New.
2783         (fdump-final-insns=, gtoggle): New.
2784         * doc/invoke.texi: Document them.
2785         * final.c (rest_of_clean_state): Dump final insn stream.
2786         * gcc.c (invoke_as): Hook in -fcompare-debug.
2787         (static_spec_functions): Add compare-debug-dump-opt,
2788         compare-debug-self-opt and compare-debug-auxbase-opt.
2789         (compare_debug, compare_debug_second, compare_debug_opt): New.
2790         (switches_debug_check, n_switches_debug_check): New.
2791         (debug_auxbase_opt, debug_check_temp_file): New.
2792         (process_command): Handle -fno-compare-debug, -fcompare-debug and
2793         -fcompare-debug=*.
2794         (do_self_spec): Handle arguments after switches.
2795         (do_spec_1): Add .gk extension to temp file basenames for compare.
2796         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2797         (cc1_options): Use it instead of normal auxbase computation for
2798         the second compare-debug compilation.
2799         (compare_files): New.
2800         (main): Set up and implement compare debug mode.
2801         (compare_debug_dump_opt_spec_function): New.
2802         (compare_debug_self_opt_spec_function): New.
2803         (compare_debug_auxbase_opt_spec_function): New.
2804         * toplev.c (process_options): Handle flag_gtoggle,
2805         flag_dump_final_insns.
2806         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2807         during -fcompare-debug-second compilation.
2808
2809 2009-06-07  Ian Lance Taylor  <iant@google.com>
2810
2811         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2812         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2813
2814         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2815         with no default node.  Change warning with %H to warning_at.
2816         Don't clear warn_switch around case checking.
2817         * doc/invoke.texi (Warning Options): Clarify distinction between
2818         -Wswitch and -Wswitch-enum.
2819
2820 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2821
2822         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2823
2824 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2825
2826         * gbl-ctors.h: Add header guard.
2827
2828 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2829
2830         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2831         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2832         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2833         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2834         prototypes for removed functions.
2835         (expressions_equal_p): Move to ...
2836         * tree-ssa-sccvn.h: ... here and ...
2837         * matrix-reorg.c: ... adjust includes.
2838
2839 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2840
2841         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2842
2843 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2844
2845         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2846         (finish_function): Remove erroneous whitespace.
2847
2848 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2849
2850         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2851         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2852
2853 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2854
2855         * errors.c (internal_error): Commentary typo fix.
2856         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2857         * tree-ssa-pre.c: Ditto.
2858
2859 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2860
2861         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2862         them is supposed to hold actual statements.
2863
2864 2009-06-06  Ian Lance Taylor  <iant@google.com>
2865
2866         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2867         empty statements can now have attributes.
2868
2869 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
2870
2871         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2872         * config/mips/mips.md: Ditto.
2873
2874 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2875
2876         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2877         _RELOCATABLE.
2878         (__eabi_uconvert): Likewise.
2879
2880 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2881
2882         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2883         CFI_* definitions with IN_GCC.
2884
2885 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
2886
2887         * xcoffout.h (xcoffout_source_line): Update prototype.
2888
2889 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2890
2891         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2892         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2893
2894 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2895
2896         PR middle-end/40340
2897         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2898         inlined_function_outer_scope_p blocks for artificial inlines
2899         even at -g0/-g1.
2900         * tree.c (tree_nonartificial_location): Rewrite using
2901         block_nonartificial_location.
2902
2903 2009-06-05  Revital Eres  <eres@il.ibm.com>
2904             Leehod Baruch  <leehod@il.ibm.com>
2905
2906         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2907         (expand_expr_real_1): Remove comment.
2908         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2909         Vectorize misaligned access when the target supports it.
2910         (vect_supportable_dr_alignment): Check for unaligned access support.
2911         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2912         and remove asset.
2913
2914 2009-06-05  Julian Brown  <julian@codesourcery.com>
2915
2916         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2917         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2918
2919 2009-06-05  Richard Guenther  <rguenther@suse.de>
2920
2921         PR bootstrap/40350
2922         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2923         as possibly unused.
2924
2925 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2926
2927         * config/s390/s390.c (global_not_special_regno_p): New static inline.
2928         (save_gprs): Don't tell unwinder when a global register is saved.
2929         (s390_emit_epilogue): Emit needed epilogue unwind info.
2930
2931 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2932
2933         * dwarf2out.c (deferred_asm_name): New.
2934         (add_name_and_src_coords_attributes): Defer creation of
2935         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2936         computed yet.
2937         (move_linkage_attr): New.
2938         (dwarf2out_finish): Revisit deferrals and emit attributes at the
2939         right place.
2940
2941 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2942
2943         * tree-nested.c (finalize_nesting_tree_1): Declare the
2944         frame_decl in the binding tree.
2945
2946 2009-06-04  Cary Coutant  <ccoutant@google.com>
2947
2948         * basic-block.h (struct basic_block_def): Add discriminator field.
2949         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
2950         callers.
2951         * debug.c (do_nothing_debug_hooks): Add additional entry.
2952         (debug_nothing_int_charstar_int): New function.
2953         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2954         (debug_nothing_int_charstar_int): New declaration.
2955         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
2956         discriminator value in .loc directive.
2957         * final.c (last_discriminator): New variable.
2958         (discriminator): New variable.
2959         (final_start_function): Initialize above variables, pass current
2960         discriminator to debug hook.
2961         (notice_source_line): Check for discriminator change.
2962         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2963         * sdbout.c (sdbout_source_line): New parameter.
2964         * tree-cfg.c (struct locus_discrim_map): New structure type.
2965         (discriminator_per_locus): New hash table.
2966         (build_gimple_cfg): Allocate and free discriminator hash table.
2967         (make_edges): Call assign_discriminator.
2968         (locus_map_hash): New function.
2969         (locus_map_eq): New function.
2970         (next_discriminator_for_locus): New function.
2971         (same_line_p): New function.
2972         (assign_discriminator): New function.
2973         (make_cond_expr_edges): Call assign_discriminator.
2974         (make_gimple_switch_edges): Likewise.
2975         (first_non_label_stmt): New function.
2976         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2977         all callers.
2978         * xcoffout.c (xcoffout_source_line): Add new parameter.
2979
2980         * configure.ac (gcc_cv_as_discriminator): New configury check for
2981         gas support for discriminator.
2982         * configure: Regenerate.
2983         * config.in: Regenerate.
2984
2985 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2986
2987         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2988         val after checking for integers.
2989
2990 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2991
2992         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2993         X64_REGPARM_MAX.
2994         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2995         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2996         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2997         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2998         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
2999         X64_SSE_REGPARM_MAX.
3000         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
3001         X64_SSE_REGPARM_MAX.
3002
3003 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3004
3005         * gcc.c (report_times_to_file): New.
3006         (execute): Implement it.
3007         (process_command): Support -time=.
3008         * doc/invoke.texi: Document it.
3009
3010 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3011
3012         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
3013         that have value exprs.
3014
3015 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
3016
3017         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
3018         declarations for constants until...
3019         (dw2_output_indirect_constant_1): ... this point.
3020
3021 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
3022
3023         PR target/10242
3024         * arm.md (arm_addsi3): Don't try to split an add with an
3025         eliminable register until after reload has completed.
3026
3027 2009-06-03  Ian Lance Taylor  <iant@google.com>
3028
3029         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
3030         * genattrtab.c (write_length_unit_log): Likewise.
3031         * genchecksum.c (dosum): Likewise.
3032         * gengtype.c (write_rtx_next): Likewise.
3033         (finish_root_table, write_roots): Likewise.
3034         * gimple.c (gimple_ops_offset_): Likewise.
3035         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
3036         * config/arc/arc.c (arc_attribute_table): Likewise.
3037         * config/arm/arm.c (arm_attribute_table): Likewise.
3038         * config/avr/avr.c (avr_attribute_table): Likewise.
3039         * config/crx/crx.c (crx_attribute_table): Likewise.
3040         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
3041         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
3042         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
3043         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
3044         * config/sh/sh.c (sh_attribute_table): Likewise.
3045         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
3046         * config/spu/spu.c (spu_attribute_table): Likewise.
3047         * config/v850/v850.c (v850_attribute_table): Likewise.
3048
3049         * config/alpha/alpha.c (vms_attribute_table): Make static.
3050         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
3051         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
3052         * config/mips/mips.c (mips_attribute_table): Likewise.
3053
3054         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
3055         $(SYSTEM_H).
3056         (cc1-checksum.o): Likewise.
3057
3058 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
3059
3060         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
3061
3062 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
3063
3064         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
3065         insn if it is changing sp.  Use gen_add3_insn instead of
3066         conditionally gen_addsi3 and gen_adddi3.
3067         (offset_below_red_zone_p): New static inline function.
3068         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
3069         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
3070         * config/rs6000/ppc-asm.h: Include auto-host.h.
3071         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
3072         CFI_RESTORE): Define.
3073         * config/rs6000/crtresxgpr.asm: Add unwind info.
3074         * config/rs6000/crtresxfpr.asm: Likewise.
3075         * config/rs6000/crtresgpr.asm: Likewise.
3076         * config/rs6000/crtresfpr.asm: Likewise.
3077         * config/rs6000/crtsavgpr.asm: Likewise.
3078         * config/rs6000/crtsavfpr.asm: Likewise.
3079
3080         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
3081         argument of DWARF2_FRAME_REG_OUT macros.
3082
3083 2009-06-03  Julian Brown  <julian@codesourcery.com>
3084
3085         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
3086         words or less (including TImode) in core registers.
3087
3088 2009-06-03  Richard Guenther  <rguenther@suse.de>
3089
3090         PR middle-end/40328
3091         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
3092
3093 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
3094
3095         * statistics.c (statistics_counter_event): Do not record event 
3096         in pass dump if its number == -1.
3097         (curr_statistics_hash): Add assert that we never get passes 
3098         with static number == -1.
3099
3100 2009-06-03  Richard Guenther  <rguenther@suse.de>
3101             Andrey Belevantsev  <abel@ispras.ru>
3102
3103         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
3104         non-BLKmode arrays addressable.
3105
3106 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
3107
3108         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
3109         * config/m68k/m68k.h: ... here.
3110         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
3111         m68k and fido.
3112
3113 2009-06-03  Martin Jambor  <mjambor@suse.cz>
3114
3115         PR tree-optimization/40323
3116         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
3117         assignment.
3118
3119 2009-06-03  Richard Guenther  <rguenther@suse.de>
3120
3121         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3122         consistently.
3123
3124 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
3125
3126         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
3127         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
3128         JUMP_TABLE_DATA_P where applicable.
3129         * config/sh/sh.c: Ditto.
3130         * config/sh/sh.h: Ditto.
3131         * config/sh/sh.md: Ditto.
3132         * config/sh/symbian.c: Ditto.
3133
3134 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
3135
3136         * config/i386/driver-i386.c (describe_cache): Optimize
3137         concatenation of strings.  Use snprintf instead of sprintf.
3138         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
3139         target when not compiling with GCC.
3140
3141 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3142
3143         * config/sh/sh.c: Revert last change.
3144         (sh_expand_epilogue): Emit a blockage insn before the frame
3145         pointer adjustment unconditionally.
3146
3147 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3148
3149         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
3150         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
3151         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
3152         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
3153         to COLLECT_GCC_OPTIONS.
3154
3155 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3156
3157         * collect2.c (target_system_root): New variable.
3158         (main): Handle --sysroot=.
3159         (ignore_library): Strip the sysroot from the library path.
3160
3161 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3162
3163         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
3164         (collect2.o): Depend on collect2-aix.h.
3165         (collect2-aix.o): New rule.
3166         * collect2-aix.h: New file.
3167         * collect2-aix.c: Likewise.
3168         * collect2.c: Include collect2-aix.h.  Don't undefine
3169         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
3170         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
3171         Use TARGET_AIX_VERSION instead of _AIX51.
3172         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
3173         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
3174         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
3175         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
3176         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
3177
3178 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3179
3180         * collect2.c (ignore_library): Avoid premature post-increment
3181         and null deference.
3182
3183 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3184
3185         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
3186         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
3187         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
3188         CROSS_DIRECTORY_STRUCTURE too.
3189         (LINK_LIBG_SPEC): Likewise.
3190         (LIB_SPEC): Add %R to sysroot paths.
3191         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
3192         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
3193         * config/rs6000/aix51.h: As for aix43.h.
3194         * config/rs6000/aix52.h: Likewise.
3195         * config/rs6000/aix53.h: Likewise.
3196         * config/rs6000/aix61.h: Likewise.
3197         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
3198         to the beginning of sysroot paths.
3199
3200 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3201
3202         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
3203         INSN_LISTs that are out of the REG_NOTE range.
3204
3205 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3206
3207         * loop-unroll.c (struct iv_to_split): Add pointer to next.
3208         (struct var_to_expand): Likewise.
3209         (struct opt_info): Add head and tail for linked lists of the above.
3210         (analyze_insn_to_expand_var): Initialize next.
3211         (analyze_iv_to_split_insn): Likewise.
3212         (analyze_insns_in_loop): Create linked lists.
3213         (allocate_basic_variable): Simplify for use without hash table.
3214         (insert_var_expansion_initialization): Likewise, make it type-safer.
3215         (combine_var_copies_in_loop_exit): Likewise.
3216         (apply_opt_in_copies): Walk lists rather than hash tables.
3217         (release_var_copies): Simplified and inlined by hand into...
3218         (free_opt_info): ... this function.
3219
3220 2009-06-02  Richard Guenther  <rguenther@suse.de>
3221
3222         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3223         for field decls.
3224
3225 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3226
3227         * cfgexpand.c (gimple_expand_cfg): Discard the source location
3228         only for builtins that are not overridden.
3229
3230 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3231
3232         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3233         label string.
3234
3235 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3236
3237         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3238
3239 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3240
3241         * combine.c (move_deaths): Compare LUIDs within the same BB only.
3242
3243 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3244
3245         * common.opt (fdump-unnumbered-links): New.
3246         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3247         * print-rtl.c (flag_dump_unnumbered_links): New.
3248         (print_rtx): Test it.
3249
3250 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
3251
3252         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3253         push/pop multiple to 8-byte alignment.
3254
3255 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
3256
3257         * config/i386/i386.c (queued_cfa_restores): New static variable.
3258         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3259         functions.
3260         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3261         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3262         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3263         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3264         note unconditionally.
3265         (ix86_emit_restore_regs_using_mov): Likewise.
3266         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3267         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3268         it through to ix86_emit_restore_reg_using_pop.
3269         (ix86_emit_leave): Add RED_OFFSET argument.  Call
3270         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
3271         instead of adding REG_CFA_OFFSET note unconditionally.
3272         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3273         the above functions.  Call ix86_add_queued_cfa_restore_notes when
3274         needed.
3275
3276         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3277         force output of the label even for dwarf2out_do_cfi_asm.
3278         (add_fde_cfi): If -g2 and above and cfi might change CFA,
3279         force creation of CFI label and chain DW_CFA_set_loc jumping to it
3280         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
3281         caller.
3282         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3283         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3284         dwarf2out_cfi_label callers.
3285         * tree.h (dwarf2out_cfi_label): Adjust prototype.
3286         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3287         Adjust dwarf2out_cfi_label callers.
3288         * config/vax/vax.c (vax_output_function_prologue): Likewise.
3289
3290         * config/i386/i386.h (struct machine_cfa_state,
3291         struct machine_function): Guard with ifndef USED_FOR_TARGET
3292         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3293
3294         PR other/40024
3295         * emutls.c (__emutls_get_address): Change arr->size to mean number
3296         of allocated arr->data entries instead of # of slots + 1.
3297
3298         PR middle-end/40316
3299         * recog.c (peep2_reinit_state): New function.
3300         (peephole2_init_state): Use it at the end of a basic block and also
3301         when seeing a RTX_FRAME_RELATED_P insn.
3302
3303 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
3304
3305         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3306         fixuns_truncrfdi2): New.
3307         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3308         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3309         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3310         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3311         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3312         *recip_approx): Remove.
3313         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3314         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3315         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3316         move to div.md.
3317         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3318         setf_exp_rf): New.
3319
3320 2009-06-01  Ian Lance Taylor  <iant@google.com>
3321
3322         * attribs.c (register_attribute): Use CONST_CAST.
3323         * collect2.c (main): Use CONST_CAST2.
3324         (scan_prog_file): Likewise.
3325         * gcc.c (process_command, main): Likewise.
3326         * toplev.c (toplev_main): Likewise.
3327
3328         * c-typeck.c (handle_warn_cast_qual): New static function,
3329         partially broken out of build_c_cast.
3330         (build_c_cast): Call handle_warn_cast_qual.
3331         * doc/invoke.texi (Warning Options): Document new effect of
3332         -Wcast-qual.
3333
3334 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
3335
3336         * diagnostic.c (diagnostic_build_prefix): Always print columns.
3337         (diagnostic_report_current_module): Print columns.
3338         * common.opt (flag_show_column): Enable by default.
3339
3340 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
3341
3342         * alias.c (find_base_term): Check for NULL term before returning.
3343
3344 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3345
3346         Revert due to PR40320:
3347         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3348         * calls.c (emit_library_call_value_1): Don't force_operand for move
3349         and push insns.
3350
3351 2009-06-01  Olivier Hainque  <hainque@adacore.com>
3352             Eric Botcazou  <ebotcazou@adacore.com>
3353
3354         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3355         to be processed as a bitfield for constructor output purposes.
3356         * output.h (initializer_constant_valid_for_bitfield_p): Declare
3357         new function.
3358         * varasm.c (oc_local_state): New type, output_constructor
3359         local state to support communication with helpers.
3360         (oc_outer_state): New type, output_constructor outer state of
3361         relevance in recursive calls.
3362         (output_constructor_array_range): New output_constructor helper,
3363         extracted code for an array range element.
3364         (output_constructor_regular_field): New output_constructor helper,
3365         extracted code for an element that is not a bitfield.
3366         (output_constructor_bitfield): New output_constructor helper,
3367         extracted code for a bitfield element.  Accept an OUTER state
3368         argument for recursive processing.  Recurse on record or array
3369         CONSTRUCTOR values, possibly past noop conversions.
3370         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
3371         VALUE is a valid constant-valued expression for use in a static
3372         bit-field initializer.
3373         (output_constructor): Rework to use helpers.  Accept and honor an
3374         OUTER state argument for recursive calls.  Return total size.  Be
3375         prepared for nested constructors initializing bitfields.
3376         (output_constant): Feed OUTER in calls to output_constructor.
3377
3378 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3379
3380         * calls.c (emit_library_call_value_1): Don't force_operand for move
3381         and push insns.
3382
3383 2009-06-01  Nick Clifton  <nickc@redhat.com>
3384
3385         * doc/invoke.texi (IA-64 Options): Fix typo.
3386
3387 2009-06-01  Ira Rosen  <irar@il.ibm.com>