OSDN Git Service

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