re PR tree-optimization/40579 (gcc -O2 optimization causes infinite loop and wrong...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2009-06-29  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/40579
4         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
5         the IL to simplify has constants that overflowed.
6
7 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
8
9         PR tree-optimization/40550
10         * tree-vect-generic.c (expand_vector_operations_1): Compute in
11         vector_compute_type only when the size of vector_compute_type is
12         less than the size of type.
13
14 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * fold-const.c (contains_label_1): Fix comments.
17         (contains_label_p): Do not walk trees multiple time.
18
19 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
20
21         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
22         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
23         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
24         ix86_fp_comparison_operator.
25         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
26         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
27         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
28         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
29         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
30         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
31         (related splits): Change predicate to ix86_fp_comparison_operator.
32         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
33         instead of ix86_fp_comparison_codes.
34         (ix86_trivial_fp_comparison_operator,
35         ix86_fp_comparison_operator): New.
36         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
37         (ix86_expand_compare): Eliminate last two parameters.
38         (ix86_fp_jump_nontrivial_p): Kill.
39         * config/i386/i386.c (put_condition_code): Eliminate call to
40         ix86_fp_comparison_codes and subsequent assertion.
41         (ix86_fp_comparison_codes): Eliminate.
42         (ix86_fp_swap_condition): New.
43         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
44         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
45         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
46         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
47         and ix86_fp_swap_condition.
48         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
49         Use ix86_fp_comparison_strategy.
50         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
51         (ix86_fp_jump_nontrivial_p): Eliminate.
52         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
53         call to ix86_expand_compare.
54         (ix86_split_fp_branch, ix86_expand_setcc,
55         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
56         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
57
58 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
59
60         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
61         related to jump_clobbers.
62         * config/arm/arm.md (conds): Remove jump_clob case.
63         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
64         splits): Change comparison_operator to arm_comparison_operator.
65         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
66         Eliminate.
67
68 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
69
70         * dojump.c (do_compare_rtx_and_jump): Try swapping the
71         condition for floating point modes.
72         * expmed.c (emit_store_flag_1): Move here a bigger part
73         of emit_store_flag.
74         (emit_store_flag): Try swapping the condition for floating point
75         modes.
76         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
77
78 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
79
80         * expr.c (expand_expr_real_1): Just use do_store_flag.
81         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
82         emit_store_flag_force.
83         * expmed.c (emit_store_flag_force): Copy here trick
84         previously in expand_expr_real_1.  Try reversing the comparison.
85         (emit_store_flag_1): Work if target is NULL.
86         (emit_store_flag): Work if target is NULL, using the result mode
87         from the comparison.  Use split_comparison, restructure final part
88         to simplify conditionals.
89
90 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
91
92         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
93         * dojump.c (do_jump): Change handling of floating-point
94         ops to use just do_compare_and_jump.
95         (split_comparison): New.
96         (do_compare_rtx_and_jump): Add here logic coming previously
97         in do_jump, using split_comparison.
98
99 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
100
101         PR target/40489
102         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
103
104 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
105
106         * tree-ssa-alias.c: Fix unintentional commit.
107
108 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
109
110         * passes.c (execute_one_pass): Fix unintentional commit.
111
112 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
113
114         * df-problems.c (df_set_seen, df_unset_seen): Delete.
115         (df_rd_local_compute, df_md_local_compute): Inline them.
116
117         (df_md_scratch): New.
118         (df_md_alloc, df_md_free): Allocate/free it.
119         (df_md_local_compute): Only include live registers in init.
120         (df_md_transfer_function): Prune the in-set computed by
121         the confluence function, and the gen-set too.
122
123 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
124
125         PR rtl-optimization/26854
126         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
127         * df-problems.c (df_rd_add_problem): Fix comment.
128         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
129         df_md_simulate_artificial_defs_at_top,
130         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
131         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
132         df_md_transfer_function, df_md_init, df_md_confluence_0,
133         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
134         problem_MD, df_md_add_problem): New.
135         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
136         df_md_get_bb_info): New.
137         (DF_LAST_PROBLEM_PLUS1): Adjust.
138
139         * Makefile.in (fwprop.o): Include domwalk.h.
140         * fwprop.c: Include domwalk.h.
141         (reg_defs, reg_defs_stack): New.
142         (bitmap_only_bit_between): Remove.
143         (process_defs): New.
144         (process_uses): Use reg_defs and local_md instead of
145         bitmap_only_bit_between and local_rd.
146         (single_def_use_enter_block): New, from build_single_def_use_links.
147         (single_def_use_leave_block): New.
148         (build_single_def_use_links): Remove code moved to
149         single_def_use_enter_block, invoke domwalk.
150         (use_killed_between): Adjust comment.
151
152 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
153
154         * bitmap.h (bitmap_ior_and_into): New.
155         * bitmap.c (bitmap_ior_and_into): New.
156
157 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
158
159         * domwalk.h (struct dom_walk_data): Remove all callbacks except
160         before_dom_children_before_stmts and after_dom_children_after_stmts.
161         Rename the two remaining callbacks to just before_dom_children and 
162         after_dom_children. Remove other GIMPLE statement walking bits.
163         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
164         * graphite.c: Do not include domwalk.h.
165         * tree-into-ssa.c (interesting_blocks): New global.
166         (struct mark_def_sites_global_data): Remove it and names_to_rename.
167         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
168         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
169         now that they're not domwalk callbacks.
170         (rewrite_initialize_block): Rename to...
171         (rewrite_enter_block): ... this, place after called functions.  Test
172         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
173         (rewrite_finalize_block): Rename to...
174         (rewrite_leave_block): ... this, place after called functions.
175         (rewrite_update_init_block): Rename to...
176         (rewrite_update_enter_block): ... this, place after called functions.
177         Test interesting_blocks, call rewrite_update_stmt and 
178         rewrite_update_phi_arguments.
179         (rewrite_update_fini_block): Rename to...
180         (rewrite_leave_block): ... this, place after called functions.
181         (rewrite_blocks): Remove last argument, simplify initialization of
182         walk_data.
183         (mark_def_sites_initialize_block): Rename to...
184         (mark_def_sites_block): ... this, call mark_def_sites.
185         (mark_def_sites_blocks): Remove argument, simplify initialization of
186         walk_data.
187         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
188         (update_ssa): Likewise.
189         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
190         callback.
191         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
192         (dom_opt_initialize_block): Rename to...
193         (dom_opt_enter_block): ... this, place after called functions.  Walk
194         statements here, inline propagate_to_outgoing_edges.
195         (dom_opt_finalize_block): Rename to...
196         (dom_opt_leave_block): ... this, place after called functions.
197         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
198         domwalk callback.
199         (dse_enter_block, dse_record_phi): New.
200         (dse_record_phis): Delete.
201         (dse_finalize_block): Rename to...
202         (dse_leave_block): ... this.
203         (tree_ssa_dse): Simplify initialization of walk_data.
204         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
205         Adjust initialization of walk_data.
206         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
207         * tree-ssa-loop-phiopt.c (get_non_trapping):
208         Adjust initialization of walk_data.
209         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
210         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
211         it's not a domwalk callback.
212         (uncprop_initialize_block): Rename to...
213         (dse_enter_block): ... this, call uncprop_into_successor_phis.
214         (dse_finalize_block): Rename to...
215         (dse_leave_block): ... this.
216         (tree_ssa_uncprop): Simplify initialization of walk_data.
217         * Makefile.in: Adjust dependencies.
218
219 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
220
221         * arm.md (casesi): Fix test for Thumb1.
222         (thumb1_casesi_internal_pic): Likewise.
223         (thumb1_casesi_dispatch): Likewise.
224
225 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
226
227         * config/arm/arm-cores.def: Added core cortex-m0.
228         * config/arm/arm-tune.md: Regenerated.
229         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
230
231 2009-06-26  DJ Delorie  <dj@redhat.com>
232
233         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
234
235         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
236         the scheduler doesn't tag jump insns.
237
238 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
239
240         * c-decl.c (merge_decls): Re-indent.
241
242 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
243
244         PR c/39902
245         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
246         Special-case decimal float constants.
247
248 2009-06-26  Richard Henderson  <rth@redhat.com>
249
250         * function.h (struct function): Add cannot_be_copied_reason,
251         and cannot_be_copied_set.
252         * tree-inline.c (has_label_address_in_static_1): Rename from
253         inline_forbidden_p_2; don't set inline_forbidden_reason here.
254         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
255         don't set inline_forbidden_reason.
256         (copy_forbidden): New function, split out of inline_forbidden_p.
257         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
258         (inline_forbidden_p): Use copy_forbidden.
259         (tree_versionable_function_p): Likewise.
260         (inlinable_function_p): Merge into tree_inlinable_function_p.
261         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
262         * ipa-cp.c (ipcp_versionable_function_p): New function.
263         (ipcp_cloning_candidate_p): Use it.
264         (ipcp_node_modifiable_p): Likewise.
265
266 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
267
268         * builtins.c (expand_builtin_alloca): Handle builtin alloca
269         that is marked not to be inlined. Remove flag_mudflap use.
270         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
271         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
272
273 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
274
275         PR bootstrap/40338
276         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
277         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
278
279 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
280
281         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
282         shared libgcc.
283         (__mingwthr_remove_key_dtor): Likewise.
284
285 2009-06-26  Richard Guenther  <rguenther@suse.de>
286
287         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
288
289 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
290
291         PR middle-end/40525
292         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
293         try the non-cond_exec path also.
294
295 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
296
297         PR target/40468
298         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
299         (output_cbranch): Use new functions.
300         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
301         Likewise.
302
303 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
304             Pat Haugen  <pthaugen@us.ibm.com>
305             Revital Eres <ERES@il.ibm.com>
306
307         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
308         Change some of the functions called by macros to being called
309         through a pointer, so debug functions can be inserted if
310         -mdebug=addr or -mdebug=cost. 
311         (rs6000_preferred_reload_class_ptr): Ditto.
312         (rs6000_secondary_reload_class_ptr): Ditto.
313         (rs6000_secondary_memory_needed_ptr): Ditto.
314         (rs6000_cannot_change_mode_class_ptr): Ditto.
315         (rs6000_secondary_reload_inner): Ditto.
316         (rs6000_legitimize_reload_address): Ditto.
317         (rs6000_legitimize_reload_address_ptr): Ditto.
318         (rs6000_mode_dependent_address): Ditto.
319         (rs6000_mode_dependent_address_ptr): Ditto.
320
321         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
322         function to return true if the mode allows reg + integer
323         addresses.
324         (virtual_stack_registers_memory_p): New function to return true if
325         the address refers to a virtual stack register.
326         (rs6000_legitimate_offset_address_p): Move code to say whether a
327         mode supports reg+int addressing to reg_offset_addressing_ok_p and
328         call it.
329         (rs6000_legitimate_address_p): Add checks for modes that only can
330         do reg+reg addressing.  Start adding VSX support.
331         (rs6000_legitimize_reload_address): Ditto.
332         (rs6000_legitimize_address): Ditto.
333         (rs6000_debug_legitimate_address_p): New debug functions for
334         -mdebug=addr and -mdebug=cost.
335         (rs6000_debug_rtx_costs): Ditto.
336         (rs6000_debug_address_costs): Ditto.
337         (rs6000_debug_adjust_cost): Ditto.
338         (rs6000_debug_legitimize_address): Ditto.
339         (rs6000_legitimize_reload_address_ptr): Point to call normal
340         function or debug function.  Make functions called via pointer
341         static.
342         (rs6000_mode_dependent_address_ptr): Ditto.
343         (rs6000_secondary_reload_class_ptr): Ditto.
344         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
345         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
346         into a friendlier error.
347         (rs6000_init_builtins): Add initial VSX support.
348         (rs6000_adjust_cost): Fix some spacing issues.
349
350         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
351         (REG_CLASS_NAMES): Ditto.
352         (REG_CLASS_CONTENTS): Ditto.
353         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
354         pointer, to add -mdebug=addr support.
355         (CANNOT_CHANGE_MODE_CLASS): Ditto.
356         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
357         -mdebug=addr support.
358         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
359         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
360         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
361
362         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
363         16-bit values.
364         (bswapsi*): Set attribute types for load/store.  Add combiner
365         patterns to eliminate zero extend on 64-bit.
366         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
367         stdbrx if the hardware supports those instructions.
368
369 2009-06-25  Ian Lance Taylor  <iant@google.com>
370
371         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
372         (Link Options): Document -static-libstdc++.
373
374 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
375
376         PR target/38731
377         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
378         DATA_ALIGNMENT instead.
379
380 2009-06-25  Richard Guenther  <rguenther@suse.de>
381
382         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
383         indirect references against the callused/escaped solutions.
384         (call_may_clobber_ref_p_1): Likewise.
385
386 2009-06-25  Martin Jambor  <mjambor@suse.cz>
387
388         PR tree-optimization/40493
389         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
390         (enum unscalarized_data_handling): New type.
391         (handle_unscalarized_data_in_subtree): Return what has been done.
392         (load_assign_lhs_subreplacements): Handle left flushes differently.
393         (sra_modify_assign): Use unscalarized_data_handling, simplified
394         condition determining whether to remove the statement.
395
396 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
397
398         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
399         excerpt - @ should be doubled for texinfo.
400
401 2009-06-24  Ian Lance Taylor  <iant@google.com>
402
403         * config/arc/arc.c: Include "df.h".
404         (arc_attribute_table): Make static.  Move higher in file.
405         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
406         (output_shift): Initialize n later to avoid warning.
407         * config/arm/arm.c (arm_attribute_table): Make static.  Move
408         higher in file.
409         * config/avr/avr.c (avr_attribute_table): Make static.  Move
410         higher in file.
411         (reg_class_tab): Change array type from int to enum reg_class.
412         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
413         LABEL_REF.
414         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
415         (lshrhi3_out): Likewise.
416         (class_likely_spilled_p): Change return type to bool.
417         (avr_rtx_costs): Use local code variable with enum type.
418         * config/avr/avr.md (movmemhi): Use add_reg_note.
419         (andhi3, andsi3): Don't use AS2 with "and".
420         (iorhi3, iorsi3): Don't use AS2 with "or".
421         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
422         * config/crx/crx.c: Include "df.h".
423         (crx_attribute_table): Make static.
424         * config/m32r/m32r.c: Include "df.h".
425         (m32r_attribute_table): Make static.  Move higher in file.
426         (pop): Use add_reg_note.
427         (block_move_call): Change 0 to LCT_NORMAL in function call.
428         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
429         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
430         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
431         declare, not just when TREE_CODE is defined.
432         * config/m68hc11/m68hc11.c: Include "expr.h".
433         (m68hc11_attribute_table): Make static.  Move higher in file.
434         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
435         function call.
436         (m68hc11_register_indirect_p): Likewise.
437         (m68hc11_function_arg_padding): Change return type to enum
438         direction.
439         (emit_move_after_reload): Use add_reg_note.
440         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
441         (m68hc11_split_logical): Likewise.
442         (m68hc11_rtx_costs): Add local code_and outer_code variables with
443         enum type.
444         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
445         to VOIDmode in function call.
446         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
447         tree is defined.
448         (m68hc11_split_logical): Update declaration.
449         (m68hc11_function_arg_padding): Update declaration.
450         * config/mcore/mcore.c (regno_reg_class): Change form array of int
451         to array of enum reg_class.
452         (mcore_attribute_table): Make static.  Move higher in file.
453         (mcore_rtx_costs): Add cast to enum type.
454         * config/mcore/mcore.h (regno_reg_class): Update declaration.
455         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
456         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
457         in file.
458         * config/sh/predicates.md (trapping_target_operand): Rename and to
459         and_expr.
460         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
461         higher in file.
462         * config/spu/spu.c (spu_attribute_table): Make static.  Move
463         higher in file.
464         * config/v850/v850.c (v850_attribute_table): Make static.  Move
465         higher in file.
466         (v850_rtx_costs): Use local code with enum type.
467         (expand_epilogue): Add cast.
468         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
469
470 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
471
472         PR target/40515
473         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
474         -m2a-single-only and -m2a-nofpu.
475         * config/sh/sh.opt: Document m2a generates FPU code.  
476
477 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
478
479         * defaults.h (CAN_ELIMINATE): Provide default.
480         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
481         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
482         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
483         * config/spu/spu.h (CAN_ELIMINATE): Delete.
484         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
485         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
486         * config/cris/cris.h (CAN_ELIMINATE): Delete.
487         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
488         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
489         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
490
491 2009-06-24  DJ Delorie  <dj@redhat.com>
492
493         * mep-ext-cop.cpu: Fix copyright notice.
494         * mep-default: Fix copyright notice.
495         * mep-core: Fix copyright notice.
496         * mep: Fix copyright notice.
497         * mep-ivc2: Fix copyright notice.
498         * mep-c5: Fix copyright notice.
499
500 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
501
502         * doc/contrib.texi (Contributors): 
503
504 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
505         
506         PR middle-end/40501
507         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
508         src and dst operands if necessary.
509
510 2009-06-23  DJ Delorie  <dj@redhat.com>
511
512         Add MeP port.
513         * config.gcc: Add mep support.
514         * recog.c: Resurrect validate_replace_rtx_subexp().
515         * recog.h: Likewise.
516         * config/mep/: Add new port:
517         * config/mep/constraints.md: New file.
518         * config/mep/default.h: New file.
519         * config/mep/intrinsics.h: New file.
520         * config/mep/intrinsics.md: New file.
521         * config/mep/ivc2-template.h: New file.
522         * config/mep/mep-c5.cpu: New file.
523         * config/mep/mep-core.cpu: New file.
524         * config/mep/mep-default.cpu: New file.
525         * config/mep/mep-ext-cop.cpu: New file.
526         * config/mep/mep-intrin.h: New file.
527         * config/mep/mep-ivc2.cpu: New file.
528         * config/mep/mep-lib1.asm: New file.
529         * config/mep/mep-lib2.c: New file.
530         * config/mep/mep-pragma.c: New file.
531         * config/mep/mep-protos.h: New file.
532         * config/mep/mep-tramp.c: New file.
533         * config/mep/mep.c: New file.
534         * config/mep/mep.cpu: New file.
535         * config/mep/mep.h: New file.
536         * config/mep/mep.md: New file.
537         * config/mep/mep.opt: New file.
538         * config/mep/predicates.md: New file.
539         * config/mep/t-mep: New file.
540
541 2009-06-23  Ian Lance Taylor  <iant@google.com>
542
543         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
544         from loose_warn into c_loose_warn and from strict_warn into
545         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
546         --enable-build-with-cxx.  Set and substitute
547         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
548         * Makefile.in (CXXFLAGS): New variable.
549         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
550         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
551         the default is the same as $(STRICT_WARN).
552         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
553         (CXX): New variable.
554         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
555         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
556         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
557         (HOST_LIBS): New variable.
558         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
559         (ALL_CXXFLAGS): New variable.
560         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
561         * doc/install.texi (Configuration): Document
562         --enable-build-with-cxx, --with-stage1-ldflags,
563         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
564         * configure: Rebuild.
565
566 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
567
568         * config/arm/arm.c (arm_override_options): Fix braces and formatting
569         from previous commit.
570
571 2009-06-23  Ian Lance Taylor  <iant@google.com>
572
573         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
574
575 2009-06-23  Ian Lance Taylor  <iant@google.com>
576
577         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
578         with ATTRIBUTE_UNUSED.
579
580 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
581             Pat Haugen  <pthaugen@us.ibm.com>
582             Revital Eres  <eres@il.ibm.com>
583
584         * config.in (HAVE_AS_POPCNTD): Add default definition.
585         (HAVE_AS_LWSYNC): Ditto.
586
587         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
588         release number.
589         (gcc_cv_as_powerpc_cmpb): Ditto.
590         (gcc_cv_as_powerpc_dfp): Ditto.
591         (gcc_cv_as_powerpc_vsx): Ditto.
592         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
593         supporting the popcntd/lwsync instructions.
594         (gcc_cv_as_powerpc_lwsync): Ditto.
595         * configure: Regenerate.
596
597         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
598         -mcpu=native and -mcpu=power7.
599         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
600
601         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
602         a variable instead of a mask to reduce the number of mask bits.
603         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
604         (-mbit-word): Ditto.
605         (-mregnames): Ditto.
606         * config/rs6000/rs6000.opt (-mupdate): Ditto.
607         (-mfused-madd): Ditto.
608
609         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
610         2.06 instructions.
611         (-mvsx): New switch for VSX instructions.
612         (-misel): Move from a variable to a mask to allow it to be set by
613         -mcpu=.
614
615         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
616         function declaration to an array declaration.
617         (rs6000_hard_regno_nregs): New external array declaration.
618
619         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
620         files included by rs6000.md.
621
622         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
623         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
624
625         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
626         a target mask.
627         (rs6000_debug_reg): New -mdebug= variables.
628         (rs6000_debug_addr): Ditto.
629         (rs6000_debug_cost): Ditto.
630         (rs6000_pmode): New variable to hold Pmode.
631         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
632         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
633         calculated at compiler start.
634         (rs6000_hard_regno_nregs): Change function to an array which holds
635         HARD_REGNO_NREGS calculated at compiler start.
636         (rs6000_explicit_options): Delete isel field.
637         (rs6000_vector_unit): New array to hold which vector unit
638         supports arithmetic options for a given type.
639         (rs6000_vector_mem): New array to hold which vector unit supports
640         memory reference operations for a given type.
641         (rs6000_vector_align): New array to given the alignment of each
642         vector type.
643         (power7_cost): New basic costs for power7.
644         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
645         (rs6000_hard_regno_nregs_internal): New function, moved from
646         HARD_REGNO_NREGS, to calculate the number of registers each hard
647         register takes for each type.
648         (rs6000_debug_reg_print): New function for -mdebug=reg support.
649         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
650         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
651         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
652         unit information here so it is calculated once at compiler startup
653         time.
654         (rs6000_override_options): Make -misel a target mask.  Add more
655         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
656         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
657         -mdebug=cost.
658         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
659         (rs6000_handle_option): Move -misel from variable to target mask.
660         (rs6000_builtin_mask_for_load): Add VSX support.
661         (rs6000_conditional_register_usage): Ditto.
662         (USE_ALTIVEC_FOR_ARG_P): Ditto.
663         (function_arg_boundary): Ditto.
664         (rs6000_expand_builtin): Ditto.
665         (def_builtin): Make abort message a little friendlier.
666         (rs6000_emit_int_cmove): Add support for 64-bit isel.
667
668         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
669         assembler support the popcntd instruction instead of a vsx
670         instruction to enable power7 support.
671         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
672         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
673         option to the assembler if -mcpu=native.
674         (ASM_CPU_NATIVE_SPEC): Ditto.
675         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
676         ISA 2.06 features.
677         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
678         the lwsync instruction.
679         (enum processor_type): Add PROCESSOR_POWER7.
680         (rs6000_debug_reg): New -mdebug= options.
681         (rs6000_debug_addr): Ditto.
682         (rs6000_debug_cost): Ditto.
683         (rs6000_isel): Delete.
684         (enum rs6000_vector): New enum to say what vector unit we have.
685         (VECTOR_UNIT_*): New macros to say which vector unit has
686         arithmetic operations for a given type.
687         (VECTOR_MEM_*): New macros to say which vector unit has memory
688         operations for a given type.
689         (TARGET_LDBRX): Whether the machine supports the ldbrx
690         instruction.
691         (TARGET_ISEL): Delete, -misel moved to be a mask.
692         (TARGET_ISEL64): New macro for 64-bit isel support.
693         (UNITS_PER_VSX_WORD): New macro.
694         (POINTER_SIZE): Move to be an external variable, rather than
695         calculating whether we are generating 32 ot 64-bit code.
696         (Pmode): Ditto.
697         (STACK_BOUNDARY): Add VSX support.
698         (LOCAL_ALIGNMENT): Ditto.
699         (SLOW_UNALIGNED_ACCESS): Ditto.
700         (VSX_REGNO_P): New macro for VSX support.
701         (VFLOAT_REGNO_P): Ditto.
702         (VINT_REGNO_P): Ditto.
703         (VLOGICAL_REGNO_P): Ditto.
704         (VSX_VECTOR_MODE): Ditto.
705         (VSX_SCALAR_MODE): Ditto.
706         (VSX_MODE): Ditto.
707         (VSX_MOVE_MODE): Ditto.
708         (VSX_REG_CLASS_P): Ditto.
709         (HARD_REGNO_NREGS): Instead of calling a function, use an array
710         lookup.
711         (UNITS_PER_SIMD_WORD): Add VSX support.
712         (MODES_TIEABLE_P): Ditto.
713         (STARTING_FRAME_OFFSET): Ditto.
714         (STACK_DYNAMIC_OFFSET): Ditto.
715         (EPILOGUE_USES): Ditto.
716         (REGNO_REG_CLASS): Move to array lookup.
717         (CLASS_MAX_NREGS): Ditto.
718         (rs6000_vector_reg_class): Add declaration.
719         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
720         overlap with the floating point and Altivec registers.
721
722         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
723
724         * config/rs6000/driver-rs6000.c (asm_names): New static array to
725         give the appropriate asm switches if -mcpu=native.
726         (host_detect_local_cpu): Add support for "asm".
727         (host_detect_local_cpu): Follow GNU code guidelines for name.
728
729         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
730         -mbit-word to a variable instead of being a target mask.
731
732         * config/rs6000/sync.md (lwsync): If the assembler supports it,
733         emit the lwsync instruction instead of emitting the instruction as
734         an integer constant.
735
736         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
737         fixuns_trundfsi2, move expander into rs6000.md.
738
739         * config/rs6000/rs6000.md (cpu): Add power7.
740         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
741         (logical predicate patterns): Change the single instruction
742         primitives that set CR0 to be fast_compare instead of compare.
743         (norsi*): Ditto.
744         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
745         (popcntddi2): Ditto.
746         (popcount<mode>): Ditto.
747         (floating multiply/add insns): Name the floating point
748         multiply/add insns.
749         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
750         (isel_unsigned_<mode>): Ditto.
751         (fixuns_trundfsi2): Move expander here from spe.md.
752         (smindi3): Define if we have -misel on 64-bit systems.
753         (smaxdi3): Ditto.
754         (umindi3): Ditto.
755         (umaxdi3): Ditto.
756
757 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
758
759         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
760         extra_objs.
761         * config/avr/avr.c (avr_current_device): New variable.
762         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
763         (avr_arch, mcu_type_s): Move to avr.h.
764         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
765         default_data_section_start fields.
766         (avr_arch): Moved from avr.c.
767         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
768         library_name fields.
769         (avr_current_device, avr_mcu_types, avr_arch_types,
770         avr_device_to_arch, avr_device_to_data_start,
771         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
772         (EXTRA_SPEC_FUNCTIONS): Define.
773         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
774         options mapping. Use device_to_arch and device_to_data_start insted.
775         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
776         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
777         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
778         * config/avr/driver-avr.c: New file.
779         * config/avr/avr-devices.c: New file.
780
781 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
782
783         * var-tracking.c (unshare_variable): Force initialized to
784         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
785         (set_variable_part): Likewise.
786         (struct variable_union_info): Remove pos_src field.
787         (vui_vec, vui_allocated): New variables.
788         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
789         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
790         == 1 use a simpler sorting algorithm.  Compute pos field right
791         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
792         Avoid quadratic comparison if !flag_var_tracking_uninit.
793         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
794         unshare_variable unconditionally.   
795         (dataflow_set_different_2): Removed.
796         (dataflow_set_different): Don't traverse second hash table.
797         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
798         unconditionally to var_reg_set or var_mem_set.
799         (emit_notes_in_bb): Likewise.
800         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
801         unshare_variable.
802         (emit_note_insn_var_location): Don't set initialized to
803         VAR_INIT_STATUS_INITIALIZED early.
804         (vt_finalize): Free vui_vec if needed, clear vui_vec and
805         vui_allocated.
806         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
807
808         * tree-object-size.c (addr_object_size): Instead of checking
809         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
810         are no FIELD_DECLs following it.
811
812 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
813
814         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
815         order to match bswaps with signed source operands.
816
817 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
818
819         * sdbout.c (sdbout_one_type): Fix braces in switch.
820
821 2009-06-23  Richard Guenther  <rguenther@suse.de>
822
823         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
824         member.
825         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
826         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
827         var_callused, callused_tree, var_storedanything, storedanything_tree,
828         var_integer, integer_tree): Remove global variables.
829         (new_var_info): Do not pass new id, append the new var to the
830         global variable vector.
831         (do_ds_constraint): Use is_global_var member of the variable-info.
832         (new_scalar_tmp_constraint_exp): Adjust.
833         (create_function_info_for): Likewise.
834         (create_variable_info_for): Likewise.
835         (find_what_var_points_to): Remove dead code.
836         (init_base_vars): Simplify.
837         (compute_points_to_sets): Adjust.
838
839 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
840
841         * combine.c (try_combine): Dump information about the insns we're
842         combining.
843
844 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
845
846         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
847         check when calling force_to_mode on TRUNCATE's operand.
848
849 2009-06-22  Ian Lance Taylor  <iant@google.com>
850
851         * config/rs6000/rs6000.opt: Move msched-epilog before
852         msched-prolog.
853
854 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
855
856         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
857
858 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
859
860         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
861         override library linkage flags such as -static-libgcc or
862         -shared-libgcc.
863
864 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
865
866         * config/m68k/m68k-devices.def: Add line for MCF5221x.
867
868 2009-06-22  Ian Lance Taylor  <iant@google.com>
869
870         * config/linux.opt: Put mglibc ahead of muclibc.
871
872         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
873         for duplicate decls.
874
875 2009-06-22  Matthias Klose  <doko@ubuntu.com>
876
877         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
878
879 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
880
881         PR objc/28050
882         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
883         instead of NULL if a parser error occurs.
884
885 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
886
887         * dwarf2out.c (dwarf2_debug_hooks): Initialize
888         non-DWARF2_DEBUGGING_INFO version.
889
890 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
891
892         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
893         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
894
895         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
896         (LIBGCC2_TF_CEXT): Define.
897         (TF_SIZE): Define.
898
899 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
900
901         PR target/40463
902         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
903
904 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
905
906         * config/arm/arm.c (arm_override_options): Disable
907         -mcaller-super-interworking and -mcallee-super-interworking.
908         * doc/invoke.texi (ARM Options): Document this.
909
910 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
911
912         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
913         * config/arm/constraints.md (j): New constraint for movw operands.
914         (N): Remove thumb2 meaning.
915         * config/arm/arm.md (*arm_movw): Delete.
916         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
917         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
918         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
919
920 2009-06-22  Martin Jambor  <mjambor@suse.cz>
921
922         PR tree-optimization/40492
923         * tree-sra.c (sra_modify_assign): Pass zero offsets to
924         build_ref_for_offset.
925
926 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
927
928         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
929         JUMP_TABLE_DATA_P predicates where applicable.
930         * auto-inc-dec.c: Ditto.
931         * builtins.c: Ditto.
932         * caller-save.c: Ditto.
933         * calls.c: Ditto.
934         * cfgcleanup.c: Ditto.
935         * cfglayout.c: Ditto.
936         * cfgrtl.c: Ditto.
937         * combine.c: Ditto.
938         * combine-stack-adj.c: Ditto.
939         * cse.c: Ditto.
940         * cselib.c: Ditto.
941         * dbxout.c: Ditto.
942         * df-scan.c: Ditto.
943         * dse.c: Ditto.
944         * dwarf2asm.c: Ditto.
945         * dwarf2out.c: Ditto.
946         * emit-rtl.c: Ditto.
947         * except.c: Ditto.
948         * explow.c: Ditto.
949         * expmed.c: Ditto.
950         * expr.c: Ditto.
951         * final.c: Ditto.
952         * function.c: Ditto.
953         * fwprop.c: Ditto.
954         * gcse.c: Ditto.
955         * genpreds.c: Ditto.
956         * genrecog.c: Ditto.
957         * ifcvt.c: Ditto.
958         * ira-costs.c: Ditto.
959         * ira-lives.c: Ditto.
960         * jump.c: Ditto.
961         * loop-iv.c: Ditto.
962         * lower-subreg.c: Ditto.
963         * modulo-sched.c: Ditto.
964         * optabs.c: Ditto.
965         * postreload.c: Ditto.
966         * print-rtl.c: Ditto.
967         * recog.c: Ditto.
968         * reginfo.c: Ditto.
969         * regmove.c: Ditto.
970         * reload1.c: Ditto.
971         * reload.c: Ditto.
972         * reorg.c: Ditto.
973         * rtlanal.c: Ditto.
974         * rtl.c: Ditto.
975         * sched-vis.c: Ditto.
976         * sdbout.c: Ditto.
977         * sel-sched-ir.c: Ditto.
978         * simplify-rtx.c: Ditto.
979         * targhooks.c: Ditto.
980         * var-tracking.c: Ditto.
981         * vmsdbgout.c: Ditto.
982
983 2009-06-22  Matthias Klose  <doko@ubuntu.com>
984
985         * Makefile.in (install-plugin): Always use DESTDIR.
986
987 2009-06-22  Olivier Hainque  <hainque@adacore.com>
988         
989         * config/pa/pa.c (output_call): Don't optimize post call jumps
990         into return address adjustments if the call may throw.
991
992 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
993
994         * arm.c (thumb1_output_casesi): New function.
995         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
996         optimizing for size or PIC.
997         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
998         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
999         (casesi): Handle Thumb-1 when optimizing for size or PIC.
1000         (thumb1_casesi_internal_pic): New expand rule.
1001         (thumb1_casesi_dispatch): New pattern.
1002         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
1003         thumb-1 mode.
1004         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
1005         in the text seciton when PIC or optimizing for size.
1006         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
1007         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
1008         preservation properties of code.
1009         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
1010         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
1011         (__gnu_thumb1_case_si): New function.
1012         * t-arm (LIB1ASMSRC): Define here.
1013         (LIB1ASMFUNCS): Add some common functions.
1014         * t-arm-elf (LIB1ASMSRC): Delete.
1015         (LIB1ASMFUNCS): Append to existing set.
1016         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1017         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1018         * t-symbian (LIB1ASMFUNCS): Likewise.
1019         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1020         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
1021
1022 2009-06-21  Richard Guenther  <rguenther@suse.de>
1023
1024         PR tree-optimization/38729
1025         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
1026         to loops with a single exit if -fno-expensive-optimizations.
1027
1028 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
1029
1030         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
1031         (dataflow_set): Change vars type from htab_t to shared_hash.
1032         (shared_hash_pool, empty_shared_hash): New variables.
1033         (vars_clear): Removed.
1034         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
1035         shared_hash_find_slot_unshare, shared_hash_find_slot,
1036         shared_hash_find_slot_noinsert, shared_hash_find): New
1037         static inlines.
1038         (shared_hash_unshare, shared_hash_destroy): New functions.
1039         (unshare_variable): Unshare set->vars if shared, use
1040         shared_hash_htab.
1041         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
1042         (get_init_value, find_src_set_src, dump_dataflow_set,
1043         clobber_variable_part, emit_notes_for_differences): Use
1044         shared_hash_htab.
1045         (dataflow_set_init): Remove second argument, set vars to
1046         empty_shared_hash instead of creating a new htab.
1047         (dataflow_set_clear): Call shared_hash_destroy and set vars
1048         to empty_shared_hash instead of calling vars_clear.
1049         (dataflow_set_copy): Don't call vars_copy, instead just share
1050         the src htab with dst.
1051         (variable_union): Use shared_hash_*, use initially NO_INSERT
1052         lookup if set->vars is shared.  Don't keep slot cleared before
1053         calling unshare_variable.  Unshare set->vars if needed.
1054         Even ->refcount == 1 vars must be unshared if set->vars is shared
1055         and var needs to be modified.
1056         (variable_canonicalize): New function.
1057         (dataflow_set_union): If dst->vars is empty, just share src->vars
1058         with dst->vars and traverse with variable_canonicalize to canonicalize
1059         and unshare what is needed.
1060         (dataflow_set_different): If old_set and new_set use the same shared
1061         htab, they aren't different.  If number of htab elements is different,
1062         htabs are different.  Use shared_hash_*.
1063         (dataflow_set_destroy): Call shared_hash_destroy instead of
1064         htab_delete.
1065         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
1066         second argument to dataflow_set_init.
1067         (vt_initialize): Likewise.  Initialize shared_hash_pool and
1068         empty_shared_hash, move bb in/out initialization afterwards.
1069         Use variable_htab_free instead of NULL as changed_variables del hook.
1070         (variable_was_changed): Change type of second argument to pointer to
1071         dataflow_set.  When inserting var into changed_variables, bump
1072         refcount.  Unshare set->vars if set is shared htab and slot needs to
1073         be cleared.
1074         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
1075         lookup if set->vars is shared.  Unshare set->vars if needed.
1076         Even ->refcount == 1 vars must be unshared if set->vars is shared
1077         and var needs to be modified.  Adjust variable_was_changed caller.
1078         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
1079         vars must be unshared if set->vars is shared and var needs to be
1080         modified.  Adjust variable_was_changed caller.
1081         (emit_note_insn_var_location): Don't pool_free var.
1082         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
1083         instead of 1.
1084         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
1085         free_alloc_pool on shared_hash_pool.
1086
1087 2009-06-20  Anthony Green  <green@moxielogic.com>
1088
1089         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
1090         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
1091
1092 2009-06-20  Richard Guenther  <rguenther@suse.de>
1093
1094         * tree-ssa-structalias.c (find_func_aliases): For memset use
1095         a constraint from NULL if we memset to zero.
1096         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
1097         we explicitly handle that do not read from memory.
1098         (call_may_clobber_ref_p_1): Properly handle builtins that may
1099         set errno.
1100
1101 2009-06-20  Richard Guenther  <rguenther@suse.de>
1102
1103         PR tree-optimization/40495
1104         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
1105         (new_scalar_tmp_constraint_exp): New function.
1106         (process_constraint): Do not create temporary decls.
1107         (process_all_all_constraints): Likewise.
1108         (handle_const_call): Likewise.
1109         (create_function_info_for): Do not set decl.
1110
1111 2009-06-19  Ian Lance Taylor  <iant@google.com>
1112
1113         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
1114         (rs6000_attribute_table): Make static; move before use.
1115
1116 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
1117
1118         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
1119         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
1120         Propagate the TREE_READONLY flag without overwriting it.
1121         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
1122         Propagate the TREE_READONLY flag onto the result.
1123         (process_call_operands): Move around.  Use correct constant value.
1124
1125 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1126
1127         PR target/40482
1128         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
1129         32 bits.
1130         * config/arm/arm.md: Likewise.
1131
1132 2009-06-19  Ian Lance Taylor  <iant@google.com>
1133
1134         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
1135         to GIMPLE_ERROR_MARK.
1136
1137         * c-typeck.c (build_conditional_expr): Add op1_original_type and
1138         op2_original_type parameters.  Warn about using different enum
1139         types.
1140         * c-parser.c (c_parser_conditional_expression): Pass original
1141         types to build_conditional_expr.
1142         * c-tree.h (build_conditional_expr): Update declaration.
1143
1144 2009-06-19  Ian Lance Taylor  <iant@google.com>
1145
1146         * config/i386/i386.c (ix86_function_specific_save): Test that
1147         fields match values, rather than testing the values are in a
1148         certain range.
1149
1150 2009-06-19  Richard Guenther  <rguenther@suse.de>
1151
1152         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1153         ADDR_EXPR pointers.
1154         (ptr_derefs_may_alias_p): Likewise.
1155         (ptr_deref_may_alias_ref_p_1): New function.
1156         (ptr_deref_may_alias_ref_p): Likewise.
1157         (ref_maybe_used_by_call_p_1): Handle builtins that are not
1158         covered by looking at the ESCAPED solution.
1159         (call_may_clobber_ref_p_1): Likewise.
1160         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1161         Handle NULL_TREE offset.  Do not produce redundant constraints.
1162         (process_all_all_constraints): New helper function.
1163         (do_structure_copy): Use it.
1164         (handle_lhs_call): Likewise.
1165         (find_func_aliases): Handle some builtins with pointer arguments
1166         and/or return values explicitly.
1167
1168 2009-06-19  Ian Lance Taylor  <iant@google.com>
1169
1170         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
1171
1172 2009-06-19  Ian Lance Taylor  <iant@google.com>
1173
1174         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
1175
1176 2009-06-19  Ian Lance Taylor  <iant@google.com>
1177
1178         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
1179         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
1180         version.
1181
1182         * c-decl.c (finish_decl): If -Wc++-compat, warn about
1183         uninitialized const.
1184
1185 2009-06-19  Ian Lance Taylor  <iant@google.com>
1186
1187         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
1188         all uses.
1189
1190         * c-decl.c (in_struct, struct_types): Remove.
1191         (struct c_binding): Add in_struct field.
1192         (c_binding_ptr): Define type, along with VEC.
1193         (struct c_struct_parse_info): Define.
1194         (struct_parse_info): New static variable.
1195         (bind): Initialize in_struct field.
1196         (start_struct): Remove enclosing_in_struct and
1197         enclosing_struct_types parameters.  Add
1198         enclosing_struct_parse_info parameter.  Change all callers.  Set
1199         struct_parse_info rather than in_struct and struct_types.
1200         (grokfield): If -Wc++-compat and there is a symbol binding for the
1201         field name, set the in_struct flag and push it on the
1202         struct_parse_info->fields vector.
1203         (warn_cxx_compat_finish_struct): New static function.
1204         (finish_struct): Remove enclosing_in_struct and
1205         enclosing_struct_types parameters.  Add
1206         enclosing_struct_parse_info parameter.  Change all callers.  Don't
1207         set C_TYPE_DEFINED_IN_STRUCT here.  Call
1208         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
1209         parameter.  Only push on struct_types if warn_cxx_compat.
1210         (finish_enum): Only push on struct_types if warn_cxx_compat.
1211         (declspecs_add_type): Add loc parameter.  Change all callers.
1212         Change all error calls to error_at.  Pass loc, not input_location,
1213         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
1214         defined in a struct.  If -Wc++-compat and parsing a struct, record
1215         that a typedef name was used.
1216         * c-parser.c (c_parser_declspecs): Get location to pass to
1217         declspecs_add_type.
1218         (c_parser_struct_or_union_specifier): Update calls to start_struct
1219         and finish_struct.
1220         * c-tree.h (struct c_struct_parse_info): Declare.
1221         (finish_struct, start_struct): Update declarations.
1222         (declspecs_add_type): Update declaration.
1223
1224 2009-06-19  Ian Lance Taylor  <iant@google.com>
1225
1226         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
1227         variable with an anonymous type.
1228
1229 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1230
1231         * see.c: Remove for real.
1232
1233 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
1234
1235         * optabs.h (enum optab_index): Add new OTI_significand.
1236         (significand_optab): Define corresponding macro.
1237         * optabs.c (init_optabs): Initialize significand_optab.
1238         * genopinit.c (optabs): Implement significand_optab using
1239         significand?f2 patterns.
1240         * builtins.c (expand_builtin_mathfn): Handle
1241         BUILT_IN_SIGNIFICAND{,F,L}.
1242         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
1243         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1244
1245         * config/i386/i386.md (significandxf2, significand<mode>2): New
1246         expanders to implement significandf, significand and significandl
1247         built-ins as inline x87 intrinsics.
1248
1249 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
1250
1251         * config/avr/avr.c (avr_override_options): Remove setting value of
1252         PARAM_INLINE_CALL_COST.
1253
1254 2009-06-18  Richard Henderson  <rth@redhat.com>
1255
1256         PR 40488
1257         * tree-pass.h (TDF_ASMNAME): New.
1258         * tree-dump.c (dump_options): Add asmname.
1259         * doc/invoke.texi: Document it.
1260
1261         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
1262         (dump_decl_name): ...here.
1263         (dump_function_name): New flags arg; mind TDF_ASMNAME.
1264         (dump_generic_node): Update dump_function_name calls.
1265         (print_call_name): New flags arg; update all dump calls.
1266         * diagnostic.h (print_call_name): Update.
1267         * gimple-pretty-print.c (dump_gimple_call): Update.
1268
1269 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
1270
1271         PR target/40470
1272         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
1273
1274 2009-06-18  Diego Novillo  <dnovillo@google.com>
1275
1276         * doc/plugins.texi: Document plugin_is_GPL_compatible.
1277         * plugin.c (str_license): Declare.
1278         (try_init_one_plugin): Assert that the symbol
1279         'plugin_is_GPL_compatible' exists.
1280
1281 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
1282
1283         * see.c: Remove.
1284         * Makefile.in (OBJS-common): Remove see.o.
1285         (see.o): Remove.
1286         * common.opt (fsee): Mark as preserved for backward compatibility.
1287         * opts.c (common_handle_option): Add OPT_fsee to the backward 
1288         compatibility section.
1289         * passes.c (init_optimization_passes, pass_see): Remove pass.
1290         * timevar.def (TV_SEE): Remove.
1291         * tree-pass.h (pass_see): Remove declaration.
1292         * doc/invoke.texi (-fsee): Remove documentation.
1293         
1294 2009-06-18  Martin Jambor  <mjambor@suse.cz>
1295
1296         * tree-sra.c: Include statistics.h
1297         (sra_stats): New variable.
1298         (sra_initialize): Clear sra_stats.
1299         (create_access_replacement): Increment sra_stats.replacements.
1300         (get_access_replacement): Do not return twice.
1301         (analyze_all_variable_accesses): Increment statistics counter by the
1302         number of scalarized aggregates.
1303         (generate_subtree_copies): Increment sra_stats.subtree_copies.
1304         (sra_modify_expr): Increment sra_stats.exprs.
1305         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
1306         (sra_modify_assign): Increment sra_stats.exprs,
1307         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
1308         (perform_intra_sra): Update statistics counters.
1309         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
1310
1311 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1312
1313         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
1314         (arm_scalar_mode_supported_p): New function.
1315
1316 2009-06-18  Paul Brook  <paul@codesourcery.com>
1317             Sandra Loosemore  <sandra@codesourcery.com>
1318
1319         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
1320         (__extendhfsf2, __truncsfhf2): Define.
1321         * config/arm/fp16.c: New file.
1322         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
1323         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
1324
1325 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
1326
1327         * doc/extend.texi (Half-Precision): New section.
1328         * doc/invoke.texi (Option Summary): List -mfp16-format.
1329         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
1330         * config/arm/arm.opt (mfp16-format=): New.
1331         * config/arm/arm.c: Include intl.h.
1332         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
1333         (TARGET_INVALID_RETURN_TYPE): Redefine.
1334         (TARGET_PROMOTED_TYPE): Redefine.
1335         (TARGET_CONVERT_TO_TYPE): Redefine.
1336         (arm_fp16_format): Define.
1337         (all_fpus): Add entry for neon-fp16.
1338         (fp_model_for_fpu): Likewise.
1339         (struct fp16_format): Declare.
1340         (all_fp16_formats): Define.
1341         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
1342         functions.
1343         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
1344         and no ldrh.
1345         (arm_legitimate_index_p): Treat HFmode like HImode.
1346         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
1347         (coproc_secondary_reload_class): Special-case HFmode.
1348         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
1349         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
1350         (arm_init_fp16_builtins): New.
1351         (arm_init_builtins): Call it.
1352         (arm_invalid_parameter_type): New.
1353         (arm_invalid_return_type): New.
1354         (arm_promoted_type): New.
1355         (arm_convert_to_type).
1356         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
1357         format.
1358         (arm_emit_fp16_const): New function.
1359         (arm_mangle_type): Mangle __fp16 as "Dh".
1360         * config/arm/arm.h (TARGET_VFPD32): Make it know about
1361         FPUTYPE_NEON_FP16.
1362         (TARGET_NEON_FP16): New.
1363         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
1364         (enum fputype): Add FPUTYPE_NEON_FP16.
1365         (enum arm_fp16_format_type): Declare.
1366         (arm_fp16_format): Declare.
1367         (LARGEST_EXPONENT_IS_NORMAL): Define.
1368         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1369         * config/arm/arm-modes.def (HFmode): Define.
1370         * config/arm/vfp.md: (*movhf_vfp): New.
1371         (extendhfsf2): New.
1372         (truncsfhf2): New.
1373         * config/arm/arm.md: (fpu): Add neon_fp16.
1374         (floatsihf2, floatdihf2): New.
1375         (fix_trunchfsi2, fix_trunchfdi2): New.
1376         (truncdfhf2): New.
1377         (extendhfdf2): New.
1378         (movhf): New.
1379         (*arm32_movhf): New.
1380         (*thumb1_movhf): New.
1381         (consttable_2): Add check for HFmode constants.
1382         (consttable_4): Handle HFmode constants.
1383
1384 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1387
1388 2009-06-17  Olivier Hainque  <hainque@adacore.com>
1389
1390         * collect2.c (main): Use CONST_CAST2 to perform char ** to
1391         const char ** conversion in AIX specific section.
1392         
1393 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1394
1395         * config/i386/i386.c (ix86_special_builtin_type): Remove
1396         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
1397         (bdesc_special_args): Updated.
1398         (ix86_init_mmx_sse_builtins): Likewise.
1399         (ix86_expand_special_args_builtin): Likewise.
1400
1401 2009-06-17  Richard Henderson  <rth@redhat.com>
1402
1403         * tree-pretty-print.c (maybe_dump_asm_name): New.
1404         (dump_decl_name): Use it.
1405         (PRINT_FUNCTION_NAME): Merge into...
1406         (dump_function_name): ... here.  Use maybe_dump_asm_name.
1407
1408 2009-06-17  Cary Coutant  <ccoutant@google.com>
1409
1410         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1411         Change caller.
1412         * debug.c (struct gcc_debug_hooks): Change placeholder for
1413         source_line hook.
1414         (debug_nothing_int_charstar_int): Replaced by...
1415         (debug_nothing_int_charstar_int_bool): ...this.
1416         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1417         source_line prototype.
1418         (debug_nothing_int_charstar_int): Replaced by...
1419         (debug_nothing_int_charstar_int_bool): ...this.
1420         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1421         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1422         Output is_stmt operand when necessary.
1423         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1424         (notice_source_line): Add is_stmt parameter.
1425         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1426         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1427         Change callers.
1428         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1429         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1430
1431 2009-06-17  Ian Lance Taylor  <iant@google.com>
1432
1433         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1434         Change all uses.
1435         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
1436         call uses.
1437
1438 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
1439
1440         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1441         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1442         tree_strip_sign_nop_conversions and
1443         tree_ssa_strip_useless_type_conversions rather than stripping
1444         the operations here.
1445         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1446         Declare them.
1447         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1448         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1449         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1450         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1451         functions.
1452
1453 2009-06-17  Michael Eager  <eager@eagercon.com>
1454
1455         * config/rs6000/constraints.md (register_constraint "d"): New.
1456         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1457         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1458         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1459         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1460         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1461         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1462         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1463         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1464         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1465         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1466         __fctiwz): Same.
1467         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1468         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1469         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1470         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1471         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1472         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1473         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1474         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1475         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1476         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1477         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1478         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1479         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1480         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1481
1482 2009-06-16  Ian Lance Taylor  <iant@google.com>
1483
1484         * profile.c (total_num_never_executed): Don't define.
1485         (compute_branch_probabilities): Don't count or print
1486         num_never_executed.
1487         (init_branch_prob): Don't set total_num_never_executed.
1488         (end_branch_prob): Don't print total_num_never_executed.
1489
1490 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
1491
1492         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1493
1494 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
1495
1496         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1497         (nabstd2_fpr): Same.
1498
1499 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
1500
1501         * expr.c (expand_assignment): Change complex type check.
1502
1503 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
1504
1505         * doc/plugins.texi (Building GCC plugins): Added new section. 
1506
1507 2009-06-17  Ian Lance Taylor  <iant@google.com>
1508
1509         * c-pch.c (get_ident): Don't set size of templ array.
1510         (pch_init): Don't set size of partial_pch array.
1511
1512         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1513         string constant to intialize an array whose size is the length of
1514         the string.
1515
1516 2009-06-17  Richard Guenther  <rguenther@suse.de>
1517
1518         PR tree-optimization/40389
1519         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1520         to addressable types.
1521         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1522
1523 2009-06-17  Richard Guenther  <rguenther@suse.de>
1524
1525         PR middle-end/40460
1526         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1527         if there is no evolution of left in the loop bail out.
1528         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1529         chrec_fold_multiply.
1530
1531 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
1532             Janis Johnson  <janis187@us.ibm.com>
1533
1534         PR target/39254
1535         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1536         for the symbol ref of a constant that is the source of a move
1537         - nor for any other not-obvious-label-ref constants.
1538
1539 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
1540
1541         * plugin.c (position_pass): Skip newly inserted pass during list
1542         traversal to avoid repeated insertion.
1543
1544 2009-06-16  Ian Lance Taylor  <iant@google.com>
1545
1546         * vec.h (VEC_stack_alloc): Define different version if
1547         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1548         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1549         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1550         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1551
1552 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1553
1554         * config.gcc (extra_headers): Add ia32intrin.h for x86.
1555
1556         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1557         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1558         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1559         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1560         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1561         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1562         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1563         (bdesc_special_args): Add __builtin_ia32_rdtsc and
1564         __builtin_ia32_rdtscp.
1565         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1566         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1567         and __builtin_ia32_rorhi.
1568         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1569         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1570         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1571         (ix86_expand_args_builtin): Likewise.
1572         (ix86_expand_special_args_builtin): Likewise.
1573
1574         * config/i386/i386.md (UNSPECV_RDTSCP): New.
1575         (UNSPECV_RDTSC): Likewise.
1576         (UNSPECV_RDPMC): Likewise.
1577         (*bsr): Renamed to ...
1578         (bsr): This
1579         (*bsr_rex64): Renamed to ...
1580         (bsr_rex64): This.
1581         (rdpmc): New.
1582         (*rdpmc): Likewise.
1583         (*rdpmc_rex64): Likewise.
1584         (rdtsc): Likewise.
1585         (*rdtsc): Likewise.
1586         (*rdtsc_rex64): Likewise.
1587         (rdtscp): Likewise.
1588         (*rdtscp): Likewise.
1589         (*rdtscp_rex64): Likewise.
1590
1591         * config/i386/ia32intrin.h: New.
1592
1593         * config/i386/x86intrin.h: Include <ia32intrin.h>.
1594
1595 2009-06-16  Ian Lance Taylor  <iant@google.com>
1596
1597         * ira-build.c (copy_info_to_removed_store_destinations):
1598         Initialize parent_a.
1599
1600 2009-06-16  Ian Lance Taylor  <iant@google.com>
1601
1602         * c-decl.c (grokdeclarator): Change size_varies to bool.
1603
1604 2009-06-16  Ian Lance Taylor  <iant@google.com>
1605
1606         * sel-sched.c: Make forward declarations of move_op_hooks and
1607         fur_hooks explicitly extern.
1608
1609 2009-06-16  Ian Lance Taylor  <iant@google.com>
1610
1611         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1612         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1613
1614 2009-06-16  Ian Lance Taylor  <iant@google.com>
1615
1616         * resource.c (mark_referenced_resources): Change
1617         include_delayed_effects parameter to bool.  Change all callers.
1618         (mark_end_of_function_resources): Likewise.
1619         * reorg.c (insn_references_resource_p): Likewise.
1620         (insn_sets_resource_p): Likewise.
1621         * resource.h (mark_referenced_resources): Update declaration.
1622         (mark_end_of_function_resources): Update declaration.
1623
1624 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1625
1626         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1627
1628 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1629
1630         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1631         GCC can bootstrap on AIX with GNU Binutils 2.20.
1632
1633 2009-06-16  Ian Lance Taylor  <iant@google.com>
1634
1635         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1636
1637 2009-06-16  Ian Lance Taylor  <iant@google.com>
1638
1639         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1640         inline, not extern inline.
1641         (exact_log2): Likewise.
1642         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1643         test CLZ_HWI.
1644         (exact_log2): Likewise, but don't test CTZ_HWI.
1645
1646 2009-06-16  Ian Lance Taylor  <iant@google.com>
1647
1648         * bitmap.c (bitmap_clear): Don't declare as inline.
1649         * gimple.c (gimplify_assign): Likewise.
1650         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1651         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1652         (sched_scan_info): Remove duplicate definition.
1653
1654 2009-06-16  Ian Lance Taylor  <iant@google.com>
1655
1656         * c-common.c (skip_evaluation): Don't define.
1657         (c_inhibit_evaluation_warnings): Define global variable.
1658         (overflow_warning): Check c_inhibit_evaluation_warnings rather
1659         than skip_evaluation.
1660         (convert_and_check, warn_for_div_by_zero): Likewise.
1661         * c-common.h (skip_evaluation): Don't declare.
1662         (c_inhibit_evaluation_warnings): Declare.
1663         * c-parser.c (c_parser_typeof_specifier): Set
1664         c_inhibit_evaluation_warnings rather than skip_evaluation.
1665         (c_parser_conditional_expression): Likewise.
1666         (c_parser_binary_expression): Likewise.
1667         (c_parser_sizeof_expression): Likewise.
1668         (c_parser_alignof_expression): Likewise.
1669         * c-typeck.c (build_indirect_ref): Check
1670         c_inhibit_evaluation_warnings rather than skip_evaluation.
1671         (build_conditional_expr, build_binary_op): Likewise.
1672
1673 2009-06-16  Richard Guenther  <rguenther@suse.de>
1674
1675         * tree-ssa-alias.c (is_escape_site): Remove.
1676         * tree-ssa-alias.h (enum escape_type): Remove.
1677         (is_escape_site): Likewise.
1678         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1679         via casts and asms without deferring to is_escape_site.
1680
1681 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
1682
1683         PR middle-end/40446
1684         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1685         use gen_lowpart if op0 has complex mode.
1686
1687 2009-06-16  Richard Guenther  <rguenther@suse.de>
1688
1689         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1690         variables add them to ESCAPED.
1691         (find_func_aliases): Do not make all indirectly stored values escaped.
1692
1693 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
1694
1695         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1696         make_decl_one_only.
1697
1698 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1699
1700         PR tree-optimization/40432
1701         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1702         check whether we need to force gimple register operand.
1703
1704 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1705
1706         PR tree-optimization/40413
1707         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1708         build_ref_for_offset.
1709         (propagate_subacesses_accross_link): Fix a typo in a comment.
1710
1711 2009-06-16  Ira Rosen  <irar@il.ibm.com>
1712
1713         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1714         with additional parameter.
1715         * tree-vectorizer.h (enum vect_def_type): Add new value
1716         vect_nested_cycle.
1717         (enum vect_relevant): Add comments.
1718         (vect_is_simple_reduction): Add new argument.
1719         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1720         Detect nested cycles.
1721         (vect_is_simple_reduction): Update documentation, add an argument to
1722         distinguish inner-loop reduction from nested cycle, detect nested
1723         cycles, fix printings and indentation, don't swap operands in case
1724         of nested cycle.
1725         (get_initial_def_for_reduction): Handle subtraction.
1726         (vect_create_epilog_for_reduction): Add new argument to specify
1727         reduction variable.
1728         (vect_finalize_reduction): Handle subtraction, fix comments.
1729         (vectorizable_reduction): Handle nested cycles. In case of nested
1730         cycle keep track of the reduction variable position. Call 
1731         vect_is_simple_reduction with additional parameter. Use original 
1732         statement code in reduction epilogue for nested cycle. Call
1733         vect_create_epilog_for_reduction with additional parameter.
1734         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1735         inner-loop vectorization.
1736         (vect_recog_widen_sum_pattern): Likewise.
1737         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1738         and reductions.
1739         (vect_mark_stmts_to_be_vectorized): Likewise.
1740         (vect_get_vec_def_for_operand): Handle nested cycles.
1741
1742 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1743
1744         * doc/invoke.texi (Debugging Options): Fix option index entries
1745         for -fdump-statistics, -frandom-seed add entries for
1746         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1747         (FRV Options): Fix entries for -mTLS, -mtls.
1748         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1749         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1750         (M68hc1x Options): Fix @itemx for -mnominmax.
1751         (MCore Options): Fix entry for -mno-lsim.
1752         (MMIX Options): Fix entry for -mabi=mmixware.
1753         (PDP-11 Options): Fix entry for -mbcopy-builtin.
1754
1755 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
1756
1757         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1758         Mention the plugin mode of gengtype.
1759         * doc/gty.texi (Source Files Containing Type Information): Likewise.
1760         * gengtype.c: Updated copyright.
1761         (plugin_files, nb_plugin_files) Added new static variables.
1762         (measure_input_list) Care about plugin_files.
1763         (write_rtx_next): Added early return in plugin mode.
1764         (create_file): Updated copyright year in generated file. Added
1765         asserts.
1766         (oprintf): Added early return if NULL outf.
1767         (get_output_file_with_visibility): Care of plugin_files.
1768         (get_output_file_name): May return null.
1769         (write_local): Added early return.
1770         (put_mangled_filename): Ditto.
1771         (finish_root_table): Added check for base_files.
1772         (write_roots): Care about null when plugins.
1773         (main): Added plugin mode.
1774
1775 2009-06-15  Ian Lance Taylor  <iant@google.com>
1776
1777         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1778         * gcov.c (read_count_file): Add braces around variables declared
1779         before label.
1780
1781         * c.opt (Wjump-misses-init): New warning.
1782         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1783         -Wall and -Wc++-compat if not already set.
1784         (c_common_post_options): Clear warn_jump_misses_init if it was not
1785         set.
1786         * c-decl.c (struct c_binding): Change type field to a union with
1787         new label field.  Make it the first field in the struct.  Update
1788         references to type to use u.type instead.
1789         (struct c_spot_bindings): Define.
1790         (struct c_goto_bindings): Define.
1791         (c_goto_bindings_p): Define, along with VECs.
1792         (struct c_label_vars): Define.
1793         (struct c_scope): Add has_label_bindings field.
1794         (bind_label, set_spot_bindings): New static functions.
1795         (decl_jump_unsafe, update_spot_bindings): New static functions.
1796         (update_label_decls): New static function.
1797         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
1798         Update binding u.label field to shadowed field.
1799         (c_binding_start_stmt_expr): New function.
1800         (c_binding_end_stmt_expr): New function.
1801         (pushdecl): Don't call c_begin_vm_scope.
1802         (make_label): Add defining and p_label_vars parameters.  Change
1803         all callers.
1804         (lookup_label): Correct test for whether a label has not yet been
1805         defined.  Call bind_label rather than bind.
1806         (warn_about_goto): New static function.
1807         (lookup_label_for_goto): New function.
1808         (declare_label): Call bind_label rather than bind.
1809         (check_earlier_gotos): New static function.
1810         (define_label): Don't give errors about jumping into statement
1811         expressions or scopes of variably modified types.  Call
1812         set_spot_bindings and check_earlier_gotos.  Call bind_label
1813         instead of bind.  Don't set label_context_stack_se or
1814         label_context_stack_vm.
1815         (c_get_switch_bindings): New function.
1816         (c_release_switch_bindings): New function.
1817         (c_check_switch_jump_warnings): New function.
1818         (start_function): Don't set label_context_stack_se or
1819         label_context_stack_vm.
1820         (finish_function): Likewise.
1821         * c-typeck.c (label_context_stack_se): Don't define.
1822         (label_context_stack_vm): Don't define.
1823         (c_finish_goto_label): Call lookup_label_for_goto rather than
1824         lookup_label.  Don't give errors about jumping into a statement
1825         expression or the scope of a variably modified type.  Don't set
1826         label_context_stack_se or label_context_stack_vm.
1827         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1828         fields.  Add bindings field.
1829         (c_start_case): Don't set deleted fields.  Set bindings field.
1830         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
1831         or blocked_vm.  Call c_check_switch_jump_warnings.
1832         (c_finish_case): Don't test blocked_stmt_expr field.  Call
1833         c_release_switch_bindings.
1834         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1835         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1836         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
1837         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1838         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1839         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
1840         (c_begin_vm_scope, c_end_vm_scope): Don't define.
1841         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1842         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1843         (C_DECL_UNJUMPABLE_VM): Don't define.
1844         (C_DECL_UNDEFINABLE_VM): Don't define.
1845         (struct c_label_list): Don't define.
1846         (struct c_label_context_se): Don't define.
1847         (struct c_label_context_vm): Don't define.
1848         (struct c_spot_bindings): Declare.
1849         (c_bindings_start_stmt_expr): Declare.
1850         (c_bindings_end_stmt_expr): Declare.
1851         (lookup_label_for_goto): Declare.
1852         (c_get_switch_bindings, c_release_switch_bindings): Declare.
1853         (c_check_switch_jump_warnings): Declare.
1854         (label_context_stack_se, label_context_stack_vm): Don't declare.
1855         (c_finish_goto_label): Update declaration.
1856         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1857         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1858         (Warning Options): Document -Wjump-misses-init.
1859
1860 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
1861
1862         * tree-object-size.c (addr_object_size): Fix a pasto in the last
1863         change.
1864
1865 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1866
1867         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1868
1869 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1870
1871         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1872
1873 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1874
1875         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1876
1877 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1878
1879         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1880         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1881         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1882         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1883         * dwarf2asm.c (dw2_force_const_mem): Update call to
1884         make_decl_one_only.
1885         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1886         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1887         * langhooks.c (lhd_comdat_group): Remove.
1888         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1889         * tree.h (DECL_COMDAT_GROUP): New.
1890         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1891         (tree_decl_with_vis): Add comdat_group. Remove one_only.
1892         (make_decl_one_only): Change signature.
1893         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1894         make_decl_one_only.
1895         (make_decl_one_only): Change signature.
1896         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1897
1898 2009-06-15  Richard Guenther  <rguenther@suse.de>
1899
1900         PR middle-end/40439
1901         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1902
1903 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1904
1905         * tree-ssa-math-opts.c: Remove extra divide.
1906
1907 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1908
1909         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1910
1911 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1912
1913         * passes.c: Add bswap pass.
1914         * tree-pass.h: Add pass_optimize_bswap declaration.
1915         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1916         Include rtl.h, expr.h and optabs.h for optab_handler check.
1917         (struct symbolic_number, pass_optimize_bswap): New definition.
1918         (do_shift_rotate, verify_symbolic_number_p): New functions.
1919         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1920         (gate_optimize_bswap): New function.
1921         * tree.c (widest_int_cst_value): New function.
1922         * tree.h (widest_int_cst_value): Prototype added.
1923
1924 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1925
1926         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1927         REG_EQUAL/REG_EQUIV notes.
1928
1929 2009-06-14  Richard Guenther  <rguenther@suse.de>
1930
1931         PR middle-end/40389
1932         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1933         has its address taken if NRV was applied and it is addressable.
1934         * tree-ssa-structalias.c (get_constraint_for_address_of): New
1935         function split out from ...
1936         (get_constraint_for_1): ... here.
1937         (handle_rhs_call): Use it to mark the return slot escaped if
1938         it is addressable and NRV was applied.
1939
1940 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1941
1942         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1943         Change first argument type to location_t.
1944         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1945         Do not set input_location.
1946         Use loc instead of input_location throughout.
1947
1948 2009-06-13  Richard Guenther  <rguenther@suse.de>
1949
1950         PR tree-optimization/40421
1951         * tree-predcom.c (should_unroll_loop_p): Remove.
1952         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1953
1954 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1955
1956         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1957         Add location argument.
1958
1959 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1960
1961         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1962         build_decl.
1963         * config/s390/s390.c (s390_build_builtin_va_list): Same.
1964         (s390_gimplify_va_arg): Pass location to create_artificial_label.
1965         * config/spu/spu-protos.h: Add location to
1966         spu_resolve_overloaded_builtin.
1967         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1968         spu_build_builtin_va_list.
1969         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1970         argument.  Pass location to build_function_call_vec.
1971         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1972         build_decl.
1973         (emit_fpu_switch): Same.
1974         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1975         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1976         to build_decl and create_artificial_label.
1977         (xtensa_gimplify_va_arg_expr): Same.
1978         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1979         (xstormy16_gimplify_va_arg_expr): Same.
1980         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1981         * config/arm/arm.c (arm_build_builtin_va_list): Same.
1982         * config/mips/mips.c (mips_build_builtin_va_list): Same.
1983         (mips16_build_function_stub): Same.
1984         (mips16_build_call_stub): Same.
1985
1986 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
1987
1988         PR target/40327
1989         * arm/constraints.md (Pa, Pb): New constraints.
1990         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
1991         split pattern to deal with them.
1992
1993 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
1994
1995         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1996         fix index entry for -Xpreprocessor.
1997
1998 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1999
2000         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2001         Add location argument to build_decl call.
2002         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
2003         (rs6000_init_builtins): Same.
2004         (spe_init_builtins): Same.
2005         (rs6000_gimplify_va_arg): Add location argument to
2006         create_artificial_label call.
2007
2008 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
2009
2010         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
2011         * combine-stack-adj.c (pass_stack_adjustments): Use it.
2012         * Makefile.in: Fix GGC dependency for gcse.o.
2013
2014 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2015
2016         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
2017         * gimple-pretty-print.c (dump_gimple_stmt): Same.
2018         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
2019         created.
2020         * c-parser.c (c_parser_binary_expression): Use current column while
2021         building binary operations.
2022         * common.opt (fshow-column): Enable by default.
2023         * tree-vrp.c (check_array_ref): Use warning_at.
2024         (check_array_bounds): Use location from call back if expr has no
2025         location.
2026         * tree.h: Add location argument to maybe_fold_*.
2027         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
2028         (maybe_fold_offset_to_array_ref): Add location argument and use it.
2029         (maybe_fold_offset_to_component_ref): Same.
2030         (maybe_fold_offset_to_reference): Same.
2031         (maybe_fold_offset_to_address): Same.
2032         (maybe_fold_stmt_indirect): Same.
2033         (maybe_fold_stmt_addition): Same.
2034         (fold_stmt_r): Pass location to maybe_fold_*.
2035         (fold_gimple_assign): Same.
2036         * c-tree.h: Add location argument to finish_decl,
2037         default_function_array_conversion, store_init_value.
2038         * c-decl.c (define_label): Use error_at.
2039         (c_make_fname_decl): Pass location to finish_decl.
2040         (finish_decl): New location argument.
2041         (build_compound_literal): Pass location to store_init_value.
2042         (grokdeclarator): Pass location to finish_decl.
2043         (grokfield): Same.
2044         * c-typeck.c (array_to_pointer_conversion): New location argument.
2045         (function_to_pointer_conversion): Same.
2046         (default_function_array_conversion): Same.
2047         (parser_build_unary_op): Pass location to overflow_warning.
2048         (parser_build_binary_op): Same.  Use warning_at.
2049         (build_unary_op): Pass location to array_to_pointer_conversion.
2050         (build_c_cast): Pass location to digest_init.
2051         (build_modify_expr): New location argument.
2052         (convert_for_assignment): Same.
2053         (store_init_value): Same.
2054         (digest_init): Same.
2055         (output_init_element): Pass location to digest_init and
2056         array_to_pointer_conversion.
2057         (c_finish_return): Pass location to convert_for_assignment.
2058         * gimplify.c (gimplify_conversion): Pass location to
2059         maybe_fold_offset_to_address.
2060         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
2061         to maybe_fold_stmt_addition.
2062         * c-omp.c (c_finish_omp_atomic): Pass new location to
2063         build_modify_expr.
2064         (c_finish_omp_for): Same.
2065         * c-common.c (overflow_warning): New argument.
2066         * c-common.h: New argument to build_modify_expr, overflow_warning.
2067         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
2068         finish_decl.
2069         (c_parser_initializer): Pass location to
2070         default_function_array_conversion.
2071         (c_parser_initelt): Same.
2072         (c_parser_initval): Same.
2073         (c_parser_asm_operands): Same.
2074         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
2075         (c_parser_conditional_expression): Same.
2076         (c_parser_binary_expression): Add location info to stack.  Use it.
2077         (c_parser_unary_expression): Pass location to
2078         default_function_array_conversion, parser_build_unary_op,
2079         build_indirect_ref, c_parser_postfix_expression_after_primary.
2080         (c_parser_postfix_expression_after_primary): New location argument.
2081         Use it.
2082         (c_parser_expression_conv): Pass location to
2083         default_function_array_conversion.
2084         (c_parser_expr_list): Same.
2085         (c_parser_omp_atomic): Same.
2086         (c_parser_omp_for_loop): Same.
2087         * c-tree.h: (struct c_declarator): Add comment to id_loc.
2088         (build_array_declarator): New argument.
2089         * c-decl.c (build_array_declarator): Add location argument.
2090         (grokdeclarator): Set id_loc for cdk_array.
2091         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
2092         build_array_declarator.
2093         * tree.c (build_omp_clause): Add location argument.
2094         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
2095         (OMP_CLAUSE_LOCATION): New macro.
2096         (struct tree_omp_clause): Add location field.
2097         (build_omp_clause): Add argument.
2098         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
2099         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
2100         build_omp_clause.
2101         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
2102         (cp_parser_omp_clause_collapse): Same.
2103         (cp_parser_omp_clause_default): Same.
2104         (cp_parser_omp_clause_if): Same.
2105         (cp_parser_omp_clause_nowait): Same.
2106         (cp_parser_omp_clause_num_threads): Same.
2107         (cp_parser_omp_clause_ordered): Same.
2108         (cp_parser_omp_clause_schedule): Same.
2109         (cp_parser_omp_clause_untied): Same.
2110         (cp_parser_omp_for_loop): Same.
2111         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2112         * c-tree.h (c_start_case): Add location argument.
2113         (c_process_expr_stmt): Same.
2114         (c_finish_goto_*): Same.
2115         * tree-parloops.c (initialize_reductions): Pass location to
2116         build_omp_clause.
2117         (create_parallel_loop): Same.
2118         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
2119         (gfc_trans_omp_reduction_list): Same.
2120         (gfc_trans_omp_clauses): Same.
2121         (gfc_trans_omp_do): Same.
2122         * c-typeck.c (c_finish_goto_label): Same.
2123         (c_finish_goto_ptr): New location argument.
2124         (c_start_case): Same.
2125         (emit_side_effect_warnings): Same.
2126         (c_process_expr_stmt): Same.
2127         (c_finish_stmt_expr): Same.
2128         (c_finish_omp_clauses): Use error_at instead of error.
2129         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
2130         build_omp_clause.
2131         * c-omp.c (c_split_parallel_clauses): New location argument.
2132         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
2133         to build_omp_clause.
2134         (convert_local_reference_stmt): Same.
2135         (convert_gimple_call): Same.
2136         * c-common.h (c_split_parallel_clauses): New argument.
2137         * c-parser.c (c_parser_statement_after_labels): Pass location to
2138         c_finish_goto_label.
2139         (c_parser_switch_statement): Pass location to c_start_case.
2140         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
2141         and c_process_expr_stmt.
2142         (c_parser_omp_variable_list): Add location argument.
2143         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
2144         (c_parser_omp_clause_default): Same.
2145         (c_parser_omp_clause_if): Same.
2146         (c_parser_omp_clause_num_threads): Same.
2147         (-c_parser_omp_clause_ordered): Same.
2148         (c_parser_omp_clause_reduction): Pass location to
2149         c_parser_omp_variable_list.
2150         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
2151         (c_parser_omp_clause_untied): Same.
2152         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
2153         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
2154
2155         * c-tree.h (check_for_loop_decls, undeclared_variable,
2156         build_component_ref, build_array_ref, build_external_ref,
2157         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
2158         build_conditional_expr, build_compound_expr, c_cast_expr,
2159         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
2160         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
2161         argument.
2162         * c-semantics.c (build_stmt): Same.
2163         (build_case_label): Same.
2164         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
2165         (undeclared_variable): New argument.
2166         (make_label): Same.
2167         (lookup_label): Pass location on down.
2168         (define_label): Same.
2169         (finish_decl): Same.
2170         (build_compound_literal): Same.
2171         (finish_struct): Same.
2172         (finish_function): Do not set location here.
2173         (check_for_loop_decls): New argument.
2174         * tree.c (save_expr): Set location.
2175         (build_empty_stmt): New argument.
2176         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
2177         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
2178         * builtins.c (gimplify_va_arg_expr): Use locations.
2179         (expand_builtin_sync_operation): Same.
2180         * c-typeck.c (build_component_ref): New argument.
2181         (build_array_ref): Same.
2182         (build_external_ref): Same.
2183         (c_expr_sizeof_expr): Same.
2184         (c_expr_sizeof_type): Same.
2185         (parser_build_unary_op): Same.
2186         (build_conditional_expr): Same.
2187         (build_compound_expr): Pass location on down.
2188         (build_compound_expr): New argument.
2189         (build_c_cast): Same.
2190         (c_cast_expr): Same.
2191         (build_asm_expr): Same.
2192         (c_finish_return): Same.
2193         (c_process_expr_stmt): Pass location on down.
2194         (c_finish_stmt_expr): New argument.
2195         (push_clenaup): Same.
2196         (c_finish_omp_parallel): Same.
2197         (c_finish_omp_task): Same.
2198         * gimplify.c (gimplify_call_expr): Pass location on down.
2199         * c-omp.c (c_finish_omp_master): New argument.
2200         (c_finish_omp_critical): Same.
2201         (c_finish_omp_ordered): Same.
2202         (c_finish_omp_barrier): Same.
2203         (-c_finish_omp_taskwait): Same.
2204         (c_finish_omp_atomic): Same.
2205         (c_finish_omp_flush): Same.
2206         * tree-inline.c (copy_tree_body_r): Pass location on down.
2207         (inline_forbidden_p): Remove use of input_location.
2208         * c-gimplify.c (c_build_bind_expr): New argument.
2209         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
2210         (c_sizeof_or_alignof_type): New argument.
2211         (c_alignof_expr): Same.
2212         (build_va_arg): Same.
2213         (c_add_case_label): Same.
2214         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
2215         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
2216         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
2217         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
2218         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
2219         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
2220         New argument.
2221         * stub-objc.c (objc_build_selector_expr): Same.
2222         (objc_build_throw_stmt): Same.
2223         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
2224         (c_parser_initelt): Same.
2225         (c_parser_compound_statement): Same.
2226         (c_parser_compound_statement_nostart): Same.
2227         (c_parser_label): Same.
2228         (c_parser_statement_after_labels): Same.
2229         (c_parser_if_body): Same.
2230         (c_parser_else_body): Same.
2231         (c_parser_if_statement): Same.
2232         (c_parser_switch_statement): Same.
2233         (c_parser_while_statement): Same.
2234         (c_parser_do_statement): Same.
2235         (c_parser_for_statement): Same.
2236         (c_parser_asm_statement): Same.
2237         (c_parser_conditional_expression): Same.
2238         (c_parser_binary_expression): Same.
2239         (c_parser_cast_expression): Same.
2240         (c_parser_unary_expression): Same.
2241         (c_parser_sizeof_expression): Same.
2242         (c_parser_alignof_expression): Same.
2243         (c_parser_postfix_expression): Same.
2244         (c_parser_expression): Same.
2245         (c_parser_objc_receiver): Same.
2246         (c_parser_omp_variable_list): Same.
2247         (c_parser_omp_structured_block): Same.
2248         (c_parser_omp_atomic): New argument.
2249         (c_parser_omp_barrier): Same.
2250         (c_parser_omp_critical): Same.
2251         (c_parser_omp_flush): Pass location on down.
2252         (c_parser_omp_for_loop): New argument.
2253         (c_parser_omp_for): Same.
2254         (c_parser_omp_master): Same.
2255         (c_parser_omp_ordered): Same.
2256         (c_parser_omp_sections_scope): Same.
2257         (c_parser_omp_sections): Same.
2258         (c_parser_omp_parallel): Same.
2259         (c_parser_omp_single): Same.
2260         (c_parser_omp_task): Same.
2261         (c_parser_omp_taskwait): Pass location on down.
2262         (c_parser_omp_construct): Same.
2263         (c_parser_omp_threadprivate): Same.
2264         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
2265         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
2266         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
2267         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
2268         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
2269         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
2270         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
2271         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
2272         config/i386/i386.c, stmt.c:
2273         Add location argument to the following function definitions and/or
2274         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
2275         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
2276         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
2277         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
2278         do_case, c_finish_bc_stmt, build_compound_literal,
2279         build_function_call.
2280         * c-decl.c (build_compound_literal): Add location argument.
2281         Make all diagnostic calls use location.
2282         (start_struct): Same.
2283         (finish_struct): Same.
2284         (start_enum): Same.
2285         (build_enumerator): Same.
2286         (start_function): Same.
2287         (grokdeclarator): Make all diagnostic calls use location.
2288         (store_parm_decls_oldstyle): Same.
2289         * c-typeck.c (build_function_call): Add location argument.
2290         Make all diagnostic calls use location.
2291         (do_case): Same.
2292         (c_finish_bc_stmt): Same.
2293         * tree-nested.c (get_trampoline_type): Add argument.
2294         Pass location to build_decl.
2295         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
2296         * rtl.h (RTL_LOCATION): New.
2297         * c-common.c (c_add_case_label): Add location argument.
2298         Make all diagnostic calls use location.
2299         * c-common.h: Add location argument to make_fname_decl, do_case,
2300         c_add_case_label, build_function_call, resolve_overloaded_builtin.
2301         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
2302         Set it appropriately for every case.  Pass enum_loc to start_enum
2303         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
2304         parser_xref_tag.
2305         (c_parser_struct_or_union_specifier): Save location.  Use it for
2306         start_struct, finish_struct, and parser_xref_tag.
2307
2308 2009-06-12  Ian Lance Taylor  <iant@google.com>
2309
2310         * fold-const.c (fold_unary): Rename local variable and to and_expr.
2311
2312         * c-opts.c (c_common_handle_option): For -Wc++-compat set
2313         cpp_opts->warn_cxx_operator_names.
2314
2315 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2316
2317         PR tree-opt/38865
2318         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
2319         is returns NULL and OP is a VCE, look through the VCE.
2320
2321 2009-06-12  Ian Lance Taylor  <iant@google.com>
2322
2323         PR bootstrap/40430
2324         * collect2.c (main): Use CONST_CAST2 in code inside #if
2325         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
2326
2327 2009-06-12  Joey Ye  <joey.ye@intel.com>
2328
2329         PR middle-end/39146
2330         * cfgexpand.c (get_decl_align_unit): Update
2331         max_used_stack_slot_alignment with align instead of
2332         stack_alignment_needed.
2333
2334         * function.c (assign_stack_local_1): Update
2335         max_used_stack_slot_alignment with alignment_in_bits instead
2336         of stack_alignment_needed.
2337         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
2338         here.
2339
2340 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
2341
2342         * dwarf2out.c (last_var_location_insn): New variable.
2343         (dwarf2out_end_epilogue): Clear last_var_location_insn.
2344         (dwarf2out_var_location): Don't record anything after last real
2345         insn.  Only change labels if there were any real instructions
2346         in between last note and this one, or if changed sections.
2347
2348 2009-06-11  Richard Henderson  <rth@redhat.com>
2349
2350         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
2351         note when storing the frame pointer in a register.
2352         (FRP): Don't redefine to nothing for epilogue.
2353         (alpha_expand_epilogue): Mark register and sp restores.
2354         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
2355
2356         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
2357         when gen_lowpart is needed.
2358
2359 2009-06-11  Richard Henderson  <rth@redhat.com>
2360
2361         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
2362
2363         * dwarf2out.c (need_data_align_sf_opcode): New.
2364         (div_data_align): Move earlier.
2365         (def_cfa_1, reg_save): Use it.
2366
2367 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
2368
2369         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2370         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2371         (ix86_handle_option): Handle OPT_mcrc32.
2372         (ix86_target_string): Add -mcrc32.
2373         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2374
2375         * config/i386/i386.h (TARGET_CRC32): New.
2376
2377         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2378         (sse4_2_crc32di): Likewise.
2379
2380         * config/i386/i386.opt (mcrc32): New.
2381
2382         * doc/invoke.texi: Document -mcrc32.
2383
2384 2009-06-11  Richard Henderson  <rth@redhat.com>
2385
2386         * common.opt (gdwarf-): Accept a version number.
2387         * doc/invoke.texi (gdwarf-): Update docs.
2388         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2389         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2390         version level, and record it.
2391
2392         * dwarf2.h (DW_CIE_VERSION): Remove.
2393         * dwarf2out.c (DWARF_VERSION): Remove.
2394         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2395         (output_call_frame_info): Use CIE version 3 for dwarf3,
2396         or if the return register column is out of range for version 1.
2397         (dwarf_stack_op_name): Add all dwarf3 values.
2398         (DEBUG_PUBTYPES_SECTION): New.
2399         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2400         encoding change for dwarf3.
2401         (output_die) [dw_val_class_die_ref]: Likewise.
2402         (output_compilation_unit_header): Emit correct version for dwarf3.
2403         (output_line_info): Likewise.
2404         (output_pubnames): Update for DWARF_VERSION removal.
2405         (output_aranges): Likewise.
2406         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2407         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2408         (dwarf2out_finish): Likewise.
2409
2410 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2411
2412         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2413         in r148403.
2414
2415 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2416
2417         PR c/39252
2418         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2419         * builtins.c (expand_builtin_unreachable): New function.
2420         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2421         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2422         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2423         successors.
2424         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2425         searching for missing barriers.
2426
2427 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2428
2429         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2430         when -fprofile-generate* was passed.
2431         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2432
2433 2009-06-11  Anthony Green  <green@moxielogic.com>
2434
2435         * config/moxie/moxie.md: Define length attribute for all instructions.
2436         (rCC): Define.
2437         (*b<cond:code>): Support limited branch ranges for new PC-relative
2438         branch instructions.
2439         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2440
2441 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
2442
2443         * config/i386/i386.c (min_insn_size): Use get_attr_length
2444         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2445         For __asm return 0.
2446
2447         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2448         instead of emit_insn_before.
2449
2450 2009-06-10  Ian Lance Taylor  <iant@google.com>
2451
2452         PR bootstrap/40408
2453         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2454         GIMPLE_SWITCH.
2455
2456 2009-06-10  Revital Eres  <eres@il.ibm.com>
2457
2458         * passes.c (init_optimization_passes): Reschedule
2459         predictive-commoning pass before complete unroll pass.
2460
2461 2009-06-10  Martin Jambor  <mjambor@suse.cz>
2462
2463         * cgraph.c (cgraph_node_can_be_local_p): New function.
2464         (cgraph_make_node_local): New function.
2465         * cgraph.h (cgraph_node_can_be_local_p): Declare.
2466         (cgraph_make_node_local): Declare.
2467
2468 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
2469
2470         * tree.h (tree_base): Add packed_flag and user_align fields.
2471         Decrease size of spare field.
2472         (TYPE_USER_ALIGN): Use user_align from tree_base.
2473         (DECL_USER_ALIGN): Likewise.
2474         (TYPE_PACKED): Use packed_flag from tree_base.
2475         (DECL_PACKED): Likewise.
2476         (tree_type): Delete packed_flag and user_align fields.  Widen
2477         precision field.  Widen mode field and shuffle fields to align
2478         mode on an 8-bit boundary.
2479         (tree_decl_common): Delete decl_flag_1 and user_align fields.
2480         Renumber decl_flag_* fields.  Fix comments.  Widen
2481         decl_common_unused field.
2482         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2483         (DECL_EXTERNAL): Likewise.
2484         (DECL_BIT_FIELD): Likewise.
2485         (DECL_NONADDRESSABLE_P): Likewise.
2486         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2487         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2488
2489 2009-06-10  Ian Lance Taylor  <iant@google.com>
2490
2491         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2492         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2493         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2494         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2495         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2496         DEF_VEC_ALLOC_FUNC_P.
2497         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2498         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2499         DEF_VEC_ALLOC_FUNC_O.
2500         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2501         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2502         DEF_VEC_ALLOC_FUNC_I.
2503         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2504         (vec_stack_p_reserve_exact_1): Declare.
2505         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2506         (vec_stack_free): Declare.
2507         (VEC_stack_alloc): Define.
2508         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2509         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2510         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2511         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
2512         for void_p.
2513         (stack_vecs): New static variable.
2514         (vec_stack_p_reserve_exact_1): New function.
2515         (vec_stack_o_reserve_1): New static function.
2516         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2517         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2518         (vec_stack_free): New function.
2519         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2520         (VEC_df_ref_stack_alloc): Define.
2521         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
2522         DEF_VEC_ALLOC_P_STACK.
2523         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2524         (struct df_collection_rec): Change _vec fields to VEC.  Remove
2525         _use fields.
2526         (df_free_collection_rec): Adjust for new fields.
2527         (df_insn_rescan): Use new df_collection_rec fields.
2528         (df_notes_rescan, df_canonize_collection_rec): Likewise.
2529         (df_ref_create_structure, df_ref_record): Likewise.
2530         (df_get_conditional_uses, df_get_call_refs): Likewise.
2531         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2532         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2533         (df_record_exit_block_uses, df_bb_verify): Likewise.
2534         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
2535         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2536         Remove count parameter.  Change return type to void.  Change all
2537         callers.
2538         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2539         Remove count parameter.  Change return type to void.  Change all
2540         callers.
2541         (df_install_refs): Change old_vec parameter to VEC.  Remove count
2542         parameter.  Change all callers.
2543         (df_install_mws): Change old_vec parameter to VEC.  Remove count
2544         parameter.  Change all callers.
2545         (df_refs_verify): Change new_rec parameter to VEC.  Change call
2546         callers.
2547         (df_mws_verify): Likewise.
2548
2549 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
2550
2551         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2552
2553 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2554
2555         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2556
2557 2009-06-10  Anthony Green  <green@moxielogic.com>
2558
2559         * config/moxie/crti.asm: New file.
2560         * config/moxie/crtn.asm: New file.
2561         * config/moxie/moxie.c: New file.
2562         * config/moxie/moxie.h: New file.
2563         * config/moxie/sfp-machine.h: New file.
2564         * config/moxie/moxie-protos.h: New file.
2565         * config/moxie/t-moxie: Created.
2566         * config/moxie/t-moxie-softfp: Created.
2567         * config/moxie/moxie.md: Created.
2568         * config/moxie/constraints.md: Created.
2569         * config.gcc: Add moxie support.
2570         * doc/md.texi (Machine Constraints): Add moxie constraints.
2571         * doc/contrib.texi (Contributors): Mention moxie port.
2572         * doc/install.texi (Specific): Mention the moxie port.
2573
2574 2009-06-09  Ian Lance Taylor  <iant@google.com>
2575
2576         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2577         compiling with C++.
2578         * optabs.c (optab_table): Only use designated initializers if
2579         HAVE_DESIGNATED_INITIALIZERS is defined.
2580         (convert_optab_table): Likewise.
2581         (init_optabs): Always call init_insn_codes if
2582         HAVE_DESIGNATED_INITIALIZERS is not defined.
2583
2584 2009-06-09  Ian Lance Taylor  <iant@google.com>
2585
2586         * targhooks.c (default_builtin_vectorized_function): Change fn
2587         parameter to unsigned int.
2588         (default_builtin_vectorized_conversion): Change code parameter to
2589         unsigned int.
2590         (default_builtin_reciprocal): Change fn parameter to unsigned int.
2591         * targhooks.h: Update declarations.
2592         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2593         parameter to unsigned int.
2594
2595         * c-typeck.c (comptypes_check_enum_int): New static function.
2596         (comptypes_internal): Add enum_and_int_p parameter.  Change all
2597         callers.
2598         (comp_target_types): Add location parameter.  Change all callers.
2599         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2600         Change all callers.
2601         (function_types_compatible_p, type_lists_compatible_p): Likewise.
2602         (build_conditional_expr): Add colon_loc parameter.  Change all
2603         callers.
2604         (convert_for_assignment): Add location parameter.  Change all callers.
2605         * c-parser.c (c_parser_conditional_expression): Pass location of
2606         colon to build_conditional_expr.
2607         * c-tree.h (build_conditional_expr): Update declaration.
2608
2609 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2610
2611         * graphite.c: Revert previous patch.
2612
2613 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2614
2615         PR bootstrap/40103
2616         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2617
2618 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2619
2620         * tree-ssa-loop-prefetch.c
2621         (loop_prefetch_arrays): Fixed a portability problem in printf format
2622         string.
2623
2624 2009-06-09  Martin Jambor  <mjambor@suse.cz>
2625
2626         PR tree-optimization/40351
2627         * tree-sra.c (propagate_subacesses_accross_link): Check that a
2628         refrence to a potential artifical subaccess can be constructed.
2629
2630 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2631
2632         * config/sh/sh-protos.h (sh_optimization_options): Declare.
2633         (sh_override_options): Likewise.
2634         * config/sh/sh.c: Include params.h.
2635         (sh_optimization_options): New.
2636         (sh_override_options): Likewise.
2637         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2638         (OVERRIDE_OPTIONS): Use sh_override_options.
2639
2640 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2641
2642         * dwarf2out.c (emit_cfa_remember): New variable.
2643         (add_fde_cfi): If emit_cfa_remember, recurse to add
2644         DW_CFA_remember_state first.
2645         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2646         instead just set emit_cfa_remember.
2647
2648 2009-06-08  Jan Hubicka  <jh@suse.cz>
2649
2650         PR debug/40126
2651         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2652
2653 2009-06-08  Jan Hubicka  <jh@suse.cz>
2654
2655         PR middle-end/39834
2656         * cgraphunit.c (save_inline_function_body): Do not copy transform
2657         hooks for saved inline bodies.
2658         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2659         for given function.
2660
2661 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
2662
2663         * jump.c (returnjump_p): Handle delayed branches.  Add missing
2664         function comment.
2665
2666 2009-06-08  Jan Hubicka  <jh@suse.cz>
2667
2668         PR middle-end/40102
2669         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2670         original node might've been modified.
2671         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2672
2673 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2674
2675         * tree-object-size.c (addr_object_size): Add OSI argument.
2676         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2677         (compute_builtin_object_size, expr_object_size): Adjust callers.
2678         (plus_stmt_object_size): Call addr_object_size instead of
2679         compute_builtin_object_size.
2680
2681 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2682             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2683         
2684         * tree-ssa-loop-prefetch.c 
2685         (gather_memory_references): Introduced a counter for the number of 
2686         memory references.
2687         (anything_to_prefetch_p): Introduced a counter for the number of 
2688         prefetches.
2689         (is_loop_prefetching_profitable): New function with a cost model 
2690         for prefetching.
2691         (loop_prefetch_arrays): Use the new cost model to determine if 
2692         prefetching is profitable.
2693         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
2694         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2695         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
2696         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2697         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
2698         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2699         
2700 2009-06-08  Michael Matz  <matz@suse.de>
2701
2702         PR debug/40012
2703         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2704         partitions use the same.
2705         (expand_one_var): Deal with DECL_RTL sometimes begin set also
2706         for basevars of SSA_NAMEs.
2707         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2708         to not expand them twice.
2709         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2710         multiple places.
2711
2712 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2713
2714         * common.opt (fcompare-debug=, fcompare-debug-second): New.
2715         (fdump-final-insns=, gtoggle): New.
2716         * doc/invoke.texi: Document them.
2717         * final.c (rest_of_clean_state): Dump final insn stream.
2718         * gcc.c (invoke_as): Hook in -fcompare-debug.
2719         (static_spec_functions): Add compare-debug-dump-opt,
2720         compare-debug-self-opt and compare-debug-auxbase-opt.
2721         (compare_debug, compare_debug_second, compare_debug_opt): New.
2722         (switches_debug_check, n_switches_debug_check): New.
2723         (debug_auxbase_opt, debug_check_temp_file): New.
2724         (process_command): Handle -fno-compare-debug, -fcompare-debug and
2725         -fcompare-debug=*.
2726         (do_self_spec): Handle arguments after switches.
2727         (do_spec_1): Add .gk extension to temp file basenames for compare.
2728         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2729         (cc1_options): Use it instead of normal auxbase computation for
2730         the second compare-debug compilation.
2731         (compare_files): New.
2732         (main): Set up and implement compare debug mode.
2733         (compare_debug_dump_opt_spec_function): New.
2734         (compare_debug_self_opt_spec_function): New.
2735         (compare_debug_auxbase_opt_spec_function): New.
2736         * toplev.c (process_options): Handle flag_gtoggle,
2737         flag_dump_final_insns.
2738         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2739         during -fcompare-debug-second compilation.
2740
2741 2009-06-07  Ian Lance Taylor  <iant@google.com>
2742
2743         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2744         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2745
2746         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2747         with no default node.  Change warning with %H to warning_at.
2748         Don't clear warn_switch around case checking.
2749         * doc/invoke.texi (Warning Options): Clarify distinction between
2750         -Wswitch and -Wswitch-enum.
2751
2752 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2753
2754         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2755
2756 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2757
2758         * gbl-ctors.h: Add header guard.
2759
2760 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2761
2762         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2763         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2764         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2765         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2766         prototypes for removed functions.
2767         (expressions_equal_p): Move to ...
2768         * tree-ssa-sccvn.h: ... here and ...
2769         * matrix-reorg.c: ... adjust includes.
2770
2771 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2772
2773         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2774
2775 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2776
2777         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2778         (finish_function): Remove erroneous whitespace.
2779
2780 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2781
2782         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2783         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2784
2785 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2786
2787         * errors.c (internal_error): Commentary typo fix.
2788         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2789         * tree-ssa-pre.c: Ditto.
2790
2791 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2792
2793         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2794         them is supposed to hold actual statements.
2795
2796 2009-06-06  Ian Lance Taylor  <iant@google.com>
2797
2798         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2799         empty statements can now have attributes.
2800
2801 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
2802
2803         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2804         * config/mips/mips.md: Ditto.
2805
2806 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2807
2808         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2809         _RELOCATABLE.
2810         (__eabi_uconvert): Likewise.
2811
2812 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2813
2814         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2815         CFI_* definitions with IN_GCC.
2816
2817 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
2818
2819         * xcoffout.h (xcoffout_source_line): Update prototype.
2820
2821 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2822
2823         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2824         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2825
2826 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR middle-end/40340
2829         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2830         inlined_function_outer_scope_p blocks for artificial inlines
2831         even at -g0/-g1.
2832         * tree.c (tree_nonartificial_location): Rewrite using
2833         block_nonartificial_location.
2834
2835 2009-06-05  Revital Eres  <eres@il.ibm.com>
2836             Leehod Baruch  <leehod@il.ibm.com>
2837
2838         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2839         (expand_expr_real_1): Remove comment.
2840         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2841         Vectorize misaligned access when the target supports it.
2842         (vect_supportable_dr_alignment): Check for unaligned access support.
2843         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2844         and remove asset.
2845
2846 2009-06-05  Julian Brown  <julian@codesourcery.com>
2847
2848         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2849         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2850
2851 2009-06-05  Richard Guenther  <rguenther@suse.de>
2852
2853         PR bootstrap/40350
2854         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2855         as possibly unused.
2856
2857 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2858
2859         * config/s390/s390.c (global_not_special_regno_p): New static inline.
2860         (save_gprs): Don't tell unwinder when a global register is saved.
2861         (s390_emit_epilogue): Emit needed epilogue unwind info.
2862
2863 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2864
2865         * dwarf2out.c (deferred_asm_name): New.
2866         (add_name_and_src_coords_attributes): Defer creation of
2867         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2868         computed yet.
2869         (move_linkage_attr): New.
2870         (dwarf2out_finish): Revisit deferrals and emit attributes at the
2871         right place.
2872
2873 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2874
2875         * tree-nested.c (finalize_nesting_tree_1): Declare the
2876         frame_decl in the binding tree.
2877
2878 2009-06-04  Cary Coutant  <ccoutant@google.com>
2879
2880         * basic-block.h (struct basic_block_def): Add discriminator field.
2881         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
2882         callers.
2883         * debug.c (do_nothing_debug_hooks): Add additional entry.
2884         (debug_nothing_int_charstar_int): New function.
2885         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2886         (debug_nothing_int_charstar_int): New declaration.
2887         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
2888         discriminator value in .loc directive.
2889         * final.c (last_discriminator): New variable.
2890         (discriminator): New variable.
2891         (final_start_function): Initialize above variables, pass current
2892         discriminator to debug hook.
2893         (notice_source_line): Check for discriminator change.
2894         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2895         * sdbout.c (sdbout_source_line): New parameter.
2896         * tree-cfg.c (struct locus_discrim_map): New structure type.
2897         (discriminator_per_locus): New hash table.
2898         (build_gimple_cfg): Allocate and free discriminator hash table.
2899         (make_edges): Call assign_discriminator.
2900         (locus_map_hash): New function.
2901         (locus_map_eq): New function.
2902         (next_discriminator_for_locus): New function.
2903         (same_line_p): New function.
2904         (assign_discriminator): New function.
2905         (make_cond_expr_edges): Call assign_discriminator.
2906         (make_gimple_switch_edges): Likewise.
2907         (first_non_label_stmt): New function.
2908         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2909         all callers.
2910         * xcoffout.c (xcoffout_source_line): Add new parameter.
2911
2912         * configure.ac (gcc_cv_as_discriminator): New configury check for
2913         gas support for discriminator.
2914         * configure: Regenerate.
2915         * config.in: Regenerate.
2916
2917 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2918
2919         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2920         val after checking for integers.
2921
2922 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2923
2924         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2925         X64_REGPARM_MAX.
2926         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2927         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2928         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2929         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2930         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
2931         X64_SSE_REGPARM_MAX.
2932         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2933         X64_SSE_REGPARM_MAX.
2934
2935 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2936
2937         * gcc.c (report_times_to_file): New.
2938         (execute): Implement it.
2939         (process_command): Support -time=.
2940         * doc/invoke.texi: Document it.
2941
2942 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2943
2944         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2945         that have value exprs.
2946
2947 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2948
2949         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2950         declarations for constants until...
2951         (dw2_output_indirect_constant_1): ... this point.
2952
2953 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
2954
2955         PR target/10242
2956         * arm.md (arm_addsi3): Don't try to split an add with an
2957         eliminable register until after reload has completed.
2958
2959 2009-06-03  Ian Lance Taylor  <iant@google.com>
2960
2961         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2962         * genattrtab.c (write_length_unit_log): Likewise.
2963         * genchecksum.c (dosum): Likewise.
2964         * gengtype.c (write_rtx_next): Likewise.
2965         (finish_root_table, write_roots): Likewise.
2966         * gimple.c (gimple_ops_offset_): Likewise.
2967         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2968         * config/arc/arc.c (arc_attribute_table): Likewise.
2969         * config/arm/arm.c (arm_attribute_table): Likewise.
2970         * config/avr/avr.c (avr_attribute_table): Likewise.
2971         * config/crx/crx.c (crx_attribute_table): Likewise.
2972         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2973         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2974         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2975         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2976         * config/sh/sh.c (sh_attribute_table): Likewise.
2977         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2978         * config/spu/spu.c (spu_attribute_table): Likewise.
2979         * config/v850/v850.c (v850_attribute_table): Likewise.
2980
2981         * config/alpha/alpha.c (vms_attribute_table): Make static.
2982         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2983         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2984         * config/mips/mips.c (mips_attribute_table): Likewise.
2985
2986         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2987         $(SYSTEM_H).
2988         (cc1-checksum.o): Likewise.
2989
2990 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
2991
2992         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2993
2994 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
2995
2996         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2997         insn if it is changing sp.  Use gen_add3_insn instead of
2998         conditionally gen_addsi3 and gen_adddi3.
2999         (offset_below_red_zone_p): New static inline function.
3000         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
3001         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
3002         * config/rs6000/ppc-asm.h: Include auto-host.h.
3003         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
3004         CFI_RESTORE): Define.
3005         * config/rs6000/crtresxgpr.asm: Add unwind info.
3006         * config/rs6000/crtresxfpr.asm: Likewise.
3007         * config/rs6000/crtresgpr.asm: Likewise.
3008         * config/rs6000/crtresfpr.asm: Likewise.
3009         * config/rs6000/crtsavgpr.asm: Likewise.
3010         * config/rs6000/crtsavfpr.asm: Likewise.
3011
3012         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
3013         argument of DWARF2_FRAME_REG_OUT macros.
3014
3015 2009-06-03  Julian Brown  <julian@codesourcery.com>
3016
3017         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
3018         words or less (including TImode) in core registers.
3019
3020 2009-06-03  Richard Guenther  <rguenther@suse.de>
3021
3022         PR middle-end/40328
3023         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
3024
3025 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
3026
3027         * statistics.c (statistics_counter_event): Do not record event 
3028         in pass dump if its number == -1.
3029         (curr_statistics_hash): Add assert that we never get passes 
3030         with static number == -1.
3031
3032 2009-06-03  Richard Guenther  <rguenther@suse.de>
3033             Andrey Belevantsev  <abel@ispras.ru>
3034
3035         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
3036         non-BLKmode arrays addressable.
3037
3038 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
3039
3040         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
3041         * config/m68k/m68k.h: ... here.
3042         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
3043         m68k and fido.
3044
3045 2009-06-03  Martin Jambor  <mjambor@suse.cz>
3046
3047         PR tree-optimization/40323
3048         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
3049         assignment.
3050
3051 2009-06-03  Richard Guenther  <rguenther@suse.de>
3052
3053         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3054         consistently.
3055
3056 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
3057
3058         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
3059         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
3060         JUMP_TABLE_DATA_P where applicable.
3061         * config/sh/sh.c: Ditto.
3062         * config/sh/sh.h: Ditto.
3063         * config/sh/sh.md: Ditto.
3064         * config/sh/symbian.c: Ditto.
3065
3066 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
3067
3068         * config/i386/driver-i386.c (describe_cache): Optimize
3069         concatenation of strings.  Use snprintf instead of sprintf.
3070         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
3071         target when not compiling with GCC.
3072
3073 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3074
3075         * config/sh/sh.c: Revert last change.
3076         (sh_expand_epilogue): Emit a blockage insn before the frame
3077         pointer adjustment unconditionally.
3078
3079 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3080
3081         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
3082         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
3083         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
3084         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
3085         to COLLECT_GCC_OPTIONS.
3086
3087 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3088
3089         * collect2.c (target_system_root): New variable.
3090         (main): Handle --sysroot=.
3091         (ignore_library): Strip the sysroot from the library path.
3092
3093 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3094
3095         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
3096         (collect2.o): Depend on collect2-aix.h.
3097         (collect2-aix.o): New rule.
3098         * collect2-aix.h: New file.
3099         * collect2-aix.c: Likewise.
3100         * collect2.c: Include collect2-aix.h.  Don't undefine
3101         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
3102         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
3103         Use TARGET_AIX_VERSION instead of _AIX51.
3104         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
3105         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
3106         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
3107         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
3108         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
3109
3110 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3111
3112         * collect2.c (ignore_library): Avoid premature post-increment
3113         and null deference.
3114
3115 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
3116
3117         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
3118         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
3119         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
3120         CROSS_DIRECTORY_STRUCTURE too.
3121         (LINK_LIBG_SPEC): Likewise.
3122         (LIB_SPEC): Add %R to sysroot paths.
3123         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
3124         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
3125         * config/rs6000/aix51.h: As for aix43.h.
3126         * config/rs6000/aix52.h: Likewise.
3127         * config/rs6000/aix53.h: Likewise.
3128         * config/rs6000/aix61.h: Likewise.
3129         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
3130         to the beginning of sysroot paths.
3131
3132 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3133
3134         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
3135         INSN_LISTs that are out of the REG_NOTE range.
3136
3137 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3138
3139         * loop-unroll.c (struct iv_to_split): Add pointer to next.
3140         (struct var_to_expand): Likewise.
3141         (struct opt_info): Add head and tail for linked lists of the above.
3142         (analyze_insn_to_expand_var): Initialize next.
3143         (analyze_iv_to_split_insn): Likewise.
3144         (analyze_insns_in_loop): Create linked lists.
3145         (allocate_basic_variable): Simplify for use without hash table.
3146         (insert_var_expansion_initialization): Likewise, make it type-safer.
3147         (combine_var_copies_in_loop_exit): Likewise.
3148         (apply_opt_in_copies): Walk lists rather than hash tables.
3149         (release_var_copies): Simplified and inlined by hand into...
3150         (free_opt_info): ... this function.
3151
3152 2009-06-02  Richard Guenther  <rguenther@suse.de>
3153
3154         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
3155         for field decls.
3156
3157 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3158
3159         * cfgexpand.c (gimple_expand_cfg): Discard the source location
3160         only for builtins that are not overridden.
3161
3162 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3163
3164         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
3165         label string.
3166
3167 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3168
3169         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
3170
3171 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3172
3173         * combine.c (move_deaths): Compare LUIDs within the same BB only.
3174
3175 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
3176
3177         * common.opt (fdump-unnumbered-links): New.
3178         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
3179         * print-rtl.c (flag_dump_unnumbered_links): New.
3180         (print_rtx): Test it.
3181
3182 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
3183
3184         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
3185         push/pop multiple to 8-byte alignment.
3186
3187 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
3188
3189         * config/i386/i386.c (queued_cfa_restores): New static variable.
3190         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
3191         functions.
3192         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
3193         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
3194         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
3195         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
3196         note unconditionally.
3197         (ix86_emit_restore_regs_using_mov): Likewise.
3198         (ix86_emit_restore_sse_regs_using_mov): Likewise.
3199         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
3200         it through to ix86_emit_restore_reg_using_pop.
3201         (ix86_emit_leave): Add RED_OFFSET argument.  Call
3202         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
3203         instead of adding REG_CFA_OFFSET note unconditionally.
3204         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
3205         the above functions.  Call ix86_add_queued_cfa_restore_notes when
3206         needed.
3207
3208         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
3209         force output of the label even for dwarf2out_do_cfi_asm.
3210         (add_fde_cfi): If -g2 and above and cfi might change CFA,
3211         force creation of CFI label and chain DW_CFA_set_loc jumping to it
3212         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
3213         caller.
3214         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
3215         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
3216         dwarf2out_cfi_label callers.
3217         * tree.h (dwarf2out_cfi_label): Adjust prototype.
3218         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
3219         Adjust dwarf2out_cfi_label callers.
3220         * config/vax/vax.c (vax_output_function_prologue): Likewise.
3221
3222         * config/i386/i386.h (struct machine_cfa_state,
3223         struct machine_function): Guard with ifndef USED_FOR_TARGET
3224         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
3225
3226         PR other/40024
3227         * emutls.c (__emutls_get_address): Change arr->size to mean number
3228         of allocated arr->data entries instead of # of slots + 1.
3229
3230         PR middle-end/40316
3231         * recog.c (peep2_reinit_state): New function.
3232         (peephole2_init_state): Use it at the end of a basic block and also
3233         when seeing a RTX_FRAME_RELATED_P insn.
3234
3235 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
3236
3237         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
3238         fixuns_truncrfdi2): New.
3239         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
3240         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
3241         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
3242         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
3243         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
3244         *recip_approx): Remove.
3245         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
3246         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
3247         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
3248         move to div.md.
3249         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
3250         setf_exp_rf): New.
3251
3252 2009-06-01  Ian Lance Taylor  <iant@google.com>
3253
3254         * attribs.c (register_attribute): Use CONST_CAST.
3255         * collect2.c (main): Use CONST_CAST2.
3256         (scan_prog_file): Likewise.
3257         * gcc.c (process_command, main): Likewise.
3258         * toplev.c (toplev_main): Likewise.
3259
3260         * c-typeck.c (handle_warn_cast_qual): New static function,
3261         partially broken out of build_c_cast.
3262         (build_c_cast): Call handle_warn_cast_qual.
3263         * doc/invoke.texi (Warning Options): Document new effect of
3264         -Wcast-qual.
3265
3266 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
3267
3268         * diagnostic.c (diagnostic_build_prefix): Always print columns.
3269         (diagnostic_report_current_module): Print columns.
3270         * common.opt (flag_show_column): Enable by default.
3271
3272 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
3273
3274         * alias.c (find_base_term): Check for NULL term before returning.
3275
3276 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3277
3278         Revert due to PR40320:
3279         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3280         * calls.c (emit_library_call_value_1): Don't force_operand for move
3281         and push insns.
3282
3283 2009-06-01  Olivier Hainque  <hainque@adacore.com>
3284             Eric Botcazou  <ebotcazou@adacore.com>
3285
3286         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
3287         to be processed as a bitfield for constructor output purposes.
3288         * output.h (initializer_constant_valid_for_bitfield_p): Declare
3289         new function.
3290         * varasm.c (oc_local_state): New type, output_constructor
3291         local state to support communication with helpers.
3292         (oc_outer_state): New type, output_constructor outer state of
3293         relevance in recursive calls.
3294         (output_constructor_array_range): New output_constructor helper,
3295         extracted code for an array range element.
3296         (output_constructor_regular_field): New output_constructor helper,
3297         extracted code for an element that is not a bitfield.
3298         (output_constructor_bitfield): New output_constructor helper,
3299         extracted code for a bitfield element.  Accept an OUTER state
3300         argument for recursive processing.  Recurse on record or array
3301         CONSTRUCTOR values, possibly past noop conversions.
3302         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
3303         VALUE is a valid constant-valued expression for use in a static
3304         bit-field initializer.
3305         (output_constructor): Rework to use helpers.  Accept and honor an
3306         OUTER state argument for recursive calls.  Return total size.  Be
3307         prepared for nested constructors initializing bitfields.
3308         (output_constant): Feed OUTER in calls to output_constructor.
3309
3310 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3311
3312         * calls.c (emit_library_call_value_1): Don't force_operand for move
3313         and push insns.
3314
3315 2009-06-01  Nick Clifton  <nickc@redhat.com>
3316
3317         * doc/invoke.texi (IA-64 Options): Fix typo.
3318
3319 2009-06-01  Ira Rosen  <irar@il.ibm.com>
3320
3321         PR tree-optimization/39129
3322         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
3323         printed message.
3324         (vect_do_peeling_for_loop_bound): Use 
3325         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3326         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3327         (vect_loop_versioning): Likewise.
3328         (vect_create_cond_for_alias_checks): Fix indentation.
3329         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
3330         macros.
3331         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
3332         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
3333         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
3334         "control flow in loop".
3335         (vect_estimate_min_profitable_iters): Use 
3336         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
3337         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
3338         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
3339         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
3340         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
3341         statement belongs to a group of strided accesses with the exact code 
3342         check.
3343         (vectorizable_load): Likewise.
3344         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
3345         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3346
3347 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
3348
3349         * config/freebsd-stdint.h: New file.
3350         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
3351         Add freebsd-stdint.h to tm_file.
3352
3353 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
3354
3355         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
3356         (thumb2_extendhidi2): Likewise.
3357
3358 2009-05-31  Ian Lance Taylor  <iant@google.com>
3359
3360         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
3361
3362 2009-05-31  Ian Lance Taylor  <iant@google.com>
3363
3364         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
3365         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
3366         (ipa-reference.o): Depend upon gt-ipa-reference.h.
3367
3368 2009-05-31  Jason Merrill  <jason@redhat.com>
3369
3370         * tree-pretty-print.c (print_call_name): Take the callee, not the
3371         call itself.  Make non-static.  Use dump_function_name for functions.
3372         (dump_generic_node): Adjust.
3373         * diagnostic.h: Declare print_call_name.
3374         * gimple-pretty-print.c (dump_gimple_call): Use it.
3375
3376 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3377
3378         * config/sh/sh.md (ashldi3_std): New define_expand.
3379         (ashldi3): Use it.
3380
3381 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3382
3383         PR target/40313
3384         * config/sh/sh.c: Include debug.h.
3385         (sh_expand_epilogue): Emit a blockage insn before the frame
3386         pointer adjustment also when dwarf2out_do_frame returns true.
3387
3388 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
3389
3390         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3391         (thumb2_extendqidi2): New pattern.
3392
3393 2009-05-31  Ira Rosen  <irar@il.ibm.com>
3394
3395         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3396         mark phis for renaming.
3397         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3398         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3399         Call mark_sym_for_renaming.
3400         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
3401         * tree-vect-loop.c (vect_transform_loop): Remove
3402         vect_memsyms_to_rename initialization and a call to
3403         mark_set_for_renaming.
3404
3405 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
3406
3407         PR middle-end/40304
3408         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3409         frame related even if !set_cfa && style < 0.
3410
3411 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
3412
3413         * config/i386/mingw-tls.c: New file.
3414         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3415         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3416         defining _WIN32 but not __CYGWIN__.
3417
3418 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3419
3420         * configure.ac: Add MPC support.
3421         
3422         * config.in, configure: Regenerate.     
3423
3424 2009-05-29  Richard Henderson  <rth@redhat.com>
3425
3426         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3427         NOTE_INSN_BASIC_BLOCK.
3428         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3429         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3430         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3431         to be deleted.
3432         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3433         add in_use field.
3434         (add_cfi): Disable check redefining cfa away from drap.
3435         (lookup_cfa_1): Add remember argument; handle remember/restore.
3436         (lookup_cfa): Pass remember argument.
3437         (cfa_remember): New.
3438         (compute_barrier_args_size_1): Remove sibcall check.
3439         (dwarf2out_frame_debug_def_cfa): New.
3440         (dwarf2out_frame_debug_adjust_cfa): New.
3441         (dwarf2out_frame_debug_cfa_offset): New.
3442         (dwarf2out_frame_debug_cfa_register): New.
3443         (dwarf2out_frame_debug_cfa_restore): New.
3444         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3445         (dwarf2out_begin_epilogue): New.
3446         (dwarf2out_frame_debug_restore_state): New.
3447         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3448         DW_CFA_restore_state.
3449         (output_cfi_directive): Likewise.
3450         (convert_cfa_to_fb_loc_list): Likewise.
3451         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3452         * dwarf2out.h: Update.
3453         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3454         (copy_insn_1): Early out for null.
3455         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3456         and dwarf2out_frame_debug_restore_state.
3457         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3458         (prologue_insn_hash, epilogue_insn_hash): New.
3459         (free_after_compilation): Adjust freeing accordingly.
3460         (record_insns): Create hash table if needed; push insns into
3461         hash instead of array.
3462         (maybe_copy_epilogue_insn): New.
3463         (contains): Search hash table instead of array.
3464         (sibcall_epilogue_contains): Remove.
3465         (thread_prologue_and_epilogue_insns): Split eh_return insns
3466         and mark them as epilogues.
3467         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3468         scanning in terms of basic blocks.
3469         * insn-notes.def (CFA_RESTORE_STATE): New.
3470         * jump.c (returnjump_p_1): Accept EH_RETURN.
3471         (eh_returnjump_p_1, eh_returnjump_p): New.
3472         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3473         CFA_REGISTER, CFA_RESTORE): New.
3474         * rtl.def (EH_RETURN): New.
3475         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3476
3477         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3478         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3479
3480         * config/i386/i386.c (gen_push): Update cfa state.
3481         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
3482         add a CFA_ADJUST_CFA note.
3483         (ix86_dwarf_handle_frame_unspec): Remove.
3484         (ix86_expand_prologue): Update cfa state.
3485         (ix86_emit_restore_reg_using_pop): New.
3486         (ix86_emit_restore_regs_using_pop): New.
3487         (ix86_emit_leave): New.
3488         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3489         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3490         * config/i386/i386.h (struct machine_cfa_state): New.
3491         (ix86_cfa_state): New.
3492         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3493         (eh_return_internal): Merge from eh_return_<mode>,
3494         use eh_return rtx, split w/ epilogue.
3495
3496 2009-05-29  Ian Lance Taylor  <iant@google.com>
3497
3498         * builtins.c (validate_gimple_arglist): Don't use va_arg with
3499         enum type.
3500         * calls.c (emit_library_call_value_1): Likewise.
3501
3502         * c-typeck.c (c_build_va_arg): New function.
3503         * c-tree.h (c_build_va_arg): Declare.
3504         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3505         instead of build_va_arg.
3506
3507 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3508
3509         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3510         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3511         (ptr_difference_cost): Use affine combinations to compute it.
3512         (difference_cost): Likewise.
3513         (get_computation_cost_at): Compute more accurate cost for addresses
3514         if the ratio is a multiplier allowed in addresses.
3515         For non-addresses, consider that an additional offset or symbol is
3516         added only once.
3517
3518 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3519
3520         * config/i386/i386.c (ix86_decompose_address): Avoid useless
3521         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
3522
3523         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3524         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3525         (prefix_rex): For UNIT_MMX don't imply the prefix by default
3526         if MODE_DI.
3527         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3528         to 1 for TYPE_SSE{IADD1,CVT1}.
3529         (prefix_vex_imm8): Removed.
3530         (length_vex): Only pass 1 as second argument to
3531         ix86_attr_length_vex_default if prefix_extra is 0.
3532         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3533         (length): For prefix vex computation use length_immediate
3534         attribute instead of prefix_vex_imm8.
3535         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3536         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3537         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3538         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3539         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3540         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3541         a space in between the operands.
3542         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
3543         if one operand is 0xff and the other one si, di, bp or sp.
3544         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3545         other one si, di, bp or sp.
3546         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3547         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3548         type and mode attributes.
3549         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3550         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3551         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3552         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3553         prefix_data16 attribute iff MODE_DF.
3554         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3555         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3556         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3557         constm128_operand in length_immediate computation.
3558         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
3559         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3560         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3561         length_immediate attribute to 1.
3562         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3563         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3564         for certain alternatives.
3565         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3566         prefix_data16 attribute if MODE_V1DF.
3567         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3568         length_immediate to 1.
3569         (set_got_rex64, set_rip_rex64): Remove length attribute, set
3570         length_address to 4, set mode attribute to MODE_DI.
3571         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
3572         (fxam<mode>2_i387): Set length attribute to 4.
3573         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3574         *prefetch_3dnow_rex): Override length_address attribute.
3575         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3576         attributes.
3577         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3578         (constm128_operand): Removed.
3579         * config/i386/i386.c (memory_address_length): For
3580         disp && !index && !base in 64-bit mode account for SIB byte if
3581         print_operand_address can't optimize disp32 into disp32(%rip)
3582         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
3583         for fs: or gs: segment.
3584         (ix86_attr_length_immediate_default): When checking if shortform
3585         is possible, truncate immediate to the length of the non-shortened
3586         immediate.
3587         (ix86_attr_length_address_default): Ignore MEM_P operands
3588         with X constraint.
3589         (ix86_attr_length_vex_default): Only check for DImode on
3590         GENERAL_REG_P operands.
3591         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3592         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3593         (sse_cvttps2pi): Clear prefix_rep attribute.
3594         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3595         attribute.
3596         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3597         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3598         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3599         iff operand 2 is const_int_operand.
3600         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3601         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3602         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
3603         instead of vex.
3604         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3605         prefix_data16.
3606         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3607         prefix_data16 attribute for movlpd and movhpd instructions.
3608         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
3609         length_immediate for shufpd instruction.
3610         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3611         (avx_cmpp<avxmodesuffixf2c><mode>3,
3612         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3613         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3614         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
3615         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
3616         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3617         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3618         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3619         prefix_data16 attribute for the first alternative to 1.
3620         (*avx_loadlps): Override length_immediate for the first alternative.
3621         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3622         attributes for second alternative.
3623         (*vec_concatv2sf_sse4_1): Override length_immediate and
3624         prefix_data16 attributes for second alternative.
3625         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3626         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3627         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3628         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3629         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3630         prefix_data16 and length_immediate to 1.
3631         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3632         to 1.
3633         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
3634         prefix_extra attribute for variants that don't have 0f prefix alone.
3635         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
3636         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3637         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3638         *sse4_1_pextrd): Set length_immediate to 1.
3639         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
3640         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3641         to 1.
3642         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3643         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3644         length_immediate to 1 for second alternative.
3645         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3646         prefix_extra and length_immediate attributes for the first
3647         alternative.
3648         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3649         first alternative.
3650         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
3651         to 1 for the first and third alternative.
3652         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3653         alternative.
3654         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3655         attribute.
3656         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3657         attribute to 0.
3658         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3659         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3660         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3661         *avx_psign<mode>3): Set prefix_extra attribute to 1.
3662         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3663         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3664         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3665         ssse3_psign<mode>3): Override prefix_rex attribute.
3666         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
3667         (ssse3_palignrti): Override length_immediate to 1.
3668         (ssse3_palignrdi): Override length_immediate to 1, override
3669         prefix_rex attribute.
3670         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
3671         (sse4a_extrqi): Override length_immediate to 2.
3672         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
3673         (sse4a_insertq): Override prefix_data16 to 0.
3674         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3675         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3676         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3677         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3678         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3679         and length_immediate to 1.
3680         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3681         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3682         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3683         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3684         and length_immediate to 1.
3685         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3686         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3687         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3688         avx_ptest256): Override prefix_extra to 1.
3689         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3690         Override prefix_data16 and length_immediate to 1.
3691         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3692         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3693         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3694         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3695         prefix_data16 to 0 and prefix_extra to 2.
3696         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3697         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3698         attribute.
3699         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3700         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3701         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3702         and prefix_extra to 2.
3703         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3704         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3705         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3706         avx_vpermilvar<mode>3,
3707         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3708         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3709         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3710         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3711         Override prefix_extra to 1.
3712         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3713         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3714         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3715         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3716         prefix_extra and length_immediate to 1.
3717         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3718         modrm to 0.
3719         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3720         to 1 for the first alternative.
3721         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3722         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3723         cases.
3724         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3725         *movv2sf_internal_avx, *movv2sf_internal): Override
3726         prefix_rep attribute for certain alternatives.
3727         (*mov<mode>_internal): Override prefix_rep or prefix_data16
3728         attributes for certain alternatives.
3729         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3730         attributes for certain alternatives.
3731         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3732         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3733         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3734         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3735         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3736         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3737         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3738         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3739         length_immediate to 1 if operand 2 is const_int_operand.
3740         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
3741         *vec_extractv2si_1): Set length_immediate attribute to 1.
3742         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3743         using old 3DNOW insn rather than SSE/3DNOW_A.
3744         (mmx_emms, mmx_femms): Clear modrm attribute.
3745
3746 2009-05-29  Martin Jambor  <mjambor@suse.cz>
3747
3748         * tree-sra.c:  New implementation of SRA.
3749
3750         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3751         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3752         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3753         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3754         (SRA_MAX_STRUCTURE_COUNT): Removed.
3755         (SRA_FIELD_STRUCTURE_RATIO): Removed.
3756         * doc/invoke.texi (sra-max-structure-size): Removed.
3757         (sra-field-structure-ratio): Removed.
3758
3759 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3760
3761         PR middle-end/40291
3762         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3763         before expansion.
3764
3765 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
3766
3767         PR rtl-optimization/40101
3768         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3769         seqno.  Adjust comment.
3770         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
3771         inserting bookkeeping before a jump, the jump is not scheduled.
3772         When no positive seqno found, provide a value.  Add comment.
3773
3774 2009-05-29  Richard Guenther  <rguenther@suse.de>
3775
3776         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3777         short-cutting on the first component.
3778
3779 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3780
3781         PR middle-end/39958
3782         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3783         for trees other than decls/types.
3784
3785 2009-05-29  Richard Guenther  <rguenther@suse.de>
3786
3787         * tree-ssa-operands.c (get_expr_operands): Do not handle
3788         INDIRECT_REFs in the handled-component case.  Remove
3789         unused get_ref_base_and_extent case.
3790         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3791         tree_low_cst and host_integerp where possible.
3792         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3793         codes for equivalence.
3794         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3795
3796 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
3797
3798         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3799         to tmake_file for i[34567]86-*-cygwin*. 
3800
3801 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3802
3803         PR target/40017
3804         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3805         (altivec_categorize_keyword, init_vector_keywords,
3806         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3807         similar to bool.
3808
3809 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
3810
3811         * tree.c (handle_dll_attribute): Check if node is
3812         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3813
3814 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
3815
3816         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3817         component.
3818         (thumb2_zero_extendqidi2): Likewise.
3819
3820 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3821
3822         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3823         instead of gen_movrt.
3824         * config/sh/sh.md (movrt): Remove.
3825
3826 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
3827
3828         * doc/invoke.texi (IA-64 Options):
3829         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
3830         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3831         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3832         -msched-prefer-non-control-spec-insns,
3833         -msched-stop-bits-after-every-cycle,
3834         -msched-count-spec-in-critical-path,
3835         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
3836         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
3837         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3838         and -msched-spec-verbose.
3839
3840 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
3841
3842         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
3843         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3844         error if used.
3845         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3846
3847 2009-05-28  Richard Guenther  <rguenther@suse.de>
3848
3849         * tree-ssa-alias.c (ao_ref_init): New function.
3850         (ao_ref_base): Likewise.
3851         (ao_ref_base_alias_set): Likewise.
3852         (ao_ref_alias_set): Likewise.
3853         (refs_may_alias_p_1): Change signature.
3854         (refs_may_alias_p): Adjust.
3855         (refs_anti_dependent_p): Likewise.
3856         (refs_output_dependent_p): Likewise.
3857         (call_may_clobber_ref_p_1): Change signature.
3858         (call_may_clobber_ref_p): Adjust.
3859         (stmt_may_clobber_ref_p_1): New function split out from ...
3860         (stmt_may_clobber_ref_p): ... here.
3861         (maybe_skip_until): Adjust signature.
3862         (get_continuation_for_phi): Likewise.
3863         (walk_non_aliased_vuses): Likewise.
3864         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3865         (ao_ref_init): Declare.
3866         (ao_ref_base): Likewise.
3867         (ao_ref_alias_set): Likewise.
3868         (stmt_may_clobber_ref_p_1): Likewise.
3869         (walk_non_aliased_vuses): Adjust.
3870         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3871         (get_ref_from_reference_ops): remove.
3872         (vn_reference_lookup_2): Adjust signature.
3873         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
3874         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3875         (vn_reference_lookup): Adjust.
3876         (vn_reference_insert): Likewise.
3877         (vn_reference_insert_pieces): Adjust signature.
3878         (visit_reference_op_call): Adjust.
3879         * tree-ssa-pre.c (get_expr_type): Simplify.
3880         (phi_translate_1): Adjust.
3881         (compute_avail): Likewise.
3882         (translate_vuse_through_block): Do not re-build trees.
3883         (value_dies_in_block_x): Likewise.
3884         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3885         fields.
3886         (vn_reference_lookup_pieces): Adjust declaration.
3887         (vn_reference_insert_pieces): Likewise.
3888
3889 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
3890
3891         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3892         with checking disabled.
3893
3894 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
3895
3896         PR target/37216
3897
3898         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
3899         macro definition for support of three-operand format aligned
3900         .comm directive in assembler on cygwin/pe/mingw target OS.
3901         * configure:  Regenerate.
3902         * config.h:  Regenerate.
3903
3904         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
3905         aligned form of .comm directive if -mpe-aligned-commons is in effect.
3906         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
3907
3908         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
3909         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
3910
3911 2009-05-28  Ira Rosen  <irar@il.ibm.com>
3912
3913         PR tree-optimization/40254
3914         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3915         in analysis of basic blocks.
3916
3917 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
3918
3919         PR middle-end/33699
3920         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
3921         * target-def.h (TARGET_CONST_ANCHOR): New macro.
3922         (TARGET_INITIALIZER): Use it.
3923         * cse.c (CHEAPER): Move it up to the other macros.
3924         (insert): Rename this ...
3925         (insert_with_costs): ... to this.  Add cost parameters.  Update
3926         function comment.
3927         (insert): New function.  Call insert_with_costs.
3928         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3929         find_reg_offset_for_const, try_const_anchors): New functions.
3930         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
3931         when using a const-anchor.  Call insert_const_anchors.
3932         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
3933         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3934
3935 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3936
3937         * tree-inline.c (remap_decls): Enable nonlocalized variables
3938         when not optimizing.
3939
3940 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3941
3942         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3943         Simplify other tests involving optimize.
3944
3945 2009-05-27  Tom Tromey  <tromey@redhat.com>
3946
3947         * unwind-dw2.c (_Unwind_DebugHook): New function.
3948         (uw_install_context): Call _Unwind_DebugHook.
3949
3950 2009-05-27  Tom Tromey  <tromey@redhat.com>
3951
3952         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3953
3954 2009-05-27  Ian Lance Taylor  <iant@google.com>
3955
3956         * Makefile.in (LINKER, LINKER_FLAGS): Define.
3957         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3958         (ALL_LINKERFLAGS): Define.
3959         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3960         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3961         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3962         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3963         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3964         $(LINKER_FOR_BUILD).
3965         (build/gcov-iov$(build_exeext)): Likewise.
3966
3967 2009-05-27  Julian Brown  <julian@codesourcery.com>
3968
3969         * gcse.c (target.h): Include.
3970         (can_assign_to_reg_without_clobbers_p): Check that the target allows
3971         copy of argument to a pseudo register.
3972
3973 2009-05-27  Diego Novillo  <dnovillo@google.com>
3974
3975         * tree-ssa-live.c (dump_scope_block): Document arguments.
3976         (dump_scope_blocks): Document.
3977         (debug_scope_blocks): New.
3978         * tree-flow.h (debug_scope_blocks): Declare.
3979
3980 2009-05-21  Denis Chertykov  <denisc@overta.ru>
3981
3982         * doc/contrib.texi (Contributors): Add myself to the list.
3983
3984 2009-05-27  Olivier Hainque  <hainque@adacore.com>
3985
3986         * expr.c (target_align): New function.  Alignment the TARGET of an
3987         assignment may be assume to have.
3988         (highest_pow2_factor_for_target): Use it instead of relying on
3989         immediate tree attributes of TARGET, not necessarily honored when
3990         intermediate bitfields are involved.
3991         
3992 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3993
3994         PR target/40266
3995         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3996         AVX, SSE4, AES, PCLMUL and POPCNT.
3997
3998 2009-05-27  Diego Novillo  <dnovillo@google.com>
3999
4000         * tree-pretty-print.c (dump_location): New.
4001         (dump_generic_node): Call it.
4002         Factor code to handle BLOCK nodes ...
4003         (dump_block_node): ... here.
4004
4005 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
4006
4007         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
4008         with it.
4009         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
4010         included.
4011         * gcc-plugin.h: Include config.h and system.h.
4012         (IN_GCC): Define if not defined.
4013
4014 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
4015
4016         PR middle-end/40249
4017         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
4018         with -fno-inline.
4019
4020 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
4021
4022         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
4023         applicable.
4024         * config/m32r/m32r.h: Ditto.
4025         * config/m32r/m32r.md: Ditto.
4026         * config/m32r/predicates.md: Ditto.
4027
4028 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
4029
4030         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
4031
4032 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
4033
4034         * doc/plugins.texi
4035         (Loading plugins): typo.
4036         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
4037         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
4038         (Interacting with the GCC Garbage Collector): Added new section.
4039         (Giving information about a plugin): Added new section for
4040         PLUGIN_INFO.
4041         * ggc.h (ggc_register_root_tab): Added declaration.
4042         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
4043         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
4044         (register_callback): Improved comment in declaration.
4045         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
4046         (extra_root_vec) Added static variable for dynamic roots registration.
4047         (ggc_register_root_tab) Added new routine.
4048         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
4049         PLUGIN_GGC_MARKING event.
4050         * ggc-zone.c: Include plugin.h.
4051         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
4052         * ggc-page.c: Include plugin.h.
4053         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
4054         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
4055         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
4056         (register_callback): check lack of callbacks for
4057         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
4058         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
4059         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
4060         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
4061         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
4062         dependency on plugin.h.
4063         (plugin.o): Added dependency on ggc.h...
4064
4065 2009-05-26  Richard Guenther  <rguenther@suse.de>
4066
4067         PR middle-end/40248
4068         Revert
4069         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4070         with mismatched comparison modes.
4071
4072         * expr.c (expand_expr_real_1): Expand the operand of a
4073         VIEW_CONVERT_EXPR in its natural mode.
4074
4075 2009-05-26  Ian Lance Taylor  <iant@google.com>
4076
4077         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
4078         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
4079         (ALL_COMPILERFLAGS): Define.
4080         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
4081         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
4082         (collect2$(exeext), collect2.o): Likewise.
4083         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
4084         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
4085         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
4086         (libbackend.o, intl.o, cppdefault.o): Likewise.
4087         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
4088         (build/%.o): Use $(COMPILER_FOR_BUILD).
4089         (build/gen%$(build_exeext)): Likewise.
4090         (build/gcov-iov$(build_exeext)): LIkewise.
4091         * config/t-darwin (darwin.o): Use $(COMPILER).
4092         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
4093         * config/t-sol2 (sol2-c.o): Likewise.
4094         (sol2.o): Likewise.
4095         * config/t-vxworks (vxworks.o): Likewise.
4096         * config/x-darwin (host-darwin.o): Likewise.
4097         * config/x-hpux (host-hpux.o): Likewise.
4098         * config/x-linux (host-linux.o): Likewise.
4099         * config/x-solaris (host-solaris.o): Likewise.
4100         * config/alpha/x-alpha (driver-alpha.o): Likewise.
4101         * config/arm/t-arm (arm-c.o): Likewise.
4102         * config/arm/t-pe (pe.o): Likewise.
4103         * config/arm/t-wince-pe (pe.o): Likewise.
4104         * config/i386/t-cygming (winnt.o): Likewise.
4105         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
4106         * config/i386/t-cygwin (cygwin1.o): Likewise.
4107         (cygwin2.o): Likewise.
4108         * config/i386/t-i386 (i386-c.o): Likewise.
4109         * config/i386/t-interix (winnt.o): Likewise.
4110         * config/i386/t-netware (netware.o): Likewise.
4111         * config/i386/t-nwld (nwld.o): Likewise.
4112         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
4113         * config/i386/x-i386 (driver-i386.o): Likewise.
4114         * config/i386/x-cygwin (host-cygwin.o): Likewise.
4115         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
4116         * config/ia64/t-ia64 (ia64-c.o): Likewise.
4117         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
4118         * config/mips/x-native (driver-native.o): Likewise.
4119         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
4120         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
4121         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
4122         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
4123         * config/score/t-score-elf (score7.o): Likewise.
4124         (score3.o): Likewise.
4125         * config/sh/t-sh (sh-c.o): Likewise.
4126         * config/sh/t-symbian (sh-c.o): Likewise.
4127         (symbian.o): Likewise.
4128         * config/spu/t-spu-elf (spu-c.o): Likewise.
4129         * config/v850/t-v850 (v850-c.o): Likewise.
4130         * config/v850/t-v850e (v850-c.o): Likewise.
4131
4132 2009-05-26  Richard Guenther  <rguenther@suse.de>
4133
4134         PR tree-optimization/40122
4135         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
4136         VECTOR_CSTs if possible.
4137         (fold_gimple_assign): Likewise.
4138
4139 2009-05-26  Richard Guenther  <rguenther@suse.de>
4140
4141         PR middle-end/40252
4142         * fold-const.c (fold_binary): Use the correct types for building
4143         rotates.
4144
4145 2009-05-26  Richard Guenther  <rguenther@suse.de>
4146
4147         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
4148         redundant calls to merge_alias_info.
4149         (bump_vector_ptr): Likewise.
4150         * tree-ssa-copy.c (merge_alias_info): Remove.
4151         (replace_exp_1): Remove call to merge_alias_info.
4152         (propagate_tree_value): Likewise.
4153         (fini_copy_prop): Propagate points-to info.
4154         * tree-flow.h (merge_alias_info): Remove.
4155
4156 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
4157
4158         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
4159
4160 2009-05-25  Jan Hubicka  <jh@suse.cz>
4161
4162         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4163         * cgraph.h (struct inline_summary): New filed self_wize,
4164         size_inlining_benefit, self_time and time_inlining_benefit.
4165         (struct cgraph_global_info): Replace insns by time ans size fields.
4166         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4167         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4168         (ipcp_update_callgraph): Do not touch function bodies.
4169         * ipa-inline.c: Include except.h
4170         (MAX_TIME): New constant.
4171         (overall_insns): Remove.
4172         (leaf_node_p): New.
4173         (overall_size, max_benefit): New static variables.
4174         (cgraph_estimate_time_after_inlining): New function.
4175         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4176         (cgraph_clone_inlined_nodes): Update size.
4177         (cgraph_mark_inline_edge): Update size.
4178         (cgraph_estimate_growth): Use size info.
4179         (cgraph_check_inline_limits): Check size.
4180         (cgraph_default_inline_p): Likewise.
4181         (cgraph_edge_badness): Compute badness based on benefit and size cost.
4182         (cgraph_decide_recursive_inlining): Check size.
4183         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4184         and times.
4185         (cgraph_decide_inlining): Likewise.
4186         (cgraph_decide_inlining_incrementally): Likewise; honor
4187         PARAM_EARLY_INLINING_INSNS.
4188         (likely_eliminated_by_inlining_p): New predicate.
4189         (estimate_function_body_sizes): New function.
4190         (compute_inline_parameters): Use it.
4191         * except.c (must_not_throw_labels): New function.
4192         * except.h (must_not_throw_labels): Declare.
4193         * tree-inline.c (init_inline_once): Kill inlining_weigths
4194         * tree-ssa-structalias.c: Avoid uninitialized warning.
4195         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4196         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4197         (PARAM_INLINE_CALL_COST): Remove.
4198         (PARAM_EARLY_INLINING_INSNS): New.
4199
4200 2009-05-25  Richard Guenther  <rguenther@suse.de>
4201
4202         PR tree-optimization/36327
4203         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
4204         callback for reference translation or lookup at the point of may-defs.
4205         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
4206         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
4207         for union COMPONENT_REFs.
4208         (vn_reference_lookup_3): New callback.  Lookup from memset
4209         and CONSTRUCTOR assignment, translate through struct copies.
4210         (vn_reference_lookup_pieces): Make sure to not free the
4211         passed operands array.  Adjust walk_non_aliased_vuses call.
4212         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
4213         make sure we do not leak memory.
4214
4215 2009-05-25  Richard Guenther  <rguenther@suse.de>
4216
4217         * tree-ssa-alias.h (dump_points_to_solution): Declare.
4218         * tree-inline.c (expand_call_inline): Reset the escaped and
4219         callused solutions.
4220         * tree-ssa-structalias.c (pass_build_ealias): New.
4221         * tree-pass.h (pass_build_ealias): Declare.
4222         * passes.c (init_optimization_passes): Add PTA during 
4223         early optimizations.
4224         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
4225         and CALLUSED solutions.
4226         (dump_points_to_solution): New function, split out from ...
4227         (dump_points_to_info_for): ... here.
4228         * tree-parloops.c (parallelize_loops): Reset the escaped and
4229         callused solutions.
4230
4231 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4232
4233         PR bootstrap/40027
4234         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
4235         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
4236
4237 2009-05-25  Ira Rosen  <irar@il.ibm.com>
4238
4239         PR tree-optimization/40238
4240         * tree-vect-stmts.c (vect_init_vector): Insert initialization
4241         statements after basic block's labels.
4242         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
4243         to free the allocated memory.
4244
4245 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4246
4247         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
4248         return address with a USE.
4249
4250 2009-05-24  Richard Guenther  <rguenther@suse.de>
4251
4252         PR middle-end/40233
4253         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
4254         array type from the main variant of the inner type.
4255
4256 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4257
4258         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
4259         definition to bool (from int) to un-break build.
4260         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
4261
4262 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
4263
4264         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
4265         discard_stmt_changes): Delete.
4266         * tree-ssa-operands.c (scb_stack): Delete.
4267         (init_ssa_operands): Do not initialize it.
4268         (fini_ssa_operands): Do not free it.
4269         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
4270
4271         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
4272         update_stmt, remove the others.  Fix comments.
4273         * tree-dfa.c (optimize_stack_restore): Likewise.
4274         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
4275         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
4276         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
4277         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
4278         Likewise.
4279         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
4280         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
4281         (dom_opt_finalize_block): Likewise, adjusting access to
4282         stmts_to_rescan.
4283         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
4284         (stmts_to_rescan): Change item type to gimple.
4285         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
4286
4287 2009-05-24  Ira Rosen  <irar@il.ibm.com>
4288
4289         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
4290         * tree-pass.h (pass_slp_vectorize): New pass.
4291         * params.h (SLP_MAX_INSNS_IN_BB): Define.
4292         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
4293         * tree-vectorizer.c (timevar.h): Include.
4294         (user_vect_verbosity_level): Declare.
4295         (vect_location): Fix comment.
4296         (vect_set_verbosity_level): Update user_vect_verbosity_level
4297         instead of vect_verbosity_level.
4298         (vect_set_dump_settings): Add an argument. Ignore user defined
4299         verbosity if dump flags require higher level of verbosity. Print to
4300         stderr only for loop vectorization.
4301         (vectorize_loops): Update call to vect_set_dump_settings.
4302         (execute_vect_slp): New function.
4303         (gate_vect_slp): Likewise.
4304         (struct gimple_opt_pass pass_slp_vectorize): New.
4305         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
4306         access its members.
4307         (vec_info_for_bb): New function.
4308         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
4309         (VECTORIZATION_ENABLED): New macro.
4310         (SLP_ENABLED, SLP_DISABLED): Likewise.
4311         (vect_is_simple_use): Add bb_vec_info argument.
4312         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
4313         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
4314         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
4315         vect_schedule_slp, vect_analyze_slp): Likewise.
4316         (vect_analyze_stmt): Add slp_tree argument.
4317         (find_bb_location): Declare.
4318         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
4319         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
4320         (vect_analyze_loop_operations, vect_analyze_loop,
4321         get_initial_def_for_induction, vect_create_epilog_for_reduction,
4322         vect_finalize_reduction, vectorizable_reduction,
4323         vectorizable_live_operation, vect_transform_loop): Likewise.
4324         * tree-data-ref.c (dr_analyze_innermost): Update comment,
4325         skip evolution analysis if analyzing a basic block.
4326         (dr_analyze_indices): Likewise.
4327         (initialize_data_dependence_relation): Skip the test whether the
4328         object is invariant for basic blocks.
4329         (compute_all_dependences): Skip dependence analysis for data
4330         references in basic blocks.
4331         (find_data_references_in_stmt): Don't fail in case of invariant
4332         access in basic block.
4333         (find_data_references_in_bb): New function.
4334         (find_data_references_in_loop): Move code to
4335         find_data_references_in_bb and add a call to it.
4336         (compute_data_dependences_for_bb): New function.
4337         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
4338         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
4339         that STEP is 0.
4340         (vect_analyze_data_ref_dependence): Check for interleaving in case of
4341         unknown dependence in basic block and fail in case of dependence in
4342         basic block.
4343         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
4344         dependence instances from either loop or basic block vectorization
4345         info.
4346         (vect_compute_data_ref_alignment): Check if it is loop vectorization
4347         before calling nested_in_vect_loop_p.
4348         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
4349         dependence instances from either loop or basic block vectorization
4350         info.
4351         (vect_verify_datarefs_alignment): Likewise.
4352         (vect_enhance_data_refs_alignment): Adjust function calls.
4353         (vect_analyze_data_refs_alignment): Likewise.
4354         (vect_analyze_group_access): Fix printing. Skip different checks if
4355         DR_STEP is 0. Keep strided stores either in loop or basic block
4356         vectorization data structure. Fix indentation.
4357         (vect_analyze_data_ref_access): Fix comments, allow zero step in
4358         basic blocks.
4359         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
4360         dependence instances from either loop or basic block vectorization
4361         info.
4362         (vect_analyze_data_refs): Update comment. Call
4363         compute_data_dependences_for_bb to analyze basic blocks.
4364         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
4365         case of loop vectorization. In case of basic block vectorization use
4366         data-ref itself as a base.
4367         (vect_create_data_ref_ptr): In case of basic block vectorization:
4368         don't advance the pointer, add new statements before the current
4369         statement.  Adjust function calls.
4370         (vect_supportable_dr_alignment): Support only aligned accesses in
4371         basic block vectorization.
4372         * common.opt (ftree-slp-vectorize): New flag.
4373         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
4374         (vect_pattern_recog_1): Likewise.
4375         * tree-vect-stmts.c (process_use): Likewise.
4376         (vect_init_vector): Add new statements in the beginning of the basic
4377         block in case of basic block SLP.
4378         (vect_get_vec_def_for_operand): Adjust function calls.
4379         (vect_finish_stmt_generation): Likewise.
4380         (vectorizable_call): Add assert that it is loop vectorization, adjust
4381         function calls.
4382         (vectorizable_conversion, vectorizable_assignment): Likewise.
4383         (vectorizable_operation): In case of basic block SLP, take
4384         vectorization factor from statement's type and skip the relevance
4385         check. Adjust function calls.
4386         (vectorizable_type_demotion): Add assert that it is loop
4387         vectorization, adjust function calls.
4388         (vectorizable_type_promotion): Likewise.
4389         (vectorizable_store): Check for outer loop only in case of loop
4390         vectorization. Adjust function calls. For basic blocks, skip the
4391         relevance check and don't advance pointers.
4392         (vectorizable_load): Likewise.
4393         (vectorizable_condition): Add assert that it is loop vectorization,
4394         adjust function calls.
4395         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
4396         that it is not reduction, get vector type, call only supported
4397         functions, skip loop specific parts.
4398         (vect_transform_stmt): Check for outer loop only in case of loop
4399         vectorization.
4400         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
4401         (vect_is_simple_use): Fix comment, add new argument, fix conditions
4402         for external definition.
4403         * passes.c (pass_slp_vectorize): New pass.
4404         * tree-vect-slp.c (find_bb_location): New function.
4405         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
4406         check for patterns only in loops.
4407         (vect_build_slp_tree): Add argument, adjust function calls, fail in
4408         case of multiple types in basic block SLP.
4409         (vect_mark_slp_stmts_relevant): New function.
4410         (vect_supported_load_permutation_p): Fix comment.
4411         (vect_analyze_slp_instance): Add argument. In case of basic block
4412         SLP, take vectorization factor from statement's type, check that
4413         unrolling factor is 1. Adjust function call. Save SLP instance in
4414         either loop or basic block vectorization structure. Return FALSE,
4415         if SLP failed.
4416         (vect_analyze_slp): Add argument. Get strided stores groups from
4417         either loop or basic block vectorization structure. Return FALSE
4418         if basic block SLP failed.
4419         (new_bb_vec_info): New function.
4420         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
4421         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
4422         (vect_schedule_slp): Add argument. Get SLP instances from either
4423         loop or basic block vectorization structure. Set vectorization factor
4424         to be 1 for basic block SLP.
4425         (vect_slp_transform_bb): New function.
4426         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
4427
4428 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
4429
4430         * final.c (shorten_branches): Do not align labels for jump tables.
4431         (final_scan_insn): Use JUMP_TABLE_DATA_P.
4432
4433 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4434
4435         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
4436         Remove outdated reference to flow.c and fix nits.
4437         * doc/gccint.texi: Tweak RTL description.
4438         * doc/rtl.texi: Likewise.
4439
4440 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
4441
4442         * config/avr/avr.c: Change my email address.
4443         * config/avr/avr.h: Likewise.
4444         * config/avr/avr.md: Likewise.
4445         * config/avr/avr-protos.h: Likewise.
4446         * config/avr/libgcc.S: Likewise.
4447
4448 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4449
4450         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
4451         (spu_split_load, spu_split_store): Change return type to int.
4452         (spu_split_convert): Declare.
4453         * config/spu/predicates.md (spu_mem_operand): Remove.
4454         (spu_mov_operand): Update.
4455         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
4456         * config/spu/spu.c (regno_aligned_for_load): Remove.
4457         (reg_aligned_for_addr, spu_expand_load): Define.
4458         (spu_expand_extv): Reimplement and handle MEM.
4459         (spu_expand_insv): Handle MEM.
4460         (spu_sched_reorder): Handle insn's with length 0.
4461         (spu_legitimate_address_p): Reimplement.
4462         (store_with_one_insn_p): Return TRUE for any mode with size
4463         larger than 16 bytes.
4464         (address_needs_split): Define.
4465         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
4466         operands.
4467         (spu_convert_move): Define.
4468         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
4469         (spu_split_store): Change all MEM's to TImode.
4470         (spu_init_expanders): Preallocate registers that correspond to
4471         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
4472         mark_reg_pointer.
4473         (spu_split_convert): Define.
4474         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
4475         (_move<mode>, _movdi, _movti): Update predicate and condition.
4476         (load, store): Change to define_split.
4477         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
4478         extend<mode>ti2.
4479         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
4480         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
4481         define_insn_and_split of lshr<mode>3.
4482         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
4483         (<v>ashr<mode>3_imm): Define.
4484         (extv, extzv, insv): Allow MEM operands.
4485         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
4486         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
4487         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
4488         (_spu_convert2): Change to define_insn_and_split and remove the
4489         corresponding define_peephole2.
4490         (stack_protect_set, stack_protect_test, stack_protect_test_si):
4491         Change predicates to memory_operand.
4492
4493 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4494
4495         * config/arm/thumb2.md: Add 16-bit multiply instructions.
4496
4497 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4498
4499         PR tree-optimization/40219
4500         * tree.c (iterative_hash_expr): Make sure the builtin function is
4501         a normal builtin function and not a front end or back end builtin
4502         before indexing into the built_in_decls array.
4503
4504 2009-05-22  Richard Guenther  <rguenther@suse.de>
4505
4506         PR middle-end/38964
4507         * alias.c (write_dependence_p): Do not use TBAA for answering
4508         anti-dependence or output-dependence.
4509         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4510         (emit_pointer_definition): Remove.
4511         (emit_alias_warning): Likewise.
4512         (find_what_var_points_to): Remove TBAA pruning code.
4513         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
4514         violations.
4515         (compute_points_to_sets): Remove code computing the set of
4516         dereferenced pointers.
4517         * tree-data-ref.c (dr_may_alias_p): Properly use the split
4518         oracle for querying anti and output dependencies.
4519         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4520         if TBAA may be applied.
4521         (refs_anti_dependent_p): New function.
4522         (refs_output_dependent_p): Likewise.
4523         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4524         (refs_output_dependent_p): Likewise.
4525         * doc/tree-ssa.texi (Memory model): New section.
4526         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4527         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4528         * cfgexpand.c (expand_gimple_basic_block): Do not handle
4529         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4530         * expr.c (expand_expr_real_1): Likewise.
4531         * gimple-low.c (lower_stmt): Likewise.
4532         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4533         (dump_gimple_cdt): Remove.
4534         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4535         (gimple_size): Likewise.
4536         (walk_gimple_op): Likewise.
4537         (is_gimple_stmt): Likewise.
4538         (walk_stmt_load_store_addr_ops): Likewise.
4539         (gimple_build_cdt): Remove.
4540         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4541         * gimple.h (gimple_cdt_new_type): Remove.
4542         (gimple_cdt_new_type_ptr): Likewise.
4543         (gimple_cdt_set_new_type): Likewise.
4544         (gimple_cdt_location): Likewise.
4545         (gimple_cdt_location_ptr): Likewise.
4546         (gimple_cdt_set_location): Likewise.
4547         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4548         * tree-cfg.c (remove_useless_stmts_1): Do not handle
4549         GIMPLE_CHANGE_DYNAMIC_TYPE.
4550         (verify_types_in_gimple_stmt): Likewise.
4551         * tree-inline.c (estimate_num_insns): Likewise.
4552         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4553         (copy_decl_to_var): Likewise.
4554         (copy_result_decl_to_var): Likewise.
4555         * tree-pretty-print.c (dump_generic_node): Do not handle
4556         CHANGE_DYNAMIC_TYPE_EXPR.
4557         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4558         * tree-ssa-operands.c (get_expr_operands): Likewise.
4559         * tree-ssa-structalias.c (struct variable_info): Remove
4560         no_tbaa_pruning member.
4561         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4562         (unify_nodes): Do not copy it.
4563         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4564         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4565         (set_uids_in_ptset): Do not check it.
4566         (find_what_var_points_to): Likewise.
4567         (compute_tbaa_pruning): Remove.
4568         (compute_points_to_sets): Do not call it.
4569         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4570         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4571         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4572         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4573         (DECL_NO_TBAA_P): Likewise.
4574         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4575         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4576         (expand_omp_atomic_pipeline): Do not set it.
4577         * print-tree.c (print_node): Do not dump it.
4578         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4579         redundant check.
4580
4581 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4582
4583         PR target/39856
4584         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4585         for clobber.
4586
4587 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4588
4589         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4590         non-external.
4591
4592 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4593
4594         * Makefile.in (bversion.h, s-bversion): New targets.
4595         (TOPLEV_H): Add bversion.h.
4596         * toplev.h: Include "bversion.h".
4597         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4598         the __format__ attribute only if compiling with the same version
4599         of GCC as the sources (the "build version").
4600
4601 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4602
4603         * c-format.c (handle_format_attribute): Fix comment typo.
4604
4605 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
4606
4607         PR target/37846
4608         * config/ia64/ia64.opt (mfused-madd): New.
4609         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4610         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4611         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4612         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4613         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4614         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4615         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4616         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
4617         instruction if !TARGET_FUSED_MADD.
4618         (fpma, fpms): Remove colon from name.
4619
4620 2009-05-22  Richard Guenther  <rguenther@suse.de>
4621
4622         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4623         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
4624         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4625         TARGET_MEM_REF.
4626         (create_expression_by_pieces): Only convert if necessary.
4627         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4628         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4629
4630 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
4631
4632         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4633         regular pattern from a template and rename it ...
4634         (*extzv_truncsi_exts): ... to this.
4635
4636 2009-05-21  Richard Guenther  <rguenther@suse.de>
4637
4638         * cgraph.h (struct cgraph_node): Remove inline_decl member.
4639         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4640         (cgraph_default_inline_p): Likewise.
4641         (cgraph_decide_inlining_incrementally): Likewise.
4642
4643 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4644             Uros Bizjak  <ubizjak@gmail.com>
4645
4646         * config/i386/cpuid.h (bit_MOVBE): New.
4647
4648         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4649
4650         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4651         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4652         (ix86_handle_option): Handle OPT_mmovbe.
4653         (ix86_target_string): Add -mmovbe.
4654         (pta_flags): Add PTA_MOVBE.
4655         (processor_alias_table): Add PTA_MOVBE to "atom".
4656         (override_options): Handle PTA_MOVBE.
4657
4658         * config/i386/i386.h (TARGET_MOVBE): New.
4659
4660         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4661         (*bswapsi_movbe): New.
4662         (*bswapdi_movbe): Likewise.
4663         (bswapdi2): Renamed to ...
4664         (*bswapdi_1): This.
4665         (bswapdi2): New expander.
4666
4667         * config/i386/i386.opt (mmovbe): New.
4668
4669         * doc/invoke.texi: Document -mmovbe.
4670
4671 2009-05-21  Taras Glek  <tglek@mozilla.com>
4672
4673         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4674         * gcc-plugin.h (plugin_init): Updated signature.
4675         * gcc-plugin.h (plugin_name_args): Moved to this header.
4676         * doc/plugins.texi (plugin_init): Updated documention to reflect
4677         API change.
4678         * doc/plugins.texi (plugin_name_args): Added to documention.
4679
4680 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
4681
4682         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4683         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4684
4685 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
4686
4687         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4688         JUMP_TABLE_DATA_P predicates where applicable.
4689         * config/i386/predicates.md: Ditto.
4690         * config/i386/sse.md: Ditto.
4691
4692 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
4693
4694         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4695         operand2 -128 override length_immediate attribute to 1.
4696         * config/i386/predicates.md (constm128_operand): New predicate.
4697
4698         * config/i386/i386.c (memory_address_length): Handle %r12
4699         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
4700         also check REGNO.
4701         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4702         mode look through optional ZERO_EXTEND and SUBREG.
4703         * config/i386/i386.md (R12_REG): New define_constant.
4704         (prefix_data16): For sse unit set also for MODE_TI insns.
4705         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
4706         insns set if operand 1 is ext_QIreg_operand.
4707         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
4708         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4709         immediate.
4710         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4711         mode from MODE_DI to MODE_SI.
4712         (movdi_1_rex64): Override modrm and length_immediate attributes
4713         only for movabs (TYPE_IMOV, alternative 2).
4714         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4715         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4716         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4717         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4718         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4719         prefix_rex attribute if DImode.
4720         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4721         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4722         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4723         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4724         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4725         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4726         Likewise.  For TYPE_IMOV clear length_immediate attribute.
4727         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4728         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4729         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4730         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4731         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4732         or one operand TYPE_ISHIFT.
4733         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4734         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4735         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4736         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4737         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4738         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4739         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4740         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4741         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4742         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4743         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4744         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4745         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4746         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4747         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4748         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4749         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4750         set mode attribute, don't override length attribute.
4751         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4752         to 1.
4753         (return_internal_long): Set length attribute to 2 instead of 1.
4754         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4755         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4756         prefix_rex attribute.
4757         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4758         New predicates.
4759         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
4760
4761 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4762
4763         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4764
4765 2009-05-20  Ian Lance Taylor  <iant@google.com>
4766
4767         * tree.c (build_tree_list_vec_stat): New function.
4768         (ctor_to_vec): New function.
4769         (build_nt_call_vec): New function.
4770         (build_call_array): Change args to be a const pointer.
4771         (build_call_vec): New function.
4772         * tree.h (build_nt_call_vec): Declare.
4773         (build_tree_list_vec_stat): Declare.
4774         (build_tree_list_vec): Define.
4775         (build_call_array): Update declaration.
4776         (build_call_vec): Declare.
4777         (ctor_to_vec): Declare.
4778         * c-common.c (tree_vector_cache): New static variable.
4779         (make_tree_vector): New function.
4780         (release_tree_vector): New function.
4781         (make_tree_vector_single): New function.
4782         (make_tree_vector_copy): New function.
4783         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4784         (make_tree_vector_single, make_tree_vector_copy): Declare.
4785         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4786         (c_parser_expr_list): Don't manage cache here, instead call
4787         make_tree_vector.
4788         (c_parser_release_expr_list): Remove static function.
4789         (c_parser_vec_to_tree_list): Remove static function.
4790         (c_parser_attributes): Call build_tree_list_vec instead of
4791         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
4792         c_parser_release_expr_list.
4793         (c_parser_postfix_expression_after_primary): Likewise.
4794         (c_parser_objc_keywordexpr): Likewise.
4795
4796 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
4797
4798         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4799         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4800         TARGET_CONVERT_TO_TYPE.
4801         * hooks.c (hook_tree_const_tree_null): Define.
4802         * hooks.h (hook_tree_const_tree_null): Declare.
4803         * target.h (struct gcc_target):  Add invalid_parameter_type,
4804         invalid_return_type, promoted_type, and convert_to_type fields.
4805         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4806         (TARGET_INVALID_RETURN_TYPE): Define.
4807         (TARGET_PROMOTED_TYPE): Define.
4808         (TARGET_CONVERT_TO_TYPE): Define.
4809         (TARGET_INITIALIZER): Update for new fields.
4810         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4811         (grokparms): Check targetm.invalid_parameter_type.
4812         * c-typeck.c (default_conversion): Check targetm.promoted_type.
4813         * c-convert.c (convert): Check targetm.convert_to_type.
4814
4815 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
4816
4817         * config/mips/mips.md (*extenddi_truncate<mode>,
4818         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
4819         defintions.
4820         (*extendhi_truncateqi): New define_insn_and_sptit.
4821
4822 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
4823
4824         PR middle-end/40204
4825         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
4826         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
4827
4828 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4829
4830         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4831         the operand of VIEW_CONVERT_EXPR.
4832
4833 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
4834
4835         * config/i386/driver-i386.c (host_detect_local_cpu): Check
4836         extended family and model for Intel processors.  Support Intel Atom.
4837
4838 2009-05-20  Olivier Hainque  <hainque@adacore.com>
4839
4840         * gstab.h (stab_code_type): Define, to be used instead of the
4841         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
4842         notice.
4843         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4844         occurrences by stab_code_type.
4845         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4846
4847 2009-05-20  Martin Jambor  <mjambor@suse.cz>
4848
4849         * tree-flow.h (insert_edge_copies_seq): Undeclare.
4850         (sra_insert_before): Likewise.
4851         (sra_insert_after): Likewise.
4852         (sra_init_cache): Likewise.
4853         (sra_type_can_be_decomposed_p): Likewise.
4854         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4855         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4856         (sra_insert_before): Likewise.
4857         (sra_insert_after): Likewise.
4858         (sra_init_cache): Likewise.
4859         (insert_edge_copies_seq): Made static and moved upwards.
4860
4861         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4862         case.
4863
4864         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4865
4866         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4867         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4868         simple copies.
4869
4870 2009-05-20  Richard Guenther  <rguenther@suse.de>
4871
4872         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4873         with mismatched comparison modes.
4874
4875 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4876
4877         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
4878         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4879         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4880         with shifts for Thumb2.
4881         (orsi_notsi): New for orn.
4882         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4883         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4884         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4885         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4886         Don't invert remainder for IOR.
4887         
4888 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
4889
4890         PR tree-optimization/40087
4891         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4892         number_of_iterations_ne): Rename never_infinite argument.
4893         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4894         number_of_iterations_le): Handle pointer-type ivs when
4895         exit_must_be_taken is false.
4896         (number_of_iterations_cond):  Do not always assume that
4897         exit_must_be_taken if the control variable is a pointer.
4898
4899 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4900
4901         * c-typeck.c (build_binary_op): Allow % on integal vectors.
4902         * doc/extend.texi (Vector Extension): Document that % is allowed too.
4903
4904 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4905
4906         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4907         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4908
4909 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4910
4911         PR c/40172
4912         * c.opt (Wlogical-op): Disabled by default.
4913         * c-opt (c_common_post_options): Do not enable Wlogical-op with
4914         Wextra.
4915         * doc/invoke.texi (Wlogical-op): Likewise.
4916         
4917 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4918
4919         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4920         into CASE_CONVERT.
4921         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4922         Propagate the type of the first operand.
4923         <ASSERT_EXPR>: Simplify.
4924         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4925         Rewrite using the RHS code as discriminant.
4926         <NOP_EXPR>: Turn into CASE_CONVERT.
4927         <PLUS_EXPR>: Propagate the type of the first operand.
4928
4929 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
4930
4931         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4932         (ia64_dconst_0_375): New.
4933         * config/ia64/ia64.c (ia64_override_options): Remove
4934         -minline-sqrt-min-latency warning.
4935         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4936         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4937         * config/ia64/ia64.md (*sqrt_approx): Remove.
4938         (sqrtsf2): Remove #if 0.
4939         (sqrtsf2_internal_thr): Rewrite and move to div.md.
4940         (sqrtdf): Remove assert.
4941         (sqrtdf2_internal_thr): Rewrite and move to div.md.
4942         (sqrtxf2): Remove #if 0.
4943         (sqrtxf2_internal_thr): Rewrite and move to div.md.
4944         * div.md (sqrt_approx_rf): New.
4945         (sqrtsf2_internal_thr): New implementation.
4946         (sqrtsf2_internal_lat): New.
4947         (sqrtdf2_internal_thr: New implementation.
4948         (sqrtxf2_internal): New implementation.
4949
4950 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
4951             Hans-Peter Nilsson  <hp@axis.com>
4952
4953         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4954         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4955         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4956         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4957         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4958         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4959         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4960         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4961         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4962         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4963         * c-common.c: ...from here.
4964
4965 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4966
4967         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
4968
4969 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4970
4971         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4972
4973 2009-05-19  Ben Elliston  <bje@au.ibm.com>
4974
4975         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4976         assignments with memcpy calls.
4977         (add_fdes): Likewise.
4978         (binary_search_unencoded_fdes): Likewise.
4979         (linear_search_fdes): Eliminate type puns.
4980         
4981 2009-05-19  Richard Guenther  <rguenther@suse.de>
4982
4983         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4984         not falsely claim to have propagated into all uses.
4985
4986 2009-05-19  Ben Elliston  <bje@au.ibm.com>
4987
4988         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4989         version to v3.0.
4990
4991 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4992
4993         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4994         * config/sh/sh.c (sh_legitimate_address_p): Make static.
4995         (TARGET_LEGITIMATE_ADDRESS_P): New.
4996         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4997         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4998         
4999 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
5000
5001         PR debug/40109
5002         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
5003         child of the containing namespace's DIE.
5004
5005 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
5006
5007         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
5008         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
5009         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
5010         extend patterns.
5011
5012 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
5013
5014         PR target/39942
5015         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
5016         gen_align with gen_pad.
5017         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
5018         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
5019
5020         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
5021         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
5022
5023         * config/i386/i386.md (align): Renamed to ...
5024         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
5025         ASM_OUTPUT_MAX_SKIP_PAD.
5026
5027 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
5028
5029         * config.gcc: Fix variable syntax.
5030
5031         PR target/39531
5032         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
5033         before calling exact_log2.
5034         (output_iorsi3): Likewise.
5035         (output_xorsi3): Likewise.
5036
5037 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5038
5039         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
5040         for the none zero constant operand except for EQ and NE
5041         comprisons even when the first operand is R0.
5042
5043 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
5044
5045         * config/s390/2064.md: Remove trailing whitespaces.
5046         * config/s390/2084.md: Likewise.
5047         * config/s390/constraints.md: Likewise.
5048         * config/s390/fixdfdi.h: Likewise.
5049         * config/s390/libgcc-glibc.ver: Likewise.
5050         * config/s390/s390-modes.def: Likewise.
5051         * config/s390/s390-protos.h: Likewise.
5052         * config/s390/s390.c: Likewise.
5053         * config/s390/s390.h: Likewise.
5054         * config/s390/s390.md: Likewise.
5055         * config/s390/tpf-unwind.h: Likewise.
5056
5057 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5058
5059         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
5060
5061 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5062
5063         M68K TLS support.
5064         * configure.ac (m68k-*-*): Check if binutils support TLS.
5065         * configure: Regenerate.
5066         * config/m68k/predicates.md (symbolic_operand): Extend comment.
5067         * config/m68k/constraints.md (Cu): New constraint.
5068         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
5069         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
5070         (movsi): Handle TLS symbols.
5071         (addsi3_5200): Handle XTLS symbols, indent.
5072         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
5073         (m68k_tls_reference_p): Declare.
5074         (m68k_legitimize_address): Declare.
5075         (m68k_unwrap_symbol): Declare.
5076         * config/m68k/m68k.opt (mxtls): New option.
5077         * config/m68k/m68k.c (ggc.h): Include.
5078         (m68k_output_dwarf_dtprel): Implement hook.
5079         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
5080         (m68k_expand_prologue): Load GOT pointer when function needs it.
5081         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
5082         (m68k_legitimate_constant_address_p): Same.
5083         (m68k_decompose_address): Handle TLS references.
5084         (m68k_get_gp): New static function.
5085         (enum m68k_reloc): New contants.
5086         (TLS_RELOC_P): New macro.
5087         (m68k_wrap_symbol): New static function.
5088         (m68k_unwrap_symbol): New function.
5089         (m68k_final_prescan_insn_1): New static function.
5090         (m68k_final_prescan_insn): New function.
5091         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
5092         functions.
5093         (legitimize_pic_address): Handle TLS references..
5094         (m68k_tls_get_addr, m68k_get_tls_get_addr)
5095         (m68k_libcall_value_in_a0_p)
5096         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
5097         (m68k_call_m68k_read_tp): Helper variables and functions for ...
5098         (m68k_legitimize_tls_address): Handle TLS references.
5099         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
5100         New functions.
5101         (m68k_legitimize_address): Handle TLS symbols.
5102         (m68k_get_reloc_decoration): New static function.
5103         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
5104         UNSPEC_RELOC32.
5105         (m68k_output_dwarf_dtprel): Implement hook.
5106         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
5107         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
5108         m68k_call_* routines.
5109         (sched_attr_op_type): Handle TLS symbols.
5110         (gt-m68k.h): Include.
5111         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
5112         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
5113
5114 2009-05-18  Martin Jambor  <mjambor@suse.cz>
5115
5116         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
5117         (visit_store_addr_for_mod_analysis): New function.
5118         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
5119         (determine_cst_member_ptr): Use gimple_assign_single_p.
5120         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
5121         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
5122         operands.  Don't check number of operands of a NOP_EXPR.
5123
5124 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
5125
5126         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
5127
5128 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5129
5130         PR c/40172
5131         * c-common.c (warn_logical_operator): Don't warn if one of
5132         expression isn't always true or false.
5133
5134 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
5135
5136         * config/i386/biarch32.h: New file.
5137         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
5138
5139 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
5140
5141         * config/mips/mips.md (*zero_extend<mode>_trunchi,
5142         *zero_extend<mode>_truncqi): Merge these into ...
5143         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
5144         Name the pattern following this as *zero_extendhi_truncqi.
5145
5146 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
5147
5148         PR middle-end/39301
5149         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
5150         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
5151         (output_info): Make field HOST_WIDEST_INT.
5152         (print_statistics): Use HOST_WIDEST_INT_PRINT.
5153         (dump_bitmat_statistics): Same.
5154
5155 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
5156
5157         * config.gcc (use_gcc_stdint):  Set to wrap.
5158         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5159         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5160         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5161         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5162         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5163         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5164         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5165         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5166
5167 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
5168
5169         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
5170         tune_64.
5171         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
5172         Move definitions earlier.
5173         (OPT_ARCH64, OPT_ARCH32): Define.
5174         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
5175         and tune_64.
5176
5177 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
5178
5179         PR target/40153
5180         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
5181         implies.
5182
5183 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
5184
5185         * arm.md (movdi2): Copy non-reg values to DImode registers.
5186
5187 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
5188
5189         PR target/39942
5190         * final.c (label_to_max_skip): New function.
5191         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
5192         CODE_LABEL_NUMBER <= max_labelno.
5193         * output.h (label_to_max_skip): New prototype.
5194         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
5195         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
5196         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
5197         Handle CODE_LABELs with >= 16 byte alignment or with
5198         max_skip == (1 << align) - 1.
5199         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
5200         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
5201
5202         PR target/39942
5203         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
5204         .p2align 3 if MAX_SKIP is smaller than 7.
5205         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
5206
5207 2009-05-15  Ian Lance Taylor  <iant@google.com>
5208
5209         * alias.c (struct alias_set_entry_d): Rename from struct
5210         alias_set_entry.  Change all uses.
5211         * except.c (struct call_site_record_d): Rename from struct
5212         call_site_record.  Change all uses.
5213         * except.h (struct eh_region_d): Rename from struct eh_region.
5214         Change all uses.
5215         * gcse.c (struct hash_table_d): Rename from struct hash_table.
5216         Change all uses.
5217         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
5218         ivtype_map_elt.  Change all uses.
5219         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
5220         Change all uses.
5221         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
5222         * graphite.h (struct name_tree_d): Rename from struct name_tree.
5223         Change all uses.
5224         (struct sese_d): Rename from struct sese.  Change all uses.
5225         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
5226         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
5227         * optabs.h (struct optab_d): Rename from struct optab.  Change all
5228         uses.
5229         (struct convert_optab_d): Rename from struct convert_optab.
5230         Change all uses.
5231         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
5232         ipa_opt_pass.  Change all uses.
5233         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
5234         all uses.
5235
5236         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
5237         defined as a typedef.
5238         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
5239         defined as a tag.
5240
5241 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5242
5243         PR 16302
5244         * fold-const.c (make_range,build_range_check,merge_ranges): Move
5245         declaration to...
5246         (merge_ranges): Returns bool. 
5247         * tree.h (make_range): .. to here.
5248         (build_range_check): Likewise.
5249         (merge_ranges): Likewise. Renamed from merge_ranges.
5250         * c-typeck.c (parser_build_binary_op): Update calls to
5251         warn_logical_operator.
5252         * c-common.c (warn_logical_operator): Add new warning.
5253         * c-common.h (warn_logical_operator): Update declaration.
5254         
5255 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5256
5257         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
5258         
5259 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5260
5261         * doc/install.texi: Document MPC requirements, flags etc.
5262
5263         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
5264         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
5265         Evaluate constant arguments.
5266         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
5267         (fold_builtin_1): Likewise, also evaluate constant arguments.
5268         Remove superfluous break.
5269         (do_mpc_ckconv): New.
5270         * real.h: Include mpc.h.
5271         * toplev.c (print_version): Output MPC version info if available.
5272
5273 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5274
5275         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
5276
5277 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5278
5279         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
5280         only once.
5281
5282 2009-05-15  Jan Hubicka  <jh@suse.cz>
5283
5284         * doc/invoke.texi (max-early-inliner-iterations): New flag.
5285         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
5286         (try_inline): Fix return value.
5287         (cgraph_decide_inlining_incrementally): Honor new value.
5288         (cgraph_early_inlining): Handle indirect inlining.
5289         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
5290
5291 2009-05-15  Jan Hubicka  <jh@suse.cz>
5292
5293         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
5294         * cgraphunit.c (cgraph_finalize_function): Set it.
5295         (cgraph_expand_function): Use it.
5296
5297 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5298
5299         * real.c (encode_ieee_half): Define.
5300         (decode_ieee_half): Define.
5301         (ieee_half_format): Define.
5302         (arm_half_format): Define.
5303         * real.h (ieee_half_format): Declare.
5304         (arm_half_format): Declare.
5305
5306 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
5307
5308         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
5309         swapped, and reversed optabs exist before trying to use them.
5310
5311 2009-05-15  Paul Brook  <paul@codesourcery.com>
5312             Sandra Loosemore  <sandra@codesourcery.com>
5313
5314         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
5315         loads.  Allow PRE_DEC.
5316         (output_move_neon): Handle PRE_DEC.
5317         (arm_print_operand): Add 'A' for neon structure loads.
5318         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
5319         * config/arm/neon.md (neon_mov): Update comment.
5320         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
5321         calls.
5322         (Um): New constraint.
5323
5324 2009-05-15  Jan Hubicka  <jh@suse.cz>
5325
5326         Revert the following patch until testsuite fallout is fixed:
5327         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5328         * cgraph.h (struct inline_summary): New filed self_wize,
5329         size_inlining_benefit, self_time and time_inlining_benefit.
5330         (struct cgraph_global_info): Replace insns by time ans size fields.
5331         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5332         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5333         (ipcp_update_callgraph): Do not touch function bodies.
5334         * ipa-inline.c: Include except.h
5335         (MAX_TIME): New constant.
5336         (overall_insns): Remove
5337         (overall_size, max_benefit): New static variables.
5338         (cgraph_estimate_time_after_inlining): New function.
5339         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5340         (cgraph_clone_inlined_nodes): Update size.
5341         (cgraph_mark_inline_edge): Update size.
5342         (cgraph_estimate_growth): Use size info.
5343         (cgraph_check_inline_limits): Check size.
5344         (cgraph_default_inline_p): Likewise.
5345         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5346         (cgraph_decide_recursive_inlining): Check size.
5347         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5348         and times.
5349         (cgraph_decide_inlining): Likewise.
5350         (cgraph_decide_inlining_incrementally): Likewise; honor
5351         PARAM_EARLY_INLINING_INSNS.
5352         (likely_eliminated_by_inlining_p): New predicate.
5353         (estimate_function_body_sizes): New function.
5354         (compute_inline_parameters): Use it.
5355         * except.c (must_not_throw_labels): New function.
5356         * except.h (must_not_throw_labels): Declare.
5357         * tree-inline.c (init_inline_once): Kill inlining_weigths
5358         * tree-ssa-structalias.c: Avoid uninitialized warning.
5359         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5360         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5361         (PARAM_INLINE_CALL_COST): Remove.
5362         (PARAM_EARLY_INLINING_INSNS): New.
5363
5364 2009-05-15  Richard Guenther  <rguenther@suse.de>
5365
5366         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
5367         not TODO_update_ssa.
5368
5369 2009-05-15  Richard Guenther  <rguenther@suse.de>
5370
5371         PR tree-optimization/39999
5372         * gimple.h (gimple_expr_type): Use the expression type looking
5373         through useless conversions.
5374         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
5375         (vn_nary_op_insert_stmt): Likewise.
5376         (simplify_binary_expression): Likewise.
5377
5378 2009-05-15  Richard Guenther  <rguenther@suse.de>
5379
5380         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5381         New options, enabled by default.
5382         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5383         Document.
5384         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
5385         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
5386         * tree-ssa-structalias.c (gate_tree_pta): New function.
5387         (pass_build_alias): Use it.
5388
5389 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
5390
5391         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5392         recurse on an invariant address if a conversion from a pointer
5393         type to a wider integer type is involved.
5394
5395 2009-05-15  Jan Hubicka  <jh@suse.cz>
5396
5397         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5398         * cgraph.h (struct inline_summary): New filed self_wize,
5399         size_inlining_benefit, self_time and time_inlining_benefit.
5400         (struct cgraph_global_info): Replace insns by time ans size fields.
5401         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5402         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5403         (ipcp_update_callgraph): Do not touch function bodies.
5404         * ipa-inline.c: Include except.h
5405         (MAX_TIME): New constant.
5406         (overall_insns): Remove
5407         (overall_size, max_benefit): New static variables.
5408         (cgraph_estimate_time_after_inlining): New function.
5409         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5410         (cgraph_clone_inlined_nodes): Update size.
5411         (cgraph_mark_inline_edge): Update size.
5412         (cgraph_estimate_growth): Use size info.
5413         (cgraph_check_inline_limits): Check size.
5414         (cgraph_default_inline_p): Likewise.
5415         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5416         (cgraph_decide_recursive_inlining): Check size.
5417         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5418         and times.
5419         (cgraph_decide_inlining): Likewise.
5420         (cgraph_decide_inlining_incrementally): Likewise; honor
5421         PARAM_EARLY_INLINING_INSNS.
5422         (likely_eliminated_by_inlining_p): New predicate.
5423         (estimate_function_body_sizes): New function.
5424         (compute_inline_parameters): Use it.
5425         * except.c (must_not_throw_labels): New function.
5426         * except.h (must_not_throw_labels): Declare.
5427         * tree-inline.c (init_inline_once): Kill inlining_weigths
5428         * tree-ssa-structalias.c: Avoid uninitialized warning.
5429         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5430         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5431         (PARAM_INLINE_CALL_COST): Remove.
5432         (PARAM_EARLY_INLINING_INSNS): New.
5433         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
5434         (inline-call-cost): Remove.
5435         (early-inlining-insns): New.
5436
5437 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5438
5439         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
5440         for bounds.
5441         (print_int_cst_bounds_in_octal_p): Likewise.
5442         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
5443         with subtypes.
5444         * dwarf2out.c (base_type_die): Likewise.
5445         (is_subrange_type): Delete.
5446         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
5447         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
5448         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
5449         if the destination type is boolean.
5450         (build_range_check): Do not special-case subtypes.
5451         (fold_sign_changed_comparison): Likewise.
5452         (fold_unary): Likewise.
5453         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
5454         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
5455         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
5456         * tree.c (subrange_type_for_debug_p): New predicate based on the
5457         former is_subrange_type.
5458         * tree.h (subrange_type_for_debug_p): Declare.
5459         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
5460         (convert_affine_scev): Remove call to above function.
5461         (chrec_convert_aggressive): Likewise.
5462         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
5463         false for conversions involving subtypes.
5464         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
5465         (vrp_val_min): Likewise.
5466         (needs_overflow_infinity): Likewise.
5467         (extract_range_from_unary_expr): Likewise.
5468
5469 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
5470
5471         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5472         * config/frv/frv.c: Likewise.
5473         * config/s390/s390.c: Likewise.
5474         * config/sparc/sparc.h: Likewise.
5475         * config/i386/i386.h: Likewise.
5476         * config/i386/i386.c: Likewise.
5477         * config/crx/crx.c: Likewise.
5478         * config/m68hc11/m68hc11.h: Likewise.
5479         * config/iq2000/iq2000.c: Likewise.
5480         * config/mn10300/mn10300.h: Likewise.
5481         * config/mn10300/mn10300.c: Likewise.
5482         * config/m68k/m68k.c: Likewise.
5483         * config/rs6000/rs6000.c: Likewise.
5484         * config/rs6000/xcoff.h: Likewise.
5485         * config/rs6000/linux64.h: Likewise.
5486         * config/rs6000/sysv4.h: Likewise.
5487         * config/score/score3.c: Likewise.
5488         * config/score/score7.c: Likewise.
5489         * config/score/score.c: Likewise.
5490         * config/arm/arm.md: Likewise.
5491         * config/mips/mips.c: Likewise.
5492         * config/mips/mips.md: Likewise.
5493         * config/bfin/bfin.h: Likewise.
5494         * config/pa/pa.c: Likewise.
5495         * config/pa/constraints.md: Likewise.
5496
5497         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
5498         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
5499         * config/pdp11/pdp11.h: Use memory_address_p instead.
5500
5501 2009-05-14  Ian Lance Taylor  <iant@google.com>
5502
5503         * passes.c (finish_optimization_passes): Change i to int.
5504         * plugin.c (plugins_active_p): Change event to int.
5505         (dump_active_plugins): Likewise.
5506         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
5507         Add cast.
5508         * tree.c (tree_range_check_failed): Change c to unsigned int.
5509         (omp_clause_range_check_failed): Likewise.
5510         (build_common_builtin_nodes): Change mode to int.  Add cast.
5511         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5512         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5513
5514         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5515         ++ or -- with a variable of enum type.
5516
5517 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5518
5519         PR driver/40144
5520         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5521
5522 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5523
5524         * store-motion.c: Do not include params.h
5525         * Makefile.in: Fix dependencies for various files.
5526
5527 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5528
5529         * auto-inc-dec.c: Fix pass description, remove apparent
5530         accidental duplication.
5531
5532 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
5533
5534         PR middle-end/40147
5535         * ipa-utils.h (memory_identifier_string): Moved to ...
5536         * tree.h (memory_identifier_string): Here.  Add GTY(()).
5537
5538 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5539
5540         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5541         in the former documentation of...
5542         (GO_IF_LEGITIMATE_ADDRESS): ... this.
5543         * ira-conflicts.c (get_dup_num): Use address_operand.
5544         * targhooks.c (default_legitimate_address_p): New.
5545         * targhooks.h (default_legitimate_address_p): New.
5546         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5547         Call hook.
5548         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5549         * target.h (struct target): Add legitimate_address_p.
5550         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5551         (TARGET_INITIALIZER): Include it.
5552
5553         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5554         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5555         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5556         (TARGET_LEGITIMATE_ADDRESS_P): New.
5557
5558         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5559         (REG_OK_STRICT_P): Delete.
5560         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5561         (frv_legitimate_address_p_1): ... this.
5562         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5563         (frv_legitimate_address_p_1): ... the renamed old
5564         frv_legitimate_address_p.
5565         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5566         (TARGET_LEGITIMATE_ADDRESS_P): New.
5567
5568         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5569         * config/s390/s390-protos.h (legitimate_address_p): Remove.
5570         * config/s390/s390.c (legitimate_address_p): Rename to...
5571         (s390_legitimate_address_p): ... this, make static.
5572         (legitimize_address): Adjust call.
5573         (TARGET_LEGITIMATE_ADDRESS_P): New.
5574         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5575
5576         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5577         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5578         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5579         (TARGET_LEGITIMATE_ADDRESS_P): New.
5580
5581         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5582         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5583         * config/spu/spu.c (spu_legitimate_address): Rename to...
5584         (spu_legitimate_address_p): ... this, make static.
5585         (TARGET_LEGITIMATE_ADDRESS_P): New.
5586
5587         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5588         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5589         * config/sparc/sparc.c (legitimate_address_p): Rename to...
5590         (sparc_legitimate_address_p): ... this, make static and return bool.
5591         (legitimize_address): Adjust call.
5592         (TARGET_LEGITIMATE_ADDRESS_P): New.
5593
5594         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5595         * config/i386/i386-protos.h (legitimate_address_p): Remove.
5596         * config/i386/i386.c (legitimate_address_p): Rename to...
5597         (ix86_legitimate_address_p): ... this, make static.
5598         (constant_address_p): Move after it, adjust call.
5599         (TARGET_LEGITIMATE_ADDRESS_P): New.
5600
5601         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5602         * config/avr/avr-protos.h (legitimate_address_p): Remove.
5603         * config/avr/avr.c (legitimate_address_p): Rename to...
5604         (avr_legitimate_address_p): ... this, make static.
5605         (legitimize_address): Adjust call.
5606         (TARGET_LEGITIMATE_ADDRESS_P): New.
5607
5608         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5609         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5610         * config/crx/crx.c (crx_legitimate_address_p): Make static.
5611         (TARGET_LEGITIMATE_ADDRESS_P): New.
5612
5613         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5614         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5615         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5616         (TARGET_LEGITIMATE_ADDRESS_P): New.
5617
5618         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5619         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5620         Remove.
5621         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5622         Make static.
5623         (TARGET_LEGITIMATE_ADDRESS_P): New.
5624
5625         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5626         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5627         Remove.
5628         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5629         Rename to...
5630         (m68hc11_legitimate_address_p): ... this, make static.
5631         (go_if_legitimate_address_internal): Rename to...
5632         (m68hc11_legitimate_address_p_1): ... this.
5633         (legitimize_address): Adjust call.
5634         (TARGET_LEGITIMATE_ADDRESS_P): New.
5635
5636         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5637         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5638         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
5639         (TARGET_LEGITIMATE_ADDRESS_P): New.
5640
5641         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5642         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5643         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5644         (mn10300_legitimate_address_p): ... this, make static.
5645         (TARGET_LEGITIMATE_ADDRESS_P): New.
5646
5647         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5648         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5649         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5650         (TARGET_LEGITIMATE_ADDRESS_P): New.
5651
5652         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5653         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5654         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5655         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5656         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5657         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5658         (rs6000_legitimate_address_p): ... this, make static.
5659         (TARGET_LEGITIMATE_ADDRESS_P): New.
5660         (REG_MODE_OK_FOR_BASE_P): Delete.
5661         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5662
5663         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5664         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5665         Delete.
5666         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5667         static, adjust types.
5668         (TARGET_LEGITIMATE_ADDRESS_P): New.
5669
5670         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5671         * config/score/score.c (score_address_p): Rename to...
5672         (score_legitimate_address_p): ... this.
5673         (TARGET_LEGITIMATE_ADDRESS_P): New.
5674         * config/score/score3.c (score3_address_p): Rename to...
5675         (score3_legitimate_address_p): ... this.
5676         * config/score/score7.c (score7_address_p): Rename to...
5677         (score7_legitimate_address_p): ... this.
5678
5679         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5680         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5681         GO_IF_LEGITIMATE_ADDRESS): Delete.
5682         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5683         thumb2_legitimate_address_p): Delete.
5684         (arm_legitimate_address_p): Rename to...
5685         (arm_legitimate_address_outer_p): ... this.
5686         * config/arm/constraints.md ("Uq"): Adjust call.
5687         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
5688         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5689         to...
5690         (arm_legitimate_address_outer_p): ... this.
5691         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5692         static.
5693         (TARGET_LEGITIMATE_ADDRESS_P): New.
5694
5695         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5696         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5697         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5698         (TARGET_LEGITIMATE_ADDRESS_P): New.
5699
5700         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5701         * config/vax/vax-protos.h (legitimate_address_p): Remove.
5702         * config/vax/vax.c (legitimate_address_p): Rename to...
5703         (vax_legitimate_address_p): ... this, make static.
5704         (TARGET_LEGITIMATE_ADDRESS_P): New.
5705
5706         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5707         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5708         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5709         (TARGET_LEGITIMATE_ADDRESS_P): New.
5710
5711         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5712         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5713         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5714         (mmix_legitimate_address_p): ... this, make static.
5715         (TARGET_LEGITIMATE_ADDRESS_P): New.
5716
5717         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5718         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5719         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5720         (TARGET_LEGITIMATE_ADDRESS_P): New.
5721
5722 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5723
5724         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5725         of MODE_COMPLEX_INT.
5726
5727 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5728
5729         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5730         LCT_NORMAL in function call.
5731         * mips-tdump.c (print_file_desc): Add cast to enum type.
5732         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5733         (mark_stabs): Add casts to enum types.
5734         (parse_stabs_common): Add casts to enum types.
5735
5736 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5737
5738         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5739         Check for invalid values of LETTER.
5740
5741 2009-05-13  Taras Glek  <tglek@mozilla.com>
5742
5743         * attribs.c (register_attribute): moved out attribute registration
5744         into register_attribute.
5745         * doc/plugins.texi: Documented register_attribute and
5746         PLUGIN_ATTRIBUTES.
5747         * gcc-plugin.h: Added forward decl for register_attribute.
5748         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5749         * plugin.c (register_callback, invoke_plugin_callbacks): Added
5750         PLUGIN_ATTRIBUTES boilerplate.
5751
5752 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
5753
5754         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
5755         values even in sentinel and empty entries.
5756         (ms_printf_flag_specs):  Likewise.
5757         (ms_scanf_flag_specs):  Likewise.
5758         (ms_strftime_flag_specs):  Likewise.
5759         (ms_print_char_table):  Likewise.
5760         (ms_scan_char_table):  Likewise.
5761         (ms_time_char_table):  Likewise.
5762
5763 2009-05-13  Doug Kwan  <dougkwan@google.com>
5764
5765         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5766
5767 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5768
5769         * config/mips/mips.md (store): Add attributes for QI and HI.
5770         Update comment.
5771         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5772         (truncdi<mode>2): ... this new pattern.
5773
5774 2009-05-13  Brad Hards  <bradh@kde.org>
5775
5776         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5777
5778 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
5779             Ben Elliston <bje@au.ibm.com>
5780
5781         PR middle-end/40035
5782         * dse.c (check_mem_read_rtx): Guard against width == -1.
5783
5784 2009-05-13  Michael Matz  <matz@suse.de>
5785
5786         PR middle-end/39976
5787         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5788         (trivially_conflicts_p): New function.
5789         (insert_backedge_copies): Use it.
5790
5791 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
5792
5793         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5794         (handle_stdc_pragma): Use new enum constant names.
5795         (handle_pragma_float_const_decimal64): Ditto.
5796
5797 2009-05-13  Ian Lance Taylor  <iant@google.com>
5798
5799         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5800         tree.def.
5801
5802 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
5803
5804         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5805         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5806         multilibs.
5807         * config/m68k/m68k.h (FL_UCLINUX): Define.
5808
5809 2009-05-13  Jan Hubicka  <jh@suse.cz>
5810
5811         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5812
5813 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5814
5815         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5816         unless -fschedule-insns is specified.
5817
5818 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5819
5820         PR target/39561
5821         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5822         TARGET_EXPAND_CBRANCHDI4.
5823         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5824         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5825         (cmpeqdi): Fix comment.
5826
5827 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5828
5829         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5830         (sh_legitimate_address_p): Likewise.
5831         * config/sh/sh.c (sh_legitimate_index_p): New.
5832         (sh_legitimate_address_p): Likewise.
5833         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5834         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5835         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5836         (MAYBE_BASE_REGISTER_RTX_P): New macro.
5837         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5838         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5839         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5840         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5841         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5842
5843 2009-05-12  Jan Hubicka  <jh@suse.cz>
5844
5845         * tree-inline.c (estimate_operator_cost): Add operands;
5846         when division happens by constant, it is cheap.
5847         (estimate_num_insns): Loads and stores are not having cost of 0;
5848         EH magic stuff is cheap; when computing runtime cost of switch,
5849         use log2 base of amount of its cases; builtin_expect has cost of 0;
5850         compute cost for moving return value of call.
5851         (init_inline_once): Initialize time_based flags.
5852         * tree-inline.h (eni_weights_d): Add time_based flag.
5853
5854 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5855
5856         * df-core.c: Update head documentation.
5857
5858 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5859
5860         PR bootstrap/40118
5861         * rs6000.c (rs6000_generate_compare): Use op1b instead of
5862         shadowing exisiting variable op1.
5863
5864 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
5865
5866         PR target/37179
5867         * config/i386/driver-i386.c (processor_signatures): New enum.
5868         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5869         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5870         processor signature to detect geode processor.
5871
5872 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5873
5874         Revert:
5875
5876         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5877
5878         * optabs.c (prepare_cmp_insn): Temporarily disable test that
5879         causes spurious differences between trunk and cond-optab branch.
5880
5881 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5882
5883         * dojump.c (compare_from_rtx): Delete.
5884         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
5885         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
5886         if the comparison does not satisfy the predicate; test predicates for
5887         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
5888         further if one existing pattern fails.
5889         * expr.h (compare_from_rtx): Delete.
5890         (prepare_operand): Declare it.
5891         * optabs.c: Change "lib call" to "libcall" throughout.
5892         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
5893         HAVE_conditional_trap, emit_cmp_insn): Delete.
5894         (can_compare_p): Delete cmp_optab case.
5895         (prepare_float_lib_cmp): Return an rtx and a machine mode.
5896         Accept other parameters by value.
5897         (prepare_operand): Make non-static.
5898         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
5899         other parameters by value.  Try to widen operands here based on
5900         an optab_methods argument and looking at cbranch_optab.
5901         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5902         loop.  Use cbranch_optab directly.
5903         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
5904         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5905         assertion.
5906         (emit_conditional_move, emit_conditional_add): Inline what's needed
5907         of compare_from_rtx, using new prepare_cmp_insn for the rest.
5908         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5909         with COMPARE.  Move cmov_optab and cstore_optab above
5910         with cbranch_optab, move cmp_optab down with ucmp_optab,
5911         remove tst_otpab.  Do not initialize trap_rtx.
5912         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
5913         for trap code.  Do not check HAVE_conditional_trap.  Use
5914         prepare_cmp_insn.  Accept no predicate for operand 3.
5915         * optabs.h (OTI_cmp): Mark as used only for libcalls.
5916         (OTI_ctrap, ctrap_optab): New.
5917         (tst_optab): Delete.
5918         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5919         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5920         with lookup of ctrap_optab.
5921         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5922         Delete.
5923         (ctrap_optab): New.
5924
5925         * combine.c (combine_simplify_rtx, simplify_set): Do not
5926         special case comparing against zero for cc0 machines.
5927         * simplify-rtx.c (simplify_binary_operation_1): Never remove
5928         COMPARE on cc0 machines.
5929         (simplify_relational_operation): Return a new expression when
5930         a COMPARE could be removed.
5931         * final.c (final_scan_insn): Compare cc_status values
5932         against LHS of a (compare FOO (const_int 0)) cc0 source.
5933         Also check if cc_status.value is the full compare.
5934
5935         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5936         (cstoreMM4): Document.
5937         (conditional_trap): Document ctrapMM4 instead.
5938         (sync_compare_and_swapMM): Refer to cbranchcc4.
5939         (Dependent Patterns): Eliminate obsolete information referring to
5940         the old jump optimization phase.
5941         (Canonicalization): Include cbranchcc4 case, omit canonicalization
5942         of compares with 0 on cc0 machines.
5943         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5944         avoiding references to cc0.  Remove text about storing operands
5945         in cmpMM.
5946         * doc/tm.texi (Condition Codes): Include blurb on different
5947         condition code representations, separate into subsections for
5948         CC0, MODE_CC and conditional execution.
5949
5950         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5951         alpha_emit_setcc): Accept operands and a machine mode.
5952         * config/alpha/alpha.c (alpha_emit_conditional_branch):
5953         Get code/op0/op1 from operands, use machine mode argument
5954         instead of alpha_compare.fp_p.  Emit the branch here.
5955         (alpha_emit_setcc): Likewise, and return boolean.
5956         (alpha_emit_conditional_move): Likewise.  Assert that
5957         cmp_op_mode == cmp_mode, and simplify accordingly.
5958         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5959         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5960         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5961         Delete.
5962         (stack probe test): Use cbranchdi4.
5963         * config/alpha/predicates.md (alpha_cbranch_operator): New.
5964
5965         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
5966         * config/arc/arc.h (movsicc, movsfcc): Use it.
5967         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5968         (cbranchsi4, cstoresi4): New.
5969         (cmpsi, bCC and sCC expanders): Remove. 
5970
5971         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5972         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5973         * config/arm/predicates.md (arm_comparison_operator): Only include
5974         floating-point operators if there is a hardware floating-point unit.
5975         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5976         deferring to cbranch_cc and cstore_cc respectively.
5977         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5978         cbranch_cc, cstore_cc): New.
5979         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
5980         arm_compare_op1.
5981         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5982
5983         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5984         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5985         as an argument.
5986         (adjust_insn_length): Adjust calls.
5987         (avr_reorg): Handle (compare (foo) (const_int 0)).
5988         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5989         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5990         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5991         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5992         (bCC): Remove.
5993         (cbranchqi4, cbranchhi4, cbranchsi4): New.
5994         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5995
5996         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5997         (cbranchsi4, cstorebi4, cstoresi4): New.
5998         (movbisi): This insn is duplicate, split it to zero_extend.
5999         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
6000         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
6001         (bfin_optimize_loop): Use cbranch expander.
6002         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
6003         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
6004         (bfin_bimode_comparison_operator): ... this.
6005         (bfin_direct_comparison_operator): New.
6006  
6007         * config/cris/cris.c (cris_normal_notice_update_cc): Look
6008         inside (compare FOO (const_int 0)).
6009         (cris_rtx_costs): Handle ZERO_EXTRACT.
6010         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
6011         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
6012         (*tstdi_v32): Delete.
6013         (*cmpdi_non_v32): Add M alternative for operand 1.
6014         (cmpsi, cmp<mode>): Make private.
6015         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
6016         with COMPARE.
6017         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
6018
6019         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
6020         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
6021         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
6022         (cc_reg_operand): New.
6023         (any_cond): Delete.
6024         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
6025         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
6026         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
6027         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
6028         crx_expand_scond): Delete.
6029
6030         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
6031         (cbranchsi4): New.
6032         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
6033         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
6034
6035         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
6036         cstoresi4, cstoresf4, cstoredf4): New.
6037         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
6038         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
6039         Receive the entire operands array.
6040         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
6041         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
6042         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
6043         Get test/op0/op1 from the operands array.
6044         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
6045
6046         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
6047         (h8300_expand_store): New.
6048         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
6049         (const_int 0)).
6050         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
6051         (h8300_expand_store): New.
6052         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
6053         or do not try to produce (set (cc0) REG).
6054         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
6055         change a compare into a move to a scratch register.  Disable some
6056         peepholes when comparing with zero.
6057         (tstsi, tsthi, tstsi, cmpqi): Make private.
6058         (cmphi): Delete.
6059         (bCC, sCC): Delete.
6060         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
6061         cstoresi4): New.
6062
6063         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
6064         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
6065         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
6066         (ix86_emit_i387_log1p): Use cbranchxf2.
6067         (ix86_expand_setcc): Return void.
6068         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
6069         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
6070         cmp<MODEF>, cmpcc): Remove.
6071         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
6072         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
6073         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
6074         (sCC and bCC expanders): Remove.
6075         (stack_protect_test): Use cbranchcc4.
6076
6077         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
6078         Delete.
6079         (ia64_expand_compare): Accept three rtx by reference and return void.
6080         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
6081         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
6082         from *expr.  Update *expr with the BImode comparison to do.
6083         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
6084         cmptf, bCC, sCC, conditional_trap): Delete.
6085         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
6086         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
6087         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
6088         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
6089         * config/ia64/predicates.md (ia64_cbranch_operator): New.
6090
6091         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
6092         type of last argument.
6093         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
6094         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
6095         use machine mode argument instead of branch_type.  Remove dead
6096         code for floating-point comparisons.
6097         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
6098         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
6099         Remove.
6100         (cbranchsi4, cstoresi4): New.
6101         * config/iq2000/predicates.md (reg_or_const_operand): New.
6102
6103         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
6104         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
6105         (b<code>_op): Rewrite to...
6106         (bcc_op): ... this, using match_operator.
6107         (s<code>_op): Rewrite to...
6108         (scc_op): ... this, using match_operator.
6109         (s<code>_24_op): Rewrite to...
6110         (scc_op_24): ... this, using match_operator.
6111         (s<code>_<mode>): Rewrite to...
6112         (cstore<mode>4): ... this, using match_operator.
6113         (s<code>_<mode>_24): Rewrite to...
6114         (cstore<mode>4_24): ... this, using match_operator.
6115         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
6116         m32c_unpend_compare, m32c_expand_scc): Delete.
6117         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
6118         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
6119         (m32c_expand_movcc): Change NE to EQ if necessary.
6120         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
6121
6122         * config/m32r/m32r-protos.h (gen_cond_store): New.
6123         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
6124         (gen_cond_store): New, from sCC patterns.
6125         (m32r_expand_block_move): Use cbranchsi4.
6126         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
6127         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
6128         (cbranchsi4, cstoresi4): New.
6129         
6130         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
6131         Delete.
6132         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
6133         (m68hc11_notice_update_cc): Look into a compare with 0.
6134         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
6135         Delete.
6136         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
6137         cmphi, cmpqi, bCC): Delete.
6138         (cbranchsi4, cbranchhi4, cbranchqi4): New.
6139         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
6140         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
6141         sets with COMPARE.
6142
6143         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
6144         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
6145         * config/m68k/constraints.md (H): New.
6146         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
6147         the define_insn below.
6148         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
6149         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
6150         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
6151         patterns): Wrap RHS with COMPARE.
6152         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
6153         (*cmpdi_internal): Name this pattern.
6154         (cmpdi): Change to define_insn.
6155         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
6156         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
6157         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
6158         predicate.
6159         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
6160         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
6161         (conditional_trap): Change to...
6162         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
6163         (*conditional_trap): Use the ordered_comparison_operator and
6164         const1_operand predicates.
6165         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
6166         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
6167         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
6168         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
6169
6170         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
6171         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
6172         (mcore_gen_compare): New. 
6173         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
6174         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
6175         (mcore_gen_compare): ... this.
6176         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
6177         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
6178         (stack probe pattern): Use cbranchsi4.
6179
6180         * config/mips/predicates.md (mips_cstore_operator): New.
6181         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
6182         * config/mips/mips.md (any_cond): Delete.
6183         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
6184         always succeed.
6185         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
6186         fixuns_truncsfdi2): Use cbranch patterns.
6187         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
6188         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
6189         Adjust call to mips_expand_conditional_branch.
6190         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
6191         cstore<GPR:mode>4.
6192         * config/mips/mips-protos.h (mips_expand_conditional_branch,
6193         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
6194         * config/mips/mips.c (cmp_operands): Delete.
6195         (mips_emit_compare): Get comparison operands from *op0/*op1.
6196         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
6197         that it succeeds.  Use op0/op1 instead of cmp_operands.
6198         (mips_expand_conditional_branch, mips_expand_conditional_move,
6199         mips_expand_conditional_trap): Likewise.
6200         (mips_block_move_loop): Use cbranch patterns. 
6201         * config/mips/mips.h (cmp_operands): Delete.
6202
6203         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
6204         (mmix_gen_compare_reg): Just return a register in the right CC mode.
6205         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
6206         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
6207         (*cmpcc_folded): Rename to...
6208         (*cmpdi_folded): this.
6209         (*cmpcc): Rename to...
6210         (*cmps): ... this.
6211         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
6212         (bCC): Remove.
6213         (cbranchdi4): New.
6214         (cbranchdf4): New.  Handle invalid comparisons here.
6215         * config/mmix/predicates.md (float_comparison_operator): New.
6216
6217         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
6218         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
6219         * config/mn10300/mn10300.md (tst): Delete.
6220         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
6221         Name these patterns and wrap RHS in a compare.
6222         (*cmpsi): Make this pattern private.  Include tst.
6223         (*cmpsf): Make this pattern private.
6224         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
6225         (compare with zero peepholes): Likewise.
6226         (bCC): Remove.
6227         (cbranchsi4, cbranchsf4): New.
6228         (casesi): Use cbranchsi4.
6229
6230         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
6231         hppa_branch_type): Delete.
6232         (return_addr_rtx): Use cbranchsi4.
6233         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
6234         Emit CCFPmode comparison here.
6235         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
6236         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
6237         hppa_branch_type): Delete.
6238         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
6239         (movsicc, movdicc): Remove references to hppa_compare_op0,
6240         hppa_compare_op1 and compare_from_rtx.
6241         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
6242         (casesi): Use cbranchsi4.
6243
6244         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
6245         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
6246         * config/pdp11/pdp11.md (register_or_const0_operand): New.
6247         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
6248         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
6249         (bCC): Delete.
6250         (cbranchdf4, cbranchhi4, cbranchqi4): New.
6251         (*branch, *branch_inverted): New.
6252
6253         * config/picochip/picochip.md (cbranchhi4): Use
6254         ordered_comparison_operator.
6255         (cmphi, bCC): Remove.
6256
6257         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
6258         (trap_comparison_operator): Delete.
6259         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
6260         rs6000_emit_cbranch): Accept mode and operands.
6261         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
6262         rs6000_compare_fp_p): Delete.   
6263         (rs6000_generate_compare): Accept mode and comparison.  Extract code
6264         and op0/op1 from there.  Replace references to rs6000_compare_op0
6265         and rs6000_compare_op1.
6266         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
6267         extract result from passed operands.
6268         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
6269         extract loc from passed operands.
6270         (rs6000_emit_cmove): Likewise.
6271         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
6272         rs6000_compare_fp_p): Delete.
6273         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
6274         (cbranch<GPR>4, cbranch<FP>4): New.
6275         (cstore<mode>4): New.  Consolidate here all choices about when to use
6276         portable or specialized sCC sequences.
6277         (stack_protect_test): Use cbranchsi4.
6278         (conditional_trap): Replace with ctrap<GPR>4.
6279         (conditional trap insn): Replace trap_comparison_operator with
6280         ordered_comparison_operator. 
6281
6282         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
6283         (s390_emit_prologue): Use ctrap.
6284         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
6285         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
6286         New predicates replacing...
6287         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
6288         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
6289         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
6290         (add<mode>cc): Do not use s390_compare_op0/op1.
6291         (s<code>): Change to...
6292         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
6293         (seq): Change to...
6294         (cstorecc4): ... this.  Handle EQ or NE equally.
6295         (*sne): Un-privatize for use in cstorecc4.
6296         (b<code>): Change to...
6297         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
6298         (conditional_trap): Replace with...
6299         (ctrap<GPR>4, ctrap<FP>4): ... these.
6300         (stack_protect): Use cbranchcc4.
6301
6302         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
6303         * config/score/score-protos.h (score_gen_cmp): Delete.
6304         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
6305         (score_block_move-loop): Use cbranchsi4.
6306         * config/score/score.md (cbranchsi4): New.
6307         (cmpsi, bCC): Delete.
6308         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
6309         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6310         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
6311         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
6312         * config/score/score3.h (score3_gen_cmp): Delete.
6313         * config/score/score7.h (score7_gen_cmp): Delete.
6314
6315         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
6316         (sh_emit_scc_to_t): ... this.  Return void.
6317         (from_compare): Rename to...
6318         (sh_emit_compare_and_branch): ... this.
6319         (sh_emit_compare_and_set): New.
6320         (sh_expand_t_scc): Accept operands.
6321         * config/sh/predicates.md (sh_float_comparison_operator): New.
6322         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
6323         (prepare_scc_operands): Rename to...
6324         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
6325         arguments.
6326         (sh_emit_cheap_store_flag): New.
6327         (sh_emit_set_t_insn): New.
6328         (from_compare): Rename to...
6329         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
6330         handling of TARGET_SH2E floating point to avoid recursive call.
6331         Generate branch here.
6332         (sh_emit_compare_and_set): New.
6333         (sh_expand_t_scc): Get op0/op1 from arguments.
6334         (sh_emit_cheap_store_flag): New.
6335         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
6336         cases.
6337         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
6338         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
6339         (movsicc, movdicc): Do nothing when it recreated operands from
6340         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
6341         prepare_scc_operands (now sh_emit_scc_to_t).
6342         (udivdi3): Use cstoresi4.
6343         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
6344         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
6345         (cbranchint4_media, cbranchfp4_media): New.
6346         (casesi): Use cbranchdi4.
6347         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
6348         Delete.
6349         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
6350         (movnegt): Remove second operand.
6351         (cbranchsf4, cbranchdf4): New.
6352         (stack_protect): Use cbranchdi4/cbranchsi4.
6353
6354         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
6355         (gen_compare_reg): Accept comparison, extract part of it to...
6356         (gen_compare_reg_1): ... this. 
6357         (gen_compare_operator): Delete.
6358         (gen_v9_scc): Accept separate destination, comparison code and arms.
6359         Do not use sparc_compare_op0/sparc_compare_op1.
6360         (emit_scc_insn, emit_conditional_branch_insn): New.
6361         (emit_v9_brxx): Make static.  Remove useless assertion.
6362         (sparc_emit_float_lib_cmp): Return RTL instead of calling
6363         emit_cmp_insn.
6364         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
6365         * config/sparc/sparc-protos.h (gen_compare_reg,
6366         sparc_emit_float_lib_cmp): Adjust prototype.
6367         (emit_scc_insn, emit_conditional_branch_insn): New.
6368         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6369         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
6370         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
6371         iterators to the top.
6372         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
6373         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
6374         snedi_special_trunc): Delete.
6375         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
6376         and snedi_special_trunc.
6377         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
6378         cbranchdi4, cbranch<F:mode>4): New.
6379         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
6380         here.  Use gen_compare_reg instead of gen_compare_operator.
6381         (conditional_trap): Replace with...
6382         (ctrapsi4, ctrapdi4): ... this.
6383         (stack_protect_test): Use cbranchcc4.
6384
6385         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
6386         argument to rtx.
6387         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
6388         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
6389         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
6390         from operands[0] or operands[3] depending on is_set.
6391         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
6392         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
6393         cmpdf, bCC), sCC: Remove.
6394         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
6395         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
6396         cstoredf4): New.
6397         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
6398         spu_emit_branch_or_set.
6399
6400         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
6401         Add two arguments.
6402         * config/stormy16/stormy16.h (xstormy16_compare_op0,
6403         xstormy16_compare_op1): Delete.
6404         * config/stormy16/stormy16.c (xstormy16_compare_op0,
6405         xstormy16_compare_op1): Delete. 
6406         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
6407         Adjust calls.
6408         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
6409         (cmphi, cmpsi, bCC): Remove.
6410
6411         * config/v850/v850.md (tstsi, cmpsi): Fold into...
6412         (*cmpsi): ... this one.
6413         (cbranchsi4, cstoresi4): New.
6414         (bCC expanders): Delete.
6415         (sCC insns): Fold into...
6416         (*setcc): ... this one.
6417         (casesi): Do not use gen_cmpsi and gen_bgtu. 
6418         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
6419         (movsicc): Simplify.
6420         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
6421
6422         * config/vax/vax-protos.h (cond_name): New.
6423         (vax_output_conditional_branch): Remove.
6424         * config/vax/vax.c (cond_name): New.
6425         (vax_output_conditional_branch): Remove.
6426         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
6427         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
6428         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
6429         (bit<VAXint>): Wrap source with (compare).
6430         (b<code> and following unnamed pattern): Rename to *branch and
6431         *branch_reversed.  Change macroization to match_operator.
6432         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
6433
6434         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
6435         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
6436         Change last argument to machine_mode.
6437         (xtensa_expand_scc): Add machine_mode argument.
6438         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
6439         (gen_conditional_move, xtensa_expand_conditional_branch,
6440         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
6441         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
6442         Adjust operand numbers.
6443         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
6444         Delete.
6445         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
6446         (cmpsi, cmpsf, b<code>, s<code>): Delete.
6447         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
6448
6449 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
6450
6451         * optabs.c (prepare_cmp_insn): Temporarily disable test that
6452         causes spurious differences between trunk and cond-optab branch.
6453
6454 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6455
6456         PR target/37137
6457         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
6458
6459 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6460
6461         * tree.c (iterative_hash_pointer): Delete.
6462         (iterative_hash_expr): Short-circuit handling of NULL pointer.
6463         Hash UIDs and versions of SSA names.  Don't special-case built-in
6464         function declarations.
6465
6466 2009-05-11  Ian Lance Taylor  <iant@google.com>
6467
6468         PR bootstrap/40103
6469         * graphite.c: Force -Wc++-compat to only be a warning before
6470         #including "cloog/cloog.h".
6471
6472 2009-05-11  Martin Jambor  <mjambor@suse.cz>
6473
6474         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
6475         
6476 2009-05-11  Jan Hubicka  <jh@suse.cz>
6477
6478         * tree-ssa-loop-ivcanon.c: Include target.h
6479         (struct loop_size): new structure.
6480         (constant_after_peeling): New predicate.
6481         (tree_estimate_loop_size): New function.
6482         (estimated_unrolled_size): Rewrite for new estimates.
6483         (try_unroll_loop_completely): Use new estimates.
6484         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
6485
6486 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6487
6488         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
6489         libcpp interface change.
6490         (spu_macro_to_expand): Likewise.
6491
6492 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
6493
6494         PR tree-optimization/40026
6495         * gimplify.c (gimplify_init_constructor): Change initial conditional
6496         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
6497         optimize_compound_literals_in_ctor.
6498
6499 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
6500
6501         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
6502         New devices.
6503         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
6504
6505 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
6506
6507         * tree-vect-data-refs.c (vect_analyze_group_access): Use
6508         HOST_WIDE_INT for gap.
6509
6510 2009-05-11  Ira Rosen  <irar@il.ibm.com>
6511
6512         PR tree-optimization/40074
6513         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6514         account in group size and step comparison.
6515
6516 2009-05-11  Richard Guenther  <rguenther@suse.de>
6517
6518         * passes.c (init_optimization_passes): Strip now incorrect comment.
6519         (execute_function_todo): Do not set PROP_alias.
6520         * tree-pass.h (PROP_alias): Remove.
6521         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6522         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6523         * tree-nrv.c (pass_return_slot): Likewise.
6524         * tree-object-size.c (pass_object_sizes): Likewise.
6525         * tree-ssa-dom.c (pass_dominator): Likewise.
6526         (pass_phi_only_cprop): Likewise.
6527         * tree-ssa-dse.c (pass_dse): Likewise.
6528         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6529         (pass_cselim): Likewise.
6530         * tree-ssa-pre.c (pass_pre): Likewise.
6531         (pass_fre): Likewise.
6532         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6533         * tree-ssa-sink.c (pass_sink_code): Likewise.
6534         * tree-stdarg.c (pass_stdarg): Likewise.
6535         * tree-tailcall.c (pass_tail_calls): Likewise.
6536         * tree-vrp.c (pass_vrp): Likewise.
6537
6538 2009-05-10  Ian Lance Taylor  <iant@google.com>
6539
6540         * basic-block.h (enum profile_status): Break out of struct
6541         control_flow_graph.
6542         * cgraph.h (struct inline_summary): Break out of struct
6543         cgraph_local_info.
6544         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6545         of struct cgraph_order_sort.
6546         * combine.c (enum undo_kind): New enum, broken out of struct undo.
6547         * cse.c (struct branch_path): Break out of struct
6548         cse_basic_block_data.
6549         * except.h (enum eh_region_type): Break out of struct eh_region.
6550         * gcc.c (enum add_del): Break out of struct modify_target.
6551         * genrecog.c (enum decision_type): Break out of struct decision_test.
6552         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6553         ggc_pch_data.
6554         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6555         * regmove.c (enum match_use): New enum, broken out of struct match.
6556         * sched-int.h (enum post_call_group): New enum, broken out of
6557         struct deps.
6558         (struct deps_reg): Break out of struct deps.
6559         * target.h (struct asm_int_op): Break out of struct gcc_target.
6560         * tree-eh.c (struct goto_queue_node): Break out of struct
6561         leh_tf_state.
6562         * tree-inline.h (enum copy_body_cge_which): Break out of
6563         copy_body_data.
6564         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6565
6566         * c-decl.c (in_struct, struct_types): New static variables.
6567         (pushtag): Add loc parameter.  Change all callers.
6568         (lookup_tag): Add ploc parameter.  Change all callers.
6569         (check_compound_literal_type): New function.
6570         (parser_xref_tag): Add loc parameter.  Change all callers.  If
6571         -Wc++-compat, warn about struct/union/enum types defined within a
6572         struct or union.
6573         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6574         and loc parameters.  Change all callers.  Change error calls to
6575         error_at, using loc.  For a redefinition, if the location of the
6576         original definition is known, report it.  Set in_struct and
6577         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
6578         (finish_struct): Add new parameters enclosing_in_struct and
6579         enclosing_struct_types.  Change all callers.  Set
6580         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6581         in the struct.  If in a struct, add this struct to struct_types.
6582         (start_enum): Add loc parameter.  Change all callers.  Use
6583         error_at for errors, using loc.  For a redefinition, if the
6584         location of the original definition is known, report it.  If in a
6585         struct, add this enum type to struct_types.  If -Wc++-compat warn
6586         if in sizeof, typeof, or alignof.
6587         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6588         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
6589         (c_parser_enum_specifier): Get enum location for start_enum.
6590         (c_parser_struct_or_union_specifier): Get struct location for
6591         start_struct.  Save in_struct and struct_types status between
6592         start_struct and finish_struct.
6593         (c_parser_cast_expression): Get location of cast.
6594         (c_parser_alignof_expression): Get location of type.
6595         (c_parser_postfix_expression): Likewise.
6596         (c_parser_postfix_expression_after_paren_type): Add type_loc
6597         parameter.  Change all callers.  Call check_compound_literal_type.
6598         Use type_loc for error about variable size type.
6599         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6600         of an enum constant from an enum type defined in a struct or union.
6601         (c_cast_expr): Add loc parameter.  Change all callers.  If
6602         -Wc++-compat, warn about defining a type in a cast.
6603         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6604         (start_enum, start_struct, finish_struct): Update declarations.
6605         (parser_xref_tag, c_cast_expr): Update declarations.
6606         (check_compound_literal_type): Declare.
6607
6608 2009-05-11  Ben Elliston  <bje@au.ibm.com>
6609
6610         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6611         for recent libcpp interface change.
6612         (rs6000_macro_to_expand): Likewise.
6613
6614 2009-05-10  Michael Matz  <matz@suse.de>
6615
6616         PR target/40031
6617         * config/arm/arm.c (require_pic_register): Emit on entry edge,
6618         not at entry of function.
6619
6620 2009-05-10  Richard Guenther  <rguenther@suse.de>
6621
6622         PR tree-optimization/40081
6623         Revert
6624         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6625         using the main variant of the element type.  Do not fiddle with
6626         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6627
6628         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6629         structs with volatile fields.
6630
6631 2009-05-10  Jan Hubicka  <jh@suse.cz>
6632
6633         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6634         (estimate_move_cost): Assert that it does not get called for
6635         VOID_TYPE_P.
6636         (estimate_num_insns): Skip VOID types in argument handling.
6637         (optimize_inline_calls): Delete unreachable blocks and verify that
6638         callgraph is valid.
6639
6640 2009-05-10  Jan Hubicka  <jh@suse.cz>
6641
6642         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6643         * cgraph.c (cgraph_mark_address_taken_node): New function.
6644         (dump_cgraph_node): Dump new flag.
6645         * cgraph.h (struct cgraph_node): Add address_taken.
6646         (cgraph_mark_address_taken_node): New function.
6647         * ipa.c (cgraph_postorder): Prioritize functions with address taken
6648         since new direct calls can be born.
6649
6650 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6651
6652         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6653         tok->val.node.node.
6654
6655 2009-05-10  Jan Hubicka  <jh@suse.cz>
6656
6657         PR middle-end/40084
6658         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6659         argument; rewrite.
6660         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6661         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6662         * tree-inline.c (copy_bb): Set frequency correctly.
6663         (fold_marked_statements): Update call to
6664         cgraph_update_edges_for_call_stmt.
6665
6666 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6667
6668         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6669         identifiers in diagnostics.
6670         * config/arm/arm.c (arm_handle_fndecl_attribute,
6671         arm_handle_isr_attribute): Likewise.
6672         * config/avr/avr.c (avr_handle_progmem_attribute,
6673         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
6674         * config/bfin/bfin.c (handle_int_attribute,
6675         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6676         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6677         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6678         Likewise.
6679         * config/darwin.c (darwin_handle_kext_attribute,
6680         darwin_handle_weak_import_attribute): Likewise.
6681         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6682         h8300_handle_eightbit_data_attribute,
6683         h8300_handle_tiny_data_attribute): Likewise.
6684         * config/i386/i386.c (ix86_handle_cconv_attribute,
6685         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
6686         * config/i386/winnt.c (ix86_handle_shared_attribute,
6687         ix86_handle_selectany_attribute): Likewise.
6688         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6689         * config/m32c/m32c.c (function_vector_handler): Likewise.
6690         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6691         m68hc11_handle_fntype_attribute): Likewise.
6692         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6693         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6694         * config/mips/mips.c (mips_insert_attributes,
6695         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6696         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6697         rs6000_handle_struct_attribute): Likewise.
6698         * config/sh/sh.c (sh_insert_attributes,
6699         sh_handle_resbank_handler_attribute,
6700         sh_handle_interrupt_handler_attribute,
6701         sh2a_handle_function_vector_handler_attribute,
6702         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6703         Likewise.
6704         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6705         * config/spu/spu.c (spu_handle_fndecl_attribute,
6706         spu_handle_vector_attribute): Likewise.
6707         * config/stormy16/stormy16.c
6708         (xstormy16_handle_interrupt_attribute): Likewise.
6709         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6710         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6711
6712 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6713
6714         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
6715         (pp_translate_identifiers): New.
6716         (pp_identifier): Only conditionally translate identifier to locale
6717         character set.
6718         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6719         (pp_base_tree_identifier): Only conditionally translate identifier
6720         to locale character set.
6721         * c-pretty-print.c (M_): Define.
6722         (pp_c_type_specifier, pp_c_primary_expression): Mark English
6723         fragments for conditional translation with M_.
6724         * tree-pretty-print.c (maybe_init_pretty_print): Disable
6725         identifier translation.
6726
6727 2009-05-10  Richard Guenther  <rguenther@suse.de>
6728
6729         PR tree-optimization/40081
6730         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6731         using the main variant of the element type.  Do not fiddle with
6732         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6733
6734 2009-05-09  Jan Hubicka  <jh@suse.cz>
6735
6736         PR middle-end/40080
6737         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6738         indirect calls; verify cgraph afterwards.
6739
6740 2009-05-09  Jan Hubicka  <jh@suse.cz>
6741
6742         PR bootstrap/40082
6743         * ipa.c (update_inlined_to_pointer): New function.
6744         (cgraph_remove_unreachable_nodes): Use it.
6745
6746 2009-05-09  Jan Hubicka  <jh@suse.cz>
6747
6748         * tree-eh.c (struct leh_state): Remove prev_try.
6749         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6750         not track prev_try.
6751         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
6752         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6753         remove_eh_handler_and_replace, foreach_reachable_handler,
6754         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6755         * except.h (struct eh_region): Remove eh_region_u_cleanup.
6756         (gen_eh_region_cleanup): Update prototype.
6757
6758 2009-05-09  Jan Hubicka  <jh@suse.cz>
6759
6760         PR middle-end/40043
6761         * except.c (copy_eh_region): Always set prev_try.
6762         (redirect_eh_edge_to_label): Find outer try.
6763         (foreach_reachable_handler): When looking for prev try
6764         handle case where previous try is not going to be taken.
6765
6766 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6767
6768         PR tree-optimization/40049
6769         * tree-vect-stmts.c (vectorizable_operation): If the machine has
6770         only vector/vector shifts, convert the type of the constant to the
6771         appropriate type to avoid building incorrect trees, which
6772         eventually have problems with garbage collection.
6773
6774 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6775
6776         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6777         -1 for complex floating-point types if honoring signed zeros.
6778
6779 2009-05-08  Jan Hubicka  <jh@suse.cz>
6780
6781         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6782         argument; handle correctly when profile is absent.
6783         (build_cgraph_edges): Update.
6784         (rebuild_cgraph_edges): Update.
6785         * cgraph.c: Do not include varray.h.
6786         (cgraph_set_call_stmt_including_clones): New function.
6787         (cgraph_create_edge_including_clones): Likewise
6788         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
6789         (cgraph_update_edges_for_call_stmt): Handle clones.
6790         (cgraph_remove_node): Handle clone tree.
6791         (cgraph_remove_node_and_inline_clones): New function.
6792         (dump_cgraph_node): Dump clone tree.
6793         (cgraph_clone_node): Handle clone tree.
6794         (clone_function_name): Bring here from tree-inline.c.
6795         (cgraph_create_virtual_clone): New function.
6796         * cgraph.h (ipa_replace_map): Move here from ipa.h.
6797         (cgraph_clone_info): New function.
6798         (strut cgraph_node): Add clone_info and new clone tree pointers.
6799         (cgraph_remove_node_and_inline_clones,
6800         cgraph_set_call_stmt_including_clones,
6801         cgraph_create_edge_including_clones,
6802         cgraph_create_virtual_clone): Declare.
6803         (cgraph_function_versioning): Use VEC argument.
6804         (compute_call_stmt_bb_frequency): Update prototype.
6805         (cgraph_materialize_all_clones): New function.
6806         * ipa-cp.c (ipcp_update_cloned_node): Remove.
6807         (ipcp_create_replace_map): Update to VECtors.
6808         (ipcp_update_callgraph): Use virtual clones.
6809         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6810         (ipcp_update_profiling): Do not update local profiling.
6811         (ipcp_insert_stage): Use VECtors and virtual clones.
6812         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6813         (clone_of_p): New function.
6814         (cgraph_preserve_function_body_p): Use clone tree.
6815         (cgraph_optimize): Materialize clones.
6816         (cgraph_function_versioning): Update for VECtors.
6817         (save_inline_function_body): Use clone tree.
6818         (cgraph_materialize_clone): New function.
6819         (cgraph_materialize_all_clones): Likewise.
6820         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6821         * ipa.c: Include gimple.h.
6822         (cgraph_remove_unreachable_nodes): Use clone tree.
6823         * ipa-prop.c (ipa_note_param_call): Update call to
6824         compute_call_stmt_bb_frequencycall.
6825         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
6826         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
6827         (copy_bb): Handle updating of clone tree; add new edge when new call
6828         appears.
6829         (expand_call_inline): Be strict about every call having edge.
6830         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6831         (delete_unreachable_blocks_update_callgraph): New function.
6832         (tree_function_versioning): Use VECtors; always remove unreachable
6833         blocks and fold conditionals.
6834         * tree-inline.h: Do not include varray.h.
6835         (tree_function_versioning): Remove.
6836         * Makefile.in (GTFILES): Remove tree-inline.c
6837         * passes.c (do_per_function): Do only functions having body.
6838         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6839         tree.
6840
6841 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
6842             Andrew Morrow  <acm@google.com>
6843
6844         PR c/36892
6845         * c-common.c (c_common_attribute_table): Permit deprecated
6846         attribute to take an optional argument.
6847         (handle_deprecated_attribute): If the optional argument to
6848         __attribute__((deprecated)) is not a string ignore the attribute
6849         and emit a warning.
6850
6851         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6852         * c-typeck.c (build_component_ref): Likewise.
6853         (build_external_ref): Likewise.
6854
6855         * toplev.c (warn_deprecated_use): Add an attribute argument.
6856         Emit the message associated with __attribute__((deprecated)).
6857
6858         * toplev.h (warn_deprecated_use): Updated.
6859
6860         * doc/extend.texi: Document new optional parameter to
6861         __attribute__((deprecated))
6862
6863 2009-05-08  Michael Eager <eager@eagercon.com>
6864
6865         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6866         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6867
6868 2009-05-08  Richard Guenther  <rguenther@suse.de>
6869
6870         PR tree-optimization/40062
6871         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6872         Avoid exponential behavior.
6873
6874 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6875
6876         PR rtl-optimization/33928
6877         PR 26854
6878         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6879         process_uses, build_single_def_use_links): New.
6880         (update_df): Update use_def_ref.
6881         (forward_propagate_into): Use get_def_for_use instead of use-def
6882         chains.
6883         (fwprop_init): Call build_single_def_use_links and let it initialize
6884         dataflow.
6885         (fwprop_done): Free use_def_ref.
6886         (fwprop_addr): Eliminate duplicate call to df_set_flags.
6887         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
6888         df_rd_simulate_one_insn): New.
6889         (df_rd_bb_local_compute_process_def): Update head comment.
6890         (df_chain_create_bb): Use the new RD simulation functions.
6891         * df.h (df_rd_simulate_artificial_defs_at_top, 
6892         df_rd_simulate_one_insn): New.
6893         * opts.c (decode_options): Enable fwprop at -O1.
6894         * doc/invoke.texi (-fforward-propagate): Document this.
6895
6896 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6897
6898         PR c/24581
6899         * c-typeck.c (build_binary_op): Handle arithmetic between one real
6900         and one complex operand specially.
6901         * tree-complex.c (some_nonzerop): Do not identify a real value as
6902         zero if flag_signed_zeros.
6903
6904 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6905
6906         PR rtl-optimization/33928
6907         * loop-invariant.c (record_use): Fix && vs. || mishap.
6908
6909 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6910
6911         PR rtl-optimization/33928
6912         * loop-invariant.c (struct use): Add addr_use_p.
6913         (struct def): Add n_addr_uses.
6914         (struct invariant): Add cheap_address.
6915         (create_new_invariant): Set cheap_address.
6916         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
6917         (record_uses): Pass df_ref to record_use.
6918         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6919         used only as such.
6920
6921 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6922
6923         * config/sh/sh.c: Do not include c-pragma.h.
6924
6925 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6926
6927         * config/spu/spu.c: Remove include of c-common.h.
6928
6929 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
6930
6931         PR c/39037
6932         * c-common.h (mark_valid_location_for_stdc_pragma,
6933         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6934         clear_float_const_decimal64, float_const_decimal64_p): New.
6935         * c.opt (Wunsuffixed-float-constants): New.
6936         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6937         unsuffixed float constant, handle new warning.
6938         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6939         * c-decl.c (c_scope): New flag float_const_decimal64.
6940         (set_float_const_decimal64, clear_float_const_decimal64,
6941         float_const_decimal64_p): New.
6942         (push_scope): Set new flag.
6943         * c-parser.c (c_parser_translation_unit): Mark when it's valid
6944         to use STDC pragmas.
6945         (c_parser_external_declaration): Ditto.
6946         (c_parser_compound_statement_nostart): Ditto.
6947         * c-pragma.c (valid_location_for_stdc_pragma,
6948         mark_valid_location_for_stdc_pragma,
6949         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6950         handle_pragma_float_const_decimal64): New.
6951         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6952         * cp/semantics.c (valid_location_for_stdc_pragma_p,
6953         set_float_const_decimal64, clear_float_const_decimal64,
6954         float_const_decimal64_p): New dummy functions.
6955         * doc/extend.texi (Decimal Float): Remove statement that the
6956         pragma, and suffix for double constants, are not supported.
6957         * doc/invoke.texi (Warning Options): List new option.
6958         (-Wunsuffixed-float-constants): New.
6959
6960 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
6961
6962         * config/i386/i386.c: Do not include c-common.h.
6963
6964 2009-05-07  Mark Heffernan  <meheff@google.com>
6965
6966         * doc/invoke.texi (Debugging Options): Document change of debugging
6967         dump location.
6968         * opts.c (decode_options): Make dump_base_name relative to
6969         aux_base_name directory.
6970
6971 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
6972
6973         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6974         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6975
6976 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
6977
6978         * Makefile.in (install-plugin): Simplify a bit.
6979
6980 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
6981
6982         * Makefile.in (OBJS-common): Add regcprop.o.
6983         (regcprop.o): New.
6984         * timevar.def (TV_CPROP_REGISTERS): New.
6985         * regrename.c (regrename_optimize): Return 0.
6986         (rest_of_handle_regrename): Delete.
6987         (pass_rename_registers): Point to regrename_optimize.
6988         (struct value_data_entry, struct value_data, 
6989         kill_value_one_regno, kill_value_regno, kill_value,
6990         set_value_regno, init_value_data, kill_clobbered_value,
6991         kill_set_value, kill_autoinc_value, copy_value,
6992         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6993         replace_oldest_value_reg, replace_oldest_value_addr,
6994         replace_oldest_value_mem, copyprop_hardreg_forward_1,
6995         debug_value_data, validate_value_data): Move...
6996         * regcprop.c: ... here.
6997         (rest_of_handle_cprop): Delete.
6998         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6999
7000 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
7001
7002         PR middle-end/40057
7003         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
7004         GEN_INT for 1 << bitnum.
7005         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
7006         build_int_cst_type.
7007
7008 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
7009
7010         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7011         Remove wrong description of "nand" operation.
7012
7013 2009-05-06  Richard Guenther  <rguenther@suse.de>
7014             Adam Nemet  <anemet@caviumnetworks.com>
7015
7016         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
7017         comment.  Add that if LHS is not a gimple register, then RHS1 has
7018         to be a single object (GIMPLE_SINGLE_RHS).
7019
7020 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
7021
7022         * expr.c (get_def_for_expr): Move it up in the file.
7023         (store_field): When expanding a bit-field store, look at the
7024         defining gimple stmt for the masking conversion.
7025
7026 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
7027
7028         PR middle-end/39986
7029         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
7030         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
7031         32-bit memcpy into long.
7032
7033 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
7034
7035         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
7036         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
7037         new_reg_loc_descr.
7038         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
7039         instead of appending DW_OP_deref*.
7040
7041 2009-05-06  Michael Matz  <matz@suse.de>
7042
7043         PR middle-end/40021
7044         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
7045         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
7046
7047 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
7048
7049         * Makefile.in (install-plugin): Fix srcdir handling.
7050
7051 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
7052
7053         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
7054         when processing for not_regs_needed bitmap.
7055         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
7056         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
7057         handling it for rhs. 
7058
7059 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7060
7061         * config/i386/i386.md (unnamed inc/dec peephole): Use
7062         optimize_insn_for_size_p instead of optimize_size.
7063         * config/i386/predicates.md (incdec_operand): Likewise.
7064         (aligned_operand): Likewise.
7065         * config/i386/sse.md (divv8sf3): Likewise.
7066         (sqrtv8sf2): Likewise.
7067
7068 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7069
7070         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
7071
7072         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
7073
7074 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7075
7076         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
7077         ssemodesuffixf2c with avxmodesuffixf2c.
7078
7079 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
7080
7081         PR c/40032
7082         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
7083
7084 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
7085
7086         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
7087         (struct tree_base): Adjust spacing for 8 bit boundaries.
7088         (struct tree_decl_common): Add decl_by_reference_flag bit.
7089         (DECL_BY_REFERENCE): Adjust.
7090         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
7091         print DECL_BY_REFERENCE bit.
7092         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
7093         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
7094         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
7095         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
7096         unconditionally.
7097
7098         PR middle-end/39666
7099         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
7100         range of the type, but default label is missing, add it with one
7101         of the existing labels instead of adding a new label for it.
7102
7103 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
7104
7105         * dwarf.h: Remove.
7106
7107 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
7108
7109         * Makefile.in (enable_plugin, plugin_includedir): New.
7110         (install): Depend on install-plugin.
7111         (PLUGIN_HEADERS): New.
7112         (install-plugin): New.
7113         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
7114
7115 2009-05-05  Richard Guenther  <rguenther@suse.de>
7116
7117         PR tree-optimization/40022
7118         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
7119         the only vuse.
7120         (phivn_valid_p): Fix tuplification error, simplify.
7121         (phiprop_insert_phi): Add dumps.
7122         (propagate_with_phi): Simplify.
7123
7124 2009-05-05  Richard Guenther  <rguenther@suse.de>
7125
7126         PR middle-end/40023
7127         * builtins.c (gimplify_va_arg_expr): Properly build the address.
7128
7129 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
7130
7131         * tree.h (strip_float_extensions): Remove duplicate declaration.
7132         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
7133         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
7134         block_ultimate_origin): Rearrange the declarations line to match the
7135         comment that indicates the .c file which the functions are defined.
7136         (dwarf2out_*, set_decl_rtl): Add comment.
7137         (get_base_address): Adjust comment.
7138         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
7139         declarations line and add comment.
7140         (is_builtin_name): Add blank after function name, for clarity.
7141
7142 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7143
7144         * attribs.c (decl_attributes): Use %qE for identifiers in
7145         diagnostics.
7146         * cgraphunit.c (verify_cgraph_node): Translate function names to
7147         locale character set in diagnostics.
7148         * coverage.c (get_coverage_counts): Use %qE for identifiers in
7149         diagnostics.
7150         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
7151         Document that functions are named in UTF-8.
7152         * expr.c (expand_expr_real_1): Translate function names to locale
7153         character set in diagnostics.
7154         * gimplify.c (omp_notice_variable, omp_is_private,
7155         gimplify_scan_omp_clauses): Use %qE for identifiers in
7156         diagnostics.
7157         * langhooks.c (lhd_print_error_function): Translate function names
7158         to locale character set.
7159         * langhooks.h (decl_printable_name): Document that return value is
7160         in internal character set.
7161         * stmt.c: Include pretty-print.h
7162         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
7163         diagnostics.
7164         (resolve_operand_name_1): Translate named operand name to locale
7165         character set.
7166         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
7167         diagnostics.
7168         * toplev.c (announce_function): Translate function names to locale
7169         character set.
7170         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
7171         (default_tree_printer): Use pp_identifier or translate identifiers
7172         to locale character set.  Mark "<anonymous>" for translation.
7173         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
7174         for identifiers in diagnostics.
7175         * tree.c (handle_dll_attribute): Use %qE for identifiers in
7176         diagnostics.
7177         * varasm.c (output_constructor): Use %qE for identifiers in
7178         diagnostics.
7179
7180 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
7181
7182         * configure.ac: use ` ` instead of $()
7183         * configure: Regenerate.
7184
7185 2009-05-05  Ben Elliston  <bje@au.ibm.com>
7186
7187         * config/pa/linux-atomic.c: Eliminate conditional include of
7188         errno.h on non-LP64 systems to simplify build requirements.
7189
7190 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7191
7192         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
7193         diagnostics.
7194         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
7195         and pass value to identifier_to_locale.
7196         (warn_variable_length_array): Make name a tree.
7197         (grokdeclarator): Separate diagnostic texts for named and unnamed
7198         declarators.  Use %qE for named declarators.
7199         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
7200         diagnostics.
7201         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
7202         identifiers in diagnostics.
7203         * c-typeck.c (push_member_name, start_init): Pass identifiers to
7204         identifier_to_locale.  Mark "anonymous" strings for translation.
7205
7206 2009-05-04  Michael Eager <eager@eagercon.com>
7207
7208         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
7209         address for DImode/DFmode only if double-precision FP regs.
7210
7211 2009-05-04  Michael Eager <eager@eagercon.com>
7212
7213         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
7214         TARGET_SINGLE_FLOAT check.
7215
7216 2009-05-04  Michael Eager <eager@eagercon.com>
7217
7218         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
7219
7220 2009-05-04  Michael Eager <eager@eagercon.com>
7221
7222         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
7223         * config/rs6000/t-xilinx: New
7224
7225 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
7226
7227         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
7228         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
7229         * gcc/explow.c (memory_address): Use target hook.
7230         * gcc/targhooks.c (default_legitimize_address): New.
7231         * gcc/targhooks.h (default_legitimize_address): New.
7232         * gcc/target.h (legitimize_address): New.
7233         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
7234         (TARGET_INITIALIZER): Include it.
7235         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
7236
7237         * config/bfin/bfin-protos.h (legitimize_address): Remove.
7238         * config/bfin/bfin.c (legitimize_address): Remove.
7239         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
7240         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
7241         Remove.
7242         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
7243         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
7244
7245         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
7246         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
7247         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
7248         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
7249         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
7250         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
7251         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
7252         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
7253         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
7254         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
7255         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
7256         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
7257         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
7258         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
7259         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
7260         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
7261         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
7262         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
7263         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
7264         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
7265         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
7266         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
7267         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
7268
7269         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
7270         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
7271         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
7272         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
7273         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
7274         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
7275         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
7276         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
7277         (thumb_legitimize_address): Delete.
7278         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
7279         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
7280         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
7281         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
7282         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
7283         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
7284         Delete.
7285         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
7286         Delete.
7287
7288         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
7289         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
7290         * config/m32r/m32r.c (m32r_legitimize_address): New.
7291         * config/m68k/m68k.c (m68k_legitimize_address): New.
7292         * config/score/score.c (score_legitimize_address): Standardize.
7293         * config/score/score3.c (score3_legitimize_address): Standardize.
7294         * config/score/score3.h (score3_legitimize_address): Adjust.
7295         * config/score/score7.c (score7_legitimize_address): Standardize.
7296         * config/score/score7.h (score7_legitimize_address): Adjust.
7297         * config/sh/sh.c (sh_legitimize_address): New.
7298         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
7299
7300         * gcc/config/s390/s390.c (legitimize_address): Rename to...
7301         (s390_legitimize_address): ... this.
7302         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
7303         (sparc_legitimize_address): ... this.
7304         * gcc/config/i386/i386.c (legitimize_address): Rename to...
7305         (ix86_legitimize_address): ... this.
7306         * gcc/config/avr/avr.c (legitimize_address): Rename to...
7307         (avr_legitimize_address): ... this.
7308         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
7309         (mn10300_legitimize_address): ... this.
7310         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
7311         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
7312         (alpha_expand_mov): Adjust call.
7313
7314         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
7315         * config/spu/spu.c (spu_legitimize_address): Likewise.
7316         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
7317         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
7318
7319 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
7320
7321         * intl.c (locale_encoding, locale_utf8): New.
7322         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
7323         * intl.h (locale_encoding, locale_utf8): Declare.
7324         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
7325         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
7326         New.
7327         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
7328         argument.
7329         (pp_tree_identifier): Define to call pp_base_tree_identifier.
7330         (pp_base_tree_identifier): Declare as function.
7331         (identifier_to_locale): Declare.
7332         * Makefile.in (pretty-print.o): Update dependencies.
7333         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
7334
7335 2009-05-04  Richard Guenther  <rguenther@suse.de>
7336
7337         PR middle-end/40015
7338         * builtins.c (fold_builtin_memory_op): Do not decay to element
7339         type if the size matches the whole array.
7340
7341 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
7342
7343         * expmed.c (synth_mult): When trying out a shift, pass the result
7344         of a signed shift.
7345
7346 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
7347
7348         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
7349         (shiftsub1_cost): New.
7350         (init_expmed): Compute shiftsub1_cost.
7351         (synth_mult): Optimize multiplications by constants of the form
7352         -(2^^m-1) for some constant positive integer m.
7353
7354 2009-05-03  Richard Guenther  <rguenther@suse.de>
7355
7356         PR c/39983
7357         * c-typeck.c (array_to_pointer_conversion): Do not built
7358         ADDR_EXPRs of arrays of pointer-to-element type.
7359         * c-gimplify.c (c_gimplify_expr): Revert change fixing
7360         up wrong ADDR_EXPRs after-the-fact.
7361         * c-common.c (strict_aliasing_warning): Strip pointer
7362         conversions for obtaining the original type.
7363         * builtins.c (fold_builtin_memset): Handle array types.
7364         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
7365         and array types
7366
7367 2009-05-03  Richard Guenther  <rguenther@suse.de>
7368
7369         PR middle-end/23329
7370         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
7371         Do not lose casts from array types with unknown extent to array
7372         types with known extent.
7373         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
7374         alias set compatibility.
7375
7376 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7377
7378         * flags.h (extra_warnings): Delete.
7379         * toplev.c (process_options): Handle Wuninitialized here.
7380         * opts.c (extra_warnings): Delete.
7381         (set_Wextra): Delete.
7382         (common_handle_option): -Wextra can be handled automatically.
7383         * c-opts.c (c_common_handle_option): Delete obsolete code.
7384         (c_common_post_options): Simplify comment.
7385         * common.opt (W): Add Var.
7386         (Wextra): Add Var.
7387         (Wuninitialized): Initialize to -1.
7388
7389 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
7390             Richard Guenther  <rguenther@suse.de>
7391
7392         * expr.c (get_def_for_expr): New function.
7393         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
7394         SSA rather than trees.
7395         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
7396         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
7397         
7398 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
7399
7400         * c-common.c (reswords): Add _Imaginary.
7401         * c-common.c (enum rid): Add RID_IMAGINARY.
7402
7403 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
7404
7405         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
7406         Patch by Richard Guenther.
7407
7408 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
7409
7410         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
7411         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7412         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
7413         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
7414         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
7415         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
7416         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
7417         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
7418         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
7419         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
7420         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
7421         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
7422         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
7423         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
7424         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
7425         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
7426         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
7427         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
7428
7429 2009-05-02  Richard Guenther  <rguenther@suse.de>
7430
7431         PR tree-optimization/39940
7432         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
7433         doing so.
7434
7435 2009-05-02  Richard Guenther  <rguenther@suse.de>
7436
7437         PR middle-end/40001
7438         * tree-ssa.c (execute_update_addresses_taken): Properly check
7439         if we can mark a variable DECL_GIMPLE_REG_P.
7440         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
7441         back to the end of the function.
7442         (is_gimple_reg_type): Remove complex type special casing.
7443         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
7444         if not optimizing.
7445
7446 2009-05-02  Ben Elliston  <bje@au.ibm.com>
7447
7448         * doc/collect2.texi (Collect2): Document search path behaviour
7449         when configured with --with-ld.
7450
7451 2009-05-02  Jan Hubicka  <jh@suse.cz>
7452
7453         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
7454         parameter; update callers.
7455         (coalesce_cost_edge): EH edges are costier because they needs
7456         splitting even if not critical and even more costier when there are
7457         multiple EH predecestors.
7458
7459 2009-05-02  Jan Hubicka  <jh@suse.cz>
7460
7461         * except.c (remove_eh_handler_and_replace): Handle updating after
7462         removing TRY blocks.
7463
7464 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
7465
7466         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
7467
7468 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
7469
7470         * varasm.c: Do not include c-pragma.h.
7471         * attribs.c: Do not incude c-common.h.
7472
7473 2009-05-01  Michael Matz  <matz@suse.de>
7474
7475         * calls.c (initialize_argument_information): Handle SSA names like
7476         decls with a non MEM_P DECL_RTL.
7477
7478 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7479
7480         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
7481         * ipa-utils.c: Likewise.
7482         * ipa-type-escape.c: Likewise.
7483         * cgraphunit.c Do not include c-common.h.
7484         * ipa-pure-const.c: Likewise.
7485         * tree-if-conv.c: Likewise.
7486         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
7487         * ipa-struct-reorg.c: Likewise.
7488         * tree-nomudflap.c: Likewise.
7489         * tree-ssa-structalias.c: Likewise.
7490
7491 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7492
7493         * store-motion.c: Many cleanups to make this pass a first-class
7494         citizen instead of an appendix to gcse load motion.  Add TODO list
7495         to make this pass faster/cleaner/better.
7496
7497         (struct ls_expr): Post gcse.c-split cleanups.
7498         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
7499         "stores" field to "avail_stores".
7500         (pre_ldst_mems): Rename to store_motion_mems.
7501         (pre_ldst_table): Rename to store_motion_mems_table.
7502         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
7503         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
7504         (ldst_entry): Rename to st_expr_entry, update users.
7505         (free_ldst_entry): Rename to free_st_expr_entry, update users.
7506         (free_ldst_mems): Rename to free_store_motion_mems, update users.
7507         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7508         update caller.
7509         (first_ls_expr): Rename to first_st_expr, update users.
7510         (next_ls_expr): Rename to next_st_expr, update users.
7511         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
7512         fields properly for store motion instead of names inherited from load
7513         motion in gcse.c.
7514         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7515         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
7516         are done with it.
7517
7518         (ae_kill): Rename to st_kill, update users.
7519         (ae_gen): Rename to st_avloc, update users.
7520         (transp): Rename to st_transp, update users.
7521         (pre_insert_map): Rename to st_insert_map, update users.
7522         (pre_delete_map): Rename to st_delete_map, update users.
7523         (insert_store, build_store_vectors, free_store_memory,
7524         one_store_motion_pass): Update for abovementioned changes.
7525
7526         (gcse_subst_count, gcse_create_count): Remove.
7527         (one_store_motion_pass): New statistics counters "n_stores_deleted"
7528         and "n_stores_created", local variables.
7529
7530         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7531         use for_each_rtx.
7532
7533         (regvec, compute_store_table_current_insn): Remove.
7534         (reg_set_info, reg_clear_last_set): Remove.
7535         (compute_store_table): Use DF caches instead of local dataflow
7536         solvers.
7537
7538 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
7539
7540         * c-objc-common.c (c_tree_printer): Print identifiers with
7541         pp_identifier, not pp_string.  Mark "({anonymous})" for
7542         translation.
7543         * c-pretty-print.c (pp_c_ws_string): New.
7544         (pp_c_cv_qualifier, pp_c_type_specifier,
7545         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7546         pp_c_storage_class_specifier, pp_c_function_specifier,
7547         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7548         pp_c_primary_expression, pp_c_postfix_expression,
7549         pp_c_unary_expression, pp_c_shift_expression,
7550         pp_c_relational_expression, pp_c_equality_expression,
7551         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7552         use pp_string and pp_c_ws_string in place of pp_identifier and
7553         pp_c_identifier for non-identifiers.  Mark English strings for
7554         translation.
7555         * c-pretty-print.h (pp_c_ws_string): Declare.
7556
7557 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
7558             Roland McGrath <roland@redhat.com>
7559
7560         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
7561         (ENABLE_LD_BUILDID): New configuration option.
7562         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7563         (LINK_BUILDID_SPEC): New macro.
7564         (init_spec): If defined, prepend it between LINK_EH_SPEC and
7565         link_spec.
7566         * doc/install.texi: Document --enable-linker-build-id option.
7567         * configure: Rebuild.
7568         * config.in: Rebuild.
7569
7570 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
7571
7572         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7573         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7574         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
7575         MIPS_GP_SAVE_AREA_SIZE.
7576         * config/mips/mips.c (struct mips_frame_info): Update comment
7577         before arg_pointer_offset and hard_frame_pointer_offset.
7578         (mips_compute_frame_info): Update diagram before function: to
7579         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7580         indicate the position of frame_pointer_rtx with -fstack-protector and
7581         to show args_size.  Don't allocate cprestore area for leaf functions
7582         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
7583         cprestore_size.
7584         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7585
7586 2009-04-30  Michael Matz  <matz@suse.de>
7587
7588         PR tree-optimization/39955
7589         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
7590
7591 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
7592
7593         * ira.c (setup_cover_and_important_classes):  Use safe macro
7594         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7595         directly.
7596         * genpreds.c (write_tm_preds_h):  Output suitable definition of
7597         REG_CLASS_FOR_CONSTRAINT.
7598
7599 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7600
7601         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7602         instead of an int.
7603         * bitmap.c (bitmap_descriptor): Likewise.
7604         * ggc-common.c (loc_descriptor): Likewise.
7605         * varray.c (varray_descriptor): Likewise.
7606         * vec.c (vec_descriptor): Likewise.
7607
7608 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
7609
7610         * Makefile.in (dce.o): Add $(EXCEPT_H).
7611         * dce.c: Include except.h and delete redundant vector definitions.
7612         (deletable_insn_p): Return false for non-call insns that can throw
7613         if DF is running.
7614
7615 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
7616
7617         * gcse.c (ae_gen): Remove.
7618         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7619         and make non-static function to make it available in store-motion.c.
7620         Update call sites with search-and-replace.
7621         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7622         extract_mentioned_regs, extract_mentioned_regs_helper,
7623         find_moveable_store, compute_store_table, load_kills_store, find_loads,
7624         store_killed_in_insn, store_killed_after, store_killed_before,
7625         build_store_vectors, insert_insn_start_basic_block, insert-store,
7626         remove_reachable_equiv_notes, replace_store_insn, delete_store,
7627         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7628         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7629         * store-motion.c: ...new file.  Also copy data structures from gcse.c
7630         and clean up to remove parts not used by store motion.
7631         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7632         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7633
7634 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7635
7636         PR target/38571
7637         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7638         when optimizing for size.
7639
7640 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
7641
7642         * gcse.c (gcse_constant_p): Fix typo in last change.
7643
7644 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7645
7646         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7647
7648 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7649
7650         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7651
7652 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
7653
7654         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7655         CONST_HIGH_PART result.
7656
7657 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
7658
7659         * config/avr/avr.c (initial_elimination_offset): Rename to
7660         avr_initial_elimination_offset.
7661         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7662         change return type to bool.
7663         (avr_can_eliminate): New function.
7664         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7665         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7666         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
7667         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
7668         avr_initial_elimination_offset.
7669         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7670         (avr_initial_elimination_offset): Define.
7671
7672 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
7673             Steven Bosscher  <steven@gcc.gnu.org>
7674
7675         PR rtl-optimization/39938
7676         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7677         * cfgrtl.c: Include insn-attr.h.
7678         (rest_of_pass_free_cfg): New function.
7679         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7680         * resource.c (init_resource_info): Remove call to df_analyze.
7681
7682 2009-04-29  Richard Guenther  <rguenther@suse.de>
7683
7684         PR target/39943
7685         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7686         allow conversion to signed integers.
7687
7688 2009-04-29  Richard Guenther  <rguenther@suse.de>
7689
7690         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7691         shifts of floating point vectors if the shift amount is
7692         a constant multiple of the element size.
7693
7694 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7695             Michael Matz  <matz@suse.de>
7696
7697         PR middle-end/39927
7698         PR bootstrap/39929
7699         * tree-outof-ssa.c (emit_partition_copy): New function.
7700         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7701         insert_part_to_rtx_on_edge): Perform the partition base var
7702         copy using emit_partition_copy.
7703         (insert_value_copy_on_edge): Convert constants to the right mode.
7704         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7705         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7706
7707 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7708
7709         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7710         scan backwards to try to find a constant to initialize it.
7711
7712         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7713         insn before the loop_end instruction, don't look past labels.
7714
7715 2009-04-29  Richard Guenther  <rguenther@suse.de>
7716
7717         PR middle-end/39937
7718         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7719         loose type conversions.
7720         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
7721         stmts only if there are no uses of its definition.
7722
7723 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7724
7725         * config/bfin/bfin.h (splitting_loops): Declare.
7726         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7727         Reorder bit definitions to be ascending.
7728         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7729         * config/bfin/bfin.c (splitting_loops): New variable.
7730         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7731         (struct loop_info): Remove members INIT and LOOP_INIT.
7732         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
7733         the LSETUP sequence.  Allow LC to be loaded from any register, but
7734         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
7735         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7736         set to 1.
7737         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7738         of reload_completed.
7739
7740         From Jie Zhang:
7741         * config/bfin/bfin.md (movsi_insn): Refine constraints.
7742
7743 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
7744
7745         * Makefile.in (PLUGIN_VERSION_H): New.
7746         (OBJS-common): Remove plugin-version.o.
7747         (plugin.o): Depend on (PLUGIN_VERSION_H).
7748         (plugin-version.o): Remove.
7749         * configure: Regenerate
7750         * configure.ac: Create plugin-version.h.
7751         * gcc-plugin.h (plugin_gcc_version): Remove.
7752         (plugin_default_version_check): Change signature.
7753         * plugin-version.c: Remove.
7754         * plugin.c: Include plugin-version.h.
7755         (str_plugin_gcc_version_name): Remove.
7756         (try_init_one_plugin): Pass gcc version to plugin_init.
7757         (plugin_default_version_check): Both gcc and plugin versions are now
7758         arguments.
7759
7760 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7761         
7762         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7763         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
7764         Remove special case testing for last insn of inner loops. Don't fail
7765         if the loop ends with a jump, emit an extra nop instead.
7766
7767         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7768         DREGS rather than comparing directly.  Remove code that tries to
7769         account for latencies.
7770
7771 2009-04-29  Richard Guenther  <rguenther@suse.de>
7772
7773         PR tree-optimization/39941
7774         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7775         eliminating an indirect call.
7776
7777 2009-04-29  Richard Guenther  <rguenther@suse.de>
7778
7779         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7780         parameter.  Allow invariants as base if !require_lvalue.
7781         (verify_gimple_assign_single): Adjust.
7782
7783 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7784
7785         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7786         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
7787         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7788         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
7789         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7790         a VEC_SELECT.
7791         * config/bfin/bfin.c (bfin_expand_builtin,
7792         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
7793
7794 2009-04-28  Richard Guenther  <rguenther@suse.de>
7795
7796         * tree-vect-loop.c (get_initial_def_for_induction): Use
7797         correct types for pointer increment.
7798
7799 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7800
7801         * toplev.c (print_version): Update GMP version string calculation.
7802
7803 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7804
7805         PR rtl-optimization/39938
7806         * resource.c (init_resource_info): Add call to df_analyze.
7807
7808 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7809
7810         * config/alpha/alpha.md (usegp): Cast the result of
7811         alpha_find_lo_sum_using_gp to enum attr_usegp.
7812         * config/alpha/alpha.c (override_options): Remove end-of-structure
7813         marker element from cpu_table.  Use array size of cpu_table to handle
7814         -mcpu and -mtune options.
7815         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7816
7817 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
7818
7819         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7820         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
7821         tune_32 and tune_64.
7822         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7823         support on PowerPC.
7824         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7825         * config/rs6000/option-defaults.h: ... here.  New file.
7826         (OPT_64, OPT_32): Define.
7827         (MASK_64BIT): Define to 0 if not already defined.
7828         (OPT_ARCH64, OPT_ARCH32): Define.
7829         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7830         and tune_64.
7831
7832 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7833
7834         * config/arm/arm.c (arm_override_options): Emit error on using
7835         fpa with AAPCS.
7836
7837 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7838
7839         PR rtl-optimization/39914
7840         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7841         registers for allocnos created from user-defined variables only
7842         when not optimizing.
7843
7844 2009-04-28  Richard Guenther  <rguenther@suse.de>
7845
7846         PR middle-end/39937
7847         * fold-const.c (fold_binary): Use distribute_real_division only
7848         on float types.
7849
7850 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
7851
7852         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7853         add hpux-stdint.h to tm_file.
7854         (hppa[12]*-*-hpux11*): Ditto.
7855         (ia64*-*-hpux*): Ditto.
7856         * config/hpux-stdint.h: New.
7857         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
7858         __STDC_EXT__ for all compiles.
7859         * config/pa/pa-hpux.h: Ditto.
7860         * config/pa/pa-hpux10.h: Ditto.
7861         * config/pa/pa-hpux11.h: Ditto.
7862
7863 2009-04-28  Catherine Moore  <clm@codesourcery.com>
7864
7865         * debug.h (set_name): Add comment.
7866
7867 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
7868
7869         PR target/39929
7870         * config/darwin.c (machopic_gen_offset): Check
7871         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7872         * config/arm/arm.c (require_pic_register): Likewise.
7873
7874 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
7875
7876         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7877         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7878         m32c_promote_prototypes): Delete.
7879
7880 2009-04-28  Michael Matz  <matz@suse.de>
7881
7882         PR middle-end/39922
7883         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7884         constants.
7885
7886 2009-04-28  Richard Guenther  <rguenther@suse.de>
7887
7888         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7889
7890 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7891
7892         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7893         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7894         * config/arm/arm-tune.md: Regenerate.
7895
7896 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
7897
7898         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7899         block if there are complex incoming edges.
7900         (sel_merge_blocks): Remove useless assert.
7901         (sel_redirect_edge_and_branch): Check that edge was redirected.
7902         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7903         (sel_find_rgns): Delete declaration.
7904         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7905         the region when it is not a preheader.
7906
7907 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7908
7909         PR c/39323
7910         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7911
7912 2009-04-28  Richard Guenther  <rguenther@suse.de>
7913
7914         * tree.h (SSA_NAME_VALUE): Remove.
7915         (struct tree_ssa_name): Remove value_handle member.
7916         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7917         array for jump threading.
7918         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7919         SSA_NAME_VALUEs.
7920         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7921         * tree-flow.h (threadedge_initialize_values): Declare.
7922         (threadedge_finalize_values): Likewise.
7923         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7924         (SSA_NAME_VALUE): Define.
7925         (threadedge_initialize_values): New function.
7926         (threadedge_finalize_values): Likewise.
7927         * tree-ssa-dom.c (ssa_name_values): New global variable.
7928         (SSA_NAME_VALUE): Define.
7929         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
7930
7931 2009-04-28  Ira Rosen  <irar@il.ibm.com>
7932
7933         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7934         Use REPORT_VECTORIZED_LOCATIONS instead 
7935         REPORT_VECTORIZED_LOOPS.
7936         * tree-vectorizer.c (vect_verbosity_level): Make static.
7937         (vect_loop_location): Rename to vect_location.
7938         (vect_set_verbosity_level): Update comment.
7939         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7940         and vect_location.
7941         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7942         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7943         instead REPORT_UNVECTORIZED_LOOPS.
7944         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7945         and vect_loop_def to vect_external_def and vect_internal_def.
7946         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7947         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
7948         REPORT_UNVECTORIZED_LOCATIONS.
7949         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7950         and vect_used_in_loop and to vect_unused_in_scope and 
7951         vect_used_in_scope.
7952         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7953         (vect_verbosity_level): Remove declaration.
7954         (vect_analyze_operations): Likewise.
7955         (vect_analyze_stmt): Declare.
7956         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7957         REPORT_UNVECTORIZED_LOCATIONS.
7958         (vect_get_loop_niters): Fix indentation.
7959         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7960         (vect_analyze_loop_operations): New function.
7961         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7962         vect_analyze_operations.
7963         (vect_is_simple_reduction): Use new names.
7964         (vectorizable_live_operation, vect_transform_loop): Likewise.
7965         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7966         to specify whether the data references can be a part of interleaving
7967         chain.
7968         (vect_analyze_data_ref_dependence): Use new names.
7969         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7970         (vect_create_addr_base_for_vector_ref): Remove redundant code.
7971         * tree-vect-patterns.c (widened_name_p): Use new names.
7972         (vect_recog_dot_prod_pattern): Likewise.
7973         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7974         (process_use, vect_mark_stmts_to_be_vectorized, 
7975         vect_model_simple_cost, vect_model_store_cost,
7976         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7977         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7978         vectorizable_operation, vectorizable_type_demotion,
7979         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7980         vectorizable_condition): Likewise.
7981         (vect_analyze_operations): Split into vect_analyze_loop_operations
7982         and ...
7983         (vect_analyze_stmt): ... new function.
7984         (new_stmt_vec_info): Use new names.
7985         (vect_is_simple_use): Use new names and fix comment.
7986         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7987         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7988
7989 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7990
7991         PR target/39911
7992         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7993         and integer modes for x87 operands.  Do not ICE for unsupported size,
7994         generate error instead.  Generate error for unsupported operand types.
7995         ['z']: Do not handle HImode memory operands specially.  Warning
7996         for floating-point operands.  Fallthru to 'Z' for unsupported operand
7997         types.  Do not ICE for unsupported size, generate error instead.
7998         (output_387_binary_op): Use %Z to output operands.
7999         (output_fp_compare): Ditto.
8000         (output_387_reg_move): Ditto.
8001
8002 2009-04-28  Ben Elliston  <bje@au.ibm.com>
8003
8004         PR c++/35652
8005         Revert:
8006
8007         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8008
8009         * builtins.c (c_strlen): Do not warn here.
8010         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8011         * c-common.c (pointer_int_sum): Take an explicit location.
8012         Warn about offsets out of bounds.
8013         * c-common.h (pointer_int_sum): Adjust declaration.
8014
8015 2009-04-27  Ian Lance Taylor  <iant@google.com>
8016
8017         * collect2.c (is_ctor_dtor): Change type of ret field in struct
8018         names to symkind.
8019         * dce.c (run_fast_df_dce): Change type of old_flags to int.
8020         * df-core.c (df_set_flags): Change return type to int.  Change
8021         type of old_flags to int.
8022         (df_clear_flags): Likewise.
8023         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
8024         (df_get_conditional_uses): Likewise.
8025         * df.h (df_set_flags, df_clear_flags): Update declarations.
8026         * dwarf2out.c (struct indirect_string_node): Change type of form
8027         field to enum dwarf_form.
8028         (AT_string_form): Change return type to enum dwarf_form.
8029         * fixed-value.c (fixed_compare): Add cast to enum type.
8030         * fwprop.c (update_df): Change 0 to VOIDmode.
8031         * gensupport.c: Change 0 to UNKNOWN.
8032         * gimple.h (gimple_cond_code): Add cast to enum type.
8033         * haifa-sched.c (reemit_notes): Add cast to enum type.
8034         * hooks.c (hook_int_void_no_regs): Remove function.
8035         * hooks.h (hook_int_void_no_regs): Remove declaration.
8036         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
8037         * predict.c (combine_predictions_for_insn): Add casts to enum type.
8038         * real.c (real_arithmetic): Add cast to enum type.
8039         (real_compare): Likewise.
8040         * target.h (struct gcc_target): Change return type of
8041         branch_target_register_class to enum reg_class.
8042         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
8043         default_branch_target_register_class.
8044         * targhooks.c (default_branch_target_register_class): New function.
8045         * targhooks.h (default_branch_target_register_class): Declare.
8046         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
8047         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
8048         cast to int.
8049         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
8050         ERROR_MARK.
8051         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
8052         vect_uninitialized_def.  Change 0 to ERROR_MARK.
8053         * tree-vect-stmts.c (supportable_widening_operation): Don't
8054         initialize icode1 and icode2.
8055         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
8056         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
8057         and to STD_C89.
8058         (cmn_err_flag_specs): Change 0 to STD_C89.
8059         (cmn_err_char_table): Likewise.
8060         * config/arm/arm.c (get_arm_condition_code): Change type of code
8061         to enum arm_cond_code.
8062         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
8063         (IWMMXT_BUILTIN2): Likewise.
8064         (neon_builtin_type_bits): Don't define typedef.
8065         (neon_builtin_datum): Change type of bits field to int.
8066         (arm_expand_neon_args): Add cast to enum type.
8067         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
8068         TLS_MODEL_NONE.
8069         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
8070         casts to enum type.
8071         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
8072         MIPS_FP_COND_f.
8073         * config/mips/mips.md (jal_macro): Return enum constant.
8074         (single_insn): Likewise.
8075         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
8076         CODE_FOR_nothing.
8077         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8078         casts to enum type.
8079         * config/s390/s390.c (s390_tune_flags): Change type to int.
8080         (s390_arch_flags): Likewise.
8081         (s390_handle_arch_option): Change flags field of struct pta to int.
8082         * config/s390/s390.h (s390_tune_flags): Update declaration.
8083         (s390_arch_flags): Likewise.
8084         * config/sh/sh.c (prepare_move_operands): Compare
8085         tls_symbolic_operand result with enum constant.
8086         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
8087         (sh_expand_prologue): Add cast to enum type.
8088         (sh_expand_epilogue): Likewise.
8089         (tls_symbolic_operand): Change return type to enum tls_model.
8090         (fpscr_set_from_mem): Add cast to enum type.
8091         (legitimize_pic_address): Compare tls_symbolic_operand result with
8092         enum constant.
8093         (sh_target_reg_class): Change return type to enum reg_class.
8094         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
8095         PROCESSOR_xxx.
8096         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
8097         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
8098         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
8099         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
8100         (delayed_branch, tls_call_delay): Likewise.
8101         (eligible_for_sibcall_delay): Likewise.
8102         (eligible_for_return_delay): Likewise. 
8103         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
8104         (spu_expand_builtin_1): Likewise.
8105
8106         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
8107         for all types of conversions.
8108         (output_init_element): Issue -Wc++-compat warning if needed when
8109         initializing a bitfield with enum type.
8110         * c-parser.c (c_parser_expression): Set original_type to
8111         original_type of right hand operand of comman operator.
8112
8113 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8114
8115         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
8116         grammar nits.
8117         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
8118         * doc/cpp.texi (Standard Predefined Macros)
8119         (Implementation-defined behavior): Likewise.
8120         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
8121         * doc/gimple.texi (GIMPLE Exception Handling)
8122         (@code{GIMPLE_ASSIGN}): Likewise.
8123         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
8124         * doc/invoke.texi (Warning Options, Optimize Options)
8125         (AVR Options, Darwin Options): Likewise.
8126         (Optimize Options): Reformulate -fwhole-program description.
8127         * doc/loop.texi (Lambda): Likewise.
8128         * doc/md.texi (Output Template, Define Constraints)
8129         (Standard Names, Insn Splitting): Likewise.
8130         * doc/options.texi (Option properties): Likewise.
8131         * doc/passes.texi (Tree-SSA passes): Likewise.
8132         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
8133         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
8134         (File Names and DBX): Likewise.
8135         * doc/trouble.texi (Incompatibilities): Likewise.
8136
8137 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8138
8139         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
8140         instruction is correct.
8141
8142 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
8143
8144         Allow non-constant arguments to conversion intrinsics.
8145         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
8146         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
8147         * spu.c (print_operand): Handle 'v' and 'w'.
8148         (exp2_immediate_p, spu_gen_exp2): Define.
8149         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
8150         spu_convtf_1): Update parameter descriptions.
8151         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
8152         * constraints.md ('v', 'w'): New.
8153         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
8154         Remove.
8155         (i2f, I2F): New define_mode_attr.
8156         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
8157         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
8158         fixuns_truncv4sfv4si2):  Update to use mode attribute.
8159         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
8160         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
8161         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
8162         patterns for combine.
8163
8164 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
8165
8166         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
8167         (cprop, hoist, pre, store_motion): New debug counters.
8168         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
8169         is not an RTL pass anymore.
8170         (pass_profiling): Remove extern decl for pass removed in 2005.
8171         (pass_gcse, pass_jump_bypass): Remove.
8172         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
8173         to 0 for clean state.
8174         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
8175         * cse.c (gate_handle_cse_after_global_opts,
8176         rest_of_handle_cse_after_global_opts): New functions.
8177         (pass_cse_after_global_opts): New pass, does local CSE.
8178         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
8179         (TV_CPROP): New timevar.
8180         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
8181         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
8182         (gcse_main, recompute_all_luids): Remove.
8183         (compute_hash_table_work): Call max_reg_num instead of reading
8184         max_gcse_regno.
8185         (cprop_jump): Don't set run_jump_opt_after_gcse.
8186         (constprop_register): Always allow to alter jumps.
8187         (cprop_insn): Likewise.
8188         (do_local_cprop): Likewise.
8189         (local_cprop_pass): Likewise.  Return non-zero if something changed.
8190         (cprop): Remove function, fold interesting bits into one_cprop_pass.
8191         (find_implicit_sets): Add note about missed optimization opportunity.
8192         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
8193         pass_rtl_cprop execute function.
8194         Don't bother tracking the pass number, each pass gets its own dumpfile
8195         now anyway.
8196         Always allow to alter jumpsand bypass jumps.
8197         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
8198         will just find no suitable set.
8199         (pre_edge_insert): Fix dumping, this function is for PRE only.
8200         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
8201         pass_rtl_pre execute function.
8202         (hoist_code): Return non-zero if something changed.  Keep track of
8203         substitutions and insertions for statistics gathering similar to PRE.
8204         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
8205         called from the pass_rtl_hoist execute function.  Show pass statistics.
8206         (compute_store_table): Use max_reg_num directly instead of using the
8207         formerly global max_gcse_regno.
8208         (build_store_vectors): Likewise.
8209         (replace_store_insn): Fix dumping.
8210         (store_motion): Rename to ...
8211         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
8212         pass, called from the pass_rtl_store_motion execute function.  Keep
8213         track of substitutions and insertions for statistics gathering similar
8214         to PRE.
8215         (bypass_jumps): Remove, fold interesting bits into ...
8216         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
8217         from the pass_rtl_cprop execute function.
8218         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
8219         pass_jump_bypass): Remove.
8220         (gate_handle_gcse, rest_of_handle_gcse): Remove.
8221         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
8222         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
8223         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
8224         (gate_rtl_store_motion, execute_rtl_store_motion,
8225         pass_rtl_store_motion): New.
8226         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
8227         make it clear that -fcse-skip-blocks is a no-op for backward compat.
8228         * passes.c (init_optimization_passes): Remove pass_gcse and
8229         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
8230         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
8231         instead of pass_jump_bypass.
8232
8233 2009-04-27  Richard Guenther  <rguenther@suse.de>
8234
8235         PR middle-end/39928
8236         * gimplify.c (gimplify_expr): If we are required to create
8237         a temporary make sure it ends up as register.
8238
8239 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
8240
8241         PR target/39903
8242         * config/i386/i386.c (construct_container): Don't call
8243         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
8244         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
8245
8246 2009-04-27  Michael Matz  <matz@suse.de>
8247
8248         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
8249         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
8250         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
8251         (dump_replaceable_exprs): Take a bitmap.
8252         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
8253         array.
8254         (expand_gimple_basic_block): Likewise.
8255         * tree-ssa-ter.c (struct temp_expr_table_d): Make
8256         replaceable_expressions member a bitmap.
8257         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
8258         (mark_replaceable): Likewise.
8259         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
8260         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
8261
8262 2009-04-27  Richard Guenther  <rguenther@suse.de>
8263
8264         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
8265         (verify_stmts): Dispatch to gimple/type verification code.
8266         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
8267         issue with call argument types.
8268
8269 2009-04-27  Michael Matz  <matz@suse.de>
8270
8271         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
8272         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
8273         to above.
8274
8275 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
8276             Eric Botcazou  <ebotcazou@adacore.com>
8277
8278         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
8279         a label's basic block.
8280         (mark_target_live_regs): Tidy and rework obsolete comments.
8281         Change back DF problem to LIVE.  If a label starts a basic block,
8282         assume that all registers that used to be live then still are.
8283         (init_resource_info): If a label starts a basic block, set its
8284         BLOCK_FOR_INSN accordingly.
8285         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
8286
8287 2009-04-27  Richard Guenther  <rguenther@suse.de>
8288
8289         * tree-flow-inline.h (function_ann): Remove.
8290         (get_function_ann): Likewise.
8291         * tree-dfa.c (create_function_ann): Remove.
8292         * tree-flow.h (struct static_var_ann_d): Remove.
8293         (struct function_ann_d): Likewise.
8294         (union tree_ann_d): Remove fdecl member.
8295         (function_ann_t): Remove.
8296         (function_ann, get_function_ann, create_function_ann): Remove
8297         declarations.
8298
8299 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
8300
8301         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
8302
8303 2009-04-27  Jan Hubicka  <jh@suse.cz>
8304
8305         * ipa-pure-const.c (struct funct_state_d): New fields
8306         state_previously_known, looping_previously_known; remove
8307         state_set_in_source.
8308         (analyze_function): Use new fields.
8309         (propagate): Avoid assumption that state_set_in_source imply
8310         nonlooping.
8311
8312         * tree-ssa-loop-niter.c (finite_loop_p): New function.
8313         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
8314         * cfgloop.h (finite_loop_p): Declare.
8315
8316 2009-04-26  Michael Matz  <matz@suse.de>
8317
8318         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
8319
8320 2009-04-26  Michael Matz  <matz@suse.de>
8321
8322         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
8323         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
8324         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
8325         pass_mark_used_blocks): Remove.
8326         * tree-optimize.c (pass_free_datastructures,
8327         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
8328         * passes.c (init_optimization_passes): Don't call
8329         pass_mark_used_blocks, remove dead code.
8330
8331 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
8332
8333         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
8334         * tree-ssa-live.h (register_ssa_partition): Likewise.
8335
8336 2009-04-26  Michael Matz  <matz@suse.de>
8337
8338         Expand from SSA.
8339         * builtins.c (fold_builtin_next_arg): Handle SSA names.
8340         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
8341         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
8342         SSA names. 
8343         (compare_pairs): Swap cost comparison.
8344         (coalesce_ssa_name): Don't use change_partition_var.
8345         * tree-nrv.c (struct nrv_data): Add modified member.
8346         (finalize_nrv_r): Set it.
8347         (tree_nrv): Use it to update statements.
8348         (pass_nrv): Require PROP_ssa.
8349         * tree-mudflap.c (mf_decl_cache_locals,
8350         mf_build_check_statement_for): Use make_rename_temp.
8351         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
8352         * alias.c (find_base_decl): Handle SSA names.
8353         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
8354         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
8355         * rtl.h (set_reg_attrs_for_parm): Declare.
8356         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
8357         to "optimized", remove unused locals at finish.
8358         (execute_free_datastructures): Make global, call
8359         delete_tree_cfg_annotations.
8360         (execute_free_cfg_annotations): Don't call
8361         delete_tree_cfg_annotations.
8362
8363         * ssaexpand.h: New file.
8364         * expr.c (toplevel): Include ssaexpand.h.
8365         (expand_assignment): Handle SSA names the same as register variables.
8366         (expand_expr_real_1): Expand SSA names.
8367         * cfgexpand.c (toplevel): Include ssaexpand.h.
8368         (SA): New global variable.
8369         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
8370         (SSAVAR): New macro.
8371         (set_rtl): New helper function.
8372         (add_stack_var): Deal with SSA names, use set_rtl.
8373         (expand_one_stack_var_at): Likewise.
8374         (expand_one_stack_var): Deal with SSA names.
8375         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
8376         before unique numbers.
8377         (expand_stack_vars): Use set_rtl.
8378         (expand_one_var): Accept SSA names, add asserts for them, feed them
8379         to above subroutines.
8380         (expand_used_vars): Expand all partitions (without default defs),
8381         then only the local decls (ignoring those expanded already).
8382         (expand_gimple_cond): Remove edges when jumpif() expands an
8383         unconditional jump.
8384         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
8385         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
8386         SSA name.
8387         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
8388         members of SA; deal with PARM_DECL partitions here; expand
8389         all PHI nodes, free tree datastructures and SA.  Commit instructions
8390         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
8391         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
8392         info and statements at start, collect garbage at finish.
8393         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
8394         (VAR_ANN_PARTITION) Remove.
8395         (change_partition_var): Don't declare.
8396         (partition_to_var): Always return SSA names.
8397         (var_to_partition): Only accept SSA names.
8398         (register_ssa_partition): Only check argument.
8399         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
8400         member.
8401         (delete_var_map): Don't free it.
8402         (var_union): Only accept SSA names, simplify.
8403         (partition_view_init): Mark only useful SSA names as used.
8404         (partition_view_fini): Only deal with SSA names.
8405         (change_partition_var): Remove.
8406         (dump_var_map): Use ssa_name instead of partition_to_var member.
8407         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
8408         basic blocks.
8409         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
8410         (struct _elim_graph): New member const_dests; nodes member vector of
8411         ints.
8412         (set_location_for_edge): New static helper.
8413         (create_temp): Remove.
8414         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
8415         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
8416         (new_elim_graph): Allocate const_dests member.
8417         (clean_elim_graph): Truncate const_dests member.
8418         (delete_elim_graph): Free const_dests member.
8419         (elim_graph_size): Adapt to new type of nodes member.
8420         (elim_graph_add_node): Likewise.
8421         (eliminate_name): Likewise.
8422         (eliminate_build): Don't take basic block argument, deal only with
8423         partition numbers, not variables.
8424         (get_temp_reg): New static helper.
8425         (elim_create): Use it, deal with RTL temporaries instead of trees.
8426         (eliminate_phi): Adjust all calls to new signature.
8427         (assign_vars, replace_use_variable, replace_def_variable): Remove.
8428         (rewrite_trees): Only do checking.
8429         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
8430         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
8431         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
8432         contains_tree_r, MAX_STMTS_IN_LATCH,
8433         process_single_block_loop_latch, analyze_edges_for_bb,
8434         perform_edge_inserts): Remove.
8435         (expand_phi_nodes): New global function.
8436         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
8437         functions, initialize new parameter, remember partitions having a
8438         default def.
8439         (finish_out_of_ssa): New global function.
8440         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
8441         don't reset in_ssa_p here, don't disable TER when mudflap.
8442         (pass_del_ssa): Remove.
8443         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
8444         partition members.
8445         (execute_free_datastructures): Declare.
8446         * Makefile.in (SSAEXPAND_H): New variable.
8447         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
8448         * basic-block.h (commit_one_edge_insertion): Declare.
8449         * passes.c (init_optimization_passes): Move pass_nrv and
8450         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
8451         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
8452         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
8453         (redirect_branch_edge): Deal with super block when expanding, split
8454         out jump patching itself into ...
8455         (patch_jump_insn): ... here, new static helper.
8456
8457 2009-04-26  Michael Matz  <matz@suse.de>
8458
8459         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
8460         beyond num_ssa_names.
8461         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
8462         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
8463
8464 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8465
8466         PR inline-asm/39543
8467         * fwprop.c (forward_propagate_asm): New function.
8468         (forward_propagate_and_simplify): Propagate also into __asm, if it
8469         doesn't increase the number of referenced registers.
8470
8471         PR c/39889
8472         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
8473
8474 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8475
8476         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
8477         note_nonlocal_vla_type for nonlocal VLAs.
8478         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
8479         contains_remapped_vars, remap_vla_decls): New functions.
8480         (convert_nonlocal_reference_stmt): If not optimizing, call
8481         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
8482         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
8483         if it wasn't found in var_map.
8484         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
8485         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
8486         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
8487         declare_vars.
8488         * gimplify.c (nonlocal_vlas): New variable.
8489         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
8490         referenced VLAs.
8491         (gimplify_body): Create and destroy nonlocal_vlas.
8492
8493         * dwarf2out.c (loc_descr_plus_const): New function.
8494         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
8495         mem_loc_descriptor, loc_descriptor_from_tree_1,
8496         descr_info_loc, gen_variable_die): Use it.
8497
8498         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
8499         !TREE_STATIC VAR_DECLs.
8500         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
8501         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
8502         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
8503         DECL_BY_REFERENCE is valid.
8504         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
8505         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
8506         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
8507         Copy DECL_BY_REFERENCE.
8508         (struct nesting_copy_body_data): New type.
8509         (nesting_copy_decl): New function.
8510         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8511         if they have variable length.
8512
8513 2009-04-26  Michael Matz  <matz@suse.de>
8514
8515         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8516         mark new temporaries for renaming.
8517
8518 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8519
8520         PR c/39581
8521         * c-decl.c (global_bindings_p): Return negative value.
8522         (c_variable_size): New.  Based on variable_size from
8523         stor-layout.c.
8524         (grokdeclarator): Call c_variable_size not variable_size.
8525
8526 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
8527
8528         * config/i386/i386.c (print_operand) ['z']: Fix typo.
8529
8530 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
8531
8532         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8533         Redefine it to just use mingw/include.
8534         (ASM_SPEC): Rules for -m32 and -m64.
8535         (LINK_SPEC): Use Likewise.
8536         (SPEC_32): New define.
8537         (SPEC_64): Likewise.
8538         (SUB_LINK_SPEC): Likewise.
8539         (MULTILIB_DEFAULTS): New define.
8540         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8541         Add multilib options.
8542         (MULTILIB_DIRNAMES): Likewise.
8543         (MULTILIB_OSDIRNAMES): Likewise.
8544         (LIBGCC): Likewise.
8545         (INSTALL_LIBGCC): Likewise.
8546
8547 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8548
8549         PR c/39556
8550         * c-tree.h (enum c_inline_static_type): New.
8551         (record_inline_static): Declare.
8552         * c-decl.c (struct c_inline_static, c_inline_statics,
8553         record_inline_static, check_inline_statics): New.
8554         (pop_file_scope): Call check_inline_statics.
8555         (start_decl): Call record_inline_static instead of pedwarning
8556         directly for static in inline function.
8557         * c-typeck.c (build_external_ref): Call record_inline_static
8558         instead of pedwarning directly for static referenced in inline
8559         function.
8560
8561 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
8562
8563         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8564         not new but only being rescanned.
8565         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8566         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8567         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8568         record_set_info, compute_set, grealloc): Remove.
8569         (recompute_all_luids): New function.
8570         (gcse_main): Don't compute sets, and don't do related memory
8571         allocations/free-ing.  If something changed before the end of the
8572         pass, update LUIDs using recompute_all_luids.
8573         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
8574         (free_gcse_mem): Don't free it either.
8575         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8576         Use the df insn LUIDs.
8577         (load_killed_in_block): Likewise.
8578         (compute_hash_table_work): Don't compute reg_set_in_block.
8579         (compute_transp): Use DF_REG_DEF_CHAINs.
8580         (local_cprop_pass): Don't use compute_sets and related functions.
8581         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8582         Use get_max_uid() instead of max_cuid.
8583         (insert_insn_end_basic_block, pre_insert_copy_insn,
8584         update_ld_motion_stores): Don't try to
8585         keep reg_set tables up to date.
8586         (pre_insert_copies): Use df insn LUIDs.
8587         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8588         (reg_set_info): Don't use extra bitmap argument.
8589         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
8590         information to compute regs_set_in_block.
8591         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8592         (bypass_jumps): Don't use compute_sets and friends.
8593
8594 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8595
8596         PR testsuite/39710
8597         * opts.c (undocumented_msg): Do not leave blank even with
8598         ENABLE_CHECKING.
8599
8600 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8601
8602         * c-decl.c (build_enumerator): Allow values folding to integer
8603         constants but not integer constant expressions with a pedwarn if
8604         pedantic.
8605
8606 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8607
8608         PR c/39582
8609         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8610         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8611         type is an integer constant.
8612
8613 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8614
8615         PR target/39897
8616         * config/i386/i386.c (print_operand) ['z']: Revert handling of
8617         HImode operands.
8618
8619 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8620
8621         PR c/39564
8622         * c-decl.c (grokdeclarator): Diagnose declarations of functions
8623         with variably modified return type and no storage class
8624         specifiers, except for the case of nested functions.  Distinguish
8625         extern declarations of functions with variably modified return
8626         types from those of objects with variably modified types.
8627
8628 2009-04-25  Jan Hubicka  <jh@suse.cz>
8629
8630         * tree.c (list_equal_p): New function.
8631         * tree.h (list_equal_p): Declare.
8632         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8633         basic_block_def, basic_block, const_basic_block): New.
8634         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8635         (redirect_eh_edge): New function.
8636         (make_eh_edge_update_phi): EH edges are not abnormal.
8637         * except.c: Include tree-flow.h.
8638         (list_match): New function.
8639         (eh_region_replaceable_by_p): New function.
8640         (replace_region): New function.
8641         (hash_type_list): New function.
8642         (hash_eh_region): New function.
8643         (eh_regions_equal_p): New function.
8644         (merge_peers): New function.
8645         (remove_unreachable_regions): Verify EH tree when checking;
8646         merge peers.
8647         (copy_eh_region_1): New function.
8648         (copy_eh_region): New function.
8649         (push_reachable_handler): New function.
8650         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8651         regions without label but with live RESX.
8652         * except.h (redirect_eh_edge_to_label): New.
8653         * tree-flow.h (redirect_eh_edge): New.
8654         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8655         basic_block_def, basic_block, const_basic_block): Remove.
8656         * Makefile.in (except.o): Add dependency on tree-flow.h
8657         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8658         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8659         Remove.
8660
8661 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
8662
8663         PR bootstrap/39645
8664         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8665         on the destination of memcpy.
8666
8667 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
8668
8669         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8670         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8671         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8672
8673 2009-04-25  Jan Hubicka  <jh@suse.cz>
8674
8675         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8676         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8677         to be reached by different label than left.
8678         (update_eh_edges): Update comment; remove edge_to_remove if possible
8679         and return true if suceeded.
8680         (cleanup_empty_eh): Accept sharing map; handle shared regions.
8681         (cleanup_eh): Compute sharing map.
8682         * except.c (remove_eh_handler_and_replace): Add argument if we should
8683         update regions.
8684         (remove_unreachable_regions): Update for label sharing.
8685         (label_to_region_map): Likewise.
8686         (get_next_region_sharing_label): New function.
8687         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8688         prev_try pointers.
8689         (remove_eh_handler): Update.
8690         (remove_eh_region_and_replace_by_outer_of): New function.
8691         * except.h (struct eh_region): Add next_region_sharing_label.
8692         (remove_eh_region_and_replace_by_outer_of,
8693         get_next_region_sharing_label): Declare.
8694         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8695
8696 2009-04-25  Jan Hubicka  <jh@suse.cz>
8697
8698         * tree-cfg.c (split_critical_edges): Split also edges where we can't
8699         insert code even if they are not critical.
8700
8701 2009-04-25  Jan Hubicka  <jh@suse.cz>
8702
8703         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8704         (gimple_can_remove_branch_p): EH edges won't remove branch by
8705         redirection.
8706         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8707         updating of non-abnormal EH edges.
8708         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8709         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8710         (split_critical_edges): Split also edges where emitting code on them
8711         will lead to splitting later.
8712
8713 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8714             H.J. Lu  <hongjiu.lu@intel.com>
8715
8716         PR target/39590
8717         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8718         the configured assembler supports fildq and fistpq mnemonics.
8719         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8720         * configure: Regenerated.
8721         * config.in: Ditto.
8722
8723         * config/i386/i386.c (print_operand): Handle 'Z'.
8724         ['z']: Remove handling of special fild/fist suffixes.
8725         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8726         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8727         suffix of fild insn.
8728         (*floatsi<mode>2_vector_mixed): Ditto.
8729         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8730         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8731         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8732         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8733         * config/i386/gas.h (GAS_MNEMONICS): Remove.
8734
8735 2009-04-25  Ben Elliston  <bje@au.ibm.com>
8736  
8737         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8738         the source of a set operation.
8739
8740 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
8741
8742         * target.h (struct gcc_target): Add case_values_threshold field.
8743         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8744         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8745         * targhooks.c (default_case_values_threshold): New function.
8746         * targhooks.h (default_case_values_threshold): Declare function.
8747         * stmt.c (expand_case): Use case_values_threshold target hook.
8748         * expr.h (case_values_threshold): Remove declartation.
8749         * expr.c (case_values_threshold): Remove function.
8750         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8751
8752         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8753         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8754         (avr_case_values_threshold): Declare as static.
8755         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8756
8757         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8758         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8759         (mn10300_case_values_threshold): New function.
8760
8761 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8762
8763         * ira.c (setup_cover_and_important_classes): Add enum cast.
8764
8765 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
8766
8767         * genpreds.c (write_enum_constraint_num): Output definition of
8768         CONSTRAINT_NUM_DEFINED_P macro.
8769         * ira.c (setup_cover_and_important_classes): Use
8770         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8771         
8772 2009-04-24  DJ Delorie  <dj@redhat.com>
8773
8774         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8775         __SH2A_SINGLE_ONLY__ also.
8776
8777 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
8778
8779         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8780         (movdf_internal): Ditto.
8781         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8782         SFmode and DFmode constants.
8783         (ia64_print_operand): Add 'G' format for printing
8784         floating point constants.
8785
8786 2009-04-24  Richard Guenther  <rguenther@suse.de>
8787
8788         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8789         from unsigned additions.
8790
8791 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
8792
8793         * c-typeck.c (set_init_index): Allow array designators that are
8794         not integer constant expressions with a pedwarn if pedantic.
8795
8796 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8797
8798         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8799         zero if no overlap in nonzero bits between the operands.
8800
8801 2009-04-24  Ian Lance Taylor  <iant@google.com>
8802
8803         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8804         (record_dead_and_set_regs): Likewise.
8805         * df.h (struct df_mw_hardreg): Change flags field to int.
8806         (struct df_base_ref): Likewise.
8807         (struct df): Change changeable_flags field to int.
8808         * df-scan.c (df_defs_record): Change clobber_flags to int.
8809         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8810         constants rather than #define macros.
8811         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8812         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8813         (enum dwarf_calling_convention): Likewise.
8814         (enum dwarf_line_number_x_ops): Likewise.
8815         (enum dwarf_call_frame_info): Likewise.
8816         (enum dwarf_source_language): Likewise.
8817         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8818         (add_calling_convention_attribute): Likewise.
8819         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8820         (combine_comparisons): Change compcode to int.  Add cast to enum type.
8821         * genrecog.c (maybe_both_true_2): Change c to int.
8822         (write_switch): Likewise.  Add cast to enum type.
8823         * gimplify.c (gimplify_omp_for): Handle return values from
8824         gimplify_expr using MIN rather than bitwise or.
8825         (gimplify_expr): Add cast to enum type.
8826         * ipa-prop.c (update_jump_functions_after_inlining): Change
8827         IPA_BOTTOM to IPA_JF_UNKNOWN.
8828         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8829         Add casts to enum type.
8830         (setup_cover_and_important_classes): Change cl to int.  Add casts
8831         to enum type.
8832         (setup_class_translate): Change cl and mode to int.
8833         (ira_init_once): Change mode to int.
8834         (free_register_move_costs): Likewise.
8835         (setup_prohibited_mode_move_regs): Add casts to enum type.
8836         * langhooks.c (add_builtin_function_common): Rework assertion that
8837         value fits bitfield.
8838         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8839         * omega.c (omega_do_elimination): Avoid math on enum types.
8840         * optabs.c (expand_vec_shift_expr): Remove casts to int.
8841         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
8842         int local to handle integral_argment value.
8843         * regmove.c (try_auto_increment): Change PUT_MODE to
8844         PUT_REG_NOTE_KIND.
8845         * reload.c (push_secondary_reload): Add casts to enum type.
8846         (secondary_reload_class, find_valid_class): Likewise.
8847         * reload1.c (emit_input_reload_insns): Likewise.
8848         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8849         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8850         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8851         constant.
8852         * tree.c (build_common_builtin_nodes): Add casts to enum type.
8853         * tree-complex.c (complex_lattice_t): Typedef to int rather than
8854         enum type.
8855         (expand_complex_libcall): Add casts to enum type.
8856         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8857         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8858         with ERROR_MARK, not NUM_TREE_CODES.
8859         (vect_create_epilog_for_reduction): Likewise.
8860         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
8861         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8862         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8863         enum machine_mode.
8864         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8865         vect_unused_in_loop.  Change 0 to loop_vect.
8866         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8867         * var-tracking.c (get_init_value): Change return type to enum
8868         var_init_status.
8869         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8870         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8871         arm_fp_model.
8872         (arm_override_options): Add casts to enum type.
8873         (arm_emit_tls_decoration): Likewise.
8874         * config/i386/i386.c (ix86_function_specific_restore): Add casts
8875         to enum type.
8876         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8877         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8878         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8879         enum type.
8880         * config/s390/s390.c (code_for_builtin_64): Change to array of
8881         enum insn_code.
8882         (code_for_builtin_31): Likewise.
8883         (s390_expand_builtin): Change code_for_builtin to enum insn_code
8884         const *.
8885         * config/sparc/sparc.c (sparc_override_options): Change value
8886         field in struct code_model to enum cmodel.  In initializer change
8887         0 to NULL and add cast to enum type.
8888
8889         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8890         Change all callers.  Issue a -Wc++-compat warning using
8891         lhs_origtype if necessary.
8892         (convert_for_assignment): Issue -Wc++-compat warnings about
8893         invalid conversions to enum type on assignment.
8894         * c-common.h (build_modify_expr): Update declaration.
8895
8896 2009-04-24  Nick Clifton  <nickc@redhat.com>
8897
8898         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8899         (function_arg_advance): Likewise.
8900         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8901         5th alternative.
8902
8903 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8904
8905         * config/s390/constraints.md ('I', 'J'): Fix condition.
8906
8907 2009-04-24  Diego Novillo  <dnovillo@google.com>
8908
8909         * gengtype-parse.c (parse_error): Add newline after message.
8910
8911 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8912
8913         * config/i386/sse.md (avxmodesuffixs): Removed.
8914         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8915         (*avx_pinsr<ssevecsize>): This.
8916
8917 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8918
8919         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8920         follow chains of regs with a single definition, and allow expressions
8921         that are function_invariant_p.
8922         (simple_rhs_p): Allow expressions that are function_invariant_p.
8923
8924 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
8925
8926         PR middle-end/39867
8927         * fold-const.c (fold_cond_expr_with_comparison): When folding
8928         > and >= to MAX, make sure the MAX uses the same type as the
8929         comparison's operands.
8930
8931 2009-04-24  Nick Clifton  <nickc@redhat.com>
8932
8933         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8934         addressing for DImode accesses.
8935         (frv_print_operand_address): Handle PLUS case.
8936         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8937
8938 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
8939
8940         PR rtl-optimization/39794
8941         * alias.c (canon_true_dependence): Add x_addr argument.
8942         * rtl.h (canon_true_dependence): Adjust prototype.
8943         * cse.c (check_dependence): Adjust canon_true_dependence callers.
8944         * cselib.c (cselib_invalidate_mem): Likewise.
8945         * gcse.c (compute_transp): Likewise.
8946         * dse.c (scan_reads_nospill): Likewise.
8947         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
8948         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8949         canon_base_addr of the group, plus optional offset.
8950         (struct group_info): Rename canon_base_mem to
8951         canon_base_addr.
8952         (get_group_info): Set canon_base_addr to canon_rtx of base, not
8953         canon_rtx of base_mem.
8954
8955 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
8956
8957         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8958         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8959
8960 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8961
8962         * config/spu/spu-builtins.h: Delete file.
8963
8964         * config/spu/spu.h (enum spu_builtin_type): Move here from
8965         spu-builtins.h.
8966         (struct spu_builtin_description): Likewise.  Add GTY marker.
8967         Do not use enum spu_function_code or enum insn_code.
8968         (spu_builtins): Add extern declaration.
8969
8970         * config/spu/spu.c: Do not include "spu-builtins.h".
8971         (enum spu_function_code, enum spu_builtin_type_index,
8972         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8973         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8974         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8975         unsigned_V2DI_type_node): Move here from spu-builtins.h.
8976         (spu_builtin_types): Make static.  Add GTY marker.
8977         (spu_builtins): Add extern declaration with GTY marker.
8978         Include "gt-spu.h".
8979
8980         * config/spu/spu-c.c: Do not include "spu-builtins.h".
8981         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8982         Check programmatically whether all parameters are scalar.
8983
8984         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8985
8986 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
8987
8988         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8989         assignment from the constructor either if the target is volatile.
8990
8991 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
8992
8993         * config/arm/arm.md (insv): Do not share operands[0].
8994
8995 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
8996
8997         * config/vxlib-tls.c (active_tls_threads): Delete.
8998         (delete_hook_installed): New.
8999         (tls_delete_hook): Don't delete the delete hook.
9000         (tls_destructor): Delete it here.
9001         (__gthread_set_specific): Adjust installing the delete hook.
9002         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
9003         __gthread_leave_tsd_dtor_context.
9004
9005 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
9006
9007         * c-format.c (gcc_tdiag_char_table): Add support for %E.
9008
9009 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
9010
9011         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
9012         enum type.
9013         (alpha_rtx_costs): Ditto.
9014         (emit_unlikely_jump): Use add_reg_note.
9015         (emit_frame_store_1): Ditto.
9016         (alpha_expand_prologue): Ditto.
9017         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9018         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
9019
9020 2009-04-23  Nick Clifton  <nickc@redhat.com>
9021
9022         * config/v850/v850.md (epilogue): Remove suppressed code.
9023         (return): Rename to return_simple and remove test of frame size.
9024         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
9025         to gen_return_simple.
9026
9027 2009-04-22  Jing Yu  <jingyu@google.com>
9028
9029         PR testsuite/39781
9030         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
9031
9032 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9033
9034         PR C/31499
9035         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
9036         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
9037         value is a VECTOR_CST, the element type is the element type of the
9038         vector.
9039
9040 2009-04-22  DJ Delorie  <dj@redhat.com>
9041
9042         * config/m32c/m32c.h: Update GTY annotations to new syntax.
9043
9044 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
9045
9046         * alias.c (find_base_term): Move around LO_SUM case, so that
9047         CONST falls through into PLUS/MINUS handling.
9048
9049         PR c/39855
9050         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
9051         into 0, use omit_one_operand.
9052
9053 2009-04-23  Ben Elliston  <bje@au.ibm.com>
9054
9055         * config/rs6000/linux-unwind.h (get_regs): Remove type
9056         puns. Change the type of `pc' to an array of unsigned ints and
9057         update all users.  Constify frame24.
9058
9059 2009-04-22  DJ Delorie  <dj@redhat.com>
9060
9061         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
9062         declarations before code.
9063         (current_function_special_page_vector): Likewise.
9064         (m32c_expand_insv): Silence a warning.
9065
9066 2009-04-21  Taras Glek  <tglek@mozilla.com>
9067
9068         * alias.c: Update GTY annotations to new syntax.
9069         * basic-block.h: Likewise.
9070         * bitmap.h: Likewise.
9071         * c-common.h: Likewise.
9072         * c-decl.c: Likewise.
9073         * c-parser.c: Likewise.
9074         * c-pragma.c: Likewise.
9075         * c-tree.h: Likewise.
9076         * cfgloop.h: Likewise.
9077         * cgraph.h: Likewise.
9078         * config/alpha/alpha.c: Likewise.
9079         * config/arm/arm.h: Likewise.
9080         * config/avr/avr.h: Likewise.
9081         * config/bfin/bfin.c: Likewise.
9082         * config/cris/cris.c: Likewise.
9083         * config/darwin.c: Likewise.
9084         * config/frv/frv.c: Likewise.
9085         * config/i386/i386.c: Likewise.
9086         * config/i386/i386.h: Likewise.
9087         * config/i386/winnt.c: Likewise.
9088         * config/ia64/ia64.h: Likewise.
9089         * config/iq2000/iq2000.c: Likewise.
9090         * config/mips/mips.c: Likewise.
9091         * config/mmix/mmix.h: Likewise.
9092         * config/pa/pa.c: Likewise.
9093         * config/pa/pa.h: Likewise.
9094         * config/rs6000/rs6000.c: Likewise.
9095         * config/s390/s390.c: Likewise.
9096         * config/sparc/sparc.c: Likewise.
9097         * config/xtensa/xtensa.c: Likewise.
9098         * cselib.h: Likewise.
9099         * dbxout.c: Likewise.
9100         * dwarf2out.c: Likewise.
9101         * except.c: Likewise.
9102         * except.h: Likewise.
9103         * fixed-value.h: Likewise.
9104         * function.c: Likewise.
9105         * function.h: Likewise.
9106         * gimple.h: Likewise.
9107         * integrate.c: Likewise.
9108         * optabs.c: Likewise.
9109         * output.h: Likewise.
9110         * real.h: Likewise.
9111         * rtl.h: Likewise.
9112         * stringpool.c: Likewise.
9113         * tree-data-ref.c: Likewise.
9114         * tree-flow.h: Likewise.
9115         * tree-scalar-evolution.c: Likewise.
9116         * tree-ssa-address.c: Likewise.
9117         * tree-ssa-alias.h: Likewise.
9118         * tree-ssa-operands.h: Likewise.
9119         * tree.c: Likewise.
9120         * tree.h: Likewise.
9121         * varasm.c: Likewise.
9122         * varray.h: Likewise.
9123         * vec.h: Likewise.
9124         * coretypes.h: Do not define GTY macro if it is already defined.
9125         * doc/gty.texi: Update GTY documentation to new syntax.
9126         * gengtype-lex.l: Enforce attribute-like syntax for GTY
9127         annotations on structs.
9128         * gengtype-parse.c: Likewise.
9129
9130 2009-04-22  Mark Heffernan  <meheff@google.com>
9131
9132         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
9133
9134 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
9135
9136         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
9137         where appropriate.
9138
9139 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
9140
9141         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
9142         the same as a PLUS without a shift.  Increase the cost of a
9143         CONST_INT in MULT.
9144
9145 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9146
9147         * Makefile.in: Update dependencies.
9148         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
9149         * errors.h: Remove bogus comment about compatibility.
9150         (warning): Update declaration.
9151         * genautomata.c: Update all calls to warning.
9152         * gimple.c: Do not include errors.h. Include toplev.h.
9153         * tree-ssa-structalias.c: Do not include errors.h.
9154         * omega.c: Likewise.
9155         * tree-ssa-reassoc.c: Likewise.
9156         * config/spu/spu-c.c: Likewise.
9157         * config/spu/t-spu-elf: Update dependencies.
9158
9159 2009-04-22  Richard Guenther  <rguenther@suse.de>
9160
9161         PR tree-optimization/39824
9162         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
9163         make sure the types are compatible.
9164
9165 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9166
9167         PR c++/14875
9168         * c-common.c (c_parse_error): Take a token_flags parameter.
9169         Use token_type for the token type instead.
9170         Pass token_flags to cpp_type2name.
9171         * c-common.h (c_parse_error): Update declaration.
9172         * c-parser.c (c_parser_error): Pass 0 as token flags.
9173
9174 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
9175
9176         PR rtl-optimization/39580
9177         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
9178         
9179 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9180
9181         * function.c (expand_function_end): Do not emit a jump to the "naked"
9182         return label for fall-through returns.
9183         * except.c (sjlj_emit_function_exit): Always place the call to the
9184         unregister function at the location installed by expand_function_end.
9185
9186 2009-04-22  Richard Guenther  <rguenther@suse.de>
9187
9188         PR tree-optimization/39845
9189         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
9190         (gen_inbound_check): Likewise.
9191
9192 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9193
9194         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
9195         padding for PPC.
9196         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
9197         * config/vxlib.c (__gthread_once): Add race guard for PPC.
9198
9199 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9200
9201         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
9202         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
9203         shift counts to avoid out-of-bounds array accesses.
9204
9205 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9206
9207         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
9208         (Pmode): Move above.
9209
9210 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
9211
9212         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
9213         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
9214         GET_CODE macro.  Use IN_RANGE macro where appropriate.
9215         * config/alpha/alpha.h: Ditto.
9216         * config/alpha/alpha.md: Ditto.
9217         * config/alpha/constraints.md: Ditto.
9218         * config/alpha/predicates.md: Ditto.
9219         
9220 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
9221
9222         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
9223         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9224         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9225         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9226         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9227         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9228         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9229         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9230         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9231         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9232         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9233         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9234         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9235         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9236         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9237         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9238         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9239         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9240         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9241         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9242         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9243         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9244         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9245         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9246         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9247         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9248         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
9249
9250 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9251
9252         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
9253         references from comments.
9254         * cfgbuild.c: (count_basic_blocks): Delete.
9255         (find_basic_blocks_1): Delete.
9256         (find_basic_blocks): Delete.
9257         * except.c (finish_eh_generation): Make static.  Move comment from
9258         except.h here.  Remove find_basic_blocks references from comments.
9259         * except.h (finish_eh_generation): Delete.
9260         * basic-block.h (find_basic_blocks): Delete.
9261         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
9262
9263 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
9264
9265         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
9266         (sdbout_parms):  Likewise.
9267
9268 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
9269
9270         * config/sh/sh.c (prepare_cbranch_operands): Use
9271         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
9272         (expand_cbranchdi4): Likewise.
9273         (from_compare): Add cast to enum type.
9274         (expand_cbranchsi4): Use add_reg_note.
9275         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
9276         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
9277         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
9278         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9279         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
9280         instead of CODE_FOR_nothing.
9281         (cbranchdi4): Likewise.  Fix the order of arguments for
9282         gen_rtx_fmt_ee.
9283         (push_fpscr): Use add_reg_note.
9284         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
9285         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
9286         
9287 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
9288
9289         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
9290         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9291         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9292         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
9293         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
9294         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
9295         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
9296         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
9297         config/alpha/x-vms, config/arc/t-arc,
9298         config/arm/README-interworking, config/arm/arm-c.c,
9299         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
9300         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
9301         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
9302         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
9303         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
9304         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
9305         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
9306         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
9307         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
9308         config/cris/t-elfmulti, config/crx/t-crx,
9309         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
9310         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
9311         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
9312         config/h8300/t-h8300, config/i386/athlon.md,
9313         config/i386/darwin-libgcc.10.4.ver,
9314         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
9315         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
9316         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
9317         config/i386/t-linux64, config/i386/t-nwld,
9318         config/i386/t-rtems-i386, config/i386/t-sol2-10,
9319         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
9320         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
9321         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
9322         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
9323         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
9324         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
9325         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
9326         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
9327         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
9328         config/m68k/t-uclinux, config/mcore/t-mcore,
9329         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
9330         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
9331         config/mips/crtn.asm, config/mips/irix-crti.asm,
9332         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
9333         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
9334         config/mips/mips-fixed.md, config/mips/sb1.md,
9335         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
9336         config/mips/t-iris6, config/mips/t-isa3264,
9337         config/mips/t-libgcc-mips16, config/mips/t-linux64,
9338         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
9339         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
9340         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
9341         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
9342         config/mn10300/t-linux, config/mn10300/t-mn10300,
9343         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
9344         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
9345         config/picochip/libgccExtras/clzsi2.asm,
9346         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
9347         config/rs6000/darwin-libgcc.10.4.ver,
9348         config/rs6000/darwin-libgcc.10.5.ver,
9349         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
9350         config/rs6000/t-aix43, config/rs6000/t-aix52,
9351         config/rs6000/t-darwin, config/rs6000/t-fprules,
9352         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
9353         config/rs6000/t-lynx, config/rs6000/t-netbsd,
9354         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
9355         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
9356         config/rs6000/t-rtems, config/rs6000/t-spe,
9357         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
9358         config/score/t-score-elf, config/sh/divcost-analysis,
9359         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
9360         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
9361         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
9362         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
9363         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
9364         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
9365         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
9366         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
9367         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
9368         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
9369         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
9370         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
9371         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
9372         limitx.h, version.c, xcoff.h: Add copyright and license notices.
9373         * config/h8300/genmova.sh: Include copyright and license notices
9374         in generated output.
9375         * config/h8300/mova.md: Regenerate.
9376         * doc/install.texi2html: Include word "Copyright" in copyright
9377         notice and use name "Free Software Foundation, Inc.".
9378         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9379         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9380         ChangeLog-2007, ChangeLog-2008: Correct dates.
9381
9382 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9383
9384         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
9385         NE_EXPR operations as well.
9386         * c-parser.c (c_parser_condition): Do not set location information on
9387         the condition.
9388         (c_parser_conditional_expression): Likewise.
9389         (c_parser_binary_expression): Set location information on operators.
9390         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
9391         TRUTH_NOT_EXPR has been folded.
9392         * fold-const.c (fold_truth_not_expr): Copy location information from
9393         the incoming expression to the outgoing one.
9394         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
9395         recursive calls on the LHS of the operator but pass that of the
9396         operator to recursive calls on the RHS of the operator.  Set it
9397         on the COND_EXPR.
9398         (shortcut_cond_expr): Set the locus of the operator on the second
9399         COND_EXPR and that of the expression on the first in degenerate cases.
9400         Pass the locus of the expression to calls to shortcut_cond_r.
9401         Set the locus of the 'then' block on the associated jump, if any.
9402         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
9403         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
9404         expression to call to gimplify_boolean_expr.
9405
9406 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
9407
9408         * config.gcc: Add additional configuration for
9409         i686-w64-mingw* and x86_64-w64-mingw* triplet.
9410         * config/i386/mingw-w64.h: New mingw-w64 specific header.
9411         (CPP_SPEC): Redefine for allowing -municode option.
9412         (STARTFILE_SPEC): Likewise.
9413         * config/i386/t-mingw-w64: New.
9414         * config/i386/mingw-w64.opt: New.
9415         (municode): Add new target option.
9416         * doc/invoke.texi (municode): Add documentation for new option.
9417
9418 2009-04-21  Ian Lance Taylor  <iant@google.com>
9419
9420         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9421         Correct test for number of arguments.
9422         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
9423
9424 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
9425
9426         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
9427         argument of emit_library_call.
9428
9429 2009-04-21  Richard Guenther  <rguenther@suse.de>
9430
9431         PR middle-end/39829
9432         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
9433         inside VIEW_CONVERT_EXPRs.
9434
9435 2009-04-21  Martin Jambor  <mjambor@suse.cz>
9436
9437         * tree-switch-conversion.c (build_constructors): Split a long line.
9438         (constructor_contains_same_values_p): New function.
9439         (build_one_array): Create assigns of constants if possible, do not
9440         call mark_sym_for_renaming, call update_stmt.
9441         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
9442         make_rename_temp.  Do not call mark_symbols_for_renaming, call
9443         update_stmt.
9444         (gen_def_assigns): Do not call mark_symbols_for_renaming or
9445         find_new_referenced_vars, call update_stmt.
9446         (gen_inbound_check): Use create_tmp_var and create ssa names manually
9447         instead of calling make_rename_temp.  Do not call
9448         find_new_referenced_vars or mark_symbols_for_renaming, call
9449         update_stmt.
9450
9451 2009-04-21  Richard Guenther  <rguenther@suse.de>
9452
9453         PR tree-optimization/39827
9454         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
9455         (tree_ssa_phiprop): Pass the correct array size.
9456
9457 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
9458
9459         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
9460
9461 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9462
9463         PR 16202
9464         * c-typeck.c (lvalue_p): Move declaration ...
9465         * c-common.h (lvalue_p): ... to here.
9466         * c-common.c (candidate_equal_p): New.
9467         (add_tlist): Use it.
9468         (merge_tlist): Use it.
9469         (warn_for_collisions_1): Likewise.
9470         (warning_candidate_p): Accept more candidates.
9471         (verify_tree): A warning candidate can be an expression. Use
9472         candidate_equal_p.
9473
9474 2009-04-21  Ben Elliston  <bje@au.ibm.com>
9475
9476         PR target/5267
9477         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
9478         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
9479         options.  Remove -mcall-solaris documentation.
9480
9481 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9482
9483         PR c++/13358
9484         * doc/invoke.texi (-Wlong-long): Update description.
9485         * c-lex (interpret_integer): Only warn if there was no previous
9486         overflow and -Wlong-long is enabled.
9487         * c-decl.c (declspecs_add_type): Drop redundant flags.
9488         * c.opt (Wlong-long): Init to -1.
9489         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
9490         and front-end warn_long_long. Wlong-long only depends on other
9491         flags if it is uninitialized.
9492         * c-parser.c (disable_extension_diagnostics): warn_long_long is
9493         the same for CPP and FE.
9494         (restore_extension_diagnostics): Likewise.
9495
9496 2009-04-20  Ian Lance Taylor  <iant@google.com>
9497
9498         Fix enum conversions which are invalid in C++:
9499         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
9500         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
9501         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9502         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
9503         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
9504         (dbxout_parms): Likewise.
9505         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
9506         (df_clear_flags): Likewise.
9507         * df-problems.c (df_rd_bb_local_compute_process_def): Change
9508         top_flag parameter to int.
9509         (df_chain_create_bb_process_use): Likewise.
9510         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9511         Remove cast.
9512         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9513         (df_ref_create_structure, df_def_record_1): Likewise.
9514         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9515         (df_notes_rescan): Change 0 to VOIDmode in function call.
9516         (df_get_call_refs, df_insn_refs_collect): Likewise.
9517         (df_bb_regs_collect): Likewise.
9518         (df_entry_block_defs_collect): Likewise.
9519         (df_exit_block_uses_collect): Likewise.
9520         * df.h: Update declarations.
9521         * double-int.c (double_int_divmod): Add cast to enum type.
9522         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9523         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9524         (based_loc_descr): Likewise.
9525         (loc_descriptor_from_tree_1): Change first_op and second_op to
9526         enum dwarf_location_atom.  Add cast to enum type.
9527         * expmed.c (init_expmed): Change 0 to SET in function call.
9528         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
9529         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9530         (do_store_flag): Likewise.
9531         * fixed-value.h (struct fixed_value): Change mode to enum
9532         machine_mode.
9533         * function.c (assign_parms): Change 0 to VOIDmode in function call.
9534         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9535         function call.
9536         (insert_insn_decl, insert_decl, insert_state): Likewise.
9537         (automata_list_finish): Likewise.
9538         * genrecog.c (process_define_predicate): Add cast to enum type.
9539         * gensupport.c (init_predicate_table): Add cast to enum type.
9540         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9541         function call.
9542         (gimple_build_call_1, gimple_build_label): Likewise.
9543         (gimple_build_goto, gimple_build_asm_1): Likewise.
9544         (gimple_build_switch_1, gimple_build_cdt): Likewise.
9545         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
9546         (enum fallback): Rename from enum fallback_t.
9547         (fallback_t): Typedef as int.
9548         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9549         GSI_SAME_STMT in function call.
9550         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9551         enum type.
9552         (setup_reg_class_relations): Likewise.
9553         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
9554         (setup_prohibited_class_mode_regs): Add cast to enum type.
9555         (setup_prohibited_mode_move_regs): Likewise.
9556         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
9557         (record_address_regs): Change i to enum reg_class.
9558         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9559         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9560         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9561         (GET_MODE_2XWIDER_MODE): Likewise.
9562         (GET_CLASS_NARROWEST_MODE): Likewise.
9563         * omp-low.c (expand_omp_for): Add cast to enum type.
9564         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9565         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9566         * postreload.c (reload_cse_simplify_operands): Change rclass local
9567         to enum reg_class.
9568         * predict.c (combine_predictions_for_insn): Change best_predictor
9569         and predictor to enum br_predictor.
9570         (combine_predictions_for_bb): Likewise.
9571         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9572         use SET_PREDICT_EXPR_OUTCOME.
9573         * real.c (real_arithmetic): Change icode to code in function call.
9574         * reginfo.c (init_move_cost): Add casts to enum type.
9575         (init_reg_sets_1, init_fake_stack_mems): Likewise.
9576         * regmove.c (regclass_compatible_p): Change class0 and class1 to
9577         enum reg_class.
9578         * reload.c (find_valid_class): Add casts to enum type.
9579         (push_reload): Change 0 to NO_REGS in function call.
9580         (find_reloads): Change this_alternative to array of enum
9581         reg_class.  Remove some now-unnecessary casts.
9582         (make_memloc): Change 0 to VOIDmode in function call.
9583         * reload1.c (reload): Change 0 to VOIDmode in function call.
9584         (eliminate_regs_1, elimination_effects): Likewise.
9585         (eliminate_regs_in_insn): Likewise.
9586         (emit_input_reload_insns): Add cast to enum type.
9587         (delete_output_reload): Change 0 to VOIDmode in function call.
9588         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9589         to enum type in function call.
9590         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9591         (SET_PREDICT_EXPR_OUTCOME): Define.
9592         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
9593         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9594         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9595         (dump_function): Likewise.
9596         * tree-dump.h: Update declarations.
9597         * tree-pass.h: Update declarations.
9598         * varasm.c (assemble_integer): Change mclass to enum mode_class.
9599         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9600         enum type.
9601         (arm_rtx_costs_1): Correct parenthesization.
9602         (arm_rtx_costs): Add casts to enum type.
9603         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9604         (vfp_emit_fstmd): Use add_rg_note.
9605         (emit_multi_reg_push, emit_sfm): Likewise.
9606         (thumb_set_frame_pointer): Likewise.
9607         (arm_expand_prologue): Likewise.
9608         (arm_regno_class): Change return type to enum reg_class.
9609         (thumb1_expand_prologue): Use add_reg_note.
9610         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9611         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9612         in function call.
9613         * config/arm/gentune.sh: Add cast to enum type.
9614         * config/arm/arm-tune.md: Rebuild.
9615         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9616         (ix86_split_fp_branch, predict_jump): Likewise.
9617         (ix86_expand_multi_arg_builtin): Change sub_code from enum
9618         insn_code to enum rtx_code.
9619         (ix86_builtin_vectorized_function): Add cast to enum type.
9620         * config/i386/i386.md (truncdfsf2): Change slot to enum
9621         ix86_stack_slot.
9622         (truncxf<mode>2, isinf<mode>2): Likewise.
9623         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9624         enum type.
9625         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9626         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9627         (insert_bundle_state): Change 1 to INSERT in function call.
9628         (ia64_add_bundle_selector_before): Likewise.
9629         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9630         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9631         (restore_stack_nonlocal): Likewise.
9632         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9633         function call.
9634         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9635         function call.
9636         (mips_rtx_costs): Likewise.
9637         (mips_override_options): Add casts to enum type.
9638         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9639         in function call.
9640         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9641         (store_reg, set_reg_plus_d): Likewise.
9642         (hppa_expand_prologue, hppa_profile_hook): Likewise.
9643         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9644         cast to enum type.
9645         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9646         function call.
9647         (emit_unlikely_jump): Use add_reg_note.
9648         (rs6000_emit_allocate_stack): Likewise.
9649         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9650         (output_toc): Change 1 to INSERT in function call.
9651         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9652         (rs6000_initialize_trampoline): Likewise.
9653         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9654         function call.
9655         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9656         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9657         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9658         (save_gprs): Use add_reg_note.
9659         (s390_emit_prologue): Likewise.
9660         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9661         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9662         (sparc_fold_builtin): Add cast to enum type.
9663         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9664         enum insn_code.
9665         (spu_expand_prologue): Use add_reg_note.
9666         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
9667
9668 2009-04-20  Ian Lance Taylor  <iant@google.com>
9669
9670         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9671         (c_parser_postfix_expression_after_primary): Get VEC for list of
9672         arguments.  Get original types of arguments.  Call
9673         build_function_call_vec.
9674         (cached_expr_list_1, cached_expr_list_2): New static variables.
9675         (c_parser_expr_list): Change return type to VEC *.  Add
9676         p_orig_types parameter.  Change all callers.
9677         (c_parser_release_expr): New static function.
9678         (c_parser_vec_to_tree_list): New static function.
9679         * c-typeck.c (build_function_call): Rewrite to build a VEC and
9680         call build_function_call_vec.
9681         (build_function_call_vec): New function, based on old
9682         build_function_call.
9683         (convert_arguments): Remove nargs and argarray parameters.  Change
9684         values to a VEC.  Add origtypes parameter.
9685         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
9686         (convert_for_assignment): Add origtype parameter.  Change all
9687         callers.  If warn_cxx_compat, check for conversion to an enum
9688         type when calling a function.
9689         (store_init_value): Add origtype parameter.  Change all callers.
9690         (digest_init): Likewise.
9691         (struct init_node): Add origtype field.
9692         (add_pending_init): Add origtype parameter.  Change all callers.
9693         (output_init_element): Likewise.
9694         (output_pending_init_elements): Pass origtype from init_node to
9695         output_init_element.
9696         (process_init_element): Pass origtype from c_expr to
9697         output_init_element.
9698         (c_finish_return): Add origtype parameter.  Change all callers.
9699         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
9700         caller.
9701         (sync_resolve_params): Likewise.
9702         (sync_resolve_return): Change params to first_param.  Change caller.
9703         (resolve_overloaded_builtins): Change params to VEC *.  Change
9704         callers.  Save first parameter around call to build_function_call_vec.
9705         * c-decl.c (finish_decl): Add origtype parameter.  Change all
9706         callers.  Call build_function_call_vec rather than
9707         build_function_call for cleanup.
9708         * c-tree.h: Update declarations.
9709         * c-common.h: Update declarations.
9710         * stub-objc.c (objc_rewrite_function_call): Change parameter from
9711         params to first_param.
9712         * target.h (struct gcc_target): Change resolve_overloaded_builtin
9713         params parameter from tree to void *.
9714         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9715         Change arglist parameter to have type void *, and to be a pointer
9716         to a VEC.
9717         * config/rs6000/rs6000-protos.h
9718         (altivec_resolve_overloaded_builtin): Update declaration.
9719         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9720         fnargs parameter to have type void *, and to be a pointer to a
9721         VEC.  Call build_function_call_vec instead of
9722         build_function_call.
9723         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
9724
9725 2009-04-20  Joey Ye  <joey.ye@intel.com>
9726             Xuepeng Guo  <xuepeng.guo@intel.com>
9727             H.J. Lu  <hongjiu.lu@intel.com>
9728
9729         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9730
9731         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9732         (IX86_LEA_PRIORITY): Likewise.
9733         (distance_non_agu_define): New function.
9734         (distance_agu_use): Likewise.
9735         (ix86_lea_for_add_ok): Likewise.
9736         (ix86_dep_by_shift_count): Likewise.
9737
9738         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9739         should split for LEA.
9740
9741         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9742         function.
9743         (ix86_dep_by_shift_count): Likewise.
9744
9745 2009-04-20  Richard Guenther  <rguenther@suse.de>
9746
9747         * expr.c (handled_component_p): Move ...
9748         * tree.h (handled_component_p): ... here.
9749         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9750         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9751         and REALPART_EXPR to be in one group.
9752
9753 2009-04-20  Richard Guenther  <rguenther@suse.de>
9754
9755         * basic-block.h (get_all_dominated_blocks): Declare.
9756         * dominance.c (get_all_dominated_blocks): New function.
9757         * tree-cfg.c (get_all_dominated_blocks): Remove.
9758         (remove_edge_and_dominated_blocks): Adjust.
9759         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9760         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
9761         instead of recursing.
9762
9763 2009-04-20  Doug Kwan  <dougkwan@google.com>
9764
9765         * cgraph.h (cgraph_node_ptr): New type for vector functions.
9766         (struct cgraph_node_set_def): New type.
9767         (cgraph_node_set) New type. Also declare vector functions.
9768         (struct cgraph_node_set_element_def): New type.
9769         (cgraph_node_set_element): Ditto.
9770         (cgraph_node_set_iterator): New iterator type.
9771         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9772         cgraph_node_set_remove, dump_cgraph_node_set,
9773         debug_cgraph_node_set): New prototypes.
9774         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9775         cgraph_node_set_size): New inlines.
9776         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9777         including cgraph.h.
9778         (struct ipa_opt_pass): Add struct cgraph_node_set_def
9779         argument to function 'write_summary'.
9780         * ipa.c: Include ggc.h.
9781         (hash_cgraph_node_set_element,
9782         eq_cgraph_node_set_element, cgraph_node_set_new,
9783         cgraph_node_set_add, cgraph_node_set_remove,
9784         cgraph_node_set_find, dump_cgraph_node_set,
9785         debug_cgraph_node_set): New functions.
9786         * Makefile.in (ipa.o): Add dependency on GGC_H.
9787
9788 2009-04-20  Ira Rosen  <irar@il.ibm.com>
9789
9790         PR tree-optimization/39675
9791         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
9792         check of the return code of vect_schedule_slp. Check that
9793         stmt_vec_info still exists for the statement, before checking its
9794         vectorization type.
9795
9796 2009-04-20  Michael Matz  <matz@suse.de>
9797
9798         * Makefile.in (generated_files): Take out $(simple_generated_c).
9799
9800 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
9801
9802         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
9803         (UINTPTR_TYPE):  Likewise.
9804
9805 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9806
9807         PR c/37481
9808         * c-typeck.c (digest_init): Check for initializing an array with a
9809         string literal.
9810
9811 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9812
9813         PR c/19771
9814         * c-semantics.c (pop_stmt_list): Propagate
9815         STATEMENT_LIST_HAS_LABEL to parent statement list.
9816
9817 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
9818
9819         * config/mips/mips.h (mips_tune_attr): New macro.
9820         * config/mips/mips.md (cpu): Use it.
9821
9822 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9823
9824         PR c/38243
9825         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9826         declaring a tag.
9827
9828 2009-04-19  Diego Novillo  <dnovillo@google.com>
9829
9830         * toplev.c (compile_file): Move call to coverage_finish ...
9831         * cgraphunit.c (ipa_passes): ... here.
9832         Call cgraph_process_new_functions.
9833         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9834         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9835
9836 2009-04-19  Jan Hubicka  <jh@suse.cz>
9837
9838         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9839         cfun.
9840         (dump_cgraph_node): Dump can throw external flag.
9841         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9842
9843 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9844
9845         PR c/32061
9846         PR c++/36954
9847         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9848         * common.opt (Wlogical-op): Move from here...
9849         * c.opt (Wlogical-op): ... to here.
9850         * c-typeck.c (parser_build_binary_op): Update call to
9851         warn_logical_operator.
9852         * c-opts.c (c_common_post_options): Enable warn_logical_op with
9853         extra_warnings.
9854         * c-common.c (warn_logical_op): Update.
9855         * c-common.h (warn_logical_op): Update declaration.
9856
9857 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9858
9859         * tree.c (protected_set_expr_location): Fix formatting.
9860
9861 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9862
9863         PR c/27676
9864         * c-typeck.c (readonly_warning): new.
9865         (build_unary_op, build_modify_expr): Use readonly_warning for
9866         storing into something readonly but not const-qualified.
9867
9868 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9869
9870         PR c/22367
9871         * c-typeck.c (build_unary_op): Check for taking address of
9872         expression of type void.
9873
9874 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9875
9876         PR c/35210
9877         * c-typeck.c (build_function_call): Check for calling a function
9878         with qualified void return types.  Call require_complete_type when
9879         generating a trap.
9880
9881 2009-04-18  Jan Hubicka  <jh@suse.cz>
9882
9883         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9884         Set nothrow flag.
9885         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9886         can_throw_external flag.
9887         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9888         * ipa-pure-const.c (ignore_edge): New function.
9889         (propagate): Compute order for NOTHROW computation; set NOTHROWs
9890         only over can_throw_external edges.
9891         (local_pure_const): Add nothrow flag.
9892         * ipa-utils.c (searchc): Add ignore_edge callback.
9893         (ipa_utils_reduced_inorder): Add ignore_edge callback.
9894         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9895         (set_nothrow_function_flags): Update cgraph.
9896         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9897
9898 2009-04-18  Richard Guenther  <rguenther@suse.de>
9899
9900         PR middle-end/39804
9901         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9902         (fold_stmt): ... this and ...
9903         (fold_stmt_inplace): ... this.
9904         (fold_stmt_1): Fold references in calls and asms.
9905         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9906
9907 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9908
9909         * tree-vrp.c (ssa_name_nonzero_p): Remove.
9910         * tree.h: Remove the prototype for ssa_name_nonzero_p.
9911
9912 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9913
9914         * tree.c (function_args_count): Remove.
9915         * tree.h: Remove the prototype for function_args_count.
9916
9917 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9918
9919         * tree-iterator.c (expr_only): Remove.
9920         * tree.h: Remove the prototype for expr_only.
9921
9922 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9923
9924         * reginfo.c (cannot_change_mode_set_regs): Remove.
9925         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9926
9927 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
9928
9929         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9930         whether operands 0 and 1 overlaps.
9931
9932 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9933
9934         PR middle-end/36902
9935         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9936         pointer. Use warning_at instead of warning.
9937         (search_for_addr_array): Likewise.
9938         (check_array_bounds): Likewise.
9939         (check_all_array_refs): Check that the incoming edge is not in the
9940         list of edges to be removed.
9941         (check_all_array_refs): Avoid the temporal pointer.
9942         (vrp_visit_cond_stmt): Fix typo.
9943         (simplify_switch_using_ranges): Handle the case where the switch
9944         index is an integer constant.
9945
9946 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
9947
9948         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9949
9950 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9951
9952         * doc/extend.texi, doc/invoke.texi: Fix typos.
9953
9954 2009-04-17  Cary Coutant  <ccoutant@google.com>
9955
9956         * tree-flow-inline.h (get_lineno): Fix inverted test.
9957
9958 2009-04-17  Diego Novillo  <dnovillo@google.com>
9959
9960         * tree-ssa-pre.c (create_expression_by_pieces): Remove
9961         assertion for AVAIL_OUT.
9962
9963 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
9964
9965         PR target/38627
9966         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9967         * config/sh/linux-atomic.asm: Likewise.
9968
9969 2009-04-17  Diego Novillo  <dnovillo@google.com>
9970
9971         * except.c (debug_eh_tree): New.
9972         (struct eh_region, struct eh_status): Move ...
9973         * except.h: ... here.
9974         (add_type_for_runtime): Declare extern.
9975         (lookup_type_for_runtime): Likewise.
9976         (debug_eh_tree): Declare.
9977         * Makefile.in (GTFILES): List except.h before except.c
9978
9979 2009-04-17  Diego Novillo  <dnovillo@google.com>
9980
9981         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
9982         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9983         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9984         (find_vars_r): ... here.
9985         * tree-flow.h (find_referenced_vars_in): Declare.
9986         * tree-ssa-pre.c (create_expression_by_pieces): Assert
9987         that AVAIL_OUT exists for BLOCK.
9988         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9989         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9990         (tree-parloops.o): Likewise.
9991
9992 2009-04-17  Simon Baldwin  <simonb@google.com>
9993
9994         * toplev.c (default_tree_printer): Add handling for %E format.
9995
9996 2009-04-17  Diego Novillo  <dnovillo@google.com>
9997
9998         * tree-pretty-print.c (dump_generic_node): Add break after
9999         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
10000         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
10001         FUNCTION_TYPE together.  Call print_struct_decl when printing
10002         structures and TDF_SLIM is not given.
10003         (print_struct_decl): Fix logic for detecting recursion.
10004
10005 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
10006
10007         PR 31567
10008         * gcc.c (create_at_file): New.
10009         (compile_input_file_p): New.
10010         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
10011         * main.c (main): Update call to toplev_main.
10012         * toplev.c (toplev_main): Change signature. Call expandargv.
10013         * toplev.h (toplev_main): Change signature.
10014
10015 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10016
10017         * dwarf2out.c (field_byte_offset): Use the type size as the field size
10018         if the latter is not constant.
10019
10020 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
10021
10022         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
10023
10024 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10025
10026         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
10027         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
10028
10029 2009-04-17  Richard Guenther  <rguenther@suse.de>
10030
10031         * tree-ssa-structalias.c (get_constraint_for_component_ref):
10032         Handle component references view-converting an invariant address.
10033
10034 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
10035
10036         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
10037         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
10038         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
10039         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
10040         Use @deftypevr rather than @deftypevar.
10041
10042 2009-04-17  Richard Guenther  <rguenther@suse.de>
10043
10044         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
10045         (get_prop_source_stmt): Likewise.
10046         (can_propagate_from): Likewise.
10047
10048 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
10049
10050         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
10051         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
10052         (--with-multilib-list): Add default value.
10053         * configure: Regenerate.
10054         * Makefile.in (TM_ENDIAN_CONFIG): Define.
10055         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
10056         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
10057         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
10058         Don't add default cpu to multilib list unnecessarily, but do enable
10059         the relevant compiler option..
10060         Add support for --with-multilib-list=<blank> and
10061         --with-multilib-list=!<somelib> to supress unwanted multilibs.
10062         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
10063         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
10064         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
10065         TM_MULTILIB_CONFIG.
10066         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
10067         (MULTILIB_OSDIRNAMES): New variable.
10068         * config/sh/t-1e: Delete file.
10069         * config/sh/t-mlib-sh1: Delete file.
10070         * config/sh/t-mlib-sh2: Delete file.
10071         * config/sh/t-mlib-sh2a: Delete file.
10072         * config/sh/t-mlib-sh2a-nofpu: Delete file.
10073         * config/sh/t-mlib-sh2a-single: Delete file.
10074         * config/sh/t-mlib-sh2a-single-only: Delete file.
10075         * config/sh/t-mlib-sh2e: Delete file.
10076         * config/sh/t-mlib-sh3e: Delete file.
10077         * config/sh/t-mlib-sh4: Delete file.
10078         * config/sh/t-mlib-sh4-nofpu: Delete file.
10079         * config/sh/t-mlib-sh4-single: Delete file.
10080         * config/sh/t-mlib-sh4-single-only: Delete file.
10081         * config/sh/t-mlib-sh4a: Delete file.
10082         * config/sh/t-mlib-sh4a-nofpu: Delete file.
10083         * config/sh/t-mlib-sh4a-single: Delete file.
10084         * config/sh/t-mlib-sh4a-single-only: Delete file.
10085         * config/sh/t-mlib-sh4al: Delete file.
10086         * config/sh/t-mlib-sh5-32media: Delete file.
10087         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
10088         * config/sh/t-mlib-sh5-64media: Delete file.
10089         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
10090         * config/sh/t-mlib-sh5-compact: Delete file.
10091         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
10092         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
10093         * doc/install.texi (Options specification): Add
10094         --with-multilib-list and --with-endian.
10095
10096 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
10097
10098         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
10099         REVISION_c.
10100         (OBJS-common): Add plugin-version.o.
10101         (plugin-version.o): New.
10102         * gcc-plugin.h (plugin_gcc_version): New.
10103         (plugin_default_version_check): New.
10104         (plugin_init_func, plugin_init): Add version argument.
10105         * plugin-version.c: New.
10106         * plugin.c (str_plugin_gcc_version_name): New.
10107         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
10108         pass it to the init function.
10109         (plugin_default_version_check): New.
10110
10111 2009-04-17  Richard Guenther  <rguenther@suse.de>
10112
10113         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
10114         for decl-vs-decl disambiguation.
10115
10116 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10117
10118         * config/s390/s390.h (s390_tune_attr): New macro definition.
10119         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
10120
10121 2009-04-17  Richard Guenther  <rguenther@suse.de>
10122
10123         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
10124         (fold_stmt_r): Likewise.
10125         (maybe_fold_reference): New function.
10126         (fold_gimple_assign): Handle cases fold_stmt_r did.
10127         (fold_stmt): Do not use fold_stmt_r.
10128         (fold_stmt_inplace): Likewise.
10129
10130 2009-04-17  Richard Guenther  <rguenther@suse.de>
10131
10132         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
10133         (record_equivalences_from_stmt): Remove useless checks and
10134         simplifications.
10135         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
10136         the type is already suitable.
10137
10138 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
10139
10140         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
10141
10142 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
10143
10144         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
10145         (CMPtype): Define as __gcc_CMPtype.
10146
10147 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
10148
10149         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
10150         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
10151
10152 2009-04-17  Richard Guenther  <rguenther@suse.de>
10153
10154         PR tree-optimization/39746
10155         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
10156         special-casing for builtins and static variable use/def.
10157         (call_may_clobber_ref_p_1): Likewise.
10158
10159 2009-04-16  Ian Lance Taylor  <iant@google.com>
10160
10161         * df.h: Include "timevar.h".
10162         (struct df_problem): Change tv_id field to timevar_id_t.
10163         * tree-pass.h: Include "timevar.h".
10164         (struct opt_pass): Change tv_id field to timevar_id_t.
10165         * timevar.h (timevar_id_t): Define TV_NONE.
10166         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
10167         TV_NONE rather than tv_id != 0.
10168         (execute_one_pass): Likewise.
10169         * Makefile.in (DF_H): Add $(TIMEVAR_H).
10170         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
10171         dependencies to $(TREE_PASS_H).
10172         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
10173         to TV_NONE.
10174         (pass_branch_target_load_optimize2): Likewise.
10175         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
10176         (pass_outof_cfg_layout_mode): Likewise.
10177         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
10178         (pass_rebuild_cgraph_edges): Likewise.
10179         (pass_remove_cgraph_callee_edges): Likewise.
10180         * df-core.c (pass_df_initialize_opt): Likewise.
10181         (pass_df_initialize_no_opt): Likewise.
10182         (pass_df_finish): Likewise.
10183         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
10184         * except.c (pass_set_nothrow_function_flags): Likewise.
10185         (pass_convert_to_eh_region_ranges): Likewise.
10186         * final.c (pass_compute_alignments): Likewise.
10187         * function.c (pass_instantiate_virtual_regs): Likewise.
10188         (pass_init_function): Likewise.
10189         (pass_leaf_regs): Likewise.
10190         (pass_match_asm_constraints): Likewise.
10191         * gimple-low.c (pass_lower_cf): Likewise.
10192         (pass_mark_used_blocks): Likewise.
10193         * init-regs.c (pass_initialize_regs): Likewise.
10194         * integrate.c (pass_initial_value_sets): Likewise.
10195         * ira.c (pass_ira): Likewise.
10196         * jump.c (pass_cleanup_barriers): Likewise.
10197         * omp-low.c (pass_expand_omp): Likewise.
10198         (pass_lower_omp): Likewise.
10199         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
10200         * recog.c (pass_split_all_insns): Likewise.
10201         (pass_split_after_reload): Likewise.
10202         (pass_split_before_regstack): Likewise.
10203         (pass_split_before_sched2): Likewise.
10204         (pass_split_for_shorten_branches): Likewise.
10205         * reginfo.c (pass_reginfo_init): Likewise.
10206         (pass_subregs_of_mode_init): Likewise.
10207         (pass_subregs_of_mode_finish): Likewise.
10208         * passes.c (pass_postreload): Likewise.
10209         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
10210         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
10211         (pass_warn_function_return): Likewise.
10212         (pass_warn_function_noreturn): Likewise.
10213         * tree-complex.c (pass_lower_complex): Likewise.
10214         (pass_lower_complex_O0): Likewise.
10215         * tree-if-conv.c (pass_if_conversion): Likewise.
10216         * tree-into-ssa.c (pass_build_ssa): Likewise.
10217         * tree-mudflap.c (pass_mudflap_1): Likewise.
10218         (pass_mudflap_2): Likewise.
10219         * tree-nomudflap.c (pass_mudflap_1): Likewise.
10220         (pass_mudflap_2): Likewise.
10221         * tree-nrv.c (pass_return_slot): Likewise.
10222         * tree-object-size.c (pass_object_sizes): Likewise.
10223         * tree-optimize.c (pass_all_optimizations): Likewise.
10224         (pass_early_local_passes): Likewise.
10225         (pass_all_early_optimizations): Likewise.
10226         (pass_cleanup_cfg): Likewise.
10227         (pass_cleanup_cfg_post_optimizing): Likewise.
10228         (pass_free_datastructures): Likewise.
10229         (pass_free_cfg_annotations): Likewise.
10230         (pass_fixup_cfg): Likewise.
10231         (pass_init_datastructures): Likewise.
10232         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
10233         (pass_late_warn_uninitialized): Likewise.
10234         (pass_update_address_taken): Likewise.
10235         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
10236         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
10237         (pass_cse_sincos): Likewise.
10238         (pass_convert_to_rsqrt): Likewise.
10239         * tree-ssa-structalias.c (pass_build_alias): Likewise.
10240         * tree-stdarg.c (pass_stdarg): Likewise.
10241         * tree-tailcall.c (pass_tail_recursion): Likewise.
10242         (pass_tail_calls): Likewise.
10243         * tree-vect-generic.c (pass_lower_vector): Likewise.
10244         (pass_lower_vector_ssa): Likewise.
10245         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
10246
10247 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
10248
10249         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
10250         XLR entry.
10251         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
10252         Handle -march=xlr.
10253         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
10254         logical and signext.
10255
10256 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
10257
10258         PR target/39767
10259         * config/sh/predicates.md (arith_operand): Check if the operand
10260         of TRUNCATE is a REG.
10261
10262 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10263
10264         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
10265         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
10266
10267 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10268
10269         * tree-iterator.c (tsi_split_statement_list_after,
10270         tsi_split_statement_list_before): Remove.
10271         * tree-iterator.h: Remove the prototypes for
10272         tsi_split_statement_list_after and tsi_split_statement_list_before.
10273
10274 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10275
10276         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
10277         * tree-ssa-propagate.h: Remove the prototype for
10278         stmt_makes_single_load.
10279
10280 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10281
10282         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
10283         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
10284
10285 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10286
10287         * tree-iterator.c (EXPR_LAST_BODY): Remove.
10288
10289 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10290
10291         * except.c (eh_region_outer_p): Remove.
10292         * except.h: Remove the prototype for eh_region_outer_p.
10293
10294 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
10295
10296         * function.c (current_function_assembler_name): Remove.
10297         * function.h: Remove the prototype for
10298         current_function_assembler_name.
10299
10300 2009-04-16  Ian Lance Taylor  <iant@google.com>
10301
10302         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
10303         (add_reg_note): Call alloc_reg_note.
10304         * rtl.h (alloc_reg_note): Declare.
10305         * combine.c (try_combine): Use alloc_reg_note.
10306         (recog_for_combine, move_deaths): Likewise.
10307         (distribute_notes): Use alloc_reg_note and add_reg_note.
10308         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
10309         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
10310         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
10311
10312 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
10313
10314         PR rtl-optimization/39762
10315         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
10316         ira_may_move_out_cost): Add comments about way of their usage.
10317         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
10318
10319         * ira-conflicts.c (process_regs_for_copy): Use function
10320         ira_get_register_move_cost instead of global
10321         ira_register_move_cost.
10322
10323         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
10324         color_pass, move_spill_restore, update_curr_costs): Ditto.
10325
10326         * ira-lives.c (process_single_reg_class_operands): Ditto.
10327
10328         * ira-emit.c (emit_move_list): Ditto.
10329
10330         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
10331         (record_reg_classes): Ditto.  Use functions
10332         ira_get_register_move_cost and ira_get_may_move_cost instead of
10333         global vars ira_register_move_cost, ira_may_move_out_cost and
10334         ira_may_move_in_cost.
10335         (record_address_regs): Don't call ira_init_register_move_cost.
10336         Use function ira_get_may_move_cost instead of global
10337         ira_may_move_in_cost.
10338         (process_bb_node_for_hard_reg_moves): Use function
10339         ira_get_register_move_cost instead of global ira_register_move_cost.
10340         (ira_costs): Don't call ira_init_register_move_cost.
10341
10342 2009-04-16  Richard Guenther  <rguenther@suse.de>
10343
10344         * tree-cfg.c (verify_gimple_assign_binary):
10345         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
10346         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
10347         (create_general_new_stmt): Note that this function is broken.
10348
10349 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10350
10351         * common.opt (fhelp): Add Var(help_flag).
10352         * gcc-plugin.h (plugin_info): Add help.
10353         * plugin.c (plugin_name_args): Add help.
10354         (register_plugin_info): Set plugin->help.
10355         (print_help_one_plugin): New.
10356         (print_plugins_help): New.
10357         * plugin.h (print_plugins_help): New.
10358         * toplev.c (toplev_main): Call print_plugins_help if needed.
10359
10360 2009-04-16  Richard Guenther  <rguenther@suse.de>
10361
10362         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
10363         (gimple_ior_addresses_taken_1): New function.
10364         (gimple_ior_addresses_taken): Likewise.
10365         * gimple.h (struct gimple_statement_with_ops_base): Remove
10366         addresses_taken member.
10367         (gimple_ior_addresses_taken): Declare.
10368         (gimple_addresses_taken, gimple_addresses_taken_ptr,
10369         gimple_set_addresses_taken): Remove.
10370         * ipa-reference.c (mark_address): New function.
10371         (scan_stmt_for_static_refs): Use it for marking addresses taken.
10372         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
10373         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
10374         (gimple_add_to_addresses_taken): Remove.
10375         (get_tmr_operands): Call mark_address_taken.
10376         (get_asm_expr_operands): Likewise.
10377         (get_expr_operands): Likewise.
10378         (build_ssa_operands): Do not clear the addresses_taken bitmap.
10379         (free_stmt_operands): Do not free it.
10380         * tree-ssa.c (delete_tree_ssa): Likewise.
10381         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
10382
10383 2009-04-16  Richard Guenther  <rguenther@suse.de>
10384
10385         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
10386         (walk_stmt_load_store_ops): Likewise.
10387         * gimple.c (get_base_loadstore): New function.
10388         (walk_stmt_load_store_addr_ops): Likewise.
10389         (walk_stmt_load_store_ops): Likewise.
10390         * ipa-pure-const.c (check_op): Simplify.
10391         (check_load, check_store): New functions.
10392         (check_stmt): Use walk_stmt_load_store_ops.
10393         * ipa-reference.c (mark_load): Adjust signature.
10394         (mark_store): Likewise.
10395         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
10396
10397 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10398
10399         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
10400         (plugin_info): New.
10401         * opts.c (common_handle_option): Don't call print_version.
10402         * plugin.c (plugin_name_args): Add version.
10403         (register_plugin_info): New.
10404         (register_callback): Handle PLUGIN_INFO.
10405         (try_init_one_plugin): New.
10406         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
10407         if failed to init.
10408         (finalize_one_plugin): New.
10409         (finalize_plugins): New.
10410         (print_one_plugin): New.
10411         (print_plugins_versions): New.
10412         * plugin.h (print_plugins_versions): New.
10413         (finalize_plugins): New.
10414         * toplev.c (compile_file): Don't call initialize_plugins.
10415         (print_version): Call print_plugins_versions.
10416         (toplev_main): Call initialize_plugins. Print version if needed.
10417         Call finalize_plugins.
10418
10419 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10420
10421         * common.opt (fversion): New.
10422         * gcc.c (print_version): New.
10423         (process_command): Don't print the version. Just set print_version.
10424         (main): Print version. Call subprocesses if print_version and
10425         verbose_flag are set.
10426         * opts.c (common_handle_option): Handle OPT_fversion.
10427
10428 2009-04-16  Richard Guenther  <rguenther@suse.de>
10429             Ira Rosen  <irar@il.ibm.com>
10430
10431         PR tree-optimization/39698
10432         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
10433         type of the reduction variable.  Only generate the def if
10434         it is needed.
10435
10436         * omp-low.c (expand_omp_for_generic): When converting to a pointer
10437         make sure to first convert to an integer of the same precision.
10438         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
10439         the type of the evolution correctly in computing the new
10440         induction variable base.
10441
10442 2009-04-16  Richard Guenther  <rguenther@suse.de>
10443
10444         PR middle-end/39625
10445         * tree-cfg.c (make_blocks): Split statements with to-be
10446         abnormal SSA names on the lhs.
10447
10448 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
10449
10450         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
10451         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
10452         * c-typeck.c (really_start_incremental_init): Likewise.
10453         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
10454         (TARGET_INITIALIZER): Remove it.
10455         * target.h (struct target): Remove vector_opaque_p.
10456         * tree.c (build_opaque_vector_type): New.
10457         * tree.h (TYPE_VECTOR_OPAQUE): New.
10458         (build_opaque_vector_type): Declare.
10459         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
10460         * config/rs6000/rs6000.c (build_opaque_vector_type,
10461         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
10462         (rs6000_init_builtins): Use build_opaque_vector_type for
10463         opaque_V4SI_type_node.
10464
10465 2009-04-15  Catherine Moore  <clm@codesourcery.com>
10466
10467         * debug.h (set_name):  Declare.
10468         * dwarf2out.c (dwarf2out_set_name): Declare.
10469         (dwarf2_debug_hooks): Add set_name.
10470         (find_AT_string): New.
10471         (add_AT_string): Call find_AT_string.
10472         (dwarf2out_set_name): New.
10473         * cp/decl.c (grokdeclarator): Call set_name.
10474         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
10475         * debug.c (do_nothing_debug_hooks):  Likewise.
10476         * dbxout.c (dbx_debug_hooks): Likewise.
10477         * sdbout.c (sdb_debug_hooks): Likewise.
10478
10479 2009-04-15  Michael Eager  <eager@eagercon.com>
10480
10481         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
10482         reg for single-precision FPU.
10483         * config/rs6000/rs6000.md (movsi_internal1): Only for
10484         !TARGET_SINGLE_FPU.
10485         (movsi_internal1_single): New. Add pattern to move SI values to/from
10486         single-precision FP regs.
10487
10488 2009-04-15  Richard Guenther  <rguenther@suse.de>
10489
10490         * omp-low.c (lower_rec_input_clauses): Build correct address
10491         expressions.
10492         (expand_omp_for_generic): Fix multiplication type.
10493         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
10494         (generate_memset_zero): Fix types.
10495         * tree-profile.c (prepare_instrumented_value): Correctly
10496         widen a pointer.
10497
10498 2009-04-15  Ian Lance Taylor  <iant@google.com>
10499
10500         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
10501         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
10502         for -Wall and for -Wc++-compat.
10503         (c_common_post_options): For C++, set warn_enum_compare if not
10504         already set.
10505         * c-tree.h (struct c_expr): Add field original_type.
10506         (build_external_ref): Update declaration.
10507         * c-parser.c (c_parser_braced_init): Set original_type.
10508         (c_parser_initelt): Likewise.
10509         (c_parser_expr_no_commas): Likewise.
10510         (c_parser_conditional_expression): Likewise.
10511         (c_parser_cast_expression): Likewise.
10512         (c_parser_unary_expression): Likewise.  Pull setting of
10513         original_code to top of function.
10514         (c_parser_sizeof_expression): Set original_type.
10515         (c_parser_alignof_expression): Likewise.
10516         (c_parser_postfix_expression): Likewise.  Pull setting of
10517         original_code to top of function.
10518         (c_parser_postfix_expression_after_paren_type): Set original_type.
10519         (c_parser_postfix_expression_after_primary): Likewise.
10520         (c_parser_expression): Likewise.
10521         * c-typeck.c (build_external_ref): Add type parameter.  Change all
10522         callers.
10523         (c_expr_sizeof_expr): Set original_type field.
10524         (parser_build_unary_op): Likewise.
10525         (parser_build_binary_op): Likewise.  Optionally warn about
10526         comparisons of enums of different types.
10527         (digest_init): Set original_type field.
10528         (really_start_incremental_init): Likewise.
10529         (push_init_level, pop_init_level): Likewise.
10530         * doc/invoke.texi (Warning Options): -Wenum-compare now
10531         supported in C.
10532
10533 2009-04-15  Richard Guenther  <rguenther@suse.de>
10534
10535         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10536         out a necessary conversion.
10537         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10538         names we didn't value number.
10539         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10540
10541 2009-04-15  Richard Guenther  <rguenther@suse.de>
10542
10543         PR tree-optimization/39764
10544         * tree-ssa-ccp.c (get_value): Canonicalize value with
10545         canonicalize_float_value.
10546
10547 2009-04-15  Jan Hubicka  <jh@suse.cz>
10548
10549         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10550         Wrong version of patch.
10551
10552 2009-04-15  Jan Hubicka  <jh@suse.cz>
10553
10554         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10555
10556 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
10557
10558         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10559         our distinct integral and vector types.
10560
10561 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
10562
10563         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10564         * init.c (build_vtbl_address): Remove call to assemble_external.
10565
10566 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
10567
10568         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10569         output for other floating point modes.
10570
10571 2009-04-14  Diego Novillo  <dnovillo@google.com>
10572
10573         * diagnostic.c (diagnostic_report_diagnostic): Do not
10574         warn about loaded plugins for DK_ERROR and DK_WARNING.
10575         * c-decl.c (declspecs_add_type): Move call to
10576         invoke_plugin_callbacks ...
10577         * c-parser.c (c_parser_declspecs): ... here.
10578         * plugin.c (dump_active_plugins): Tidy output.
10579
10580 2009-04-14  Diego Novillo  <dnovillo@google.com>
10581             Le-Chun Wu  <lcwu@google.com>
10582
10583         * configure.ac: Add --enable-plugin support.
10584         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10585         * Makefile.in (PLUGIN_H): Define.
10586         Export ENABLE_PLUGIN and GMPINC to site.exp.
10587         Add PLUGINLIBS to link command.
10588         Add/modify dependencies for plugin.o and files including plugin.h.
10589         (plugin.o): New.
10590         * config.in: Regenerate.
10591
10592         * opts.c (common_handle_option): Handle OPT_fplugin_ and
10593         OPT_fplugin_arg_.
10594
10595 2009-04-14  Le-Chun Wu  <lcwu@google.com>
10596
10597         * tree-pass.h (register_one_dump_file): Add a prototype for
10598         register_one_dump_file.
10599         * toplev.c (compile_file): Call initialize_plugins.
10600         (do_compile): Call invoke_plugin_callbacks.
10601         (toplev_main): Call invoke_plugin_callbacks.
10602         * common.opt: Add -fplugin= and -fplugin-arg-.
10603         * gcc-plugin.h: New public header file for plugins to include.
10604         * plugin.c: New source file.
10605         * plugin.h: New internal header file.
10606         * passes.c (register_one_dump_file): Make it external.
10607
10608         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10609
10610 2009-04-14  Diego Novillo  <dnovillo@google.com>
10611
10612         * doc/plugins.texi: New.
10613         * doc/gccint.texi: Add reference to Plugins chapter.
10614         * doc/invoke.texi: Document -fplugin and -fplugin-arg
10615         * diagnostic.c (diagnostic_report_diagnostic): Warn about
10616         loaded plugins, if any.
10617         * timevar.def (TV_PLUGIN_INIT): Define.
10618         (TV_PLUGIN_RUN): Define.
10619         * plugin.c: Include timevar.h
10620         (plugins_active_p): New.
10621         (dump_active_plugins): New.
10622         (debug_active_plugins): New.
10623
10624 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
10625
10626         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10627         library paths.
10628         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10629
10630 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
10631
10632         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10633         the same as a minus without a shift.
10634
10635 2009-04-14  Nick Clifton  <nickc@redhat.com>
10636
10637         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10638         comparisons with small integers will always produce a short
10639         branch.
10640
10641 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
10642
10643         Merge:
10644         2008-12-19  Diego Novillo  <dnovillo@google.com>
10645
10646         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
10647
10648 2009-04-14  Richard Guenther  <rguenther@suse.de>
10649
10650         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10651         verification.
10652         (verify_gimple_assign_binary): Likewise.  Handle shifts and
10653         rotates correctly.
10654         (verify_gimple_phi): Print the mismatched argument position.
10655         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10656         Fix types.
10657         (vect_update_init_of_dr): Likewise.
10658         * matrix-reorg.c (transform_access_sites): Do what the
10659         comment suggests.
10660         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10661
10662 2009-04-13  Michael Eager  <eager@eagercon.com>
10663
10664         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10665         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10666         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
10667         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
10668         remove duplicate config
10669
10670 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10671
10672         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10673         file_name:line_number type locator of the call site.
10674
10675 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
10676
10677         * genautomata.c: Put blank after comma.
10678         (automaton_decls): New.
10679         (struct unit_usage): Add comments to member next.
10680         (store_alt_unit_usage): Keep the list ordered.
10681         (unit_present_on_list_p, equal_alternatives_p): New.
10682         (check_regexp_units_distribution): Check units distribution
10683         correctness correctly.
10684         (main): Don't write automata if error is found.  Return correct
10685         exit code.
10686
10687         * config/m68k/cf.md (cfv4_ds): Remove.
10688         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10689         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10690
10691         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10692         power4-load-ext, power4-store, power4-store-update,
10693         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10694         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10695         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10696         power4-sqrt, power4-isync): Modify reservation to make correct
10697         unit distribution to automata.
10698
10699         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10700         power5-store-update, power5-two, power5-three, power5-lmul,
10701         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
10702
10703 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
10704
10705         * except.c (pass_set_nothrow_function_flags): Set name and add
10706         TODO_dump_func.
10707         (set_nothrow_function_flags): Mention in the dump file when
10708         changing a function to nothrow.
10709
10710 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
10711
10712         PR/39066
10713         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10714         instead of unsigned long.
10715
10716 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10717
10718         * config/arm/arm.c (return_used_this_function): Remove.
10719         (arm_output_function_prologue): Remove use of
10720         return_used_this_function.
10721         (output_return_instruction): Replace use of
10722         return_used_this_function
10723         by cfun->machine->return_used_this_function.
10724         (arm_output_epilogue): Likewise.
10725         (arm_output_function_epilogue): Likewise.
10726         (thumb_unexpanded_epilogue): Likewise.
10727         * config/arm/arm.h (struct machine_function):
10728         New member return_used_this_function.
10729
10730 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
10731
10732         * doc/install.texi: Correct description of default directory for
10733         --with-gxx-include-dir.
10734
10735 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10736
10737         * fold-const.c (build_range_check): Properly deal with enumeral and
10738         boolean base types.
10739
10740 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
10741
10742         * doc/invoke.texi (max_gcse_passes): Remove documentation.
10743         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10744         * params.h (MAX_GCSE_PASSES): Remove.
10745         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10746         in sequence.  Remove ability to run multiple passes.
10747         (bypass_jumps): Report run as third CPROP pass.
10748
10749 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
10750
10751         PR middle-end/39651
10752         * except.c (can_throw_external): Look at each insn in a SEQUENCE
10753         when deciding whether the whole SEQUENCE can throw.
10754
10755 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
10756
10757         PR target/39740
10758         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10759         offseted label references.
10760
10761 2009-04-11  Jan Hubicka  <jh@suse.cz>
10762
10763         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10764
10765 2009-04-11  Richard Guenther  <rguenther@suse.de>
10766
10767         PR middle-end/39732
10768         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10769         return variables as TREE_ADDRESSABLE.
10770
10771 2009-04-11  Richard Guenther  <rguenther@suse.de>
10772
10773         PR tree-optimization/39713
10774         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10775         reference trees have SSA_NAME operands.
10776
10777 2009-04-11  Richard Guenther  <rguenther@suse.de>
10778
10779         PR c/39712
10780         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10781         address expressions.
10782
10783 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10784
10785         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
10786         match changes in Cygwin 1.7
10787         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10788         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
10789
10790 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10791
10792         PR tree-optimization/39701
10793         * doc/invoke.texi (Optimization Options): Document change in
10794         meaning and initialization of -fdelete-null-pointer-checks.
10795
10796 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10797
10798         PR middle-end/39701
10799         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10800
10801         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10802         here.
10803
10804         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10805
10806 2009-04-10  Chao-ying Fu  <fu@mips.com>
10807
10808         * doc/tm.texi (Instruction Output): Document
10809         TARGET_ASM_FINAL_POSTSCAN_INSN.
10810         * target.h (final_postscan_insn): New field in asm_out.
10811         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10812         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10813         * final.c (final_scan_insn): Call
10814         targetm.asm_out.final_postscan_insn after outputting
10815         an asm macro and a normal instruction.
10816
10817         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10818         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10819         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10820         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10821         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10822
10823 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10824
10825         PR middle-end/39701
10826         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10827         variables as non-NULL even with -fdelete-null-pointer-checks.
10828
10829 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10830
10831         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10832
10833 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
10834
10835         PR target/39678
10836         * config/i386/i386.c (classify_argument): Handle SCmode with
10837         (bit_offset % 64) != 0.
10838
10839 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
10840
10841         * doc/invoke.texi (Optimize Options): Add cross-reference to
10842         -Q --help=optimizers examples.
10843
10844 2009-04-10  Ben Elliston  <bje@au.ibm.com>
10845
10846         PR target/36800
10847         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10848         regalign for the reg == fpr and TDmode case.
10849
10850 2009-04-09  David Ayers  <ayers@fsfe.org>
10851
10852         PR objc/29200
10853         * objc/objc-act.c (warn_with_method): Remove helper function.
10854         (check_duplicates): Call warning and inform directly.
10855         (really_start_method): Likewise.
10856
10857 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
10858
10859         * expmed.c (expand_divmod): Always use a comparison for a division
10860         by a large unsigned integer.
10861
10862         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10863         for things others than variables or functions as nonzero.
10864
10865 2009-04-09  Nick Clifton  <nickc@redhat.com>
10866
10867         * unwind-compat.c: Change copyright header to refer to version
10868         3 of the GNU General Public License with version 3.1 of the
10869         GCC Runtime Library Exception and to point readers at the
10870         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
10871         * config/alpha/crtfastmath.c: Likewise.
10872         * config/alpha/linux-unwind.h: Likewise.
10873         * config/alpha/qrnnd.asm: Likewise.
10874         * config/alpha/vms-crt0-64.c: Likewise.
10875         * config/alpha/vms-crt0.c: Likewise.
10876         * config/alpha/vms-dwarf2.asm: Likewise.
10877         * config/alpha/vms-dwarf2eh.asm: Likewise.
10878         * config/alpha/vms-psxcrt0-64.c: Likewise.
10879         * config/alpha/vms-psxcrt0.c: Likewise.
10880         * config/alpha/vms_tramp.asm: Likewise.
10881         * config/arc/initfini.c: Likewise.
10882         * config/arc/lib1funcs.asm: Likewise.
10883         * config/arm/bpabi-v6m.S: Likewise.
10884         * config/arm/bpabi.S: Likewise.
10885         * config/arm/bpabi.c: Likewise.
10886         * config/arm/crti.asm: Likewise.
10887         * config/arm/crtn.asm: Likewise.
10888         * config/arm/ieee754-df.S: Likewise.
10889         * config/arm/ieee754-sf.S: Likewise.
10890         * config/arm/lib1funcs.asm: Likewise.
10891         * config/arm/libunwind.S: Likewise.
10892         * config/arm/linux-atomic.c: Likewise.
10893         * config/arm/mmintrin.h: Likewise.
10894         * config/arm/pr-support.c: Likewise.
10895         * config/arm/unaligned-funcs.c: Likewise.
10896         * config/arm/unwind-arm.c: Likewise.
10897         * config/arm/unwind-arm.h: Likewise.
10898         * config/avr/libgcc.S: Likewise.
10899         * config/bfin/crti.s: Likewise.
10900         * config/bfin/crtlibid.s: Likewise.
10901         * config/bfin/crtn.s: Likewise.
10902         * config/bfin/lib1funcs.asm: Likewise.
10903         * config/bfin/linux-unwind.h: Likewise.
10904         * config/cris/arit.c: Likewise.
10905         * config/cris/cris_abi_symbol.c: Likewise.
10906         * config/darwin-64.c: Likewise.
10907         * config/darwin-crt2.c: Likewise.
10908         * config/darwin-crt3.c: Likewise.
10909         * config/darwin.h: Likewise.
10910         * config/dbxelf.h: Likewise.
10911         * config/dfp-bit.c: Likewise.
10912         * config/dfp-bit.h: Likewise.
10913         * config/elfos.h: Likewise.
10914         * config/fixed-bit.c: Likewise.
10915         * config/fixed-bit.h: Likewise.
10916         * config/fp-bit.c: Likewise.
10917         * config/fp-bit.h: Likewise.
10918         * config/fr30/crti.asm: Likewise.
10919         * config/fr30/crtn.asm: Likewise.
10920         * config/fr30/lib1funcs.asm: Likewise.
10921         * config/freebsd-spec.h: Likewise.
10922         * config/frv/cmovd.c: Likewise.
10923         * config/frv/cmovh.c: Likewise.
10924         * config/frv/cmovw.c: Likewise.
10925         * config/frv/frvbegin.c: Likewise.
10926         * config/frv/frvend.c: Likewise.
10927         * config/frv/lib1funcs.asm: Likewise.
10928         * config/glibc-stdint.h: Likewise.
10929         * config/h8300/clzhi2.c: Likewise.
10930         * config/h8300/crti.asm: Likewise.
10931         * config/h8300/crtn.asm: Likewise.
10932         * config/h8300/ctzhi2.c: Likewise.
10933         * config/h8300/fixunssfsi.c: Likewise.
10934         * config/h8300/lib1funcs.asm: Likewise.
10935         * config/h8300/parityhi2.c: Likewise.
10936         * config/h8300/popcounthi2.c: Likewise.
10937         * config/i386/ammintrin.h: Likewise.
10938         * config/i386/att.h: Likewise.
10939         * config/i386/avxintrin.h: Likewise.
10940         * config/i386/biarch64.h: Likewise.
10941         * config/i386/bmmintrin.h: Likewise.
10942         * config/i386/cpuid.h: Likewise.
10943         * config/i386/cross-stdarg.h: Likewise.
10944         * config/i386/crtfastmath.c: Likewise.
10945         * config/i386/crtprec.c: Likewise.
10946         * config/i386/cygming-crtbegin.c: Likewise.
10947         * config/i386/cygming-crtend.c: Likewise.
10948         * config/i386/cygwin.asm: Likewise.
10949         * config/i386/emmintrin.h: Likewise.
10950         * config/i386/gmm_malloc.h: Likewise.
10951         * config/i386/gthr-win32.c: Likewise.
10952         * config/i386/i386.h: Likewise.
10953         * config/i386/immintrin.h: Likewise.
10954         * config/i386/linux-unwind.h: Likewise.
10955         * config/i386/linux64.h: Likewise.
10956         * config/i386/mm3dnow.h: Likewise.
10957         * config/i386/mmintrin-common.h: Likewise.
10958         * config/i386/mmintrin.h: Likewise.
10959         * config/i386/nmmintrin.h: Likewise.
10960         * config/i386/pmm_malloc.h: Likewise.
10961         * config/i386/pmmintrin.h: Likewise.
10962         * config/i386/smmintrin.h: Likewise.
10963         * config/i386/sol2-c1.asm: Likewise.
10964         * config/i386/sol2-ci.asm: Likewise.
10965         * config/i386/sol2-cn.asm: Likewise.
10966         * config/i386/sol2-gc1.asm: Likewise.
10967         * config/i386/tmmintrin.h: Likewise.
10968         * config/i386/unix.h: Likewise.
10969         * config/i386/w32-unwind.h: Likewise.
10970         * config/i386/wmmintrin.h: Likewise.
10971         * config/i386/x86-64.h: Likewise.
10972         * config/i386/x86intrin.h: Likewise.
10973         * config/i386/xmmintrin.h: Likewise.
10974         * config/ia64/crtbegin.asm: Likewise.
10975         * config/ia64/crtend.asm: Likewise.
10976         * config/ia64/crtfastmath.c: Likewise.
10977         * config/ia64/crti.asm: Likewise.
10978         * config/ia64/crtn.asm: Likewise.
10979         * config/ia64/fde-glibc.c: Likewise.
10980         * config/ia64/lib1funcs.asm: Likewise.
10981         * config/ia64/linux-unwind.h: Likewise.
10982         * config/ia64/quadlib.c: Likewise.
10983         * config/ia64/unwind-ia64.c: Likewise.
10984         * config/linux.h: Likewise.
10985         * config/m32c/m32c-lib1.S: Likewise.
10986         * config/m32c/m32c-lib2-trapv.c: Likewise.
10987         * config/m32c/m32c-lib2.c: Likewise.
10988         * config/m32r/initfini.c: Likewise.
10989         * config/m68hc11/larith.asm: Likewise.
10990         * config/m68hc11/m68hc11-crt0.S: Likewise.
10991         * config/m68k/cf.md: Likewise.
10992         * config/m68k/crti.s: Likewise.
10993         * config/m68k/crtn.s: Likewise.
10994         * config/m68k/lb1sf68.asm: Likewise.
10995         * config/m68k/linux-unwind.h: Likewise.
10996         * config/mcore/crti.asm: Likewise.
10997         * config/mcore/crtn.asm: Likewise.
10998         * config/mcore/lib1.asm: Likewise.
10999         * config/mips/linux-unwind.h: Likewise.
11000         * config/mips/loongson.h: Likewise.
11001         * config/mips/mips16.S: Likewise.
11002         * config/mmix/crti.asm: Likewise.
11003         * config/mmix/crtn.asm: Likewise.
11004         * config/pa/fptr.c: Likewise.
11005         * config/pa/hpux-unwind.h: Likewise.
11006         * config/pa/lib2funcs.asm: Likewise.
11007         * config/pa/linux-atomic.c: Likewise.
11008         * config/pa/linux-unwind.h: Likewise.
11009         * config/pa/milli64.S: Likewise.
11010         * config/pa/quadlib.c: Likewise.
11011         * config/pa/stublib.c: Likewise.
11012         * config/picochip/libgccExtras/adddi3.asm: Likewise.
11013         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
11014         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
11015         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
11016         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
11017         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
11018         * config/picochip/libgccExtras/divmod15.asm: Likewise.
11019         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
11020         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
11021         * config/picochip/libgccExtras/longjmp.asm: Likewise.
11022         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
11023         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
11024         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
11025         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
11026         * config/picochip/libgccExtras/setjmp.asm: Likewise.
11027         * config/picochip/libgccExtras/subdi3.asm: Likewise.
11028         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
11029         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
11030         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
11031         * config/rs6000/750cl.h: Likewise.
11032         * config/rs6000/altivec.h: Likewise.
11033         * config/rs6000/biarch64.h: Likewise.
11034         * config/rs6000/crtresfpr.asm: Likewise.
11035         * config/rs6000/crtresgpr.asm: Likewise.
11036         * config/rs6000/crtresxfpr.asm: Likewise.
11037         * config/rs6000/crtresxgpr.asm: Likewise.
11038         * config/rs6000/crtsavfpr.asm: Likewise.
11039         * config/rs6000/crtsavgpr.asm: Likewise.
11040         * config/rs6000/darwin-asm.h: Likewise.
11041         * config/rs6000/darwin-fallback.c: Likewise.
11042         * config/rs6000/darwin-fpsave.asm: Likewise.
11043         * config/rs6000/darwin-ldouble.c: Likewise.
11044         * config/rs6000/darwin-tramp.asm: Likewise.
11045         * config/rs6000/darwin-unwind.h: Likewise.
11046         * config/rs6000/darwin-vecsave.asm: Likewise.
11047         * config/rs6000/darwin-world.asm: Likewise.
11048         * config/rs6000/e500crtres32gpr.asm: Likewise.
11049         * config/rs6000/e500crtres64gpr.asm: Likewise.
11050         * config/rs6000/e500crtres64gprctr.asm: Likewise.
11051         * config/rs6000/e500crtrest32gpr.asm: Likewise.
11052         * config/rs6000/e500crtrest64gpr.asm: Likewise.
11053         * config/rs6000/e500crtresx32gpr.asm: Likewise.
11054         * config/rs6000/e500crtresx64gpr.asm: Likewise.
11055         * config/rs6000/e500crtsav32gpr.asm: Likewise.
11056         * config/rs6000/e500crtsav64gpr.asm: Likewise.
11057         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
11058         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
11059         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
11060         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
11061         * config/rs6000/eabi-ci.asm: Likewise.
11062         * config/rs6000/eabi-cn.asm: Likewise.
11063         * config/rs6000/eabi.asm: Likewise.
11064         * config/rs6000/linux-unwind.h: Likewise.
11065         * config/rs6000/linux64.h: Likewise.
11066         * config/rs6000/paired.h: Likewise.
11067         * config/rs6000/paired.md: Likewise.
11068         * config/rs6000/ppc64-fp.c: Likewise.
11069         * config/rs6000/ppu_intrinsics.h: Likewise.
11070         * config/rs6000/rs6000.h: Likewise.
11071         * config/rs6000/si2vmx.h: Likewise.
11072         * config/rs6000/sol-ci.asm: Likewise.
11073         * config/rs6000/sol-cn.asm: Likewise.
11074         * config/rs6000/spe.h: Likewise.
11075         * config/rs6000/spu2vmx.h: Likewise.
11076         * config/rs6000/sysv4.h: Likewise.
11077         * config/rs6000/tramp.asm: Likewise.
11078         * config/rs6000/vec_types.h: Likewise.
11079         * config/s390/linux-unwind.h: Likewise.
11080         * config/s390/tpf-unwind.h: Likewise.
11081         * config/score/crti.asm: Likewise.
11082         * config/score/crtn.asm: Likewise.
11083         * config/sh/crt1.asm: Likewise.
11084         * config/sh/crti.asm: Likewise.
11085         * config/sh/crtn.asm: Likewise.
11086         * config/sh/divtab-sh4-300.c: Likewise.
11087         * config/sh/divtab-sh4.c: Likewise.
11088         * config/sh/divtab.c: Likewise.
11089         * config/sh/lib1funcs-4-300.asm: Likewise.
11090         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
11091         * config/sh/lib1funcs.asm: Likewise.
11092         * config/sh/lib1funcs.h: Likewise.
11093         * config/sh/linux-atomic.asm: Likewise.
11094         * config/sh/linux-unwind.h: Likewise.
11095         * config/sh/shmedia.h: Likewise.
11096         * config/sh/sshmedia.h: Likewise.
11097         * config/sh/ushmedia.h: Likewise.
11098         * config/sparc/crtfastmath.c: Likewise.
11099         * config/sparc/linux-unwind.h: Likewise.
11100         * config/sparc/sol2-c1.asm: Likewise.
11101         * config/sparc/sol2-ci.asm: Likewise.
11102         * config/sparc/sol2-cn.asm: Likewise.
11103         * config/spu/divmodti4.c: Likewise.
11104         * config/spu/divv2df3.c: Likewise.
11105         * config/spu/float_disf.c: Likewise.
11106         * config/spu/float_unsdidf.c: Likewise.
11107         * config/spu/float_unsdisf.c: Likewise.
11108         * config/spu/float_unssidf.c: Likewise.
11109         * config/spu/mfc_multi_tag_release.c: Likewise.
11110         * config/spu/mfc_multi_tag_reserve.c: Likewise.
11111         * config/spu/mfc_tag_release.c: Likewise.
11112         * config/spu/mfc_tag_reserve.c: Likewise.
11113         * config/spu/mfc_tag_table.c: Likewise.
11114         * config/spu/multi3.c: Likewise.
11115         * config/spu/spu_internals.h: Likewise.
11116         * config/spu/spu_intrinsics.h: Likewise.
11117         * config/spu/spu_mfcio.h: Likewise.
11118         * config/spu/vec_types.h: Likewise.
11119         * config/spu/vmx2spu.h: Likewise.
11120         * config/stormy16/stormy16-lib2.c: Likewise.
11121         * config/svr4.h: Likewise.
11122         * config/sync.c: Likewise.
11123         * config/v850/lib1funcs.asm: Likewise.
11124         * config/vxlib-tls.c: Likewise.
11125         * config/vxlib.c: Likewise.
11126         * config/vxworks-dummy.h: Likewise.
11127         * config/xtensa/crti.asm: Likewise.
11128         * config/xtensa/crtn.asm: Likewise.
11129         * config/xtensa/ieee754-df.S: Likewise.
11130         * config/xtensa/ieee754-sf.S: Likewise.
11131         * config/xtensa/lib1funcs.asm: Likewise.
11132         * config/xtensa/lib2funcs.S: Likewise.
11133         * config/xtensa/linux-unwind.h: Likewise.
11134         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11135         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
11136         * coretypes.h: Likewise.
11137         * crtstuff.c: Likewise.
11138         * defaults.h: Likewise.
11139         * dwarf2.h: Likewise.
11140         * emutls.c: Likewise.
11141         * gbl-ctors.h: Likewise.
11142         * gcov-io.h: Likewise.
11143         * ginclude/float.h: Likewise.
11144         * ginclude/iso646.h: Likewise.
11145         * ginclude/stdarg.h: Likewise.
11146         * ginclude/stdbool.h: Likewise.
11147         * ginclude/stddef.h: Likewise.
11148         * ginclude/stdfix.h: Likewise.
11149         * ginclude/stdint-gcc.h: Likewise.
11150         * ginclude/tgmath.h: Likewise.
11151         * gthr-aix.h: Likewise.
11152         * gthr-dce.h: Likewise.
11153         * gthr-gnat.c: Likewise.
11154         * gthr-gnat.h: Likewise.
11155         * gthr-lynx.h: Likewise.
11156         * gthr-mipssde.h: Likewise.
11157         * gthr-nks.h: Likewise.
11158         * gthr-posix.c: Likewise.
11159         * gthr-posix.h: Likewise.
11160         * gthr-posix95.h: Likewise.
11161         * gthr-rtems.h: Likewise.
11162         * gthr-single.h: Likewise.
11163         * gthr-solaris.h: Likewise.
11164         * gthr-tpf.h: Likewise.
11165         * gthr-vxworks.h: Likewise.
11166         * gthr-win32.h: Likewise.
11167         * gthr.h: Likewise.
11168         * libgcc2.c: Likewise.
11169         * libgcc2.h: Likewise.
11170         * libgcov.c: Likewise.
11171         * tsystem.h: Likewise.
11172         * typeclass.h: Likewise.
11173         * unwind-c.c: Likewise.
11174         * unwind-compat.h: Likewise.
11175         * unwind-dw2-fde-compat.c: Likewise.
11176         * unwind-dw2-fde-darwin.c: Likewise.
11177         * unwind-dw2-fde-glibc.c: Likewise.
11178         * unwind-dw2-fde.c: Likewise.
11179         * unwind-dw2-fde.h: Likewise.
11180         * unwind-dw2.c: Likewise.
11181         * unwind-dw2.h: Likewise.
11182         * unwind-generic.h: Likewise.
11183         * unwind-pe.h: Likewise.
11184         * unwind-sjlj.c: Likewise.
11185         * unwind.inc: Likewise.
11186         * config/arm/neon-gen.ml: Change generated copyright header to
11187         refer to version 3 of the GNU General Public License with
11188         version 3.1 of the GCC Runtime Library Exception and to point
11189         readers at the COPYING3 and COPYING3.RUNTIME files and the
11190         FSF's license web page.
11191         * config/arm/arm_neon.h: Regenerate.
11192
11193 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
11194
11195         * config/cris/cris.md: Change copyright header to refer to version
11196         3 of the GNU General Public License.
11197         * doc/install.texi2html: Change copyright header to refer to version
11198         3 of the GNU General Public License and to point readers at the
11199         COPYING3 file and the FSF's license web page.
11200         * config/vax/linux.h: Likewise.
11201
11202 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
11203
11204         * config/i386/i386.md (cmpcc): New.
11205         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
11206         (sync_compare_and_swap_cc*): Delete.
11207
11208         * config/s390/s390.c (s390_compare_emitted): Remove.
11209         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
11210         s390_compare_emitted used to be handled.  Assert that modes match.
11211         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
11212         refer to sync_compare_and_swap_ccsi.
11213         * config/s390/s390.h (s390_compare_emitted): Remove.
11214         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
11215         instead of s390_compare_emitted.
11216         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
11217         instead of s390_compare_emitted.
11218         * config/s390/s390.md (cmpcc): New.
11219         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
11220         CC_REGNUM, do not pretend it's set.
11221         (sync_compare_and_swap_cc*): Delete.
11222         * config/s390/predicates.md (cc_reg_operand): New.
11223
11224         * expr.c (sync_compare_and_swap_cc): Delete.
11225         * optabs.h (sync_compare_and_swap_cc): Delete.
11226         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
11227         is being used with can_compare_p.
11228         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
11229         (find_cc_set): New.
11230         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
11231         look for a MODE_CC set instead.  Use emit_store_flag.
11232         (expand_compare_and_swap_loop): Likewise, with some additional
11233         complication to avoid a force_reg when useless.  Use
11234         emit_cmp_and_jump_insns.
11235         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
11236         * doc/md.texi (sync_compare_and_swap_cc): Merge with
11237         sync_compare_and_swap documentation.
11238
11239 2009-04-09  Jan Hubicka  <jh@suse.cz>
11240
11241         * except.c (find_prev_try): Break out from ....
11242         (duplicate_eh_regions): ... here; properly update prev_try pointers
11243         when duplication part of tree.
11244         (dump_eh_tree): Improve dumping.
11245         (verify_eh_region): New.
11246         (verify_eh_tree): Use it.
11247
11248 2009-04-06  Richard Guenther  <rguenther@suse.de>
11249
11250         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
11251         &ARRAY addresses by adjusting their types and prepending
11252         a conversion.
11253         * tree-cfg.c (verify_gimple_assign_single): Verify that
11254         addresses are correct.
11255
11256 2009-04-09  Richard Guenther  <rguenther@suse.de>
11257
11258         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
11259         indices into an array reference if possible.
11260         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
11261         Fold POINTER_PLUS_EXPR statements with invariant address.
11262
11263 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
11264
11265         PR target/39634
11266         * config.gcc (powerpc64-*-linux*): Always build biarch.
11267
11268 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
11269
11270         PR c/39613
11271         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
11272         it and pedwarn if this results in an INTEGER_CST.
11273
11274 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11275
11276         * doc/install.texi: Update minimum GMP version.  Remove obsolete
11277         text in MPFR section.
11278
11279 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
11280
11281         * dwarf2out.c (class_scope_p): New static inline.
11282         (class_or_namespace_scope_p): Use it.
11283         (gen_variable_die): Use DW_TAG_member tag for static data member
11284         declarations instead of DW_TAG_variable.
11285
11286         PR middle-end/39573
11287         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
11288         variables.
11289
11290 2009-04-08  Richard Guenther  <rguenther@suse.de>
11291
11292         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
11293         valueize random data.
11294
11295 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
11296
11297         * config.gcc (aix tm_file):  Add aix-stdint.h.
11298         (aix tm clause use_gcc_stdint):  Set to wrap.
11299         * config/rs6000/aix-stdint.h:  New file.
11300
11301 2009-04-08  Richard Guenther  <rguenther@suse.de>
11302
11303         PR middle-end/36291
11304         * tree-dfa.c (add_referenced_var): Do not recurse into
11305         global initializers.
11306         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
11307         exposed variables.
11308         (fold_const_aggregate_ref): Likewise.
11309
11310 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
11311
11312         * recog.c (ordered_comparison_operator): New.
11313         * gensupport.c (std_preds): Add it.
11314         * doc/md.texi (Machine-Independent Predicates): Document it.
11315
11316 2009-04-08  Jan Hubicka  <jh@suse.cz>
11317
11318         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
11319         * function.h (rtl_eh): Remove exception_handler_label_map.
11320         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
11321         remove_exception_handler_label, for_each_eh_label_1): Remove.
11322         (rtl_remove_unreachable_regions): Remove.
11323         (convert_from_eh_region_ranges): Do not remove unreachable regions.
11324         (find_exception_handler_labels): Don't build the hashtable.
11325         (maybe_remove_eh_handler): Remove.
11326         (for_each_eh_label): Rewrite to walk the tree.
11327         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
11328         * except.h (maybe_remove_eh_handler): Remove.
11329         * passes.c (init_optimization_passes): Schedule second EH cleanup
11330         before out-of-ssa.
11331         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
11332         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
11333
11334 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
11335
11336         * genoutput.c (validate_optab_operands): New.
11337         (gen_insn, gen_expand): Call it.
11338
11339         * genflags.c (gen_insn): Detect misused iterators.
11340         (main): Pass line_no to gen_insn, exit with status 1 on error.
11341
11342         * genextract.c (line_no): Make global.
11343         (VEC_safe_set_locstr): Change assertion to error message.
11344         (main): Exit with status 1 on error.
11345
11346 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
11347
11348         PR c/39614
11349         PR c/39673
11350         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11351         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11352         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
11353         * c-convert.c (convert): Do not call fold on results of conversion
11354         functions when the result is a C_MAYBE_CONST_EXPR.
11355         * c-parser.c (c_parser_postfix_expression): Do not fold condition
11356         of __builtin_choose_expr.
11357         * c-typeck.c (remove_c_maybe_const_expr): New.
11358         (build_unary_op, build_conditional_expr, build_compound_expr,
11359         build_binary_op, c_objc_common_truthvalue_conversion): Call
11360         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
11361         integer operands.
11362
11363 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
11364
11365         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
11366         CODE to produce a new one. Add a prototype to use fold_convert_const
11367
11368 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
11369
11370         PR bootstrap/39660
11371         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
11372         mix declarations and code.
11373
11374 2009-04-08  Ben Elliston  <bje@au.ibm.com>
11375
11376         * gcc.c: Replace `CC' with `GCC' throughout.
11377
11378 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
11379
11380         * doc/invoke.texi: Document Atom support.
11381
11382 2009-04-07  Jason Merrill  <jason@redhat.com>
11383
11384         PR c++/25185
11385         * c-common.h, c-common.c: Add flag_pretty_templates.
11386         * c-opts.c (c_common_handle_option): Set it.
11387         * c.opt: Add -fno-pretty-templates.
11388         * doc/invoke.texi (C++ Dialect Options): Likewise.
11389
11390 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
11391
11392         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
11393         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
11394         (ia64_expand_builtin): Likewise.
11395
11396 2009-04-07  Martin Jambor  <mjambor@suse.cz>
11397
11398         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
11399         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11400         ADDR_EXPRS are include too.
11401
11402 2009-04-07  Richard Guenther  <rguenther@suse.de>
11403
11404         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
11405         decls are only used if passes as parameters or if they are
11406         local statics and the call is not to a builtin.
11407         (call_may_clobber_ref_p_1): Likewise.
11408
11409 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11410
11411         * expr.c (do_store_flag): Remove last argument.  Simplify code
11412         to avoid duplication of tests already done by can_compare_p.
11413         (expand_expr_real_1): Adjust caller.
11414
11415 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11416
11417         * optabs.c (can_compare_p): Test the predicate of a
11418         cbranch and cstore pattern.
11419
11420 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11421
11422         * expr.c (convert_move): Use emit_store_flag instead of
11423         "emulating" it.
11424
11425 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11426
11427         * config/i386/i386.c (ix86_compare_emitted): Remove.
11428         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
11429         ix86_compare_op0 like ix86_compare_emitted used to be handled.
11430         * config/i386/i386.h (ix86_compare_emitted): Remove.
11431         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
11432         instead of ix86_compare_emitted.
11433         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
11434
11435 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
11436
11437         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
11438         Add t-sysroot-suffix to tmake_file.
11439         * config/print-sysroot-suffix.sh: New file.
11440         * config/t-sysroot-suffix: New file.
11441
11442 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11443
11444         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
11445         as the latter produces a warning when the target does not support
11446         infinity.
11447
11448 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11449
11450         * dfp.c: Replace type punning assignments with memcpy throughout.
11451         * Makefile.in (dfp.o-warn): Remove.
11452
11453 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
11454
11455         PR target/39634
11456         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
11457         Include soft-fp/t-softfp after rs6000/t-linux64.
11458
11459 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11460
11461         * stor-layout.c (set_sizetype): Use the full precision of their
11462         machine mode for bitsize types.
11463
11464 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
11465
11466         * config/i386/i386.md: Revert 2 accidental checkins.
11467
11468 2009-04-06  Joey Ye  <joey.ye@intel.com>
11469             Xuepeng Guo  <xuepeng.guo@intel.com>
11470             H.J. Lu  <hongjiu.lu@intel.com>
11471
11472         Atom pipeline model, tuning and insn selection.
11473         * config.gcc (atom): Add atom config options and target.
11474
11475         * config/i386/atom.md: New.
11476
11477         * config/i386/i386.c (atom_cost): New cost.
11478         (m_ATOM): New macro flag.
11479         (initial_ix86_tune_features): Set m_ATOM.
11480         (x86_accumulate_outgoing_args): Likewise.
11481         (x86_arch_always_fancy_math_387): Likewise.
11482         (processor_target): Add Atom cost.
11483         (cpu_names): Add Atom cpu name.
11484         (override_options): Set Atom ISA.
11485         (ix86_issue_rate): New case PROCESSOR_ATOM.
11486         (ix86_adjust_cost): Likewise.
11487
11488         * config/i386/i386.h (TARGET_ATOM): New target macro.
11489         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
11490         (TARGET_OPT_AGU): New target option.
11491         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
11492         (processor_type): Add PROCESSOR_ATOM.
11493
11494         * config/i386/i386.md (cpu): Add new value "atom".
11495         (use_carry, movu): New attr.
11496         (atom.md): Include atom.md.
11497         (adddi3_carry_rex64): Set attr "use_carry".
11498         (addqi3_carry): Likewise.
11499         (addhi3_carry): Likewise.
11500         (addsi3_carry): Likewise.
11501         (*addsi3_carry_zext): Likewise.
11502         (subdi3_carry_rex64): Likewise.
11503         (subqi3_carry): Likewise.
11504         (subhi3_carry): Likewise.
11505         (subsi3_carry): Likewise.
11506         (x86_movdicc_0_m1_rex64): Likewise.
11507         (*x86_movdicc_0_m1_se): Likewise.
11508         (x86_movsicc_0_m1): Likewise.
11509         (*x86_movsicc_0_m1_se): Likewise.
11510         (*adddi_1_rex64): Emit add insn as much as possible.
11511         (*addsi_1): Likewise.
11512         (return_internal): Set atom_unit.
11513         (return_internal_long): Likewise.
11514         (return_pop_internal): Likewise.
11515         (*rcpsf2_sse): Set atom_sse_attr attr.
11516         (*qrt<mode>2_sse): Likewise.
11517         (*prefetch_sse): Likewise.
11518
11519         * config/i386/i386-c.c (ix86_target_macros_internal): New case
11520         PROCESSOR_ATOM.
11521         (ix86_target_macros_internal): Likewise.
11522
11523         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11524         (*prefetch_sse_rex): Likewise.
11525         (sse_rcpv4sf2): Likewise.
11526         (sse_vmrcpv4sf2): Likewise.
11527         (sse_sqrtv4sf2): Likewise.
11528         (<sse>_vmsqrt<mode>2): Likewise.
11529         (sse_ldmxcsr): Likewise.
11530         (sse_stmxcsr): Likewise.
11531         (*sse_sfence): Likewise.
11532         (sse2_clflush): Likewise.
11533         (*sse2_mfence): Likewise.
11534         (*sse2_lfence): Likewise.
11535         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11536         (<sse>_movup<ssemodesuffixf2c>): Likewise.
11537         (avx_movdqu<avxmodesuffix>): Likewise.
11538         (avx_lddqu<avxmodesuffix>): Likewise.
11539         (sse2_movntv2di): Change attr "type" to "ssemov".
11540         (sse2_movntsi): Likewise.
11541         (rsqrtv8sf2): Change attr "type" to "sseadd".
11542         (sse3_addsubv2df3): Set attr "atom_unit".
11543         (sse3_h<plusminus_insn>v4sf3): Likewise.
11544         (*sse2_pmaddwd): Likewise.
11545         (*vec_extractv2di_1_rex64): Likewise.
11546         (*vec_extractv2di_1_avx): Likewise.
11547         (sse2_psadbw): Likewise.
11548         (ssse3_phaddwv8hi3): Likewise.
11549         (ssse3_phaddwv4hi3): Likewise.
11550         (ssse3_phadddv4si3): Likewise.
11551         (ssse3_phadddv2si3): Likewise.
11552         (ssse3_phaddswv8hi3): Likewise.
11553         (ssse3_phaddswv4hi3): Likewise.
11554         (ssse3_phsubwv8hi3): Likewise.
11555         (ssse3_phsubwv4hi3): Likewise.
11556         (ssse3_phsubdv4si3): Likewise.
11557         (ssse3_phsubdv2si3): Likewise.
11558         (ssse3_phsubswv8hi3): Likewise.
11559         (ssse3_phsubswv4hi3): Likewise.
11560         (ssse3_pmaddubsw128): Likewise.
11561         (sse3_pmaddubsw: Likewise.
11562         (ssse3_palignrti): Likewise.
11563         (ssse3_palignrdi): Likewise.
11564
11565 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
11566
11567         * doc/install.texi (Specific): Fix two cross-references to MinGW.
11568
11569 2009-04-06  Richard Guenther  <rguenther@suse.de>
11570
11571         PR tree-optimization/28868
11572         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11573         of which PHI results we inserted.
11574         (insert_into_preds_of_block): Record inserted PHIs.
11575         (eliminate): Eliminate redundant PHI nodes.
11576         (init_pre): Init inserted_phi_names.
11577
11578 2009-04-06  Richard Guenther  <rguenther@suse.de>
11579
11580         PR tree-optimization/39643
11581         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11582         IMAGPART_EXPRs of complex constants.
11583         (execute_fold_all_builtins): If we folded a call queue
11584         TODO_update_address_taken.
11585
11586 2009-04-06  Jan Hubicka  <jh@suse.cz>
11587
11588         PR middle-end/39659
11589         * except.c (remove_unreachable_regions): Propagate may_contain_throw
11590         flag.
11591
11592 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
11593
11594         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11595         delay slot.
11596         (ic_invalidate_array): Likewise.
11597
11598 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11599
11600         * calls.c (emit_library_call_value_1): Fix a problem with parameter
11601         alignment for library calls.
11602
11603 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
11604
11605         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
11606         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
11607         * config/i386/mingw-stdint.h:  New file.
11608
11609 2009-04-05  Richard Guenther  <rguenther@suse.de>
11610
11611         PR tree-optimization/39648
11612         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11613         our &A vs. &A[0] IL deficiencies.
11614
11615 2009-04-04  Jan Hubicka  <jh@suse.cz>
11616
11617         * except.c (sjlj_find_directly_reachable_regions): Be ready for
11618         removed toplevel regions.
11619         (sjlj_mark_call_sites): Likewise.
11620
11621 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
11622
11623         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
11624         (cygwin tm clause use_gcc_stdint):  Set to wrap.
11625         * config/i386/cygwin-stdint.h:  New file.
11626
11627 2009-04-04  Richard Guenther  <rguenther@suse.de>
11628
11629         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11630         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11631         single-argument PHIs if we are in loop-closed SSA form.
11632         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11633         for the pre-condition.
11634         (slpeel_tree_peel_loop_to_edge): Likewise.
11635         (vect_build_loop_niters): Take an optional sequence to append stmts.
11636         (vect_generate_tmps_on_preheader): Likewise.
11637         (vect_do_peeling_for_loop_bound): Take extra guards for the
11638         pre-condition.
11639         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
11640         the cost model check.
11641         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
11642         guards if we are going to peel.  Do not apply versioning in that case.
11643         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11644         (vect_do_peeling_for_loop_bound): Likewise.
11645         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11646         loop bound only record extra pre-conditions, do not apply loop
11647         versioning.
11648
11649 2009-04-04  Richard Guenther  <rguenther@suse.de>
11650
11651         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11652         renaming code.
11653
11654 2009-04-04  Jan Hubicka  <jh@suse.cz>
11655
11656         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11657         last_basic_block for size of bb->index indexed array.
11658         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11659         compute_out, link_btr_uses, build_btr_def_use_webs,
11660         build_btr_def_use_webs, migrate_btr_defs): Likewise.
11661
11662 2009-04-04  Jan Hubicka  <jh@suse.cz>
11663
11664         * except.c (remove_eh_handler_and_replace): Break out from ...
11665         (remove_eh_handler): ... here.
11666         (bring_to_root): New function.
11667         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11668         handled ones, bring others to root of tree.
11669
11670 2009-04-04  Jan Hubicka  <jh@suse.cz>
11671
11672         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11673         (all_phis_safe_to_merge): New function.
11674         (update_info): New structure.
11675         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11676         (cleanup_empty_eh): Update SSA if possible.
11677
11678 2009-04-04  Richard Guenther  <rguenther@suse.de>
11679
11680         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11681         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11682         (append_vuse): Likewise.
11683
11684 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
11685
11686         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11687         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11688         instead of REG_UNSAVED for DW_CFA_undefined.
11689         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11690         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11691         outermost frame.
11692
11693 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
11694
11695         PR target/39501
11696         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11697         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11698         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11699
11700 2009-04-04  Richard Guenther  <rguenther@suse.de>
11701
11702         PR tree-optimization/8781
11703         PR tree-optimization/37892
11704         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11705         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11706         (valueize_refs): Call it for *& valueizations.
11707         (shared_reference_ops_from_ref): Rename to ...
11708         (valueize_shared_reference_ops_from_ref): ... this and valueize.
11709         (shared_reference_ops_from_call): Rename to ...
11710         (valueize_shared_reference_ops_from_call): ... this and valueize.
11711         (vn_reference_lookup): Update.
11712         (visit_reference_op_call): Likewise.
11713         * tree-ssa-pre.c (phi_translate_1): Fold *&.
11714         (eliminate): Value-replace the call address in call statements.
11715
11716 2009-04-04  Richard Guenther  <rguenther@suse.de>
11717
11718         PR tree-optimization/39636
11719         * tree-ssa-forwprop.c
11720         (forward_propagate_addr_into_variable_array_index): Check for
11721         GIMPLE_ASSIGN before accessing the rhs code.
11722
11723 2009-04-03  Jason Merrill  <jason@redhat.com>
11724
11725         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11726
11727 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
11728
11729         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11730         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11731         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11732         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11733         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11734         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11735         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11736         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11737         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11738         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11739         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11740         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11741         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11742         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11743         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11744         Use fr_reg_or_fp01_operand instead of fr_register_operand
11745
11746         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11747         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11748         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11749
11750 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
11751
11752         PR rtl-optimization/39607
11753         PR rtl-optimization/39631
11754
11755         Revert:
11756
11757         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11758         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11759         instead of DF_LR_OUT.
11760         * ira-lives.c (process_bb_node_lives): Ditto.
11761         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11762         instead of DF_LR_{OUT,IN}.
11763         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11764         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11765
11766 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
11767
11768         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11769         (execute_lower_omp): Always run but take the short way out if -fopenmp
11770         is not given.
11771         (gate_lower_omp): Remove, forcing the pass manager to always run the
11772         pass and always set PROP_gimple_lomp.
11773         (pass_lower_omp): Remove gate function.
11774         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11775         PROP_trees.  Instead, require it.
11776         * ipa-cp.c (pass_ipa_cp): Likewise.
11777         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11778         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11779         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11780         and PROP_gimple_leh.
11781
11782 2009-04-03  Richard Guenther  <rguenther@suse.de>
11783
11784         PR middle-end/13146
11785         PR tree-optimization/23940
11786         PR tree-optimization/33237
11787         PR middle-end/33974
11788         PR middle-end/34093
11789         PR tree-optimization/36201
11790         PR tree-optimization/36230
11791         PR tree-optimization/38049
11792         PR tree-optimization/38207
11793         PR tree-optimization/38230
11794         PR tree-optimization/38301
11795         PR tree-optimization/38585
11796         PR middle-end/38895
11797         PR tree-optimization/38985
11798         PR tree-optimization/39299
11799         * tree-ssa-structalias.h: Remove.
11800         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11801         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11802         (struct vuse_element_d): Remove.
11803         (struct vuse_vec_d): Likewise.
11804         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11805         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11806         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11807         VUSE_ELEMENT_VAR): Likewise.
11808         (struct voptype_d): Likewise.
11809         (NUM_VOP_FREE_BUCKETS): Likewise.
11810         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11811         (struct stmt_operands_d): Remove.
11812         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11813         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11814         VDEF_NUM, VDEF_VECT): Likewise.
11815         (copy_virtual_operands): Remove.
11816         (operand_build_cmp): Likewise.
11817         (create_ssa_artificial_load_stmt): Likewise.
11818         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11819         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11820         vuse_index and mayuse_index members.  Pack and move done and iter_type
11821         members to the front.
11822         (SSA_OP_VMAYUSE): Remove.
11823         (SSA_OP_VIRTUAL_USES): Adjust.
11824         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11825         (unlink_stmt_vdef): Declare.
11826         (add_to_addressable_set): Remove.
11827         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11828         (vrp_visit_stmt): Likewise.
11829         * doc/tree-ssa.texi (Alias analysis): Update.
11830         * doc/invoke.texi (max-aliased-vops): Remove docs.
11831         (avg-aliased-vops): Likewise.
11832         * tree-into-ssa.c (syms_to_rename): Remove.
11833         (need_to_update_vops_p): Likewise.
11834         (need_to_initialize_update_ssa_p): Rename to ...
11835         (update_ssa_initialized_fn): ... this.  Track function we are
11836         initialized for.
11837         (symbol_marked_for_renaming): Simplify.
11838         (add_new_name_mapping): Do not set need_to_update_vops_p.
11839         (dump_currdefs): Use SYMS_TO_RENAME.
11840         (rewrite_update_stmt): Always walk all uses/defs.
11841         (dump_update_ssa): Adjust.
11842         (init_update_ssa): Take function argument.  Track what we are
11843         initialized for.
11844         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11845         (create_new_def_for): Initialize for cfun, assert we are initialized
11846         for cfun.
11847         (mark_sym_for_renaming): Simplify.
11848         (mark_set_for_renaming): Do not initialize update-ssa.
11849         (need_ssa_update_p): Simplify.  Take function argument.
11850         (name_mappings_registered_p): Assert we ask for the correct function.
11851         (name_registered_for_update_p): Likewise.
11852         (ssa_names_to_replace): Likewise.
11853         (release_ssa_name_after_update_ssa): Likewise.
11854         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
11855         (dump_decl_set): Do not print a newline.
11856         (debug_decl_set): Do it here.
11857         (dump_update_ssa): And here.
11858         * tree-ssa-loop-im.c (move_computations): Adjust.
11859         (movement_possibility): Likewise.
11860         (determine_max_movement): Likewise.
11861         (gather_mem_refs_stmt): Likewise.
11862         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11863         or NAME_MEMORY_TAG.
11864         * tree-complex.c (update_all_vops): Remove.
11865         (expand_complex_move): Adjust.
11866         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11867         Simplify test for memory referencing statement.  Exclude
11868         non-invariant ADDR_EXPRs.
11869         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11870         * tree-loop-distribution.c (generate_memset_zero): Adjust.
11871         (rdg_flag_uses): Likewise.
11872         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11873         related code.
11874         (tree_optimize_tail_calls_1): Also split the
11875         edge from the entry block if we have degenerate PHI nodes in
11876         the first basic block.
11877         * tree.c (init_ttree): Remove memory-tag related code.
11878         (tree_code_size): Likewise.
11879         (tree_node_structure): Likewise.
11880         (build7_stat): Re-write to be build6_stat.
11881         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11882         (SSA_VAR_P): Adjust.
11883         (struct tree_memory_tag): Remove.
11884         (struct tree_memory_partition_tag): Likewise.
11885         (union tree_node): Adjust.
11886         (build7): Re-write to be build6.
11887         * tree-pass.h (pass_reset_cc_flags): Remove.
11888         (TODO_update_address_taken): New flag.
11889         (pass_simple_dse): Remove.
11890         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11891         * params.h (MAX_ALIASED_VOPS): Remove.
11892         (AVG_ALIASED_VOPS): Likewise.
11893         * omp-low.c (expand_omp_taskreg): Update SSA form.
11894         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11895         aliases the lhs in a copy stmt.
11896         * tree-ssa-dse.c (struct address_walk_data): Remove.
11897         (memory_ssa_name_same): Likewise.
11898         (memory_address_same): Likewise.
11899         (get_kill_of_stmt_lhs): Likewise.
11900         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
11901         unused stores.  Look through PHI nodes into post-dominated regions.
11902         (dse_optimize_stmt): Simplify.  Properly remove stores.
11903         (tree_ssa_dse): Compute dominators.
11904         (execute_simple_dse): Remove.
11905         (pass_simple_dse): Likewise.
11906         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11907         gimple_loaded_syms and gimple_stored_syms computation.
11908         * toplev.c (dump_memory_report): Dump alias and pta stats.
11909         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11910         (vn_reference_eq): Likewise.
11911         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11912         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11913         valueize_vuses): Remove.
11914         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
11915         (get_def_ref_stmt_vuse): ... this.
11916         (vn_reference_lookup_2): New function.
11917         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11918         walking equivalent vuses.  Simplify.
11919         (vn_reference_lookup): Likewise.
11920         (vn_reference_insert): Likewise.
11921         (vn_reference_insert_pieces): Likewise.
11922         (visit_reference_op_call): Simplify.
11923         (visit_reference_op_load): Likewise.
11924         (visit_reference_op_store): Likewise.
11925         (init_scc_vn): Remove shared_lookup_vuses initialization.
11926         (free_scc_vn): Remove shared_lookup_vuses freeing.
11927         (sort_vuses, sort_vuses_heap): Remove.
11928         (get_ref_from_reference_ops): Export.
11929         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11930         vector with single vuse pointer.
11931         (vn_reference_lookup_pieces, vn_reference_lookup,
11932         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11933         (shared_vuses_from_stmt): Remove.
11934         (get_ref_from_reference_ops): Declare.
11935         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11936         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11937         memory-tag related code.
11938         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11939         (likely_value): Add comment, skip static-chain of call statements.
11940         (surely_varying_stmt_p): Adjust.
11941         (gimplify_and_update_call_from_tree): Likewise.
11942         (execute_fold_all_builtins): Do not rebuild alias info.
11943         (gimplify_and_update_call_from_tree): Properly update VOPs.
11944         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11945         (copy_ref_info): Remove memory-tag related code.
11946         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11947         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11948         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11949         computation.
11950         * tree-ssa-dom.c (gimple_p): Remove typedef.
11951         (eliminate_redundant_computations): Adjust.
11952         (record_equivalences_from_stmt): Likewise.
11953         (avail_expr_hash): Likewise.
11954         (avail_expr_eq): Likewise.
11955         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
11956         (stmt_makes_single_load): Likewise.
11957         (stmt_makes_single_store): Likewise.
11958         * tree-ssa-alias.c: Rewrite completely.
11959         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11960         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11961         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11962         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11963         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11964         Remove public functions.
11965         (pass_reset_cc_flags): Remove.
11966         (pass_build_alias): Move ...
11967         * tree-ssa-structalias.c (pass_build_alias): ... here.
11968         * tree-ssa-alias.c (may_be_aliased): Move ...
11969         * tree-flow-inline.h (may_be_aliased): ... here.
11970         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11971         count_uses_and_derefs): Move ...
11972         * gimple.c: ... here.
11973         * gimple.h (count_uses_and_derefs): Declare.
11974         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11975         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11976         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11977         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11978         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11979         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11980         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11981         New functions.
11982         * tree-dfa.c (refs_may_alias_p): Move ...
11983         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
11984         * tree-ssa-alias.h: New file.
11985         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11986         (statement_sink_location): Likewise.
11987         * opts.c (decode_options): Do not adjust max-aliased-vops or
11988         avg-aliased-vops values.
11989         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11990         (TV_CALL_CLOBBER): Likewise.
11991         (TV_FLOW_SENSITIVE): Likewise.
11992         (TV_FLOW_INSENSITIVE): Likewise.
11993         (TV_MEMORY_PARTITIONING): Likewise.
11994         (TV_ALIAS_STMT_WALK): New timevar.
11995         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11996         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11997         (get_address_description): Remove memory-tag related code.
11998         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11999         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
12000         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
12001         and immediate uses in statements.  Document.
12002         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
12003         (dump_symbols): Remove.
12004         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
12005         * alias.c (get_deref_alias_set): New function split out from ...
12006         (get_alias_set): ... here.
12007         * alias.h (get_deref_alias_set): Declare.
12008         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
12009         type parameter.  Remove restrict pointer handling.  Create a
12010         ref-all pointer in case type-based alias sets do not conflict.
12011         (vect_analyze_data_refs): Remove SMT related code.
12012         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
12013         (vectorizable_load): Likewise.
12014         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
12015         (DR_SYMBOL_TAG, DR_VOPS): Remove.
12016         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
12017         Ignore vops and SMTs.
12018         (dr_analyze_alias): Likewise..
12019         (free_data_ref): Likewise.
12020         (create_data_ref): Likewise.
12021         (analyze_all_data_dependences): Likewise.
12022         (get_references_in_stmt): Adjust.
12023         * tree-flow-inline.h (gimple_aliases_computed_p,
12024         gimple_addressable_vars, gimple_call_clobbered_vars,
12025         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
12026         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
12027         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
12028         gimple_mem_ref_stats): Remove.
12029         (gimple_vop): New function.
12030         (op_iter_next_use): Remove vuses and mayuses cases.
12031         (op_iter_next_def): Remove vdefs case.
12032         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
12033         (clear_and_done_ssa_iter): Do not set removed fields.
12034         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
12035         Assert we are not iterating over vuses or vdefs if not also
12036         iterating over uses or defs.
12037         (op_iter_init_use): Likewise.
12038         (op_iter_init_def): Likewise.
12039         (op_iter_next_vdef): Remove.
12040         (op_iter_next_mustdef): Likewise.
12041         (op_iter_init_vdef): Likewise.
12042         (compare_ssa_operands_equal): Likewise.
12043         (link_use_stmts_after): Handle vuse operand.
12044         (is_call_used): Use is_call_clobbered.
12045         (is_call_clobbered): Global variables are always call clobbered,
12046         query the call-clobbers bitmap.
12047         (mark_call_clobbered): Ignore global variables.
12048         (clear_call_clobbered): Likewise.
12049         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
12050         virtual operands sanity check.
12051         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
12052         Remove.
12053         (TARGET_MEM_REF): Remove TMR_TAG operand.
12054         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
12055         Remove call-clobber related code.
12056         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
12057         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
12058         partitions or escape reason.
12059         (get_single_def_stmt, get_single_def_stmt_from_phi,
12060         get_single_def_stmt_with_phi): Remove.
12061         (dump_referenced_vars): Tidy.
12062         (get_ref_base_and_extent): Allow bare decls.
12063         (collect_dfa_stats): Adjust.
12064         * graphite.c (rename_variables_in_stmt): Adjust.
12065         (graphite_copy_stmts_from_block): Likewise.
12066         (translate_clast): Likewise.
12067         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
12068         (EXPR_DIES): New.
12069         (translate_vuse_through_block): Use the oracle.
12070         (phi_translate_1): Adjust.
12071         (value_dies_in_block_x): Use the oracle.  Cache the outcome
12072         in EXPR_DIES.
12073         (valid_in_sets): Check if the VUSE for
12074         a REFERENCE is available.
12075         (eliminate): Do not remove stmts during elimination,
12076         instead queue and remove them afterwards.
12077         (do_pre): Do not rebuild alias info.
12078         (pass_pre): Run TODO_rebuild_alias before PRE.
12079         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
12080         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
12081         (mark_all_v_defs_stmt): Remove.
12082         (mark_all_v_defs_seq): Adjust.
12083         (sra_replace): Likewise.
12084         (scalarize_use): Likewise.
12085         (scalarize_copy): Likewise.
12086         (scalarize_init): Likewise.
12087         (scalarize_ldst): Likewise.
12088         (todoflags): Remove.
12089         (tree_sra): Do not rebuild alias info.
12090         (tree_sra_early): Adjust.
12091         (pass_sra): Run TODO_update_address_taken before SRA.
12092         * tree-predcom.c (set_alias_info): Remove.
12093         (prepare_initializers_chain): Do not call it.
12094         (mark_virtual_ops_for_renaming): Adjust.
12095         (mark_virtual_ops_for_renaming_list): Remove.
12096         (initialize_root_vars): Adjust.
12097         (initialize_root_vars_lm): Likewise.
12098         (prepare_initializers_chain): Likewise.
12099         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
12100         (may_propagate_copy_into_stmt): Likewise.
12101         (merge_alias_info): Do nothing for now.
12102         (propagate_tree_value_into_stmt): Adjust.
12103         (stmt_may_generate_copy): Likewise.
12104         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
12105         not mark symbols for renaming.
12106         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
12107         with the same statement, make sure to update the new pointed-to one.
12108         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
12109         call statements, do not mark symbols for renaming.
12110         (mark_operand_necessary): Dump something.
12111         (ref_may_be_aliased): New function.
12112         (mark_aliased_reaching_defs_necessary_1): New helper function.
12113         (mark_aliased_reaching_defs_necessary): Likewise.
12114         (mark_all_reaching_defs_necessary_1): Likewise.
12115         (mark_all_reaching_defs_necessary): Likewise.
12116         (propagate_necessity): Do not process virtual PHIs.  For
12117         non-aliased loads mark all reaching definitions as necessary.
12118         For aliased loads and stores mark the immediate dominating
12119         aliased clobbers as necessary.
12120         (visited): New global static.
12121         (perform_tree_ssa_dce): Free visited bitmap after propagating
12122         necessity.
12123         (remove_dead_phis): Perform simple dead virtual PHI removal.
12124         (remove_dead_stmt): Properly unlink virtual operands when
12125         removing stores.
12126         (eliminate_unnecessary_stmts): Schedule PHI removal after
12127         stmt removal.
12128         * tree-ssa-ter.c (is_replaceable_p): Adjust.
12129         (process_replaceable): Likewise.
12130         (find_replaceable_in_bb): Likewise.
12131         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
12132         based on the single gimple vop.
12133         (verify_flow_insensitive_alias_info): Remove.
12134         (verify_flow_sensitive_alias_info): Likewise.
12135         (verify_call_clobbering): Likewise.
12136         (verify_memory_partitions): Likewise.
12137         (verify_alias_info): Likewise.
12138         (verify_ssa): Adjust..
12139         (execute_update_addresses_taken): Export.  Update SSA
12140         manually.  Optimize only when optimizing.  Use a local bitmap.
12141         (pass_update_address_taken): Remove TODO_update_ssa, add
12142         TODO_dump_func.
12143         (pass_update_address_taken): Just use TODO_update_address_taken.
12144         (init_tree_ssa): Do not initialize addressable_vars.
12145         (verify_ssa): Verify new VUSE / VDEF properties.
12146         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
12147         Do not call verify_alias_info.
12148         (delete_tree_ssa): Clear the VUSE, VDEF operands.
12149         Do not free the loaded and stored syms bitmaps.  Reset the escaped
12150         and callused solutions.  Do not free addressable_vars.
12151         Remove memory-tag related code.
12152         (warn_uninitialized_var): Aliases are always available.
12153         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
12154         * lambda-code.c (can_put_in_inner_loop): Adjust.
12155         (can_put_after_inner_loop): Likewise.
12156         (perfect_nestify): Likewise.
12157         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
12158         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
12159         (vectorizable_conversion): Do not mark symbols for renaming.
12160         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
12161         (expand_call_inline): Unlink the calls virtual operands before
12162         replacing it.
12163         (tree_function_versioning): Do not call update_ssa if we are not
12164         updating clones.  Simplify.
12165         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
12166         (propagate_with_phi): Likewise..
12167         * tree-outof-ssa.c (create_temp): Remove memory tag and call
12168         clobber code.  Assert we are not aliased or global.
12169         * tree-flow.h: Include tree-ssa-alias.h
12170         (enum escape_type): Remove.
12171         (struct mem_sym_stats_d): Likewise.
12172         (struct mem_ref_stats_d): Likewise.
12173         (struct gimple_df): Add vop member.  Remove global_var,
12174         call_clobbered_vars, call_used_vars, addressable_vars,
12175         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
12176         escaped and callused members.
12177         (struct ptr_info_def): Remove all members, add points-to solution
12178         member pt.
12179         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
12180         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
12181         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
12182         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
12183         (tree-ssa-alias.o): Likewise.
12184         (toplev.o): Add tree-ssa-alias.h
12185         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
12186         * gimple.c (gimple_set_bb): Fix off-by-one error.
12187         (is_gimple_reg): Do not handle memory tags.
12188         (gimple_copy): Also copy virtual operands.
12189         Delay updating the statement.  Do not reset loaded and stored syms.
12190         (gimple_set_stored_syms): Remove.
12191         (gimple_set_loaded_syms): Likewise.
12192         (gimple_call_copy_skip_args): Copy the virtual operands
12193         and mark the new statement modified.
12194         * tree-ssa-structalias.c (may_alias_p): Remove.
12195         (set_uids_in_ptset): Take the alias set to prune with as
12196         parameter.  Fold in the alias test of may_alias_p.
12197         (compute_points_to_sets): Compute whether a ptr is dereferenced
12198         in a local sbitmap.
12199         (process_constraint): Deal with &ANYTHING on the lhs, reject all
12200         other ADDRESSOF constraints on the lhs.
12201         (get_constraint_for_component_ref): Assert that we don't get
12202         ADDRESSOF constraints from the base of the reference.
12203         Properly generate UNKNOWN_OFFSET for DEREF if needed.
12204         (struct variable_info): Remove collapsed_to member.
12205         (get_varinfo_fc): Remove.
12206         (new_var_info): Do not set collapsed_to.
12207         (dump_constraint): Do not follow cycles.
12208         (dump_constraint_graph): Likewise.
12209         (build_pred_graph): Likewise.
12210         (build_succ_graph): Likewise.
12211         (rewrite_constraints): Likewise.
12212         (do_simple_structure_copy): Remove.
12213         (do_rhs_deref_structure_copy): Remove.
12214         (do_lhs_deref_structure_copy): Remove.
12215         (collapse_rest_of_var): Remove.
12216         (do_structure_copy): Re-implement.
12217         (pta_stats): New global variable.
12218         (dump_pta_stats): New function.
12219         (struct constraint_expr): Make offset signed.
12220         (UNKNOWN_OFFSET): Define special value.
12221         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
12222         (solution_set_expand): New helper function split out from ...
12223         (do_sd_constraint): ... here.
12224         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
12225         (do_ds_constraint): Likewise.
12226         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
12227         and CALLUSED = *CALLUSED.
12228         (set_union_with_increment): Make inc argument signed.
12229         (type_safe): Remove.
12230         (get_constraint_for_ptr_offset): Handle unknown and negative
12231         constant offsets.
12232         (first_vi_for_offset): Handle offsets before start.  Bail
12233         out early for offsets beyond the variable extent.
12234         (first_or_preceding_vi_for_offset): New function.
12235         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
12236         Together with ESCAPED = *ESCAPED this properly computes reachability.
12237         (find_what_var_points_to): New function.
12238         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
12239         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
12240         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
12241         pt_solutions_intersect): New functions.
12242         (compute_call_used_vars): Remove.
12243         (compute_may_aliases): New main entry into PTA computation.
12244         * gimple.h (gimple_p): New typedef.
12245         (struct gimple_statement_base): Remove references_memory_p.
12246         (struct gimple_statement_with_memory_ops_base): Remove
12247         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
12248         members.
12249         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
12250         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
12251         gimple_set_references_memory): Remove.
12252         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
12253         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
12254         New functions.
12255         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
12256         (verify_expr): Allow RESULT_DECL.
12257         (gimple_duplicate_bb): Do not copy virtual operands.
12258         (gimple_duplicate_sese_region): Adjust.
12259         (gimple_duplicate_sese_tail): Likewise.
12260         (mark_virtual_ops_in_region): Remove.
12261         (move_sese_region_to_fn): Do not call it.
12262         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
12263         and pass_simple_dse.
12264         (execute_function_todo): Handle TODO_update_address_taken,
12265         call execute_update_addresses_taken for TODO_rebuild_alias.
12266         (execute_todo): Adjust.
12267         (execute_one_pass): Init dump files early.
12268         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
12269         call-clobbered.
12270         (create_general_new_stmt): Clear vops.
12271         * tree-ssa-reassoc.c (get_rank): Adjust.
12272         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
12273         symbols for renaming.
12274         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
12275         (PARAM_AVG_ALIASED_VOPS): Likewise.
12276         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
12277         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
12278         * tree-ssa-operands.c: Simplify for new virtual operand representation.
12279         (operand_build_cmp, copy_virtual_operands,
12280         create_ssa_artificial_load_stmt, add_to_addressable_set,
12281         gimple_add_to_addresses_taken): Remove public functions.
12282         (unlink_stmt_vdef): New function.
12283
12284 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
12285
12286         * config.gcc (powerpc-*-linux*): Merge variants.
12287
12288 2009-04-02  Chao-ying Fu  <fu@mips.com>
12289             James Grosbach  <james.grosbach@microchip.com>
12290
12291         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
12292         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
12293         cop0_sp_offset.
12294         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
12295         keep_interrupts_masked_p, use_debug_exception_return_p.
12296         (mips_attribute_table): Add interrupt, use_shadow_register_set,
12297         keep_interrupts_masked, use_debug_exception_return.
12298         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
12299         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
12300         New functions.
12301         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
12302         (mips_print_operand): Process COP0 registers to print $0 .. $31
12303         correctly for GAS to process.
12304         (mips_interrupt_extra_call_saved_reg_p): New function.
12305         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
12306         extra registers.
12307         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
12308         (mips_compute_frame_info): Add supports for interrupt context that
12309         includes doubleword accumulators and COP0 registers.
12310         (mips_for_each_saved_acc): New function.
12311         (mips_for_each_saved_gpr_and_fpr): Change the function name from
12312         mips_for_each_saved_reg.
12313         (mips_save_reg): Save accumulators.
12314         (mips_kernel_reg_p): A new for_each_rtx callback.
12315         (mips_expand_prologue): Support interrupt handlers.
12316         (mips_restore_reg): Restore accumulators.
12317         (mips_expand_epilogue): Support interrupt handlers.
12318         (mips_can_use_return_insn): Return false for interrupt handlers.
12319         (mips_epilogue_uses): New function.
12320         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
12321         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
12322         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
12323         cop0_move): New instructions.
12324         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
12325         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
12326         defines.
12327         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
12328         New defines.
12329         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
12330         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
12331         interrupt handlers, we use K0 as the temporary register.
12332         (EPILOGUE_USES): Change to a function call.
12333         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
12334         handlers, we use K0 as the temporary register.
12335
12336         * doc/extend.texi (Function Attributes): Document interrupt,
12337         use_shadow_register_set, keep_interrupts_masked,
12338         use_debug_exception_return for MIPS attributes.
12339
12340 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
12341
12342         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
12343         Remove a number of t-files from tmake_file.
12344         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
12345         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
12346         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12347         target_prototype, not TARGET_PROTOTYPE.
12348         (LINK_OS_GNU_SPEC): Define.
12349         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
12350         and darwin-ldoubdle.c.
12351
12352 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12353
12354         PR driver/39293
12355         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
12356         (cpp_options): Ditto.
12357         (default_compilers): Ditto.
12358         (display_help): Ditto.
12359         (process_command): Ditto.
12360         (do_spec_1): Ditto.
12361         (set_input): Use lbasename instead of duplicate code.
12362         (save_temps_prefix): New static for -save-temps=obj.
12363         (save_temps_length): Ditto.
12364
12365         * doc/invoke.texi (-save-temps=obj): Document new variant to
12366         -save-temps switch.
12367
12368 2009-04-02  Jeff Law  <law@redhat.com>
12369
12370         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
12371         variable.
12372
12373 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12374
12375         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
12376         * configure: Regenerated.
12377
12378 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12379
12380         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
12381         share the argument list.
12382
12383 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12384
12385         Merge
12386
12387         2009-02-12  Diego Novillo  <dnovillo@google.com>
12388
12389         * varpool.c (debug_varpool): New.
12390         * cgraph.h (debug_varpool): Declare.
12391
12392 2009-04-02  Jan Hubicka  <jh@suse.cz>
12393
12394         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
12395         pass.
12396
12397 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12398
12399         * config/i386/i386.c (ix86_abi): Move initialization to ...
12400         (override_options): Here.
12401
12402 2009-04-02  Christian Bruel  <christian.bruel@st.com>
12403
12404         * config/sh/sh.c (sh_dwarf_register_span): New function.
12405         (TARGET_DWARF_REGISTER_SPAN): Define.
12406         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
12407
12408 2009-04-02  Ira Rosen  <irar@il.ibm.com>
12409
12410         PR tree-optimization/39595
12411         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
12412         interleaved loads group is not  greater than the SLP group size.
12413
12414 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12415
12416         * builtins.c (is_builtin_name): New.
12417         (called_as_built_in): Use is_builtin_name.
12418         * tree.h (is_builtin_name): New.
12419         * varasm.c (incorporeal_function_p): Use is_builtin_name
12420
12421 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
12422
12423         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
12424
12425 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
12426
12427         PR c++/26693
12428         * c-decl.c (clone_underlying_type): Move this ...
12429         * c-common.c (set_underlying_type): ... here.
12430         Also, make sure the function properly sets TYPE_STUB_DECL() on
12431         the newly created typedef variant type.
12432         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
12433         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
12434         points.
12435
12436 2009-04-02  Richard Guenther  <rguenther@suse.de>
12437
12438         PR tree-optimization/37221
12439         * tree-flow.h (degenerate_phi_result): Declare.
12440         * tree-ssa-dom.c (degenerate_phi_result): Export.
12441         * tree-scalar-evolution.c (analyze_initial_condition): If
12442         the initial condition is defined by a degenerate PHI node
12443         use the degenerate value.
12444
12445 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
12446
12447         PR rtl-optimization/39588
12448         * combine.c (merge_outer_ops): Do not set the constant when this
12449         is not necessary.
12450         (simplify_shift_const_1): Do not modify it either in this case.
12451
12452 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
12453
12454         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
12455         tuning is deprecated if -mtune value is set to an Itanium1 variant.
12456
12457 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
12458
12459         PR c/29027
12460         * c-lex.c (interpret_float): Default (no suffix) is double.
12461
12462 2009-04-1  Xinliang David Li  <davidxl@google.com>
12463
12464         * config/i386/i386.c (legitimate_constant_p): Recognize
12465         all one vector constant.
12466
12467 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12468
12469         * config/vax/vax.c: Add #includes to silence warnings.
12470         Change #include order to silence two warnings.
12471
12472 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12473
12474         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
12475         (ASM_SPEC): Pass -k to the assembler for PIC code.
12476
12477 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12478
12479         * config.gcc: Add vax-*-linux* to the switch.
12480         * config/vax/linux.h: New file. (TARGET_VERSION,
12481         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
12482
12483 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12484
12485         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
12486         Use predicate macros instead of GET_CODE() == foo.
12487         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
12488         ashlsi3, rotrsi3, <unnamed>): Likewise.
12489
12490 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12491
12492         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
12493         jbbccihi, jbbccisi): Remova trailing whitespace.
12494         * config/vax/constraints.md: Likewise.
12495         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12496         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
12497         * config/vax/predicates.md: Likewise.
12498         * config/vax/vax.c (print_operand_address, vax_output_int_move,
12499         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
12500         * config/vax/vax.h: Likewise.
12501         * config/vax/vax.md (nonlocal_goto): Likewise.
12502
12503 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12504
12505         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
12506         (indirectable_address_p, adjacent_operands_p): Add spaces around
12507         braces.
12508         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
12509
12510 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12511
12512         * config/vax/vax.c (legitimate_constant_address_p,
12513         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12514         index_term_p, reg_plus_index_p, legitimate_address_p,
12515         vax_mode_dependent_address_p): Update comments to match functions
12516         modified by the recent int->bool conversion.
12517
12518 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12519
12520         * config/vax/builtins.md: Update copyright message.
12521         * config/vax/constraints.md: Likewise.
12522         * config/vax/netbsd-elf.h: Likewise.
12523         * config/vax/predicates.md: Likewise.
12524         * config/vax/vax-protos.h: Likewise.
12525         * config/vax/vax.c: Likewise.
12526         * config/vax/vax.h: Likewise.
12527         * config/vax/vax.md: Likewise.
12528         * config/vax/vax.opt: Likewise.
12529
12530 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12531
12532         * config/vax/builtins.md (ffssi2, ffssi2_internal,
12533         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
12534         * config/vax/constraints.md (B, R): Likewise.
12535         * config/vax/predicates.md (external_memory_operand,
12536         nonimmediate_addsub_di_operand): Likewise.
12537         * config/vax/vax.c (vax_output_int_add): Likewise.
12538         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
12539         untyped_call): Likewise.
12540
12541 2009-04-01  Matt Thomas  <matt@3am-software.com>
12542
12543         * config/vax/predicates.md: New file.
12544         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
12545         external_const_operand, nonsymbolic_operand, external_memory_operand,
12546         indirect_memory_operand, indexed_memory_operand,
12547         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12548         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12549         predicate.
12550         * config/vax/constraints.md: New file.
12551         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12552         New constraint.
12553         * config/vax/builtins.md: New file.
12554         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12555         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12556         jbbccisi): Define.
12557         * config/vax/vax.opt (mqmath): Add option.
12558         * config/vax/vax.md (isfx): Extend with DI.
12559         (VAXintQH, VAXintQHSD): Define.
12560         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12561         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12562         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12563         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12564         (movdi): Update constraints and use vax_output_int_move().
12565         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12566         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12567         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12568         nonlocal_goto): New.
12569         (mov<mode>): Extend accepted operand types.
12570         (subdi3_old): Rename from subdi3, change update constraints and use
12571         a new implementation.
12572         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
12573         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12574         MOVE_RATIO, CLEAR_RATIO): Define.
12575         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12576         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12577         (PRINT_OPERAND): Redefine using a function instead of inlined code.
12578         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
12579         (split_quadword_operands): Make static and really allow variable
12580         splitting.
12581         (print_operand_address): Update for PIC generation.
12582         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12583         indexable_address_p, fixup_mathdi_operand,
12584         vax_expand_addsub_di_operands, adjacent_operands_p): New.
12585         (vax_float_literal, legitimate_constant_p,
12586         indirectable_constant_address_p, index_term_p,
12587         reg_plus_index_p): Return bool instead of int.
12588         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12589         where needed.
12590         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12591         generation.
12592         (vax_output_conditional_branch): Indent.
12593         (legitimate_constant_address_p, indirectable_constant_address_p,
12594         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12595         vax_mode_dependent_address_p): Return bool instead of int, update for
12596         PIC generation.
12597         * config/vax/vax-protos.h (legitimate_constant_address_p,
12598         legitimate_constant_p, legitimate_address_p,
12599         vax_mode_dependent_address_p): Change declaration to bool.
12600         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12601         vax_expand_addsub_di_operands, vax_output_int_subtract,
12602         vax_output_movmemsi): Declare.
12603         (split_quadword_operands, vax_float_literal): Delete declaration.
12604         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12605         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12606         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12607         ASM_OUTPUT_DWARF_PCREL): Define.
12608         (ASM_SPEC): Change definition to allow PIC generation.
12609
12610 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
12611
12612         * doc/sourcebuild.texi: Update front-end requirements.
12613
12614 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12615
12616         PR target/39226
12617         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12618         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12619         (booldi3_internal3): Use boolean_or_operator instead of
12620         boolean_operator.
12621
12622 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
12623
12624         PR c/39605
12625         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12626         declarator whose size is not an integer constant expression but
12627         folds to an integer constant, then treat it as a constant
12628         subsequently.
12629
12630 2009-04-01  Richard Guenther  <rguenther@suse.de>
12631
12632         * fold-const.c (fold_plusminus_mult_expr): Do not fold
12633         i * 4 + 2 to (i * 2 + 1) * 2.
12634
12635 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12636
12637         PR c/37772
12638         * c-parser.c (c_parser_asm_statement): Skip until close paren and
12639         return if c_parser_asm_string_literal returned NULL.
12640
12641 2009-04-01  Nick Clifton  <nickc@redhat.com>
12642
12643         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12644         already defined.
12645         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12646         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
12647         other typedefs to avoid conflicts with libgcc2.c.  Define labels
12648         to gain 16-bit bit-manipulation functions from libgcc2.c and then
12649         include it.
12650         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
12651         to gain 16-bit trapping arithmetic functions from libgcc2.c and
12652         then include it.
12653
12654 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
12655
12656         * varasm.c (default_function_rodata_section): Declare DOT as
12657         const char*.
12658
12659 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
12660             Andrey Galkin  <agalkin@hypercom.com>
12661
12662         PR/39492
12663         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12664         Make object_name unique for each process.
12665
12666 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12667
12668         PR other/39591
12669         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12670         addressable variables in the parallel that could go out of scope while
12671         running queued tasks.
12672
12673 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
12674
12675         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12676         (CASE_VALUES_THRESHOLD): Redefine.
12677         * config/avr/avr.c (avr_override_options): Remove initialization of
12678         avr_case_values_threshold variable.
12679         (avr_case_values_threshold): Remove variable. Add new function.
12680         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12681         * config/avr/avr.opt (mno-tablejump): Remove option.
12682         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12683
12684 2009-04-01  DJ Delorie  <dj@redhat.com>
12685
12686         * varasm.c (default_function_rodata_section): Don't assume
12687         anything about where the first '.' in the section name is.
12688
12689 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
12690
12691         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12692         rs6000_emit_stack_tie.
12693
12694 2009-03-31  Ian Lance Taylor  <iant@google.com>
12695
12696         * tree-eh.c (tree_remove_unreachable_handlers): Compare
12697         gimple_code with GIMPLE_RESX, not RESX.
12698
12699 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12700
12701         * c-common.c (c_get_ident): New.
12702         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
12703
12704 2009-04-01  Ben Elliston  <bje@au.ibm.com>
12705
12706         * config/rs6000/sysv4.opt (msdata): Improve option description.
12707
12708 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
12709
12710         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12711         (divdf3_internal_lat): Remove.
12712         (divxf3_internal_lat): Remove.
12713         (divxf3_internal_thr): Remove.
12714         (divxf): Use divxf3_internal.
12715         * config/ia64/div.md (divsf3_internal_lat): New.
12716         (divdf3_internal_lat): New.
12717         (divxf3_internal): New.
12718
12719 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12720
12721         PR c/448
12722         * Makefile.in (USE_GCC_STDINT): Define.
12723         (stmp-int-hdrs): Install stdint.h if applicable.
12724         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12725         if known.
12726         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12727         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12728         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12729         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12730         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12731         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12732         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12733         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12734         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12735         (c_common_nodes_and_builtins): Initialize
12736         underlying_wchar_type_node.  Do not initialize
12737         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
12738         nodes for new types.
12739         (c_stddef_cpp_builtins): Define macros for new types.
12740         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12741         Remove.
12742         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12743         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12744         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12745         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12746         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12747         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12748         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12749         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12750         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12751         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12752         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12753         int16_type_node, int32_type_node, int64_type_node,
12754         uint8_type_node, uint16_type_node, c_uint32_type_node,
12755         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12756         int_least32_type_node, int_least64_type_node,
12757         uint_least8_type_node, uint_least16_type_node,
12758         uint_least32_type_node, uint_least64_type_node,
12759         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12760         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12761         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12762         uintptr_type_node): Define.
12763         * c-cppbuiltin.c (builtin_define_constants,
12764         builtin_define_type_minmax): New.
12765         (builtin_define_stdint_macros): Define more macros.
12766         (c_cpp_builtins): Define more limit macros.
12767         (type_suffix): New.
12768         (builtin_define_type_max): Define in terms of
12769         builtin_define_type_minmax.  Remove is_long parameter.  All
12770         callers changed.
12771         * config.gcc (use_gcc_stdint): Define.
12772         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12773         Add newlib-stdint.h for generic targets.
12774         * config/glibc-stdint.h, config/newlib-stdint.h,
12775         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12776         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12777         * config/score/score.h (UINTPTR_TYPE): Define.
12778         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12779         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12780         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12781         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12782         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12783         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12784         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12785         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12786         * config/spu/spu.h (STDINT_LONG32): Define.
12787         * configure.ac (use_gcc_stdint): Substitute.
12788         * configure: Regenerate.
12789         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12790         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12791         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12792         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12793         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12794         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12795         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12796         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12797         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12798         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12799         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12800         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12801         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12802         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12803         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12804         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12805         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12806         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12807         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12808         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12809         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12810         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12811         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12812         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12813         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12814         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12815         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12816         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12817         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12818
12819 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
12820
12821         * loop-iv.c (suitable_set_for_replacement): Renamed from
12822         simplify_using_assignment; changed to return bool and to accept new
12823         args DEST and SRC.  Return true iff we find a source/destination pair
12824         that can be used to make a replacement, and fill SRC and DEST if so.
12825         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
12826         changed.
12827         (simplify_using_initial_values): Deal with altered regs here and track
12828         more precisely the effect they have on the validity of our expression.
12829
12830         * loop-iv.c (simplify_using_condition): A condition of the form
12831         (EQ REG CONST) can be used to simply make a substitution.
12832         (simplify_using_initial_values): Keep track of conditions we have seen
12833         and keep using them to simplify new expressions, while applying the
12834         same substitutions to them as to the expression.
12835
12836         * simplify-rtx.c (simplify_relational_operation_1): Simplify
12837         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12838         GEU/LTU reversed.
12839
12840         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
12841         changed.  Use this when trying to improve the upper bound.
12842         Generate the comparison by using simplify_gen_relational.
12843
12844         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12845
12846         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12847         functions.
12848         (simplify_using_assignment, simplify_using_initial_values): Call
12849         replace_in_expr to make replacements.  Call replace_single_def_regs
12850         once on the initial version of the expression.
12851
12852 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12853
12854         PR target/27237
12855         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
12856
12857 2009-03-31  Richard Guenther  <rguenther@suse.de>
12858
12859         PR middle-end/31029
12860         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12861         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
12862
12863 2009-03-31  Richard Guenther  <rguenther@suse.de>
12864
12865         * tree.h (div_if_zero_remainder): Declare.
12866         * fold-const.c (div_if_zero_remainder): Export.
12867         * tree-ssa-forwprop.c
12868         (forward_propagate_addr_into_variable_array_index): Handle
12869         constant array index addition outside of the variable index.
12870
12871 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12872
12873         PR target/39592
12874         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12875         define_splits, floatunssi<mode>2): Require x87 conversions from
12876         DImode to be permitted.
12877
12878 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12879
12880         PR preprocessor/15638
12881         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12882
12883 2009-03-31  Richard Guenther  <rguenther@suse.de>
12884
12885         PR middle-end/23401
12886         PR middle-end/27810
12887         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12888         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12889         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12890         a separate statement.
12891         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12892         (lookup_tmp_var): Likewise.
12893         (is_gimple_formal_tmp_or_call_rhs): Remove.
12894         (is_gimple_reg_or_call_rhs): Rename to ...
12895         (is_gimple_reg_rhs_or_call): ... this.
12896         (is_gimple_mem_or_call_rhs): Rename to ...
12897         (is_gimple_mem_rhs_or_call): ... this.
12898         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
12899         DECL_GIMPLE_REG_P only if is_formal is true.
12900         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
12901         for non-proper post-modify expression gimplification.
12902         (gimplify_self_mod_expr): For post-modify expressions gimplify
12903         the lvalue to a minimal lvalue.
12904         (rhs_predicate_for): Remove formal temp case.
12905         (gimplify_modify_expr_rhs): Likewise.
12906         (gimplify_addr_expr): Use is_gimple_reg.
12907         (gimplify_expr): Remove formal temp cases.
12908         (gimple_regimplify_operands): Likewise.
12909         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12910         and FILTER_EXPR like constants.
12911         * gimple.c (walk_gimple_op): Fix val_only initialization, use
12912         is_gimple_reg.
12913         (is_gimple_formal_tmp_rhs): Remove.
12914         (is_gimple_reg_rhs): Remove special casing.
12915         (is_gimple_mem_rhs): Fix.
12916         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12917         (is_gimple_formal_tmp_var): Remove.
12918         (is_gimple_formal_tmp_reg): Likewise.
12919         (is_gimple_min_lval): Allow invariant component ref parts.
12920         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12921         is_gimple_formal_tmp_reg): Remove declarations.
12922         * tree-cfg.c (verify_expr): Verify that variables with address
12923         taken do not have DECL_GIMPLE_REG_P set.
12924         * tree-mudflap.c (mf_build_check_statement_for): Use
12925         force_gimple_operand instead of gimplify_expr.
12926
12927 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
12928
12929         * modulo-sched.c (sms_schedule_by_order): Pass the actual
12930         schedulable rows to compute_split_row.
12931
12932 2009-03-31  Ben Elliston  <bje@au.ibm.com>
12933
12934         PR target/31635
12935         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12936         OPT_mvrsave.
12937
12938 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
12939
12940         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12941         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12942         * configure: Regenerate.
12943         * config.in: Regenerate.
12944         * config/rs6000/rs6000.opt (mtls-markers): Add.
12945         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12946         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12947         (tls_ld_aix, tls_ld_sysv): Likewise.
12948         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12949         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12950
12951 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
12952
12953         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12954
12955 2009-03-30  Jan Hubicka  <jh@suse.cz>
12956
12957         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12958         out of RESX.
12959         (tree_remove_unreachable_handlers): Cleanup EH predecestor
12960         detection and label handling.
12961
12962 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12963
12964         * ira-int.h (ira_allocno): Rename left_conflicts_num to
12965         left_conflicts_size.
12966         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12967         ALLOCNO_LEFT_CONFLICTS_SIZE.
12968
12969         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12970         remove_allocno_from_bucket_and_push,
12971         allocno_spill_priority_compare, push_allocnos_to_stack,
12972         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12973         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12974         (setup_allocno_left_conflicts_num): Ditto.  Rename to
12975         setup_allocno_left_conflicts_size.
12976         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12977         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12978         setup_allocno_left_conflicts_size instead of
12979         setup_allocno_left_conflicts_num.
12980
12981         * ira-build.c (ira_create_allocno): Use
12982         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12983         ALLOCNO_LEFT_CONFLICTS_NUM.
12984
12985 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12986
12987         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12988         instead of DF_LR_OUT.
12989
12990         * ira-lives.c (process_bb_node_lives): Ditto.
12991
12992         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12993         instead of DF_LR_{OUT,IN}.
12994
12995         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12996
12997         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12998
12999 2009-03-30  Jan Hubicka  <jh@suse.cz>
13000
13001         * except.c (label_to_region_map): Fix thinko.
13002
13003 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
13004
13005         PR middle-end/38237
13006         * tree.h (tree_find_value): New declaration.
13007         * tree.c (tree_find_value): New function.
13008         * varasm.c (assemble_external): Avoid duplicate entries on lists.
13009
13010 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
13011
13012         PR debug/39563
13013         * c-decl.c (struct c_binding): Add locus field.
13014         (bind): Add locus argument, set locus field from it.
13015         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
13016         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
13017         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
13018         implicitly_declare, undeclared_variable, lookup_label,
13019         declare_label, c_make_fname_decl, c_builtin_function,
13020         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
13021         bind callers.
13022
13023 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13024
13025         PR target/38781
13026         * config/i386/i386.c (classify_argument): Check total size of
13027         structure.
13028
13029 2009-03-30  Martin Jambor  <mjambor@suse.cz>
13030
13031         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
13032         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
13033         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
13034         respectively.
13035
13036         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
13037         seen_variable_array_ref while also traversing a union.
13038
13039         * tree-inline.c (optimize_inline_calls): Do not call
13040         cgraph_node_remove_callees.
13041         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
13042         (pass_remove_cgraph_callee_edges): New variable.
13043         * passes.c (init_optimization_passes): Add
13044         pass_remove_cgraph_callee_edges after early inlining and before all
13045         late intraprocedural passes.
13046
13047         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
13048
13049 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13050
13051         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
13052         Fix typos in names.
13053
13054 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13055
13056         * combine.c (simplify_comparison): Use have_insn_for.
13057         * dojump.c (do_jump): Likewise.
13058
13059 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13060
13061         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
13062         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
13063         sparc_compare_op0 like sparc_compare_emitted used to be handled.
13064         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
13065         instead of sparc_compare_emitted.
13066         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
13067         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
13068         instead of sparc_compare_emitted.
13069
13070 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13071
13072         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
13073         enter/exit cfglayout mode.
13074         (pass_partition_block): Require it.
13075         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
13076         (combine_instructions): Track basic blocks instead of labels.
13077         (update_cfg_for_uncondjump): New.
13078         (try_combine): Use it.  Update jumps after rescanning.
13079         (pass_combine): Require PROP_cfglayout.
13080         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
13081
13082 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13083
13084         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
13085         Provide/destroy PROP_cfglayout respectively.
13086         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
13087         * tree-pass.h (PROP_cfglayout): New.
13088
13089 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
13090
13091         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
13092         fold_convert_const_fixed_from_fixed,
13093         fold_convert_const_fixed_from_int,
13094         fold_convert_const_fixed_from_real, fold_negate_const): Do not
13095         set TREE_CONSTANT_OVERFLOW.
13096         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
13097         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
13098
13099 2009-03-30  Ira Rosen  <irar@il.ibm.com>
13100
13101         * tree-vect-loop-manip.c: New file.
13102         * tree-vectorizer.c: Update documentation and included files.
13103         (vect_loop_location): Make extern.
13104         (rename_use_op): Move to tree-vect-loop-manip.c
13105         (rename_variables_in_bb, rename_variables_in_loop,
13106         slpeel_update_phis_for_duplicate_loop,
13107         slpeel_update_phi_nodes_for_guard1,
13108         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
13109         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
13110         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
13111         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
13112         find_loop_location): Likewise.
13113         (new_stmt_vec_info): Move to tree-vect-stmts.c.
13114         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
13115         get_vectype_for_scalar_type, vect_is_simple_use,
13116         supportable_widening_operation, supportable_narrowing_operation):
13117         Likewise.
13118         (bb_in_loop_p): Move to tree-vect-loop.c.
13119         (new_loop_vec_info, destroy_loop_vec_info,
13120         reduction_code_for_scalar_code, report_vect_op,
13121         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
13122         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
13123         (vect_supportable_dr_alignment): Likewise.
13124         * tree-vectorizer.h (tree-data-ref.h): Include.
13125         (vect_loop_location): Declare.
13126         Reorganize function declarations according to the new file structure.
13127         * tree-vect-loop.c: New file.
13128         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
13129         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
13130         * tree-vect-data-refs.c: New file.
13131         * tree-vect-patterns.c (timevar.h): Don't include.
13132         * tree-vect-stmts.c: New file.
13133         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
13134         tree-vect-slp.c, tree-vect-loop.c.
13135         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
13136         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
13137         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
13138         (tree-vect-analyze.o): Remove.
13139         (tree-vect-transform.o): Likewise.
13140         (tree-vect-data-refs.o): Add rule.
13141         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
13142         tree-vect-slp.o): Likewise.
13143         (tree-vect-patterns.o): Remove redundant dependencies.
13144         (tree-vectorizer.o): Likewise.
13145         * tree-vect-slp.c: New file.
13146
13147 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13148
13149         * optc-gen.awk: Warn if an option flag has multiple different
13150         help strings.
13151
13152 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
13153
13154         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
13155         -floop-block): Document dependences on PPL, CLooG and Graphite.
13156
13157 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
13158
13159         PR rtl-optimization/323
13160         * c-common.c (c_fully_fold, convert_and_check,
13161         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
13162         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
13163         * c-common.def (EXCESS_PRECISION_EXPR): New.
13164         * c-cppbuiltin.c (builtin_define_float_constants): Define
13165         constants with enough digits for long double.
13166         * c-lex.c (interpret_float): Interpret constant with excess
13167         precision where appropriate.
13168         * c-opts.c (c_common_post_options): Set
13169         flag_excess_precision_cmdline.  Give an error for
13170         -fexcess-precision=standard for C++ for processors where the
13171         option is significant.
13172         * c-parser.c (c_parser_conditional_expression): Handle excess
13173         precision in condition.
13174         * c-typeck.c (convert_arguments): Handle arguments with excess
13175         precision.
13176         (build_unary_op): Move excess precision outside operation.
13177         (build_conditional_expr): Likewise.
13178         (build_compound_expr): Likewise.
13179         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
13180         (build_modify_expr): Handle excess precision in RHS.
13181         (convert_for_assignment): Handle excess precision in converted
13182         value.
13183         (digest_init, output_init_element, process_init_element): Handle
13184         excess precision in initializer.
13185         (c_finish_return): Handle excess precision in return value.
13186         (build_binary_op): Handle excess precision in operands and add
13187         excess precision as needed for operation.
13188         * common.opt (-fexcess-precision=): New option.
13189         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
13190         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
13191         For standard excess precision, output explicit conversion to and
13192         truncation from XFmode.
13193         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
13194         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
13195         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
13196         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
13197         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
13198         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
13199         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
13200         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
13201         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
13202         define_splits, sqrt<mode>2): Disable where appropriate for
13203         standard excess precision.
13204         * convert.c (convert_to_real): Do not shorten arithmetic to type
13205         for which excess precision would be used.
13206         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
13207         * doc/invoke.texi (-fexcess-precision=): Document option.
13208         (-mfpmath=): Correct index entry.
13209         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
13210         flag_excess_precision): New.
13211         * langhooks.c (lhd_post_options): Set
13212         flag_excess_precision_cmdline.
13213         * opts.c (common_handle_option): Handle -fexcess-precision=.
13214         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
13215         init_excess_precision): New.
13216         (lang_dependent_init_target): Call init_excess_precision.
13217         * tree.c (excess_precision_type): New.
13218         * tree.h (excess_precision_type): Declare.
13219
13220 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
13221
13222         PR c/35235
13223         * c-typeck.c (build_component_ref): Do not copy qualifiers from
13224         non-lvalue to component.
13225
13226 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
13227
13228         PR preprocessor/34695
13229         * Makefile.in (c-opts.o): Depend on c-tree.h.
13230         * c-common.c: Move down include of diagnostic.h.
13231         (done_lexing, c_cpp_error): New.
13232         * c-common.h (done_lexing): Declare.
13233         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
13234         (parse_in).
13235         * c-opts.c: Include c-tree.h.
13236         (c_common_init_options): Set preprocessor error callback.
13237         (c_common_handle_option): Do not set preprocessor
13238         inhibit_warnings, warnings_are_errors, warn_system_headers,
13239         pedantic_errors or inhibit_warnings flags.
13240         (c_common_post_options): Do not check cpp_errors (parse_in).
13241         (c_common_finish): Do not output dependencies if there were
13242         errors.  Do not check return value of cpp_finish.
13243         * c-ppoutput.c (pp_file_change): Set input_location.
13244         * c-tree.h (c_cpp_error): Declare.
13245         * diagnostic.c (diagnostic_set_info_translated): Also initialize
13246         override_column.
13247         (diagnostic_build_prefix): Check override_column.
13248         * diagnostic.h (diagnostic_info): Add override_column field.
13249         (diagnostic_override_column): Define.
13250
13251 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
13252
13253         * c-common.c (c_expand_expr, c_staticp): Remove.
13254         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
13255         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
13256         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
13257         * c-gimplify.c (gimplify_compound_literal_expr,
13258         optimize_compound_literals_in_ctor): Remove.
13259         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
13260         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
13261         * c-semantics.c (emit_local_var): Remove.
13262
13263         * langhooks-def.h (lhd_expand_expr): Remove.
13264         * langhooks.c (lhd_expand_expr): Remove.
13265         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
13266
13267         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
13268         handling from c-semantics.c; don't call into langhook.
13269         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
13270         * gimplify.c (gimplify_compound_literal_expr,
13271         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
13272         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
13273         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
13274         as was done in c-gimplify.c.
13275         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
13276         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
13277         Move from c-common.h.
13278         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
13279
13280         * tree.c (staticp): Do not call langhook.
13281         * langhooks.c (lhd_staticp): Delete.
13282         * langhooks-def.h (lhd_staticp): Delete prototype.
13283         (LANG_HOOKS_STATICP): Delete.
13284         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
13285
13286         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
13287         instead of DECL_STMTs.
13288
13289 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
13290
13291         PR c/456
13292         PR c/5675
13293         PR c/19976
13294         PR c/29116
13295         PR c/31871
13296         PR c/35198
13297         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
13298         void_type_node.
13299         (fold_call_expr): Return a NOP_EXPR from folding rather than the
13300         contained expression.
13301         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
13302         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
13303         conditional expressions for C.
13304         (decl_constant_value_for_optimization): Move from
13305         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
13306         whether optimizing and that the expression is a VAR_DECL not of
13307         array type instead of doing such checks in the caller.  Do not
13308         check pedantic.  Call gcc_unreachable for C++.
13309         * c-common.def (C_MAYBE_CONST_EXPR): New.
13310         * c-common.h (c_fully_fold, c_save_expr,
13311         decl_constant_value_for_optimization): New prototypes.
13312         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
13313         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
13314         EXPR_INT_CONST_OPERANDS): Define.
13315         * c-convert.c (convert): Strip nops from expression.
13316         * c-decl.c (groktypename): Take extra parameters expr and
13317         expr_const_operands.  Update call to grokdeclarator.
13318         (start_decl): Update call to grokdeclarator.  Add statement for
13319         expressions used in type of decl.
13320         (grokparm): Update call to grokdeclarator.
13321         (push_parm_decl): Update call to grokdeclarator.
13322         (build_compound_literal): Add parameter non_const and build a
13323         C_MAYBE_COSNT_EXPR if applicable.
13324         (grokdeclarator): Take extra parameters expr and
13325         expr_const_operands.  Track expressions used in declaration
13326         specifiers and declarators.  Fold array sizes and track whether
13327         they are constant expressions and whether they are integer
13328         constant expressions.
13329         (parser_xref_tag): Set expr and expr_const_operands fields in
13330         return value.
13331         (grokfield): Update call to grokdeclarator.
13332         (start_function): Update call to grokdeclarator.
13333         (build_null_declspecs): Set expr and expr_const_operands fields in
13334         return value.
13335         (declspecs_add_type): Handle expressions in typeof specifiers.
13336         * c-parser.c (c_parser_declspecs): Set expr and
13337         expr_const_operands fields for declaration specifiers.
13338         (c_parser_enum_specifier): Likewise.
13339         (c_parser_struct_or_union_specifier): Likewise.
13340         (c_parser_typeof_specifier): Likewise.  Update call to
13341         groktypename.  Fold expression as needed.  Return expressions with
13342         type instead of adding statements.
13343         (c_parser_attributes): Update calls to c_parser_expr_list.
13344         (c_parser_statement_after_labels): Fold expression before passing
13345         to objc_build_throw_stmt.
13346         (c_parser_condition): Fold expression.
13347         (c_parser_asm_operands): Fold expression.
13348         (c_parser_conditional_expression): Use c_save_expr.  Update call
13349         to build_conditional_expr.
13350         (c_parser_alignof_expression): Update call to groktypename.
13351         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
13352         original_code.  Fold expression argument of va_arg.  Create
13353         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
13354         argument to va_arg.  Update calls to groktypename.  Fold array
13355         index for offsetof.  Verify that first argument to
13356         __builtin_choose_expr has integer type.
13357         (c_parser_postfix_expression_after_paren_type): Update calls to
13358         groktypename and build_compound_literal.  Handle expressions with
13359         side effects in type name.
13360         (c_parser_postfix_expression_after_primary): Update call to
13361         c_parser_expr_list.  Set original_code for calls to
13362         __builtin_constant_p.
13363         (c_parser_expr_list): Take extra parameter fold_p.  Fold
13364         expressions if requested.
13365         (c_parser_objc_type_name): Update call to groktypename.
13366         (c_parser_objc_synchronized_statement): Fold expression.
13367         (c_parser_objc_receiver): Fold expression.
13368         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
13369         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
13370         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
13371         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
13372         (struct c_typespec): Add elements expr and expr_const_operands.
13373         (struct c_declspecs): Add elements expr and expr_const_operands.
13374         (groktypename, build_conditional_expr, build_compound_literal):
13375         Update prototypes.
13376         (in_late_binary_op): Declare.
13377         * c-typeck.c (note_integer_operands): New function.
13378         (in_late_binary_op): New variable.
13379         (decl_constant_value_for_broken_optimization): Move to c-common.c
13380         and rename to decl_constant_value_for_optimization.
13381         (default_function_array_conversion): Do not strip nops.
13382         (default_conversion): Do not call
13383         decl_constant_value_for_broken_optimization.
13384         (build_array_ref): Do not fold result.
13385         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
13386         result when operand is a VLA.
13387         (c_expr_sizeof_type): Update call to groktypename.  Handle
13388         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
13389         result when operand names a VLA type.
13390         (build_function_call): Update call to build_compound_literal.
13391         Only fold result for calls to __builtin_* functions.  Strip
13392         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
13393         the function designator.
13394         (convert_arguments): Fold arguments.  Update call to
13395         convert_for_assignment.
13396         (build_unary_op): Handle increment and decrement of
13397         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
13398         decrement earlier.  Fold operand of increment and decrement.
13399         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
13400         built for integer operand.  Wrap returns that are INTEGER_CSTs
13401         without being integer constant expressions or that have integer
13402         constant operands without being INTEGER_CSTs.
13403         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
13404         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
13405         result is an integer constant expression or can be used in
13406         unevaluated parts of one and avoid folding and wrap as
13407         appropriate.  Fold operands before possibly doing -Wsign-compare
13408         warnings.
13409         (build_compound_expr): Wrap result for C99 if operands can be used
13410         in integer constant expressions.
13411         (build_c_cast): Update call to digest_init.  Do not ignore
13412         overflow from casting floating-point constants to integers.  Wrap
13413         results that could be confused with integer constant expressions,
13414         null pointer constants or floating-point constants.
13415         (c_cast_expr): Update call to groktypename.  Handle expressions
13416         included in type name.
13417         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
13418         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
13419         Update calls to convert_for_assignment.
13420         (convert_for_assignment): Take new parameter
13421         null_pointer_constant.  Do not strip nops or call
13422         decl_constant_value_for_broken_optimization.  Set
13423         in_late_binary_op for conversions to boolean.
13424         (store_init_value): Update call to digest_init.
13425         (digest_init): Take new parameter null_pointer_constant.  Do not
13426         call decl_constant_value_for_broken_optimization.  pedwarn for
13427         initializers not constant expressions.  Update calls to
13428         convert_for_assignment.
13429         (constructor_nonconst): New.
13430         (struct constructor_stack): Add nonconst element.
13431         (really_start_incremental_init, push_init_level, pop_init_level):
13432         Handle constructor_nonconst and nonconst element.
13433         (set_init_index): Call constant_expression_warning for array
13434         designators.
13435         (output_init_element): Fold value.  Set constructor_nonconst as
13436         applicable.  pedwarn for initializers not constant expressions.
13437         Update call to digest_init.  Call constant_expression_warning
13438         where constant initializers are required.
13439         (process_init_element): Use c_save_expr.
13440         (c_finish_goto_ptr): Fold expression.
13441         (c_finish_return): Fold return value.  Update call to
13442         convert_for_assignment.
13443         (c_start_case): Fold switch expression.
13444         (c_process_expr_stmt): Fold expression.
13445         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
13446         ensure statement expression is not evaluated in constant expression.
13447         (build_binary_op): Track whether results are integer constant
13448         expressions or may occur in such, disable folding and wrap results
13449         as applicable.  Fold operands for -Wsign-compare warnings unless
13450         in_late_binary_op.
13451         (c_objc_common_truthvalue_conversion): Handle results folded to
13452         integer constants that are not integer constant expressions.
13453         * doc/extend.texi: Document when typeof operands are evaluated,
13454         that condition of __builtin_choose_expr is an integer constant
13455         expression, and more about use of __builtin_constant_p in
13456         initializers.
13457
13458 2009-03-29  Richard Guenther  <rguenther@suse.de>
13459
13460         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
13461         propagate addresses of array references.
13462
13463 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
13464
13465         * regmove.c (perhaps_ends_bb_p): Remove.
13466         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
13467         from INSN and check that the main loop stays within that basic block.
13468         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
13469         (regmove_forward_pass): Split out from regmove_optimize.  Use
13470         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
13471         (regmove_backward_pass): Split out from regmove_optimize.  Use
13472         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
13473         (regmove_optimize): Simplify.
13474
13475 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13476
13477         PR target/39545
13478         * config/i386/i386.c (classify_argument): Ignore flexible array
13479         member in struct and warn ABI change.
13480
13481 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13482
13483         * config/i386/i386-protos.h (ix86_agi_dependent): New.
13484
13485         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
13486         (ix86_adjust_cost): Updated.
13487
13488 2009-03-29  Jan Hubicka  <jh@suse.cz>
13489
13490         PR middle-end/28850
13491         * tree-pass.h (pass_cleanup_eh): New function.
13492         (remove_unreachable_regions): Break code handling RTL
13493         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
13494         that can not be reached by runtime.
13495         (can_be_reached_by_runtime): New function.
13496         (label_to_region_map): New function.
13497         (num_eh_regions): New function.
13498         (rtl_remove_unreachable_regions): New function.
13499         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
13500         (remove_eh_region): New function.
13501         * except.h: Include sbitmap and vecprim.
13502         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
13503         num_eh_regions): Declare.
13504         * passes.c (init_optimization_passes): Schedule cleanup_eh.
13505         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
13506         * tree-eh.c (tree_remove_unreachable_handlers): New function.
13507         (tree_empty_eh_handler_p): New function.
13508         (cleanup_empty_eh): New function.
13509         (cleanup_eh): New function.
13510         (pass_cleanup_eh): New function.
13511
13512 2009-03-29  Jan Hubicka  <jh@suse.cz>
13513
13514         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13515         for removed regions.
13516
13517 2009-03-29  Jan Hubicka  <jh@suse.cz>
13518
13519         * except.c (dump_eh_tree): Dump all datastructures.
13520
13521 2009-03-29  Jan Hubicka  <jh@suse.cz>
13522
13523         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13524         (duplicate_eh_regions_1): Likewise.
13525         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13526         vector; call EH verification.
13527         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13528         Be ready for region being removed.
13529
13530 2009-03-29  Jan Hubicka  <jh@suse.cz>
13531
13532         * bitmap.c (bitmap_last_set_bit): New function.
13533         * bitmap.h (bitmap_last_set_bit): Declare.
13534
13535 2009-03-29  David Ayers  <ayers@fsfe.org>
13536
13537         PR objc/27377
13538         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13539         by calling objc_compare_types and surpress warnings about
13540         incompatible C pointers that are compatible ObjC pointers.
13541
13542 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
13543
13544         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13545         call initialize_inline_failed.
13546         (initialize_inline_failed): Move it from here ...
13547         * cgraph.c (initialize_inline_failed): ... to here.
13548         (cgraph_create_edge): Call initialize_inline_failed rather than
13549         setting inline_failed directly.
13550
13551 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13552
13553         PR target/32542
13554         * sysv4.opt (msdata): Improve comment.
13555         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13556         * sysv4.h (SVR4_ASM_SPEC): Likewise.
13557
13558 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13559
13560         PR target/30451
13561         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13562         load and store attributes.
13563
13564 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13565
13566         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13567         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13568         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13569         * doc/extend.texi (X86 Built-in Functions): Add index entries for
13570         __builtin_infq and __builtin_huge_valq.
13571
13572 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
13573
13574         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13575         atmega8m1 devices.
13576         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13577         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13578
13579 2009-03-28  Xinliang David Li  <davidxl@google.com>
13580
13581         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
13582         (do_dbg_cnt): New function.
13583
13584 2009-03-28  Jan Hubicka  <jh@suse.cz>
13585
13586         Merge from pretty-ipa:
13587
13588         2009-03-27  Jan Hubicka  <jh@suse.cz>
13589
13590         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13591         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13592         * passes.c (function_called_by_processed_nodes_p): New.
13593         * ipa-pure-const.c (check_call): Fix handling of operands.
13594         (analyze_function): Dump debug output for skipped bodies.
13595         (local_pure_const): Use function_called_by_processed_nodes_p.
13596         * dwarf2out.c (reference_to_unused): Use output.
13597         * passes.c (do_per_function_toporder): Likewise.
13598
13599         2008-11-12  Jan Hubicka  <jh@suse.cz>
13600
13601         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13602         * ipa-pure-const.c (funct_state_d): Add can throw field; make
13603         state_set_in_source enum
13604         (check_decl): Ignore memory tags; do not set fake looping flags;
13605         dump diagnostics.
13606         (check_operand, check_tree, check_rhs_var, check_lhs_var,
13607         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13608         (check_call, analyze_function): Rewrite.
13609         (check_stmt): New.
13610         (add_new_function): Update call of analyze_function.
13611         (generate_summary): Add call of analyze_function.
13612         (propagate): Propagate can_throw; handle state_set_in_source correctly.
13613         (local_pure_const): New function.
13614         (pass_local_pure_const): New pass.
13615         * ipa-inline.c (inline_transform): Set after_inlining.
13616         * tree-eh.c (stmt_can_throw_external): New.
13617         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13618         work with aliasing built.
13619         * tree-flow.h (stmt_can_throw_external): New.
13620         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13621         and local pure/const pass in early and late optimization queue.
13622
13623 2009-03-28  Martin Jambor  <mjambor@suse.cz>
13624
13625         * fold-const.c (get_pointer_modulus_and_residue): New parameter
13626         allow_func_align.
13627         (fold_binary): Allow function decl aligment consideration is the
13628         second argument is integer constant one.
13629         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13630         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13631         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13632
13633 2009-03-28  Jan Hubicka  <jh@suse.cz>
13634
13635         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13636         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13637         * function.h (rtl_data): Add nothrow flag.
13638         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13639         set DECL_NOTHROW for AVAILABLE functions.
13640
13641 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
13642
13643         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13644         following vector keyword has expansion starting with pixel or bool
13645         keyword, expand vector to __vector and pixel or bool to __pixel or
13646         __bool.
13647
13648         PR c++/39554
13649         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13650         warn_if_disallowed_function_p): Removed.
13651         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13652         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13653         warning_if_disallowed_function_p.
13654         * flags.h (warn_if_disallowed_function_p,
13655         warn_disallowed_functions): Removed.
13656         * common.opt (Wdisallowed-function-list=): Removed.
13657         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13658
13659 2009-03-28  Richard Guenther  <rguenther@suse.de>
13660
13661         PR tree-optimization/38723
13662         * tree-ssa-pre.c (compute_avail): Add all default definitions to
13663         the entry block.
13664
13665 2009-03-28  Jan Hubicka  <jh@suse.cz>
13666
13667         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13668         test introduced by my previous patch.
13669
13670 2009-03-28  Richard Guenther  <rguenther@suse.de>
13671
13672         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13673         the PHIs value undefined.
13674
13675 2009-03-28  Jan Hubicka  <jh@suse.cz>
13676
13677         * tree-pass.h (pass_fixup_cfg): New pass.
13678         * ipa-inline.c (inline_transform): Set
13679         always_inline_functions_inlined/after_inlining.
13680         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13681         (pass_fixup_cfg): New pass.
13682         * passes.c (init_optimization_passes): Add fixup_cfg.
13683
13684 2009-03-28  Richard Guenther  <rguenther@suse.de>
13685
13686         PR tree-optimization/38458
13687         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13688         argument use the arguments copy-of value.
13689
13690 2009-03-28  Richard Guenther  <rguenther@suse.de>
13691
13692         PR tree-optimization/38180
13693         * tree-ssa-ccp.c (get_default_value): Simplify.
13694         (likely_value): Likewise.
13695         (surely_varying_stmt_p): Properly handle VOP case.
13696         (ccp_initialize): Likewise.
13697         (ccp_fold): Handle propagating through *&.
13698         (fold_const_aggregate_ref): Also handle decls.
13699
13700 2009-03-28  Jan Hubicka  <jh@suse.cz>
13701
13702         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13703         * cgraph.h (cgraph_node): Likewise.
13704         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13705         (cgraph_reset_node): Use process flag.
13706         (cgraph_mark_functions_to_output): Likewise.
13707         (cgraph_expand_function): Likewise.
13708         (cgraph_expand_all_functions): Likewise.
13709         (cgraph_output_in_order): Likewise.
13710         * dwarf2out.c (reference_to_unused): Likewise.
13711         * passes.c do_per_function_toporder): Likewise.
13712
13713 2009-03-28  Jan Hubicka  <jh@suse.cz>
13714
13715         Bring from lto-branch:
13716
13717         2008-09-03  Doug Kwan  <dougkwan@google.com>
13718
13719         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13720         enums instead of reason strings.
13721         * cgraph.c (cgraph_create_edge): Same.
13722         (cgraph_inline_failed_string): New function.
13723         * cgraph.h (cgraph_inline_failed_t): New enum type.
13724         (cgraph_inline_failed_string): New prototype.
13725         (struct cgraph_edge): Change type of INLINED_FAILED from constant
13726         char pointer to cgraph_inline_failed_t.
13727         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13728         (cgraph_default_inline_p): Ditto.
13729         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
13730         to cgraph_inline_failed_t pointer.
13731         * cif-code.def: New file.
13732         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13733         reason string.
13734         (cgraph_check_inline_limits): Change type of REASON to pointer to
13735         cgraph_inline_failed_t.  Replace reason strings with enums.
13736         (cgraph_default_inline_p): Ditto.
13737         (cgraph_recursive_inlining_p): Ditto.
13738         (update_caller_keys): Change type of FAILED_REASON to
13739         cgraph_inline_failed_t.
13740         (cgraph_set_inline_failed): Change type of REASON to pointer to
13741         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
13742         convert enums to strings for text output.
13743         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13744         to be of type cgraph_inline_failed_t.  Replace reason strings with
13745         enums.  Call cgraph_inline_failed_string to covert enums
13746         to strings for text output.
13747         (cgraph_decide_inlining): Replace reason strings with enums.
13748         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13749         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
13750         for text output.
13751         * tree-inline.c (expand_call_inline): Change type of REASON
13752         to cgraph_inline_failed_t.  Replace reason strings with enums.
13753         Call cgraph_inline_failed_string for text output.
13754         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13755         (cgraph.o): Ditto.
13756
13757 2009-03-28  Jan Hubicka  <jh@suse.cz>
13758
13759         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13760         cgraph_clone_node): Remove master clone handling.
13761         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13762         * cgraph.h (master_clone): Remove.
13763         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13764         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13765         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13766
13767 2009-03-28  Jan Hubicka  <jh@suse.cz>
13768
13769         * cgraph.c (cgraph_function_body_availability): Functions declared
13770         inline are always safe to assume that it is not going to be replaced.
13771
13772 2009-03-28  Richard Guenther  <rguenther@suse.de>
13773
13774         PR tree-optimization/38513
13775         * tree-ssa-pre.c (eliminate): Remove redundant stores.
13776         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13777         EXC_PTR_EXPR and FILTER_EXPR.
13778         (get_ref_from_reference_ops): Likewise.
13779
13780 2009-03-28  Richard Guenther  <rguenther@suse.de>
13781
13782         PR tree-optimization/38968
13783         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13784         Use FLOOR_MOD_EXPR to compute misalignment.
13785
13786 2009-03-28  Richard Guenther  <rguenther@suse.de>
13787
13788         PR tree-optimization/37795
13789         * tree.h (combine_comparisons): Declare.
13790         * fold-const.c (combine_comparisons): Export.
13791         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13792         comparisons.
13793         (ifcombine_iforif): Use combine_comparisons.
13794
13795 2009-03-28  Jan Hubicka  <jh@suse.cz>
13796
13797         * tree-eh.c (inlinable_call_p): New function.
13798         (make_eh_edges): Use it.
13799         (verify_eh_edges): Use it.
13800         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13801         * except.c (reachable_next_level): Add inlinable_function argument
13802         (sjlj_find_directly_reachable_regions): Update.
13803         (add_reachable_handler): Do not set saw_any_handlers.
13804         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13805         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13806         Add new inlinable call parameter.
13807         (can_throw_internal, can_throw_external): Update.
13808         * except.h (can_throw_internal_1, can_throw_external_1,
13809         foreach_reachable_handler): Update declaration.
13810
13811 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
13812
13813         * config/arm/t-arm-coff, config/h8300/coff.h,
13814         config/i386/i386-aout.h, config/i386/i386-coff.h,
13815         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13816         config/pdp11/2bsd.h, config/rs6000/aix41.h,
13817         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13818         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13819         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13820         sys-types.h: Remove.
13821         * Makefile.in: Remove protoize and fixproto support and references
13822         in comments.
13823         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13824         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13825         Remove.
13826         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13827         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13828         unprotoize$(exeext).
13829         (rest.encap): Don't depend on $(STMP_FIXPROTO)
13830         (.PHONY): Don't depend on proto.
13831         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13832         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13833         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13834         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13835         build/gen-protos.o, build/scan.o, xsys-protos.h,
13836         build/fix-header$(build_exeext), build/fix-header.o,
13837         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13838         stmp-install-fixproto): Remove.
13839         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13840         SYSCALLS.c or fixproto files.
13841         (install-common): Don't install protoize.
13842         (install-headers-tar, install-headers-cpio, install-headers-cp):
13843         Don't depend on $(STMP_FIXPROTO).
13844         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
13845         install fixproto files or write out fixproto settings.
13846         (uninstall): Don't uninstall protoize.
13847         * config.gcc (use_fixproto): Remove.
13848         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13849         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13850         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13851         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13852         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13853         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13854         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13855         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13856         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13857         * config/t-vxworks (STMP_FIXPROTO): Remove.
13858         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13859         STMP_FIXPROTO): Remove.
13860         * config.in, configure: Regenerate.
13861         * crtstuff.c (gid_t, uid_t): Don't undefine.
13862         * doc/install.texi: Change m68k-coff to m68k-elf in example.
13863         (arm-*-coff, arm-*-aout: Remove target entries.
13864         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13865         Remove mention of AIX 4.1.
13866         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13867         * doc/invoke.texi (Running Protoize): Remove.
13868         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13869         (Protoize Caveats): Remove.
13870         * tsystem.h: Update comments on headers assumed to exist.
13871
13872 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
13873
13874         * genautomata.c: Add a new year to the copyright.  Add a new
13875         reference.
13876         (struct insn_reserv_decl): Add comments for member bypass_list.
13877         (find_bypass): Remove.
13878         (insert_bypass): New.
13879         (process_decls): Use insert_bypass.
13880         (output_internal_insn_latency_func): Output all bypasses with the
13881         same input insn in one switch case.
13882
13883         * rtl.def (define_bypass): Describe bypass choice.
13884         * doc/md.texi (define_bypass): Ditto.
13885
13886 2009-03-27  Richard Guenther  <rguenther@suse.de>
13887
13888         * gimplify.c (mark_addressable): Export.
13889         * tree-flow.h (mark_addressable): Declare.
13890         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13891         * tree-ssa.c (verify_phi_args): Verify that address taken
13892         variables have TREE_ADDRESSABLE set.
13893
13894 2009-03-27  Richard Guenther  <rguenther@suse.de>
13895
13896         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13897         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
13898         Do not mark decls TREE_ADDRESSABLE.
13899         (build_fold_addr_expr): Adjust.
13900         (fold_addr_expr): Remove.
13901         (fold_unary): Use build_fold_addr_expr.
13902         (fold_comparison): Likewise.
13903         (split_address_to_core_and_offset): Likewise.
13904         * coverage.c (tree_coverage_counter_addr): Mark the array decl
13905         TREE_ADDRESSABLE.
13906         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13907         (gimplify_modify_expr_to_memcpy): Mark source and destination
13908         addressable.
13909         * omp-low.c (create_omp_child_function): Mark the object decl
13910         TREE_ADDRESSABLE.
13911         (lower_rec_input_clauses): Mark the var we take the address of
13912         TREE_ADDRESSABLE.
13913         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13914
13915 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13916
13917         PR middle-end/39315
13918         * cfgexpand.c (expand_one_stack_var_at): Change alignment
13919         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13920
13921 2009-03-27  Richard Guenther  <rguenther@suse.de>
13922
13923         PR tree-optimization/39120
13924         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13925         constraints.
13926         (handle_lhs_call): Process return constraints.  Add escape
13927         constraints if necessary.
13928         (handle_const_call): Fill out return constraints.  Make nested
13929         case more precise.  Avoid consttmp if possible.
13930         (handle_pure_call): Fill out return constraints.  Avoid
13931         callused if possible.
13932         (find_func_aliases): Simplify call handling.
13933
13934 2009-03-27  Richard Guenther  <rguenther@suse.de>
13935
13936         PR tree-optimization/39120
13937         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13938         as a representative.
13939         (solve_graph): Do propagate CALLUSED.
13940         (handle_pure_call): Use a scalar constraint from CALLUSED for
13941         the return value.
13942         (find_what_p_points_to): CALLUSED shall not appear in poins-to
13943         solutions.
13944
13945 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13946
13947         PR c/39323
13948         * c-common.c (handle_aligned_attribute): Properly check alignment
13949         overflow.  Use (1U << i) instead of (1 << i).
13950
13951         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
13952
13953         * expr.h (get_mem_align_offset): Updated.
13954
13955         * tree.h (tree_decl_common): Change align to "unsigned int" and
13956         move it before pointer_alias_set.
13957
13958 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13959             Jakub Jelinek  <jakub@redhat.com>
13960
13961         PR target/38034
13962         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13963         gr_register_operand with gr_reg_or_0_operand.
13964         (cmpxchg_rel_di): Likewise.
13965         (sync_lock_test_and_set<mode>): Likewise.
13966
13967 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13968
13969         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13970         (true_regnum): Likewise.
13971
13972         * rtlanal.c (subreg_info): Moved to ...
13973         * rtl.h (subreg_info): Here.  New.
13974         (subreg_get_info): New.
13975
13976         * rtlanal.c (subreg_get_info): Make it extern.
13977
13978 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13979
13980         PR target/39472
13981         * config/i386/i386.c (ix86_abi): New.
13982         (override_options): Handle -mabi=.
13983         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
13984         (ix86_call_abi_override): Likewise.
13985         (init_cumulative_args): Likewise.
13986         (function_arg_advance): Likewise.
13987         (function_arg_64): Likewise.
13988         (function_arg): Likewise.
13989         (ix86_pass_by_reference): Likewise.
13990         (ix86_function_value_regno_p): Likewise.
13991         (ix86_build_builtin_va_list_abi): Likewise.
13992         (setup_incoming_varargs_64): Likewise.
13993         (is_va_list_char_pointer): Likewise.
13994         (ix86_init_machine_status): Likewise.
13995         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
13996         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
13997         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
13998         (ix86_function_abi): Make it static and return enum calling_abi.
13999         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
14000         with ix86_abi.
14001         (ix86_fn_abi_va_list): Updated.
14002
14003         * config/i386/i386.h (ix86_abi): New.
14004         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
14005         (CONDITIONAL_REGISTER_USAGE): Likewise.
14006         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
14007         (machine_function): Likewise.
14008
14009         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
14010         with ix86_abi.
14011         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
14012         (STACK_BOUNDARY): Likewise.
14013         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
14014
14015         * config/i386/i386.opt (mabi=): New.
14016
14017         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
14018         return enum calling_abi.
14019         (ix86_function_type_abi): Likewise.
14020         (ix86_function_abi): Removed.
14021
14022         * doc/invoke.texi: Document -mabi= option for x86.
14023
14024 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14025
14026         * builtins.c (real_dconstp): Delete.
14027         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
14028
14029 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
14030             Jakub Jelinek  <jakub@redhat.com>
14031
14032         PR debug/37959
14033         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
14034         (gen_subprogram_die): When a function is explicit, generate the
14035         DW_AT_explicit attribute.
14036         * langhooks.h (struct lang_hooks_for_decls): Add
14037         function_decl_explicit_p langhook.
14038         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
14039         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
14040
14041 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
14042
14043         * builtins.c (fold_builtin_memory_op): Optimize memmove
14044         into memcpy if we can prove source and destination don't overlap.
14045
14046         * tree-inline.c: Include gt-tree-inline.h.
14047         (clone_fn_id_num): New variable.
14048         (clone_function_name): New function.
14049         (tree_function_versioning): Use it.
14050         * Makefile.in (GTFILES): Add tree-inline.c.
14051
14052 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
14053
14054         * BASE-VER: Change to 4.5.0.
14055
14056 2009-03-27  Xinliang David Li  <davidxl@google.com>
14057
14058         PR tree-optimization/39557
14059         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
14060
14061 2009-03-27  Xinliang David Li  <davidxl@google.com>
14062
14063         PR tree-optimization/39548
14064         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
14065         candidate check.
14066
14067 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14068
14069         * c-common.c (pointer_int_sum): Use %wd on return from
14070         tree_low_cst.
14071
14072 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14073
14074         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
14075         on return from tree_low_cst.
14076
14077 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14078
14079         PR c++/36799
14080         * ginclude/stdarg.h (va_copy): Define also for
14081         __GXX_EXPERIMENTAL_CXX0X__.
14082
14083 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14084
14085         PR c++/35652
14086         * builtins.h (c_strlen): Do not warn here.
14087         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
14088         * c-common.c (pointer_int_sum): Take an explicit location.
14089         Warn about offsets out of bounds.
14090         * c-common.h (pointer_int_sum): Adjust declaration.
14091
14092 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14093
14094         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
14095         markup glitch.
14096
14097 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
14098
14099         PR c++/39554
14100         * opts.c (warn_if_disallowed_function_p): Don't assume
14101         get_callee_fndecl must return non-NULL.
14102
14103 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
14104
14105         PR rtl-optimization/39522
14106         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
14107         when reg_reloaded_valid is set.
14108
14109 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14110
14111         * config/spu/divv2df3.c: New file.
14112         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
14113         (DPBIT_FUNCS): Filter out _div_df.
14114
14115 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
14116
14117         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
14118         a jump insn, count that jump in the distance to the loop start.
14119
14120 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
14121
14122         PR target/39523
14123         * config/sh/sh.c (calc_live_regs): Fix condition for global
14124         registers except PIC_OFFSET_TABLE_REGNUM.
14125
14126 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
14127
14128         PR/39518
14129         * doc/invoke.texi (-mconsole): New.
14130         (-mcygwin): New.
14131         (-mno-cygwin): New.
14132         (-mdll): New.
14133         (-mnop-fun-dllimport): New.
14134         (-mthread): New.
14135         (-mwin32): New.
14136         (-mwindows): New.
14137         (sub section "i386 and x86-64 Windows Options"): New.
14138
14139 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
14140
14141         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
14142         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
14143
14144 2009-03-25  Richard Guenther  <rguenther@suse.de>
14145
14146         PR middle-end/39497
14147         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
14148         of -Wno-error.
14149
14150 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
14151
14152         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
14153         neither of haifa/selective schedulers are working.
14154
14155 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14156
14157         * doc/invoke.texi (Debugging Options): Fix description of
14158         -fno-merge-debug-strings.
14159
14160 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
14161
14162         * config/cris/libgcc.ver: New version-script.
14163         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
14164
14165         * configure.ac <GAS features, nop mnemonic>: Add pattern
14166         crisv32-*-* for "nop".
14167         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
14168         * configure: Regenerate.
14169
14170 2009-03-24  Ira Rosen  <irar@il.ibm.com>
14171
14172         PR tree-optimization/39529
14173         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
14174         mark_sym_for_renaming for the tag copied to the new vector
14175         pointer.
14176
14177 2009-03-24  Arthur Loiret  <aloiret@debian.org>
14178
14179         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
14180         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
14181         EXTRA_SPEC_FUNCTIONS.
14182         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
14183         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
14184         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
14185         -march and -mtune options.
14186
14187 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
14188
14189         * config/m68k/t-rtems: Add m5329 multilib.
14190
14191 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
14192             Jakub Jelinek  <jakub@redhat.com>
14193
14194         PR debug/39524
14195         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
14196         nodes.
14197
14198 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
14199
14200         PR c/39495
14201         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
14202         instead of c_parser_expression_conv, if original_code isn't one of the
14203         4 allowed comparison codes, fail.
14204
14205 2009-03-23  Richard Guenther  <rguenther@suse.de>
14206
14207         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
14208         * tree.h (struct tree_type): Likewise.
14209         * reload.h (struct insn_chain): Likewise.
14210         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
14211         * function.h (struct function): Likewise.
14212         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
14213
14214 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
14215
14216         PR tree-optimization/39516
14217         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
14218
14219 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
14220
14221         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
14222         should be set true if BITS_PER_WORD of target is bigger than 32
14223
14224 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
14225
14226         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
14227         Translate -B-options to -rpath-link.  Correct existing
14228         rpath-link and conditionalize on !nostdlib.
14229
14230 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14231
14232         * doc/extend.texi (Function Attributes, Variable Attributes):
14233         Fix typos.
14234         * doc/invoke.texi (Debugging Options, Optimize Options)
14235         (i386 and x86-64 Options, MCore Options): Likewise.
14236
14237 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
14238
14239         PR debug/37890
14240         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
14241         it for block local namespace aliases.
14242         (gen_decl_die): Pass context_die to gen_namespace_die.
14243
14244 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
14245
14246         PR c/39495
14247         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
14248         minimum or maximum value.
14249
14250 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
14251
14252         * reginfo.c (globalize_reg): Recompute derived reg sets.
14253
14254 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
14255
14256         PR target/39063
14257         * libgcc2.c (mprotect): Do not use signed arguments for
14258         VirtualProtect, use DWORD arguments.  Also fix the 'may
14259         be used uninitialized' warning for the np variable.
14260
14261 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
14262
14263         PR target/39496
14264         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
14265         functions using regparm calling conventions when not optimizing.
14266         (ix86_function_sseregparm): Similarly for sseregparm calling
14267         conventions.
14268
14269 2009-03-19  Li Feng  <nemokingdom@gmail.com>
14270
14271         PR middle-end/39500
14272         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
14273         dependence if the first conflict is after niter iterations.
14274
14275 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
14276
14277         PR middle-end/38609
14278         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
14279         functions with dynamic stack-pointer adjustments.
14280
14281 2009-03-19  Ben Elliston  <bje@au.ibm.com>
14282
14283         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
14284         option; change to -msdata=data.
14285
14286 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14287
14288         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
14289         and -fopenmp.
14290
14291 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
14292
14293         PR target/35180
14294         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
14295
14296 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
14297
14298         * doc/invoke.texi (Code Gen Options): Expand discussion of
14299         -fno-common.
14300
14301 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
14302
14303         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
14304         * matrix-reorg.c (struct matrix_info): Likewise.
14305         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
14306         * rtl.h (struct mem_attrs): Likewise.
14307         * df.h (struct df): Likewise.
14308         * tree-data-ref.h (struct data_dependence_relation): Likewise.
14309         * ira-int.h (struct ira_allocno): Likewise.
14310         * df-scan.c (struct df_collection_rec): Likewise.
14311         * ira.c (struct equivalence): Likewise.
14312         * function.c (struct temp_slot): Likewise.
14313         * cfgloop.h (struct loop): Likewise.
14314
14315         PR debug/39485
14316         * function.c (use_register_for_decl): When not optimizing, disregard
14317         register keyword for variables with types containing methods.
14318
14319 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
14320
14321         PR middle-end/39447
14322         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
14323         (is_simple_operand): Call contains_component_ref_p before calling data
14324         reference analysis that would fail on COMPONENT_REFs.
14325
14326         * tree-vrp.c (search_for_addr_array): Fix formatting.
14327
14328 2009-03-18  Richard Guenther  <rguenther@suse.de>
14329
14330         * tree-vect-transform.c (vect_loop_versioning): Fold the
14331         generated comparisons.
14332         * tree-vectorizer.c (set_prologue_iterations): Likewise.
14333         (slpeel_tree_peel_loop_to_edge): Likewise.
14334
14335 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14336
14337         PR middle-end/37805
14338         * opts.c (print_specific_help): In addition to `undocumented',
14339         accept `separate' and `joined' flags if passed alone.  Describe
14340         output by the first matched one of those.
14341         (common_handle_option): Skip over empty strings.
14342         * gcc.c (display_help): Fix help string for `--help='.
14343         * doc/invoke.texi (Option Summary, Overall Options): With
14344         `--help=', classes and qualifiers can both be repeated, but
14345         only the latter can be negated.  One should not pass only
14346         negated qualifiers.  Fix markup and examples.
14347
14348         Revert
14349         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
14350         PR middle-end/37805
14351         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
14352         and -fhelp=separate.
14353
14354 2009-03-17  Jing Yu  <jingyu@google.com>
14355
14356         PR middle-end/39378
14357         * function.h (struct rtl_data): Move is_thunk from here...
14358         (struct function): ...to here.
14359         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
14360         * varasm.c (assemble_start_function): Change is_thunk from crtl to
14361         cfun.
14362         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
14363         cfun.
14364         (alpha_does_function_need_gp, alpha_start_function): Likewise.
14365         (alpha_output_function_end_prologue): Likewise.
14366         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
14367         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
14368         (rs6000_output_function_epilogue): Likewise.
14369         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
14370
14371 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
14372
14373         PR target/39482
14374         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
14375         from different units in a single alternative.
14376         (*truncdfsf_i387): Ditto.
14377         (*truncxfsf2_mixed): Ditto.
14378         (*truncxfdf2_mixed): Ditto.
14379
14380 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
14381
14382         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
14383         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
14384
14385         PR debug/39474
14386         * tree-ssa-live.c (remove_unused_locals): Don't remove local
14387         unused non-artificial variables when not optimizing.
14388
14389         PR debug/39471
14390         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
14391         DW_TAG_imported_module even if decl is IMPORTED_DECL with
14392         NAMESPACE_DECL in its DECL_INITIAL.
14393
14394         PR middle-end/39443
14395         * optabs.c (set_user_assembler_libfunc): New function.
14396         * expr.h (set_user_assembler_libfunc): New prototype.
14397         * c-common.c: Include libfuncs.h.
14398         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
14399         for memcmp, memset, memcpy, memmove and abort.
14400         * Makefile.in (c-common.o): Depend on libfuncs.h.
14401
14402         PR debug/39412
14403         * dwarf2out.c (gen_inlined_enumeration_type_die,
14404         gen_inlined_structure_type_die, gen_inlined_union_type_die,
14405         gen_tagged_type_instantiation_die): Removed.
14406         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
14407         do nothing.
14408
14409 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
14410
14411         PR testsuite/38526
14412         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
14413         its use.
14414         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
14415         (check-parallel-%): Ditto.
14416         (check-consistency): Ditto.
14417
14418 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
14419
14420         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
14421         local variable rhs by NULL_TREE.
14422
14423 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14424
14425         PR target/39477
14426         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
14427
14428 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14429
14430         PR target/39476
14431         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
14432
14433 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14434
14435         PR target/39473
14436         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
14437         for ms->sysv ABI calls only in 64bit mode.
14438
14439         * config/i386/i386.md (untyped_call): Support 32bit.
14440
14441 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
14442
14443         * doc/extend.texi: Replace x86_65 with x86_64.
14444
14445 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
14446
14447         PR tree-optimization/39455
14448         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
14449         mismatches for POINTER_TYPE_P (type).
14450         (number_of_iterations_le): Likewise.
14451
14452 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14453
14454         * config/picochip/picochip.c: Removed profiling support.
14455         * config/picochip/picochip.md: Removed profiling instruction.
14456         * config/picochip/picochip.h: Removed profiling builtin.
14457
14458 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
14459
14460         * doc/install.texi (--with-host-libstdcxx): Document.
14461
14462 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
14463
14464         PR target/34299
14465         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
14466         generate a warning if the function name does not begin with
14467         "__vector" and the function has either the 'signal' or 'interrupt'
14468         attribute, from here to ...
14469         (avr_declare_function_name): ...here. New function.
14470         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
14471         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
14472
14473 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
14474
14475         PR bootstrap/39454
14476         * cse.c (fold_rtx): Don't modify original const_arg1 when
14477         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
14478         separate variable instead.
14479         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
14480         from out of range shift counts.
14481         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
14482
14483 2009-03-13  Catherine Moore  <clm@codesourcery.com>
14484
14485         * config/i386/x-mingw32 (host-mingw32.o): Replace
14486         diagnostic.h with $(DIAGNOSTIC_H).
14487
14488 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
14489
14490         PR target/39431
14491         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
14492         predicate.
14493         * config/i386/sync.md (sync_compare_and_swap<mode>,
14494         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
14495         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
14496         into a register.
14497         (sync_double_compare_and_swapdi_pic,
14498         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
14499         cmpxchg8b_pic_memory_operand instead of just memory_operand.
14500
14501 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14502
14503         PR target/39445
14504         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
14505
14506 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14507
14508         PR target/39327
14509         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14510         (avx_addsubv4df3): Likewise.
14511         (*avx_addsubv4sf3): Likewise.
14512         (sse3_addsubv4sf3): Likewise.
14513
14514 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14515
14516         PR target/38824
14517         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
14518
14519 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
14520
14521         PR debug/39432
14522         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14523         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14524         registers for allocnos created from user-defined variables.
14525
14526 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14527
14528         PR target/39181
14529         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14530         of non-integer mode as well.
14531
14532 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
14533
14534         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14535         for functions for which the parameter types are unknown.
14536
14537 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
14538
14539         PR target/39137
14540         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
14541         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14542         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14543         * config/i386/i386.c (ix86_local_alignment): For
14544         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14545         long long variables on the stack to avoid dynamic realignment.
14546         Allow the first argument to be a decl rather than type.
14547         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14548
14549 2009-03-11  Nick Clifton  <nickc@redhat.com>
14550
14551         PR target/5362
14552         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14553         options.
14554         Add description to mno-lsim option.
14555         * config/mcore/mcore.h: Remove comment about deprecated m4align
14556         option.
14557         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14558         * doc/invoke.texi: Add description of mno-lsim and
14559         mstack-increment options.
14560
14561         * config/fr30/fr30.opt: Document the -mno-lsim option.
14562         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14563         and -mno-lsim options.
14564
14565 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14566
14567         * fold-const.c (fold_comparison): Only call fold_inf_compare
14568         if the mode supports infinities.
14569
14570 2009-03-11  Jason Merrill  <jason@redhat.com>
14571
14572         PR debug/39086
14573         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14574         end already did.  Notice GIMPLE_CALL modifications of the result.
14575         Don't copy debug information from an ignored decl or a decl from
14576         another function.
14577
14578 2009-03-10  Richard Guenther  <rguenther@suse.de>
14579             Nathan Froyd  <froydnj@codesourcery.com>
14580
14581         PR middle-end/37850
14582         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
14583         (__divMODE3): Likewise.
14584
14585 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
14586
14587         PR tree-optimization/39394
14588         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14589         DECL_SIZE_UNIT of variable length FIELD_DECLs.
14590
14591 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14592
14593         * recog.c (verfiy_changes): Disallow renaming of hard regs in
14594         inline asms for register asm ("") declarations.
14595
14596 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
14597
14598         * fold-const.c (fold_unary): Fix comment.
14599
14600 2009-03-07  Jan Hubicka  <jh@suse.cz>
14601
14602         PR target/39361
14603         * tree-inline.c (setup_one_parameter): Do replacement of const
14604         argument by constant in SSA form.
14605
14606 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14607
14608         PR middle-end/38028
14609         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14610         determine alignment passed to assign_stack_local.
14611         (assign_parms_unsplit_complex): Likewise.
14612         * except.c (sjlj_build_landing_pads): Likewise.
14613
14614 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14615
14616         PR middle-end/39360
14617         * tree-flow.h (add_referenced_var): Return bool instead of void.
14618         * tree-dfa.c (add_referenced_var): Return result of
14619         referenced_var_check_and_insert call.
14620         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14621         of referenced_var_check_and_insert.
14622
14623         PR debug/39372
14624         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
14625         (gen_variable_die): Emit DW_AT_location on abstract static variable's
14626         DIE, don't emit it if abstract origin already has it.
14627         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14628         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14629
14630 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14631
14632         * genpreds.c (needs_variable): Fix parentheses at variable name
14633         detection.
14634         (write_tm_constrs_h): Indent generated code.
14635
14636 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14637
14638         * doc/extend.texi (Function Attributes): Add documentation
14639         for isr attributes.
14640
14641 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14642
14643         PR debug/39387
14644         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14645         take locus from its DECL_SOURCE_LOCATION instead of input_location.
14646
14647 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
14648
14649         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14650         the loop as bad.
14651
14652 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
14653
14654         PR debug/39379
14655         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14656         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14657
14658 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
14659
14660         * config/i386/i386.md (R8_REG, R9_REG): New constants.
14661         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14662         constants instead of magic numbers.
14663         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14664         (QI_REG_P): Ditto.
14665         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14666         (x86_64_ms_abi_int_parameter_registers): Ditto.
14667         (x86_64_int_return_registers): Ditto.
14668         (ix86_maybe_switch_abi): Ditto.
14669         (ix86_expand_call): Ditto for clobbered_registers array.
14670         (ix86_hard_regno_mode_ok): Ditto.
14671         (x86_extended_QIreg_mentioned_p): Ditto.
14672
14673 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
14674
14675         PR tree-optimization/39349
14676         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14677
14678         * combine.c (gen_lowpart_for_combine): Use omode when generating
14679         clobber.
14680
14681 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
14682
14683         PR rtl-optimization/39235
14684         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14685
14686 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14687
14688         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14689
14690 2009-03-04  Richard Guenther  <rguenther@suse.de>
14691
14692         PR tree-optimization/39362
14693         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14694         that occur in abnormal PHIs should be varying.
14695
14696 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14697
14698         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14699         Extend comments.
14700         (simple_iv):  Take loop as an argument instead of statement.
14701         * tree-scalar-evolution.h (simple_iv): Declaration changed.
14702         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14703         to simple_iv.
14704         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14705         Ditto.
14706         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14707         * matrix-reorg.c (analyze_transpose): Ditto.
14708         * tree-data-ref.c (dr_analyze_innermost): Ditto.
14709         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14710         * tree-predcom.c (ref_at_iteration): Ditto.
14711         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14712
14713 2009-03-04  Richard Guenther  <rguenther@suse.de>
14714
14715         PR tree-optimization/39358
14716         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14717         escaped_id and callused_id.
14718         (solve_graph): Likewise.
14719
14720 2009-03-04  Richard Guenther  <rguenther@suse.de>
14721
14722         PR tree-optimization/39339
14723         * tree-sra.c (try_instantiate_multiple_fields): Make it
14724         no longer ICE on the above.
14725
14726 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
14727
14728         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14729         that fits within Pmode.
14730
14731 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14732
14733         PR middle-end/10109
14734         * tm.texi (LIBCALL_VALUE): Update description.
14735
14736 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14737
14738         PR middle-end/34443
14739         * doc/extend.texi (section): Update description.
14740
14741 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
14742
14743         PR middle-end/39345
14744         * tree-inline.c (remapped_type): New.
14745         (can_be_nonlocal): Call remapped_type instead of remap_type.
14746
14747 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14748
14749         PR fortran/39354
14750         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14751         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14752
14753 2009-03-03  Richard Guenther  <rguenther@suse.de>
14754
14755         PR middle-end/39272
14756         * tree.c (tree_nonartificial_location): New function.
14757         * tree.h (tree_nonartificial_location): Declare.
14758         * builtins.c (expand_builtin_memory_chk): Provide location
14759         of the call location for artificial function pieces.
14760         (maybe_emit_chk_warning): Likewise.
14761         (maybe_emit_sprintf_chk_warning): Likewise.
14762         (maybe_emit_free_warning): Likewise.
14763         * expr.c (expand_expr_real_1): Likewise.
14764
14765 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14766
14767         PR tree-optimization/39343
14768         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14769         COMPONENT_REF t has ARRAY_TYPE.
14770
14771 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
14772
14773         PR middle-end/39335
14774         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14775         when the type precision of the induction variable should be
14776         larger than the type precision of nit.
14777         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14778         * graphite.c (graphite_loop_normal_form): Same.
14779         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14780
14781 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14782
14783         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14784         (*call_1_rex64_ms_sysv): Use named constants instead of magic
14785         numbers to describe clobbered registers.
14786         (*call_value_0_rex64_ms_sysv): Ditto.
14787         * config/i386/mmx.md (mmx_emms): Ditto.
14788         (mmx_femms): Ditto.
14789
14790 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
14791
14792         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14793         of ABI_64.
14794
14795 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14796
14797         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14798         (spu_section_type_flags): New function.
14799
14800 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14801
14802         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14803         reg_class_contents of FLOAT_REGS into a temporary.
14804
14805 2009-03-02  Richard Guenther  <rguenther@suse.de>
14806             Ira Rosen  <irar@il.ibm.com>
14807
14808         PR tree-optimization/39318
14809         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14810         information to the vectorized statement.
14811
14812 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
14813
14814         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14815         variable.  Use defined names instead of magic constants for REX SSE
14816         registers.
14817
14818 2009-03-01  Richard Guenther  <rguenther@suse.de>
14819
14820         PR tree-optimization/39331
14821         * omp-low.c (lower_send_shared_vars): Do not receive new
14822         values for the reference of DECL_BY_REFERENCE parms or results.
14823
14824 2009-03-01  Jan Hubicka  <jh@suse.cz>
14825
14826         PR debug/39267
14827         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14828         BLOCK_NONLOCALIZED_VAR): New macros.
14829         (tree_block): Add nonlocalized_vars.
14830         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14831         gen_decl_die): Add origin argument.  Allow generation of die with
14832         origin at hand only.
14833         (gen_member_die, gen_type_die_with_usage, force_decl_die,
14834         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14835         of gen_*.
14836         (gen_block_die): Fix checking for unused blocks.
14837         (process_scope_var): Break out from .... ; work with origins only.
14838         (decls_for_scope) ... here; process nonlocalized list.
14839         (dwarf2out_ignore_block): Look for nonlocalized vars.
14840         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14841         vars.
14842         (dump_scope_block): Dump them.
14843         * tree-inline.c (remap_decls): Handle nonlocalized vars.
14844         (remap_block): Likewise.
14845         (can_be_nonlocal): New predicate.
14846         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14847
14848 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14849
14850         * configure: Regenerate.
14851
14852 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14853
14854         * optc-gen.awk: No need to duplicate option flags twice.
14855         Reuse help texts for duplicate options which do not have any.
14856
14857         * gcc.c (display_help): Document --version.
14858
14859         * gcc.c (main): If print_help_list and verbose_flag, ensure
14860         driver output comes before subprocess output.
14861
14862         * optc-gen.awk: Assign all remaining fields to help string,
14863         space-separated, for multi-line help in *.opt.
14864
14865         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14866         -Wno-pedantic-ms-format is for MinGW targets only.
14867
14868         * doc/options.texi (Option file format): Fix bad indentation,
14869         restoring dropped sentence.
14870
14871 2009-02-28  Jan Hubicka  <jh@suse.cz>
14872
14873         * tree-inline.c (tree_function_versioning): Output debug info.
14874
14875 2009-02-28  Jan Hubicka  <jh@suse.cz>
14876
14877         PR debug/39267
14878         * tree-inline.c (setup_one_parameter): Do not copy propagate
14879         arguments when not optimizing.
14880
14881 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
14882
14883         PR target/39327
14884         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14885         (avx_addsubv4df3): Likewise.
14886         (*avx_addsubv4sf3): Likewise.
14887         (sse3_addsubv4sf3): Likewise.
14888         (*avx_addsubv2df3): Likewise.
14889         (sse3_addsubv2df3): Likewise.
14890         (avx_unpckhps256): Correct item selectors.
14891         (avx_unpcklps256): Likewise.
14892         (avx_unpckhpd256): Likewise.
14893         (avx_unpcklpd256): Likewise.
14894
14895 2009-02-28  Jan Hubicka  <jh@suse.cz>
14896
14897         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14898         static vars.
14899         (copy_arguments_for_versioning): If var is declared don't declare it.
14900         (tree_function_versioning): First setup substitutions and then copy
14901         args.
14902
14903 2009-02-27  Jan Hubicka  <jh@suse.cz>
14904
14905         PR debug/39267
14906         * cgraph.h (varpool_output_debug_info): Remove.
14907         * cgraphunit.c (varpool_output_debug_info): Remove.
14908         * dwarf2out.c (deferred_locations_struct): New struct
14909         (deferred_locations): New type.
14910         (deferred_locations_list): New static var.
14911         (deffer_location): New function.
14912         (gen_variable_die): Use it.
14913         (decls_for_scope): Output info on local static vars.
14914         (dwarf2out_finish): Process deferred locations.
14915         * varpool.c (varpool_output_debug_info): Remove.
14916
14917 2009-02-27  Jan Hubicka  <jh@suse.cz>
14918
14919         PR debug/39267
14920         * tree.h (TREE_PROTECTED): Fix comment.
14921         (BLOCK_HANDLER_BLOCK): Remove.
14922         (struct tree_block): Remove handler_block add body_block.
14923         (inlined_function_outer_scope_p): New.
14924         (is_body_block): Remove.
14925         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14926         * dwarf2out.c (is_inlined_entry_point): Remove.
14927         (add_high_low_attributes): Use inlined_function_outer_scope_p.
14928         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
14929         code.
14930         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14931         * gimplify.c (gimplify_expr): Gimplify body blocks.
14932         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14933         block with multiple subblocks.
14934         (dump_scope_block): Prettier output; dump more flags and info.
14935         (dump_scope_blocks): New.
14936         (remove_unused_locals): Use dump_scope_blocks.
14937         * tree-flow.h (dump_scope_blocks): Declare.
14938         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14939         * stmt.c (is_body_block): Remove.
14940         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14941         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14942
14943 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
14944
14945         PR middle-end/39308
14946         * graphite.c (graphite_loop_normal_form): Do not call
14947         number_of_iterations_exit from a gcc_assert.
14948
14949 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14950
14951         * config/s390/s390.c (s390_swap_cmp): Look for conditional
14952         jumps if COND is NULL.
14953         (find_cond_jump): New function.
14954         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
14955         * config/s390/s390.md: Remove z10_cobra attribute value.
14956
14957 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
14958
14959         * config/alpha/alpha.h (alpha_expand_mov): Return false if
14960         force_const_mem returns NULL_RTX.
14961
14962 2009-02-26  Jan Hubicka  <jh@suse.cz>
14963
14964         PR debug/39267
14965         * cgraph.h (varpool_output_debug_info): Remove.
14966         * cgraphunit.c (varpool_output_debug_info): Remove.
14967         * dwarf2out.c (deferred_locations_struct): New struct
14968         (deferred_locations): New type.
14969         (deferred_locations_list): New static var.
14970         (deffer_location): New function.
14971         (gen_variable_die): Use it.
14972         (decls_for_scope): Output info on local static vars.
14973         (dwarf2out_finish): Process deferred locations.
14974         * varpool.c (varpool_output_debug_info): Remove.
14975
14976 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
14977
14978         PR rtl-optimization/39241
14979         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14980         to subreg_offset_representable_p.
14981
14982 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
14983
14984         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14985         execute function prototype.  Get f and nregs from max_reg_num
14986         and get_insns.  Remove the first backward pass as it's dead,
14987         guard the forward pass by flag_expensive_optimizations.
14988         (rest_of_handle_regmove): Delete.
14989         (pass_regmove): Replace it with regmove_optimize.
14990
14991 2009-02-25  Martin Jambor  <mjambor@suse.cz>
14992
14993         PR tree-optimization/39259
14994         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
14995         calls_alloca function flags.
14996         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14997         calls are detected.
14998
14999 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
15000
15001         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
15002         flags_set_1_rtx, flags_set_1_set): Delete.
15003         (regmove_optimize): Do not call mark_flags_life_zones.
15004
15005 2009-02-24  Julian Brown  <julian@codesourcery.com>
15006
15007         PR target/35965
15008         * config/arm/arm.c (require_pic_register): Only set
15009         cfun->machine->pic_reg once per function.
15010
15011 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
15012
15013         * doc/invoke.texi (Link Options): Document an easier way to pass
15014         options that take arguments to the GNU linker using -Xlinker and -Wl.
15015
15016 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
15017
15018         PR target/33785
15019         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
15020
15021 2009-02-24  Richard Guenther  <rguenther@suse.de>
15022
15023         PR debug/39285
15024         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
15025
15026 2009-02-24  Richard Guenther  <rguenther@suse.de>
15027             Zdenek Dvorak  <ook@ucw.cz>
15028
15029         PR tree-optimization/39233
15030         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
15031         from converting them to a generic type.
15032
15033 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
15034
15035         PR tree-optimization/39260
15036         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
15037         contains a condition with a real type.
15038         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
15039
15040 2009-02-23  Jason Merrill  <jason@redhat.com>
15041
15042         PR c++/38880
15043         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
15044         narrowing_initializer_constant_valid_p.
15045         (narrowing_initializer_constant_valid_p): Don't return
15046         null_pointer_node for adding a pointer to itself.
15047
15048 2009-02-23  Jan Hubicka  <jh@suse.cz>
15049
15050         PR c/12245
15051         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
15052         resizing.
15053
15054 2009-02-23  Jan Hubicka  <jh@suse.cz>
15055
15056         PR tree-optimization/37709
15057         * tree.c (block_ultimate_origin): Move here from dwarf2out.
15058         * tree.h (block_ultimate_origin): Declare.
15059         * dwarf2out.c (block_ultimate_origin): Move to tree.c
15060         * tree-ssa-live.c (remove_unused_scope_block_p):
15061         Eliminate blocks containig no instructions nor live variables nor
15062         nested blocks.
15063         (dump_scope_block): New function.
15064         (remove_unused_locals): Enable removal of dead blocks by default;
15065         enable dumping at TDF_DETAILS.
15066
15067 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15068
15069         * config/i386/i386.c (classify_argument): Don't allow COImode
15070         and OImode.
15071         (function_arg_advance_32): Don't allow OImode.
15072         (function_arg_32): Likewise.
15073         (function_value_32): Likewise.
15074         (return_in_memory_32): Likewise.
15075         (function_arg_64): Remove OImode comment.
15076
15077 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15078
15079         PR target/39261
15080         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
15081         ix86_expand_vector_set for V4DImode in 64bit mode only.
15082         (ix86_expand_vector_init_one_var): Likewise.
15083
15084 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
15085
15086         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
15087
15088 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
15089
15090         PR bootstrap/39257
15091         * loop-iv.c: Revert last change.
15092         * emit-rtl.c: Likewise.
15093
15094 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
15095
15096         PR target/39256
15097         * config/i386/i386.c (type_natural_mode): Remove an extra
15098         space in the warning message.
15099         (function_value_32): Handle 32-byte vector modes.
15100         (return_in_memory_32): Likewise.
15101
15102 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
15103
15104         * loop-iv.c (truncate_value): New function.
15105         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
15106         of lowpart_subreg.
15107         (lowpart_subreg): Move to...
15108         * emit-rtl.c: ...here.
15109
15110 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
15111
15112         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
15113         accidental and undocumented change at revision 140860.
15114
15115 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
15116
15117         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
15118         take gimple_seq * arguments.
15119         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
15120         types_compatible_p langhook.
15121
15122 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
15123             Joseph Myers  <joseph@codesourcery.com>
15124
15125         * config/arm/arm.c (arm_builtin_va_list): New function.
15126         (arm_expand_builtin_va_start): Likewise.
15127         (arm_gimplify_va_arg_expr): Likewise.
15128         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
15129         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
15130         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
15131         (va_list_type): New variable.
15132         (arm_mangle_type): Mangle va_list_type appropriately.
15133
15134 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
15135
15136         PR middle-end/39157
15137         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
15138         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
15139         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
15140         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
15141         parameter to 1000 for -O1 by default.
15142         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
15143         parameter.
15144         * loop-invariant.c: Include params.h.
15145         (move_loop_invariants): Don't call move_single_loop_invariants on
15146         very large loops.
15147
15148 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
15149
15150         * calls.c (emit_library_call_value_1): Use slot_offset instead of
15151         offset when calculating bounds for indexing stack_usage_map.  Fixes
15152         a buffer overflow with certain target setups.
15153
15154 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
15155
15156         PR target/39240
15157         * calls.c (expand_call): Clear try_tail_call if caller and callee
15158         disagree in promotion of function return value.
15159
15160 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
15161
15162         PR target/39175
15163         * c-common.c (c_determine_visibility): If visibility changed and
15164         DECL_RTL has been already set, call make_decl_rtl to update symbol
15165         flags.
15166
15167 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
15168
15169         PR c++/39188
15170         * varasm.c (assemble_variable): Don't check DECL_NAME when
15171         globalizing a variable.
15172
15173 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
15174
15175         PR c/38483
15176         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
15177         expression before any __builtin_trap call.
15178         * c-typeck.c (build_function_call): Convert and check function
15179         arguments before generating a call to a trap.  Evaluate the
15180         function arguments before the trap.
15181
15182 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
15183
15184         PR target/39228
15185         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
15186         (UNSPEC_FXAM_MEM): New unspec.
15187         (fxam<mode>2_i387_with_temp): New insn and split pattern.
15188         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
15189         memory using fxam<mode>2_i387_with_temp to remove excess precision.
15190
15191 2009-02-19  Richard Guenther  <rguenther@suse.de>
15192
15193         PR tree-optimization/39207
15194         PR tree-optimization/39074
15195         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
15196         storedanything_tree): New.
15197         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
15198         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
15199         (build_succ_graph): Add edges from STOREDANYTHING to all
15200         non-direct nodes.
15201         (init_base_vars): Initialize STOREDANYTHING.
15202         (compute_points_to_sets): Free substitution info after
15203         building the succ graph.
15204         (ipa_pta_execute): Likewise.
15205
15206         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
15207         field.
15208         (do_ds_constraint): Do not add to special var or non-pointer
15209         field solutions.
15210         (type_could_have_pointers): Split out from ...
15211         (could_have_pointers): ... here.  For arrays use the element type.
15212         (create_variable_info_for): Initialize may_have_pointers.
15213         (new_var_info): Likewise.
15214         (handle_lhs_call): Make the HEAP variable unknown-sized.
15215         (intra_create_variable_infos): Use a type with pointers for
15216         PARM_NOALIAS, make it unknown-sized.
15217
15218 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
15219
15220         PR target/39224
15221         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
15222
15223 2009-02-18  Jason Merrill  <jason@redhat.com>
15224
15225         PR target/39179
15226         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
15227         value if DECL_EXTERNAL.
15228         * tree-sra.c (sra_walk_gimple_assign): Likewise.
15229         * target.h (gcc_target::binds_local_p): Clarify "module".
15230         * tree.h (TREE_PUBLIC): Clarify "module".
15231
15232 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
15233
15234         PR target/38891
15235         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
15236         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
15237
15238 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
15239
15240         PR target/39082
15241         * c.opt (Wabi): Support C and ObjC.
15242         (Wpsabi): New.
15243
15244         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
15245
15246         * config/i386/i386.c (classify_argument): Warn once about the ABI
15247         change when passing union with long double.
15248
15249         * doc/invoke.texi: Update -Wabi for warning psABI changes.
15250
15251 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
15252
15253         PR c/35447
15254         * c-parser.c (c_parser_compound_statement): Always enter and leave
15255         a scope.
15256
15257 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15258
15259         PR target/34587
15260         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
15261
15262 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
15263
15264         PR tree-optimization/36922
15265         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
15266         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
15267         Likewise.
15268
15269 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15270
15271         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
15272         to 0 for EABI64.
15273
15274 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15275
15276         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
15277
15278 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
15279
15280         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
15281         tree sharing.
15282
15283 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
15284             Richard Sandiford  <rdsandiford@googlemail.com>
15285
15286         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
15287         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
15288         (loongson_biadd): ...this.
15289
15290 2009-02-17  Richard Guenther  <rguenther@suse.de>
15291
15292         PR tree-optimization/39202
15293         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
15294         a var make sure to follow existing collapses.
15295
15296 2009-02-17  Richard Guenther  <rguenther@suse.de>
15297
15298         PR middle-end/39214
15299         * langhooks.c (lhd_print_error_function): Check for NULL block.
15300
15301 2009-02-17  Richard Guenther  <rguenther@suse.de>
15302
15303         PR tree-optimization/39204
15304         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
15305         of the PHI arg.
15306
15307 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
15308
15309         * config/soft-fp/double.h: Update from glibc CVS.
15310
15311 2009-02-17  Richard Guenther  <rguenther@suse.de>
15312
15313         PR tree-optimization/39207
15314         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
15315         strict-aliasing warnings for pointers pointing to NULL.
15316
15317 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
15318
15319         PR c/35446
15320         * c-parser.c (c_parser_braced_init): Call pop_init_level when
15321         skipping until next close brace.
15322
15323 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
15324
15325         PR target/37049
15326         * config/i386/i386.c (ix86_expand_push): Set memory alignment
15327         to function argument boundary.
15328
15329 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15330
15331         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
15332         in the lea_add. Reload eventually constraints it properly.
15333         * config/picochip/constraints.md: Remove the target constraint
15334         "b", since it is not needed anymore.
15335
15336 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
15337
15338         * gthr-dce.h: Uglify function parameter and local variable names.
15339         * gthr-gnat.h: Likewise.
15340         * gthr-mipssde.h: Likewise.
15341         * gthr-nks.h: Likewise.
15342         * gthr-posix95.h: Likewise.
15343         * gthr-posix.h: Likewise.
15344         * gthr-rtems.h: Likewise.
15345         * gthr-single.h: Likewise.
15346         * gthr-solaris.h: Likewise.
15347         * gthr-tpf.h: Likewise.
15348         * gthr-vxworks.h: Likewise.
15349         * gthr-win32.h: Likewise.
15350
15351 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
15352
15353         PR target/39196
15354         * config/i386/i386.md: Restrict the new peephole2 to move
15355         between MMX/SSE registers.
15356
15357 2009-02-15  Richard Guenther  <rguenther@suse.de>
15358
15359         Revert
15360         2009-02-13  Richard Guenther  <rguenther@suse.de>
15361
15362         * configure.ac: Enable LFS.
15363         * configure: Re-generate.
15364         * config.in: Likewise.
15365
15366 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15367
15368         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
15369         spu_srqwbyte, spu_srqwbytebc): Define.
15370         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
15371         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
15372         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
15373         "shrqby_<mode>"): New insn-and-split patterns.
15374         * config/spu/spu.c (expand_builtin_args): Determine and return
15375         number of operands using spu_builtin_description data.
15376         (spu_expand_builtin_1): Use it.
15377
15378 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
15379
15380         PR target/38056
15381         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
15382         TARGET_CONST_GP.
15383
15384 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15385
15386         PR target/39149
15387         * config/i386/i386.c (override_options): Correct warning
15388         messages for -malign-loops, -malign-jumps and -malign-functions.
15389
15390 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15391
15392         PR target/39152
15393         * config/i386/i386.md: Restrict the new peephole2 to move
15394         between the general purpose registers.
15395
15396 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15397
15398         PR target/39162
15399         * config/i386/i386.c (type_natural_mode): Add a new argument.
15400         Return the original mode and warn ABI change if vector size is 32byte.
15401         (function_arg_advance): Updated.
15402         (function_arg): Likewise.
15403         (ix86_function_value): Likewise.
15404         (ix86_return_in_memory): Likewise.
15405         (ix86_sol10_return_in_memory): Likewise.
15406         (ix86_gimplify_va_arg): Likewise.
15407         (function_arg_32): Don't warn ABX ABI change here.
15408         (function_arg_64): Likewise.
15409
15410 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15411
15412         * loop-iv.c (implies_p): In the final case, test that operands 0
15413         of the two comparisons match.
15414
15415         * config/bfin/bfin.c (find_prev_insn_start): New function.
15416         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
15417         (find_next_insn_start): Move.
15418
15419 2009-02-13  Richard Guenther  <rguenther@suse.de>
15420
15421         * configure.ac: Enable LFS.
15422         * configure: Re-generate.
15423         * config.in: Likewise.
15424
15425 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
15426
15427         PR c/35444
15428         * c-parser.c (c_parser_parms_list_declarator): Discard pending
15429         sizes on syntax error after some arguments have been parsed.
15430
15431 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15432
15433         * doc/invoke.texi (-fira): Remove.
15434
15435 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15436
15437         * caller-save.c: Replace regclass.c with reginfo.c in comments.
15438         * recog.c: Likewise.
15439         * rtl.h: Likewise.
15440
15441 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
15442
15443         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
15444         (umul_ppmm): Likewise.
15445         (count_leading_zeros): Likewise.
15446         (count_trailing_zeros): Likewise.
15447         (UMUL_TIME): Likewise.
15448
15449 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15450
15451         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
15452         soft-fp/t-softfp to tmake_file.
15453
15454         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
15455         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
15456         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
15457         IA64_BUILTIN_INFQ]: New.
15458         (ia64_init_builtins): Initialize __builtin_infq,
15459         __builtin_fabsq and __builtin_copysignq if not HPUX.
15460         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
15461         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
15462
15463         * config/ia64/lib1funcs.asm (__divtf3): Define only if
15464         SHARED is defined.
15465         (__fixtfti): Likewise.
15466         (__fixunstfti): Likewise.
15467         (__floattitf): Likewise.
15468
15469         * config/ia64/libgcc-glibc.ver: New.
15470         * config/ia64/t-fprules-softfp: Likewise.
15471         * config/ia64/sfp-machine.h: Likewise.
15472
15473         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
15474         (LIBGCC2_TF_CEXT): Likewise.
15475         (TF_SIZE): Likewise.
15476         (TARGET_INIT_LIBFUNCS): Likewise.
15477
15478         * config/ia64/t-glibc (SHLINB_MAPFILES):
15479         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
15480
15481 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15482
15483         * config/i386/i386.c (construct_container): Rewrite processing
15484         BLKmode with X86_64_SSE_CLASS.
15485
15486 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
15487
15488         PR target/39152
15489         * config/i386/i386.md: Replace simplify_replace_rtx with
15490         replace_rtx in the new peephole2.
15491
15492 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
15493
15494         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
15495         loop unrolling do not happen at -O2.
15496
15497 2009-02-12  Michael Matz  <matz@suse.de>
15498
15499         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
15500
15501 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15502
15503         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
15504         for -g3.
15505
15506 2009-02-12  Ben Elliston  <bje@au.ibm.com>
15507
15508         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15509         patterns when updating the back chain.  Missed in the 2009-02-10
15510         change.
15511
15512 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
15513
15514         * doc/extend.texi (Decimal Floating Types): Update identifier of
15515         draft TR and list of missing support.
15516
15517 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
15518
15519         PR middle-end/39154
15520         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15521         bit to variable length decl's flags, add it also to its
15522         pointer replacement variable.
15523
15524 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
15525             Jakub Jelinek  <jakub@redhat.com>
15526
15527         PR target/39118
15528         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15529         (memory_blockage): New expander.
15530         (*memory_blockage): New insn pattern.
15531         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15532         instead of general blockage at the end of function prologue when
15533         frame pointer is used to access red zone area.  Do not emit blockage
15534         when profiling, it is emitted in generic code.
15535         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15536         function epilogue when frame pointer is used to access red zone area.
15537
15538 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
15539
15540         PR target/38824
15541         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15542         by arithmetic with memory operands.
15543         * config/i386/predicates.md (commutative_operator): New.
15544
15545 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
15546
15547         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15548         bulleted lists.
15549
15550 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
15551
15552         * alias.h (record_alias_subset): Declare.
15553         * alias.c (record_alias_subset): Make global.
15554
15555 2009-02-10  Nick Clifton  <nickc@redhat.com>
15556
15557         * tree-parloops.c: Change license to GPLv3.
15558         * ipa-struct-reorg.c: Change license to GPLv3.
15559         * ipa-struct-reorg.h: Change license to GPLv3.
15560
15561 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
15562
15563         PR c/39084
15564         * c-decl.c (start_struct): Return NULL on error.
15565
15566 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
15567
15568         PR middle-end/39124
15569         * cfgloopmanip.c (remove_path): Call remove_bbs after
15570         cancel_loop_tree, not before it.
15571
15572         PR target/39139
15573         * function.h (struct function): Add has_local_explicit_reg_vars bit.
15574         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15575         VAR_DECLs were seen.
15576         * tree-ssa-live.c (remove_unused_locals): Recompute
15577         cfun->has_local_explicit_reg_vars.
15578         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15579         copies or clearings if cfun->has_local_explicit_reg_vars.
15580
15581 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
15582
15583         PR target/39118
15584         * config/i386/i386.c (expand_prologue): Emit blockage at the end
15585         of function prologue when frame pointer is used to access
15586         red zone area.
15587
15588 2009-02-10  Richard Guenther  <rguenther@suse.de>
15589
15590         PR middle-end/39127
15591         * gimplify.c (gimple_regimplify_operands): Always look if
15592         we need to create a temporary.
15593
15594 2009-02-10  Richard Guenther  <rguenther@suse.de>
15595
15596         PR tree-optimization/39132
15597         * tree-loop-distribution.c (todo): New global var.
15598         (generate_memset_zero): Trigger TODO_rebuild_alias.
15599         (tree_loop_distribution): Return todo.
15600
15601 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
15602
15603         PR target/39119
15604         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15605         (x86_64_reg_class_name): Removed.
15606         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
15607         first one isn't X86_64_SSE_CLASS or any other ones aren't
15608         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
15609         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15610         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
15611         and 3 X86_64_SSEUP_CLASS.
15612         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
15613         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15614
15615 2009-02-10  Ben Elliston  <bje@au.ibm.com>
15616
15617         * config/rs6000/rs6000.md (allocate_stack): Always use an update
15618         form instruction to update the stack back chain word, even if the
15619         user has disabled the generation of update instructions.
15620         (movdi_<mode>_update_stack): New.
15621         (movsi_update_stack): Likewise.
15622         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15623         always use an update form instruction to update the stack back
15624         chain word.
15625
15626 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
15627
15628         PR middle-end/38953
15629         * graphite.c (if_region_set_false_region): After moving a region in
15630         the false branch of a condition, remove the empty dummy basic block.
15631         (gloog): Remove wrong fix for PR38953.
15632
15633 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15634
15635         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15636         generation due to implicit sign extension.
15637
15638 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
15639
15640         PR middle-end/38981
15641         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15642         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15643
15644 2009-02-09  Richard Guenther  <rguenther@suse.de>
15645
15646         PR middle-end/35202
15647         * convert.c (convert_to_real): Disable (float)fn((double)x)
15648         to fnf(x) conversion if errno differences may occur and
15649         -fmath-errno is set.
15650
15651 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
15652
15653         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15654         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15655         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15656
15657 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15658
15659         PR c/35434
15660         * c-common.c (handle_alias_attribute): Disallow attribute for
15661         anything not a FUNCTION_DECL or VAR_DECL.
15662
15663 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
15664
15665         PR c/39035
15666         * real.c (do_compare): Special-case compare of zero against
15667         decimal float value.
15668
15669 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15670
15671         PR c/36432
15672         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15673         as indicating flexible array members unless the field itself is
15674         being declarared as the incomplete array.
15675
15676 2009-02-06  Jan Hubicka  <jh@suse.cz>
15677
15678         PR tree-optimization/38844
15679         * ipa-inline.c (try_inline): Stop inlining recursion when edge
15680         is already inlined.
15681
15682 2009-02-06  Richard Guenther  <rguenther@suse.de>
15683
15684         PR middle-end/38977
15685         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15686         fork because we may expand it as __gcov_fork.
15687
15688 2009-02-06  Nick Clifton  <nickc@redhat.com>
15689
15690         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
15691
15692 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
15693
15694         PR tree-optimization/35659
15695         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15696         vn_phi_eq): Shortcut if hashcode does not match.
15697         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15698         NULL operands.
15699         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15700         and avoid iterative_hash_expr.
15701         (FOR_EACH_VALUE_ID_IN_SET): New.
15702         (value_id_compare): Remove.
15703         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15704         sort expressions by value id.
15705
15706 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
15707
15708         PR target/38991
15709         * config/sh/predicates.md (general_movsrc_operand): Don't check
15710         the subreg of system registers here.
15711
15712 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
15713
15714         PR c++/39106
15715         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15716         on the copied decl.
15717
15718 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
15719
15720         PR rtl-optimization/39110
15721         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15722         addresses, not aligned ones.
15723
15724 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
15725             Richard Guenther  <rguenther@suse.de>
15726
15727         PR tree-optimization/39100
15728         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15729         comment says and add edges.
15730
15731 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
15732
15733         PR c/35435
15734         * c-common.c (handle_tls_model_attribute): Ignore attribute for
15735         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15736
15737 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
15738
15739         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15740         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15741         register_bb_in_sese, new_sese, free_sese): Moved.
15742         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15743         outermost_loop_in_scop, build_scop_iteration_domain,
15744         expand_scalar_variables_ssa_name, get_vdef_before_scop,
15745         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15746         Use loop_in_sese_p instead of loop_in_scop_p.
15747         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15748         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15749         (scopdet_basic_block_info): Fix bug in scop detection.
15750         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15751         eq_loop_to_cloog_loop): Remove.
15752         (nb_loops_around_loop_in_scop, nb_loop
15753         ref_nb_loops): Moved here...
15754         * graphite.h (ref_nb_loops): ... from here.
15755         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15756         (loop_domain_dim, loop_iteration_vector_dim): Remove.
15757         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15758         * testsuite/gcc.dg/graphite/scop-19.c: New
15759
15760 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
15761             Hans-Peter Nilsson  <hp@axis.com>
15762
15763         PR rtl-optimization/37889
15764         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15765         Move offset handling from PLUS to before the switch.  Use new
15766         arguments when considering SYMBOL_REFs too.
15767         (rtx_addr_can_trap_p): Pass dummy offset and size.
15768         (enum may_trap_p_flags): Remove.
15769         (may_trap_p_1): Pass size from MEM_SIZE.
15770
15771         PR rtl-optimization/38921
15772         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15773         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15774         * rtlanal.c (may_trap_after_code_motion_p): Delete.
15775         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15776
15777 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
15778
15779         AVX Programming Reference (January, 2009)
15780         * config/i386/sse.md (*vpclmulqdq): New.
15781
15782 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
15783
15784         PR tree-optimization/38977
15785         PR gcov-profile/38292
15786         * calls.c (special_function_p): Disregard __builtin_ prefix.
15787
15788 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15789
15790         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15791         non-indexable addresses even before reload.
15792
15793 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15794
15795         PR c/29129
15796         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15797         as having variable size.  Do not give an error for unnamed
15798         parameters with [*] declarators.  Give a warning for type names
15799         with [*] declarators and mark them as variable size.
15800         * c-parser.c (c_parser_sizeof_expression): Do not give an error
15801         for sizeof applied to [*] type names.
15802
15803 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15804
15805         PR C++/36607
15806         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15807
15808 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15809
15810         * gcc.c (process_command): Update copyright notice dates.
15811         * gcov.c (print_version): Likewise.
15812         * gcov-dump.c (print_version): Likewise.
15813         * mips-tfile.c (main): Likewise.
15814         * mips-tdump.c (main): Likewise.
15815
15816 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15817
15818         PR c/35433
15819         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15820         for composite type involving a zero-length array type.
15821
15822 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15823
15824         PR target/35318
15825         * function.c (match_asm_constraints_1): Skip over
15826         initial optional % in the constraint.
15827
15828         PR inline-asm/39059
15829         * c-parser.c (c_parser_postfix_expression): If fixed point is not
15830         supported, don't accept FIXED_CSTs.
15831         * c-decl.c (finish_declspecs): Error if fixed point is not supported
15832         and _Sat is used without _Fract/_Accum.  Set specs->type to
15833         integer_type_node for cts_fract/cts_accum if fixed point is not
15834         supported.
15835
15836 2009-02-02  Catherine Moore  <clm@codesourcery.com>
15837
15838         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
15839
15840 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15841
15842         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15843         (ABI_HAS_64BIT_SYMBOLS): Use it.
15844         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15845
15846 2009-02-02  Paul Brook  <paul@codesourcery.com>
15847
15848         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15849
15850 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
15851
15852         PR inline-asm/39058
15853         * recog.h (asm_operand_ok): Add constraints argument.
15854         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
15855         recurse on matching constraint.
15856         (check_asm_operands): Pass constraints as 3rd argument to
15857         asm_operand_ok.  Don't look up matching constraint here.
15858         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15859         to asm_operand_ok.
15860
15861 2009-02-02  Ben Elliston  <bje@au.ibm.com>
15862
15863         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15864         TARGET_NARROW_VOLATILE_BITFIELD macro names.
15865
15866 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15867
15868         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15869         information.  Remove some obsolete information.  Reorganize.
15870
15871         * config/pa/fptr.c: Revert license to GPL 2.
15872         * config/pa/milli64.S: Likewise.
15873
15874 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15875
15876         PR target/38904
15877         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
15878         LIBRARY name in, instead of hard-coding it.
15879         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
15880         extra target make frag to tmake_files according to EH model.
15881         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
15882         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
15883         frags that define makefile variable EH_MODEL appropriately.
15884         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
15885         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
15886         to "-sjlj" according to type of EH configured.
15887         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15888         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
15889         to "_sjlj" according to type of EH configured.
15890         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15891         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
15892         (SHLIB_LINK):  Add missing semicolon to if-else construct.
15893         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15894         string value of "pe_dll" command-line option.
15895         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
15896         (SHLIB_SONAME):  Use it when overriding t-cygming default.
15897         (SHLIB_IMPLIB):  Override t-cygming default.
15898         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15899         string value of "pe_dll" command-line option.
15900
15901 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15902
15903         PR target/38952
15904         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
15905         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
15906
15907 2009-01-31  Richard Guenther  <rguenther@suse.de>
15908
15909         PR tree-optimization/38937
15910         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15911         computing the transitive closure.
15912
15913 2009-01-30  Richard Guenther  <rguenther@suse.de>
15914
15915         PR tree-optimization/39041
15916         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15917         Propagate variable indices only if the types match for this stmt.
15918
15919 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
15920
15921         PR target/39013
15922         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15923         inline but never defined.
15924
15925 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
15926
15927         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15928         (*insv_h_di_reg_extimm): New insn.
15929         (*insv_l<mode>_reg_extimm): New insn.
15930
15931 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15932
15933         * config/picochip/picochip.c (flag_conserve_stack): set
15934         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15935         fconserve-stack. Reduce call-overhead used by inliner.
15936
15937 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15938
15939         PR/38157
15940         * common.opt (flag_conserve_stack): Initialised to zero.
15941
15942 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
15943
15944         PR/39002
15945         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15946         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15947         method.
15948
15949 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
15950
15951         * ira-color.c (allocno_reload_assign): Update comments.
15952         * regmove.c (regmove_optimize): Likewise.
15953
15954         * ra.h: Removed.
15955
15956 2009-01-29  Robert Millan  <rmh@aybabtu.com>
15957
15958         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15959         * config/i386/kopensolaris-gnu.h: New file.  Undefine
15960         `MD_UNWIND_SUPPORT'.
15961         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
15962
15963 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
15964
15965         PR tree-optimization/39007
15966         * tree-loop-distribution.c (generate_builtin): Use
15967         recompute_dominator to compute the immediate dominator of the
15968         basic block just after the loop.
15969
15970 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15971
15972         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15973         (ASM_OUTPUT_DWARF_PCREL): Define.
15974
15975 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
15976
15977         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15978         * doc/passes.texi: Remove entries about regclass, local-alloc, and
15979         global.  Modify entries about regmove and IRA.
15980
15981         * ra-conflict.c: Remove the file.
15982
15983         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15984
15985         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15986         (pass_regclass_init): Rename to pass_reginfo_init.
15987
15988         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15989
15990         * toplev.h (flag_ira): Remove.
15991
15992         * caller-save.c (setup_save_areas): Remove flag_ira.
15993
15994         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
15995
15996         * global.c: Remove the file.
15997
15998         * opts.c (decode_options): Remove flag_ira.
15999
16000         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
16001
16002         * regmove.c: Modify file description.
16003         (find_use_as_address, try_auto_increment): Define them only if
16004         AUTO_INC_DEC is defined.
16005         (replacement_quality, replace_in_call_usage, fixup_match_1,
16006         stable_and_no_regs_but_for_p): Remove.
16007         (reg_set_in_bb): Make it static.
16008         (regmove_optimize): Remove flag_ira and code which worked for
16009         !flag_ira.
16010
16011         * local-alloc.c: Remove the file.
16012
16013         * common.opt (fira): Remove.
16014
16015         * ira.c: Include except.h.
16016         (eliminable_regset): Move from global.c.
16017         (mark_elimination): Ditto.  Remove flag_ira.
16018         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
16019         equiv_mem_modified, validate_equiv_mem_from_store,
16020         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
16021         contains_replace_regs, memref_referenced_p, memref_used_between_p,
16022         no_equiv, recorded_label_ref): Move from local-alloc.c.
16023         (update_equiv_regs): Ditto.  Make it static.
16024         (print_insn_chain, print_insn_chains): Move it from global.c.
16025         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
16026         (build_insn_chain): Ditto.  Make it static.
16027         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
16028         Rename to init_live_subregs.
16029         (gate_ira): Remove flag_ira.
16030
16031         * regclass.c: Rename reginfo.c.  Change file description.
16032         (FORBIDDEN_INC_DEC_CLASSES): Remove.
16033         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
16034         (init_reg_sets_1): Remove code for evaluation of
16035         reg_class_superclasses and losing_caller_save_reg_set.
16036         (init_regs): Remove init_reg_autoinc.
16037         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
16038         ok_for_base_p_nonstrict): Remove.
16039         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
16040         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
16041         corresponding entries.
16042         (dump_regclass, record_operand_costs, scan_one_insn,
16043         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
16044         record_address_regs, auto_inc_dec_reg_p): Remove.
16045         (gt-regclass.h): Rename to gt-reginfo.h.
16046
16047         * rtl.h (dump_global_regs, retry_global_alloc,
16048         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
16049
16050         * Makefile.in (RA_H): Remove.
16051         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
16052         Rename regclass.o to reginfo.o.
16053         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
16054         gt-reginfo.h.
16055         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
16056         (GTFILES): Rename regclass.c to reginfo.c.
16057
16058         * passes.c (init_optimization_passes): Remove pass_local_alloc and
16059         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
16060
16061         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16062         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
16063         Remove flag_ira.
16064         (finish_spills): Ditto.  Remove code for !flag_ira.
16065
16066 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
16067
16068         PR middle-end/35854
16069         * doc/invoke.texi (rtl debug options): Complete rewrite.
16070         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
16071         to auto_inc_dec".
16072         * mode-switching.c (pass_mode_switching): Rename pass from
16073         "mode-sw" to "mode_sw".
16074         * except.c (pass_convert_to_eh_ranges): Rename pass from
16075         "eh-ranges" to "eh_ranges".
16076         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
16077         to "subreg1".
16078
16079
16080 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
16081             Alexander Monakov  <amonakov@ispras.ru>
16082
16083         PR middle-end/38857
16084         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
16085         register.
16086         (move_exprs_to_boundary): Change return type and pass through
16087         should_move from move_op.  Relax assert.  Update usage ...
16088         (schedule_expr_on_boundary): ... here.  Use should_move instead of
16089         cant_move.
16090         (move_op_orig_expr_found): Indicate that insn was disconnected from
16091         stream.
16092         (code_motion_process_successors): Do not call after_merge_succs
16093         callback if original expression was not found when traversing any of
16094         the branches.
16095         (code_motion_path_driver): Change return type.  Update prototype.
16096         (move_op): Update comment.  Add a new parameter (should_move).  Update
16097         prototype.  Set *should_move based on indication provided by
16098         move_op_orig_expr_found.
16099
16100 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
16101
16102         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
16103         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
16104         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
16105         * config/rs6000/rs6000.c (rs6000_override_options): Default
16106         avoid-indexed-addresses on for Power6, off for everything else.
16107         (avoiding_indexed_address_p): New function.
16108         (rs6000_legitimize_address): Use it.
16109         (rs6000_legitimate_address): Likewise.
16110         * config/rs6000/rs6000.md (movXX_updateX): Likewise
16111
16112 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
16113
16114         PR tree-optimization/38997
16115         * tree-loop-distribution.c (generate_memset_zero): Use
16116         POINTER_PLUS_EXPR for a pointer addition.
16117
16118 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
16119
16120         * config/s390/s390.md (bswap<mode>2): New pattern added.
16121
16122 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16123
16124         * config/s390/s390.md (*tls_load_31): Added type attribute.
16125
16126 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16127
16128         * config/s390/s390.md: Fix a few comments.
16129
16130 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
16131
16132         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
16133         (*tm<mode>_full): Fixed z10prop attribute.
16134         (*tst<mode>_extimm): Fixed z10prop attribute.
16135         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
16136         (*tstqiCCT_cconly): Fixed z10prop attribute.
16137         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
16138         (*movsi_larl): Fixed z10prop attribute.
16139         (*movsi_zarch): Fixed z10prop attribute.
16140         (*movsi_eas): Fixed z10prop attribute.
16141         (*movhi): Fixed z10prop attribute.
16142         (*movqi): Fixed z10prop attribute.
16143         (*movstrictqi): Fixed z10prop attribute.
16144         (*mov<mode>): Fixed z10prop attribute.
16145         (*movcc): Fixed z10prop attribute.
16146         (*sethighpartdi_64): Fixed z10prop attribute.
16147         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
16148         (*negdi2_sign_cc): Fixed z10prop attribute.
16149         (*negdi2_sign): Fixed z10prop attribute.
16150         (*absdi2_sign_cc): Fixed z10prop attribute.
16151         (*absdi2_sign): Fixed z10prop attribute.
16152         (*negabsdi2_sign_cc): Fixed z10prop attribute.
16153         (*negabsdi2_sign): Fixed z10prop attribute.
16154         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
16155         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
16156         (doloop_si64): Fixed z10prop attribute.
16157         (doloop_si31): Fixed z10prop attribute.
16158         (doloop_long): Fixed z10prop attribute.
16159         (indirect_jump): Fixed z10prop attribute.
16160         (nop): Fixed z10prop attribute.
16161         (main_base_64): Fixed z10prop attribute.
16162         (reload_base_64): Fixed z10prop attribute.
16163
16164 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
16165
16166         PR rtl-optimization/38740
16167         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
16168         if !optimize.
16169         * config/mips/mips.c (mips_reorg): Likewise.
16170
16171 2009-01-28  Richard Guenther  <rguenther@suse.de>
16172
16173         PR tree-optimization/38926
16174         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
16175         with the correct value id to a value.
16176         (do_regular_insertion): Use the value number of edoubleprime
16177         for the value number of the expr.
16178
16179         Revert
16180         2008-08-21  Richard Guenther  <rguenther@suse.de>
16181
16182         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
16183         a PHI ask VN if it is already available.
16184         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
16185         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
16186
16187 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
16188
16189         PR middle-end/38934
16190         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
16191         set to varying whenever max has TREE_OVERFLOW set, similarly
16192         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
16193
16194 2009-01-28  Richard Guenther  <rguenther@suse.de>
16195
16196         PR middle-end/38908
16197         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
16198         uninitialized aggregate uses in call arguments.
16199
16200 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
16201
16202         PR tree-optimization/38984
16203         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
16204         the nothing_id variable if -fno-delete-null-pointer-checks.
16205
16206 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
16207
16208         PR target/38988
16209         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
16210         (set_got_offset_rex64): Ditto.
16211
16212 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
16213
16214         PR target/38941
16215         * doc/extend.texi: Improve local variable with asm reg.
16216
16217 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
16218
16219         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
16220         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
16221         was not supplied then set warn_packed_bitfield_compat to the
16222         default value of 1.
16223         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
16224         against 1.
16225
16226 2009-01-27  Richard Guenther  <rguenther@suse.de>
16227
16228         PR tree-optimization/38503
16229         * cfgexpand.c (expand_gimple_basic_block): Ignore
16230         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
16231         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
16232         variables that cannot have TBAA applied.
16233         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
16234         statements.
16235
16236 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
16237
16238         PR middle-end/38969
16239         * calls.c (initialize_argument_information): Do not wrap complex
16240         arguments in SAVE_EXPR.
16241
16242 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
16243
16244         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
16245         (INSTALL_LIBGCC): Revert typo commit.
16246
16247 2009-01-26  Richard Guenther  <rguenther@suse.de>
16248
16249         PR tree-optimization/38745
16250         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
16251         from special handling.
16252
16253 2009-01-26  Richard Guenther  <rguenther@suse.de>
16254
16255         PR tree-optimization/38745
16256         * tree-ssa.c (execute_update_addresses_taken): Do not include
16257         variables that cannot possibly be a register in not_reg_needs.
16258         Do not clear TREE_ADDRESSABLE on vars that may not become
16259         registers.
16260         * tree-ssa.c (update_alias_info_1): Include those in the set
16261         of addressable vars.
16262
16263 2009-01-26  Richard Guenther  <rguenther@suse.de>
16264
16265         PR middle-end/38851
16266         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
16267         * tree-ssa-dse.c: Include langhooks.h
16268         (execute_simple_dse): Remove stores with zero size.
16269
16270 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
16271
16272         PR c/38957
16273         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
16274         as PLUS_EXPR.
16275
16276 2009-01-24  Julian Brown  <julian@codesourcery.com>
16277
16278         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
16279         config/arm/linux-atomic.c.
16280         * config/arm/linux-atomic.c: New.
16281
16282 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
16283
16284         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
16285         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
16286         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
16287
16288 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
16289
16290         PR c/38938
16291         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
16292         properly.
16293
16294 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
16295
16296         PR tree-optimization/38953
16297         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
16298         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
16299         (gloog): Split the exit of the scop when the scop exit is a loop exit.
16300         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
16301         changed the CFG.
16302
16303 2009-01-24  Paul Brook  <paul@codesourcery.com>
16304
16305         * config/arm/neon.md (neon_type): Move to arm.md.
16306         (neon_mov<VSTRUCT>): Add neon_type attribute.
16307         * config/arm/arm.md (neon_type): Move to here.
16308         (conds): Add "unconditioal" and use as default for NEON insns.
16309
16310 2009-01-24  Ben Elliston  <bje@au.ibm.com>
16311
16312         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
16313         void *' warning from -Wc++-compat.
16314         * Makefile.in (dominance.o-warn): Remove.
16315
16316 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
16317
16318         PR tree-optimization/38932
16319         * fold-const.c (fold_unary_ignore_overflow): New.
16320         * tree.h (fold_unary_ignore_overflow): Declare.
16321         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
16322         * tree-ssa-sccvn.c (visit_reference_op_load,
16323         simplify_unary_expression): Likewise.
16324
16325 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
16326
16327         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
16328         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
16329         regardless of their type.
16330         * c-common.c (handle_packed_attribute): Don't ignore packed on
16331         bitfields.
16332         * c.opt (Wpacked-bitfield-compat): New warning option.
16333         * stor-layout.c (place_field): Warn if offset of a field changed.
16334         * doc/extend.texi (packed): Mention the ABI change.
16335         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
16336         (Warning Options): Add it to the list.
16337
16338 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
16339
16340         * c-opts.c (c_common_post_options): Fix a typo in comments.
16341
16342 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
16343
16344         PR middle-end/38615
16345         * gimplify.c (gimplify_init_constructor): Fix promotion of const
16346         variables to static.
16347         * doc/invoke.texi (-fmerge-all-constants): Update description.
16348
16349 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
16350
16351         PR target/38931
16352         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
16353         (*movdi_1_rex64): Use type "mmx" for alternative 5.
16354
16355 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
16356
16357         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
16358         a word boundary.
16359         (LOCAL_ALIGNMENT): Similarly.
16360
16361 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
16362             Joseph Myers  <joseph@codesourcery.com>
16363
16364         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
16365         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
16366         * config/arm/arm-tune.md: Regenerate.
16367         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
16368         -march=iwmmxt2.
16369
16370 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
16371
16372         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
16373         version number to five.
16374
16375 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
16376
16377         PR c++/38930
16378         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
16379         * c-common.c (set_underlying_type): Likewise.
16380         (is_typedef_decl ): Likewise
16381         * tree.h: Likewise
16382         (set_underlying_type): Likewise.
16383         (is_typedef_type): Likewise.
16384
16385 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
16386
16387         PR middle-end/38587
16388         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
16389         crossing setjmps.
16390
16391 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
16392
16393         PR bootstrap/37660
16394         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
16395         (LIBGCC_SPEC):  Don't define.
16396         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
16397
16398 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
16399
16400         PR rtl-optimization/38879
16401         * alias.c (base_alias_check): Unaligned access via AND address can
16402         alias all surrounding object types except those with sizes equal
16403         or wider than the size of unaligned access.
16404
16405 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
16406
16407         PR c++/26693
16408         * c-decl.c (clone_underlying_type): Move this ...
16409         * c-common.c (set_underlying_type): ... here.
16410         Also, make sure the function properly sets TYPE_STUB_DECL() on
16411         the newly created typedef variant type.
16412         (is_typedef_decl ): New entry point.
16413         * tree.h: Added a new member member_types_needing_access_check to
16414         struct tree_decl_non_common.
16415         (set_underlying_type): New entry point.
16416         (is_typedef_type): Likewise.
16417
16418 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
16419
16420         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
16421         Check whether two instructions have memory references that
16422         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
16423         are helper functions for traversing.
16424         * alias.h (insn_alias_sets_confilict_p): New prototypes.
16425         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
16426         not to draw dependency edge for instructions with non-conflicting
16427         alias sets.
16428
16429 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
16430
16431         PR other/38758
16432         * longlong.h: Update copyright years.  Use soft-fp license notice.
16433         Sync __clz_tab declaration with glibc.
16434
16435 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
16436
16437         PR target/30687
16438         * doc/extend.texi (syscall_linkage): New.
16439         (version_id): Modify.
16440
16441 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16442             Richard Guenther  <rguenther@suse.de>
16443
16444         PR tree-optimization/38747
16445         PR tree-optimization/38748
16446         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
16447         conversion if the base address is an indirect reference and the
16448         aliasing sets could cause issues.
16449
16450 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16451
16452         * common.opt (fgraphite, fgraphite-identity): Add comment for
16453         explaining why these options are not documented.
16454
16455 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16456
16457         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
16458         gimple_call_lhs is NULL.
16459
16460 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
16461
16462         PR target/38868
16463         * emit-rtl.c (adjust_address_1): Make sure memref is never
16464         overwritten.
16465
16466 2009-01-20  Ben Elliston  <bje@au.ibm.com>
16467
16468         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16469         const qualifier from arg parameter. Remove unnecessary cast to char *.
16470         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16471         const qualifier from arg 2.
16472
16473 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
16474
16475         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
16476
16477 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
16478
16479         PR c/38869
16480         * rtl.h (reinit_regs): New prototype.
16481         * regclass.c: Include ira.h.
16482         (reinit_regs): New.
16483         * Makefile.in (regclass.o): Add ira.h.
16484         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
16485
16486 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
16487
16488         PR target/38736
16489         * c-common.c (handle_aligned_attribute): Use
16490         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
16491         default alignment value.
16492
16493         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
16494
16495         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
16496         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
16497
16498         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
16499         __BIGGEST_ALIGNMENT__.
16500
16501         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
16502
16503 2009-01-18  Richard Guenther  <rguenther@suse.de>
16504
16505         PR tree-optimization/38819
16506         * tree-flow.h (operation_could_trap_helper_p): Declare.
16507         * tree-eh.c (operation_could_trap_helper_p): Export.
16508         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16509         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16510         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16511         are about to insert a possibly trapping instruction and fail
16512         in this case.
16513
16514 2009-01-18  Andreas Schwab  <schwab@suse.de>
16515
16516         * doc/install.texi (Configuration): Remove obsolete paragraph
16517         about use of --with-gnu-ld with --with-gnu-as.
16518
16519 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
16520
16521         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16522         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16523         Follow spelling conventions.
16524
16525 2009-01-18  Ben Elliston  <bje@au.ibm.com>
16526
16527         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16528         C++ warning about implicit conversion from void * to struct
16529         bitmap_head_def *.
16530         (bitmap_obstack_free): Likewise for bitmap_element *.
16531         * Makefile.in (bitmap.o-warn): Remove.
16532
16533 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
16534
16535         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
16536
16537 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
16538             Tobias Grosser  <tobi.grosser@amd.com>
16539
16540         * graphite.c (graphite_trans_scop_block): Do not block single
16541         nested loops.
16542
16543 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
16544
16545         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16546         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16547         test with assertion.
16548
16549 2009-01-16  Richard Guenther  <rguenther@suse.de>
16550
16551         PR tree-optimization/38835
16552         PR middle-end/36227
16553         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16554         and INT + PTR -> (INT)(PTR p+ INT) folding.
16555         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16556
16557 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
16558
16559         PR target/38554
16560         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16561         the subreg from a lowpart subreg if it is also casting the value.
16562
16563 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16564             Tobias Grosser  <tobi.grosser@amd.com>
16565
16566         * graphite.c (compare_prefix_loops): New.
16567         (build_scop_canonical_schedules): Rewritten.
16568         (graphite_transform_loops): Move build_scop_canonical_schedules
16569         after build_scop_iteration_domain.
16570
16571 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16572             Tobias Grosser  <tobi.grosser@amd.com>
16573
16574         * graphite.c (add_conditions_to_domain): Add the loops to
16575         the dimension of the iteration domain.  Do copy the domain
16576         only when it exists.
16577         (build_scop_conditions_1): Do not call add_conditions_to_domain.
16578         (add_conditions_to_constraints): New.
16579         (can_generate_code_stmt, can_generate_code): Removed.
16580         (gloog): Do not call can_generate_code.
16581         (graphite_transform_loops): Call add_conditions_to_constraints
16582         after building the iteration domain.
16583
16584 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
16585
16586         PR tree-optimization/38789
16587         * tree-ssa-threadedge.c
16588         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16589         __builtin_constant_p.
16590
16591 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
16592
16593         * dce.c (delete_unmarked_insns): Reversed the order that insns are
16594         examined before deleting them.
16595
16596 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
16597
16598         * function.c (aggregate_value_p): Correctly extract the function
16599         type from CALL_EXPR_FN lookup.
16600
16601 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16602
16603         * config/picochip/picochip.c (picochip_override_options): Revert
16604         CFI asm flag disable commited previously.
16605
16606 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
16607             Tobias Grosser  <tobi.grosser@amd.com>
16608             Jan Sjodin  <jan.sjodin@amd.com>
16609
16610         * graphite.c (scan_tree_for_params): On substractions negate
16611         all the coefficients of the term.
16612         (clast_to_gcc_expression_red): New.  Handle reduction expressions
16613         of more than two operands.
16614         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16615         (get_vdef_before_scop): Handle also the case of default definitions.
16616
16617 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
16618
16619         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16620         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16621         Also use them when walking CALL_INSN_FUNCTION_USAGE.
16622
16623 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16624             Joey Ye  <joey.ye@intel.com>
16625
16626         PR middle-end/37843
16627         * cfgexpand.c (expand_stack_alignment): Don't update stack
16628         boundary nor check incoming stack boundary here.
16629         (gimple_expand_cfg): Update stack boundary and check incoming
16630         stack boundary here.
16631
16632 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
16633
16634         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
16635
16636 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
16637
16638         PR rtl-optimization/38245
16639         * calls.c (expand_call): Add stack arguments to
16640         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16641         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16642         in regs and partially in memory or BLKmode arguments.
16643         (emit_library_call_value_1): Add stack arguments to
16644         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16645         ACCUMULATE_OUTGOING_ARGS).
16646         * dce.c: Include tm_p.h.
16647         (find_call_stack_args): New function.
16648         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
16649         argument.
16650         (mark_insn): Call find_call_stack_args for CALL_Ps.
16651         (prescan_insns_for_dce): Walk insns backwards in bb rather than
16652         forwards.  Allocate and free arg_stores bitmap if needed, pass it
16653         down to deletable_insn_p, don't mark stores set in arg_stores
16654         bitmap, clear the bitmap at the beginning of each bb.
16655         * Makefile.in (dce.o): Depend on $(TM_P_H).
16656
16657 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
16658
16659         PR target/22599
16660         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16661         to make sure the insn is a conditional test (bug 22599).  Reformat a
16662         few long lines.
16663
16664 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
16665
16666         PR middle-end/38431
16667         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16668         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16669         (gloog): Do not call cleanup_tree_cfg.
16670         (graphite_transform_loops): Call cleanup_tree_cfg after all
16671         scops have been code generated.
16672
16673 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
16674         * doc/gty.texi (Invoking the garbage collector): Added new node
16675         and section documenting ggc_collect.
16676
16677 2009-01-14  Richard Guenther  <rguenther@suse.de>
16678
16679         PR tree-optimization/38826
16680         PR middle-end/38477
16681         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16682         initialization notes only if we actually emitted a warning.
16683         (intra_create_variable_infos): Add constraints for a result decl
16684         that is passed by hidden reference.
16685         (build_pred_graph): Mark all related variables non-direct on
16686         address-taking.
16687
16688 2009-01-14  Nick Clifton  <nickc@redhat.com>
16689
16690         * ira-conflicts.c: Include addresses.h for the definition of
16691         base_reg_class.
16692         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16693         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
16694
16695 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16696
16697         PR target/38811
16698         * Makefile.in (ira-lives.o): Add except.h.
16699
16700         * ira-lives.c: Include except.h.
16701         (process_bb_node_lives): Process can_throw_internal.
16702
16703 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
16704
16705         PR rtl-optimization/38774
16706         * combine.c (simplify_set): When undoing cc_use change, don't do
16707         PUT_CODE on the newly created comparison, but instead put back the
16708         old comparison.
16709
16710 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
16711
16712         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16713         values.  Remove duplicate arm8 entry.
16714
16715 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16716
16717         PR tree-optimization/38786
16718         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16719         the SSA_NAME case of expand_scalar_variables_expr.
16720         Set the type of an expression to the type of its assign statement.
16721         (expand_scalar_variables_expr): Also gather the scalar computation
16722         used to index the memory access.  Do not pass loop_p.
16723         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
16724         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
16725         the gimple_stmt_iterator where it inserts new code.
16726         Do not pass loop_p.
16727         (copy_bb_and_scalar_dependences): Do not pass loop_p.
16728         (translate_clast): Update call to copy_bb_and_scalar_dependences.
16729
16730 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16731
16732         * graphite.h (debug_value): Removed.
16733         * graphite.c (debug_value): Removed.
16734
16735 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16736
16737         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16738         ldrd/strd with two 32-bit instructions.
16739
16740 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16741
16742         * config/arm/arm.c (struct processors): Pass for speed down into
16743         cost helper functions.
16744         (const_ok_for_op): Handle COMPARE and inequality nodes.
16745         (arm_rtx_costs_1): Rewrite.
16746         (arm_size_rtx_costs): Update prototype.
16747         (arm_rtx_costs): Pass speed down to helper functions.
16748         (arm_slowmul_rtx_costs): Rework cost calculations.
16749         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16750         (arm_9e_rtx_costs): Likewise.
16751
16752 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
16753
16754         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
16755         relocations of local symbols wider than UNITS_PER_WORD are not valid.
16756         (alpha_legitimize_address): Do not split local symbols wider than
16757         UNITS_PER_WORD into HIGH/LO_SUM parts.
16758
16759 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
16760
16761         PR bootstrap/38580
16762         * gcc.c (process_command): Replace call to execvp with calls
16763         to pex_one and exit.
16764
16765 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
16766
16767         PR target/29141
16768         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16769         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16770         variant for devices with 3-byte PC.
16771         (__tablejump_elpm__): New.
16772
16773 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16774
16775         PR c/32041
16776         * c-parser.c (c_parser_postfix_expression): Allow `->' in
16777         offsetof member-designator, handle it as `[0].'.
16778
16779 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16780
16781         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16782         function when not using named sections on targets with named sections
16783         if branch distance is less than 262132.
16784
16785 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
16786
16787         * combine.c (combine_instructions):  Recompute
16788         optimize_this_for_speed_p  for each BB in the main combine loop.
16789
16790 2009-01-12  Tomas Bily  <tbily@suse.cz>
16791
16792         PR middlend/38385
16793         * tree-loop-distribution.c (prop_phis): New function.
16794         (generate_builtin): Call prop_phis.
16795         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
16796
16797 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16798
16799         PR tree-optimization/38807
16800         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16801         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16802
16803 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
16804
16805         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16806         subreg of op0 to the original op0.
16807
16808 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
16809
16810         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
16811
16812 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
16813
16814         PR debug/7055
16815         * mips-tfile.c (parse_def): Fix parsing of def strings
16816         starting with digits.
16817
16818 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
16819
16820         PR target/38695
16821         * config/arm/arm.c (arm_is_long_call_p): Don't call
16822         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16823
16824 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
16825
16826         * regrename.c (regrename_optimize): Fix dumping.
16827         (find_oldest_value_reg): Preserve REG_POINTER.
16828         (copy_hardreg_forward_1): Likewise.
16829
16830 2009-01-09  Diego Novillo  <dnovillo@google.com>
16831
16832         * gimple.h (struct gimple_statement_base) <uid>: Document
16833         the restrictions on its use.
16834         (gimple_uid): Tidy.
16835         (gimple_set_uid): Tidy.
16836
16837 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16838
16839         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16840         zero guard even if align_bytes != 0 and count is smaller than
16841         size_needed.
16842
16843 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
16844
16845         PR rtl-optimization/38495
16846         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
16847         (add_range_and_copies_from_move_list): Print all added ranges.
16848         Add ranges to memory optimized destination.
16849
16850 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16851
16852         PR target/38686
16853         PR target/38708
16854         * config/i386/i386.c (override_options): Reject
16855         -mstringop-strategy=rep_8byte with -m32.
16856         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16857         to 1.  Do count comparison against epilogue_size_needed at compile
16858         time even when count_exp was constant forced into register.  For
16859         size_needed don't jump to epilogue, instead just avoid aligning
16860         and invoke the body algorithm.  If need_zero_guard, add zero guard
16861         even if count is non-zero, but smaller than size_needed + number of
16862         bytes that could be stored for alignment.
16863         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16864         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
16865         but smaller than size_needed + number of bytes that could be stored
16866         for alignment.  Compare size_needed with epilogue_size_needed instead
16867         of desired_align - align, don't adjust size_needed, pass
16868         epilogue_size_needed to the epilogue expanders.
16869
16870         PR c/35742
16871         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
16872
16873 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16874
16875         * pa.c (last_address): Change to unsigned.
16876         (update_total_code_bytes): Change argument to unsigned.  Don't
16877         check if insn addresses are set.
16878         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16879         addresses are not set.
16880         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16881
16882 2009-01-09  Nick Clifton  <nickc@redhat.com>
16883
16884         * config/sh/symbian.c: Replace uses of DECL_INLINE with
16885         DECL_DECLARED_INLINE_P.
16886
16887 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16888
16889         PR middle-end/38347
16890         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16891         GET_MODE (op0) in operand_subword_force calls.
16892
16893         PR middle-end/38771
16894         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16895         fold_convert arg0 operands to TREE_TYPE (op0) first.
16896
16897 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
16898
16899         * params.def (ira-max-conflict-table-size): Decrease default value
16900         to 1000.
16901
16902 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
16903
16904         PR tree-optimization/37031
16905         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16906         on parameter_set.
16907         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16908         allocate it using gc instead of heap, use VEC_quick_push instead of
16909         VEC_safe_push.
16910         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16911         instead of heap, use VEC_quick_push instead of VEC_safe_push.
16912         * tree-data-ref.h (struct access_matrix): Change matrix to gc
16913         allocated vector from heap allocated.
16914         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16915         * tree-loop-linear.c (linear_transform_loops): Allocate nest
16916         vector only after perfect_loop_nest_depth call.
16917
16918 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
16919             Jan Sjodin  <jan.sjodin@amd.com>
16920
16921         PR tree-optimization/38559
16922         * graphite.c (debug_value, copy_constraint,
16923         swap_constraint_variables, scale_constraint_variable, ): New.
16924         (get_lower_bound, get_upper_bound): Removed.
16925         (graphite_trans_bb_strip_mine): Clean up this code that works
16926         only for constant number of iterations.  Fully copy upper and
16927         lower bound constraints, not only the constant part of them.
16928         * graphite.h (debug_value): Declared.
16929
16930 2009-01-08  Ira Rosen  <irar@il.ibm.com>
16931
16932         PR tree-optimization/37194
16933         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
16934         Don't add the cost of cost model guard in prologue to scalar
16935         outside cost in case of known number of iterations.
16936
16937 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16938             Alan Modra  <amodra@bigpond.net.au>
16939
16940         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16941         non-word-aligned REG+CONST addressing.
16942
16943 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
16944
16945         PR target/38706
16946         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16947         free_after_compilation when outputting a thunk.
16948         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16949         Do not call free_after_compilation here.
16950
16951 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
16952
16953         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
16954         (ix86_valid_target_attribute_inner_p): Ditto.
16955
16956 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
16957
16958         PR tree-optimization/38492
16959         PR tree-optimization/38498
16960         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16961         * tree-chrec.h (scev_is_linear_expression): Declared.
16962         * graphite.c (graphite_cannot_represent_loop_niter): New.
16963         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16964         (graphite_loop_normal_form): Use gcc_assert.
16965         (scan_tree_for_params): Use CASE_CONVERT.
16966         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16967         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16968         Use gcc_assert.  Discard scops that contain unhandled cases.
16969         (build_scop_conditions): Return a boolean status for unhandled cases.
16970         (strip_mine_profitable_p): Print the loop number, not its depth.
16971         (is_interchange_valid): Pass the depth of the loop nest, don't
16972         recompute it wrongly.
16973         (graphite_trans_bb_block): Same.
16974         (graphite_trans_bb_block): Print tentative of loop blocking.
16975         (graphite_trans_scop_block): Do not print that the loop has been
16976         blocked.
16977         (graphite_transform_loops): Do not handle scops that contain condition
16978         scalar phi nodes.
16979
16980 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16981
16982         AVX Programming Reference (December, 2008)
16983         * config/i386/avxintrin.h (_mm256_stream_si256): New.
16984         (_mm256_stream_pd): Likewise.
16985         (_mm256_stream_ps): Likewise.
16986
16987         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16988         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16989         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16990         (bdesc_special_args): Add __builtin_ia32_movntdq256,
16991         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16992         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16993         (ix86_expand_special_args_builtin): Likewise.
16994
16995         * config/i386/sse.md (AVXMODEDI): New.
16996         (avx_movnt<mode>): Likewise.
16997         (avx_movnt<mode>): Likewise.
16998         (<sse>_movnt<mode>): Remove AVX support.
16999         (sse2_movntv2di): Likewise.
17000
17001 2009-01-07  Richard Guenther  <rguenther@suse.de>
17002
17003         PR middle-end/38751
17004         * fold-const.c (extract_muldiv): Remove obsolete comment.
17005         (fold_plusminus_mult_expr): Undo MINUS_EXPR
17006         to PLUS_EXPR canonicalization for the canonicalization.
17007
17008 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
17009
17010         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
17011         hosted cross-compilers generating less efficient code.
17012
17013 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
17014
17015         * function.h (rtl_data): Add a dbr_scheduled_p field.
17016         * reorg.c (dbr_schedule): Set it.
17017         (gate_handle_delay_slots): Check it.
17018         * config/mips/mips.c (mips_base_delayed_branch): Delete.
17019         (mips_reorg): Check flag_delayed_branch instead of
17020         mips_base_delayed_branch.
17021         (mips_override_options): Don't set mips_base_delayed_branch
17022         or flag_delayed_branch.
17023
17024 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
17025
17026         PR rtl-optimization/38426.
17027         * ira.c (ira): Set current_function_is_leaf earlier.
17028
17029 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
17030
17031         PR rtl-optimization/38722
17032         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
17033         too early, only set a flag and modify after last possible
17034         undo_all point.
17035
17036 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
17037
17038         PR c/34252
17039         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
17040         * real.c (decimal_single_format): Correct values of emin and emax.
17041         (decimal_double_format): Ditto.
17042         (decimal_quad_format): Ditto.
17043         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
17044         computation of DECnn_MIN and DECnn_MAX for corrected values of
17045         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
17046         __DECnn_MIN__, and adjust its computation for the corrected value
17047         of emin.
17048
17049 2009-01-06  Jan Hubicka  <jh@suse.cz>
17050
17051         PR target/38744
17052         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
17053
17054 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
17055
17056         * doc/contrib.texi (Contributors): Slightly adjust the end note.
17057         Add Robert Clark to the list of testers.
17058
17059 2009-01-06  Jan Hubicka  <jh@suse.cz>
17060             Kai Tietz  <kai.tietz@onevision.com>
17061
17062         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
17063         * config/i386/i386.c (ix86_expand_call): Add clobbers.
17064
17065 2009-01-06  Jan Hubicka  <jh@suse.cz>
17066             Kai Tietz  <kai.tietz@onevision.com>
17067
17068         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
17069         for w64 ABI.
17070         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
17071         (ix86_nsaved_regs): Count only general purpose regs.
17072         (ix86_nsaved_sseregs): New.
17073         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
17074         to 16 for w64; compute padding and size of sse reg save area.
17075         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
17076         general purpose regs.
17077         (ix86_emit_save_sse_regs_using_mov): New.
17078         (ix86_expand_prologue): Save SSE regs if needed.
17079         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
17080         (ix86_emit_restore_sse_regs_using_mov): New.
17081         (ix86_expand_epilogue): Save SSE regs if needed.
17082
17083 2009-01-06  Jan Hubicka  <jh@suse.cz>
17084             Kai Tietz  <kai.tietz@onevision.com>
17085
17086         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
17087         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
17088         functions when accumulate outgoing args is off.
17089
17090 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
17091
17092         PR bootstrap/38742
17093         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
17094         before using pseudos_have_intersected_live_ranges_p.
17095
17096         * ira-int.h (ira_assert): Always define.
17097
17098 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
17099
17100         AVX Programming Reference (December, 2008)
17101         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
17102         (_mm256_permute2_pd): Likewise.
17103         (_mm_permute2_ps): Likewise.
17104         (_mm256_permute2_ps): Likewise.
17105         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
17106         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
17107
17108         * config/i386/i386.c (ix86_builtins): Remove
17109         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
17110         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
17111         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
17112         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
17113         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
17114         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
17115         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
17116         __builtin_ia32_vpermil2ps256.
17117         (ix86_init_mmx_sse_builtins): Updated.
17118         (ix86_expand_args_builtin): Likewise.
17119
17120 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17121
17122         * pa.c (output_call): Relocate non-jump insns in the delay slot of
17123         long absolute calls when generating PA 2.0 code.
17124
17125 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
17126
17127         PR rtl-optimization/38583
17128         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
17129
17130         * params.def (ira-max-conflict-table-size): New.
17131
17132         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
17133
17134         * ira.h (ira_conflicts_p): New external definition.
17135
17136         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
17137         table.  Report this.  Return result of building.
17138         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
17139         building conflict table.
17140
17141         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
17142         (ira_color): Use ira_conflicts_p.
17143
17144         * global.c: Include ira.h.
17145         (pseudo_for_reload_consideration_p, build_insn_chain): Use
17146         ira_conflicts_p.
17147
17148         * Makefile.in (global.o): Add ira.h.
17149
17150         * ira-build.c (mark_all_loops_for_removal,
17151         propagate_some_info_from_allocno): New.
17152         (remove_unnecessary_allocnos): Call
17153         propagate_some_info_from_allocno.
17154         (remove_low_level_allocnos): New.
17155         (remove_unnecessary_regions): Add parameter.  Call
17156         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
17157         parameter to remove_unnecessary_regions.
17158         (ira_build): Remove all regions but root if the conflict table was
17159         not built.  Update conflict hard regs for allocnos crossing calls.
17160
17161         * ira.c (ira_conflicts_p): New global.
17162         (ira): Define and use ira_conflicts_p.
17163
17164         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
17165         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
17166         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
17167
17168 2009-01-06  Ben Elliston  <bje@au.ibm.com>
17169
17170         * gengtype-lex.l (YY_NO_INPUT): Define.
17171
17172 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17173
17174         PR c/34911
17175         * c-common.c (handle_vector_size_attribute): Also reject
17176         BOOLEAN_TYPE types.
17177
17178 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
17179
17180         PR tree-optimization/38492
17181         * graphite.c (rename_map_elt, debug_rename_elt,
17182         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
17183         rename_map_elt_info, eq_rename_map_elts,
17184         get_new_name_from_old_name, bb_in_sese_p): Moved around.
17185         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
17186         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
17187         (sese_build_livein_liveouts): New.
17188         (new_sese, free_sese): New.
17189         (new_scop): Call new_sese.
17190         (free_scop): Call free_sese.
17191         (rename_variables_from_edge, rename_phis_end_scop): Removed.
17192         (register_old_new_names): Renamed register_old_and_new_names.
17193         (register_scop_liveout_renames, add_loop_exit_phis,
17194         insert_loop_close_phis, struct igp,
17195         default_liveout_before_guard, add_guard_exit_phis,
17196         insert_guard_phis, copy_renames): New.
17197         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
17198         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
17199         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
17200         (scop_adjust_phis_for_liveouts): New.
17201         (gloog): Call scop_adjust_phis_for_liveouts.
17202
17203         * graphite.h (struct sese): Documented.  Added fields liveout,
17204         num_ver and livein.
17205         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
17206         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
17207         (struct scop): Added field liveout_renames.
17208         (SCOP_LIVEOUT_RENAMES): New.
17209
17210 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17211
17212         PR tree-optimization/38510
17213         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
17214         (translate_clast): Call recompute_all_dominators before
17215         graphite_verify.
17216         (gloog): Call recompute_all_dominators before graphite_verify.
17217
17218 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17219             Jan Sjodin  <jan.sjodin@amd.com>
17220
17221         PR tree-optimization/38500
17222         * graphite.c (create_sese_edges): Call fix_loop_structure after
17223         splitting blocks.
17224
17225 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
17226
17227         * config.gcc: Add m32r*-*-rtems*.
17228         * config/m32r/rtems.h: New file.
17229
17230 2009-01-05  Ben Elliston  <bje@au.ibm.com>
17231
17232         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
17233         (.po.pox): Likewise.
17234         (po/gcc.pot): Likewise.
17235
17236 2009-01-04  David S. Miller  <davem@davemloft.net>
17237
17238         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
17239         (STARTING_FRAME_OFFSET): Always set to zero.
17240
17241 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
17242
17243         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
17244         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
17245         fixed-point types, and vectors of the same.
17246
17247 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
17248
17249         * config/mips/sync.md (*mb_barrier): Rename to...
17250         (*memory_barrier): ...this.
17251
17252 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
17253
17254         * doc/extend.texi (Function Attributes): Move @cindex after @item
17255         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
17256         and put in alphabetical order. Fix 'target' name and put in order.
17257         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
17258         typos.
17259
17260 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
17261
17262         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
17263         (memory_barrier): Expand as unspec instead of unspec_volatile.
17264         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17265         (*memory_barrier): Define as unspec instead of unspec_volatile.
17266         Use (match_dup 0) as input operand.
17267
17268         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
17269         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
17270         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
17271         scratch register.  Remove operand 1.
17272         (*stbar): Define as unspec instead of unspec_volatile.
17273         Use (match_dup 0) as input operand, remove (const_int 8).
17274         (*membar): Define as unspec instead of unspec_volatile.
17275         Use (match_dup 0) as input operand, remove input operand 2.
17276
17277         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
17278         (memory_barrier): Expand as unspec instead of unspec_volatile.
17279         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17280         (*memory_barrier): Define as unspec instead of unspec_volatile.
17281         Use (match_dup 0) as input operand.
17282
17283         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
17284         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17285         Set volatile flag on operand 0.
17286         (*memory_barrier): New insn pattern.
17287
17288         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
17289         insn operands.
17290         (*memory_barrier): Use (match_dup 0) as input operand.
17291
17292         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
17293         Remove mem:BLK from insn operands.  Use Pmode scratch register.
17294         Set volatile flag on operand 0.
17295         (*mb_internal): New insn pattern.
17296
17297         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
17298
17299 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
17300
17301         PR middle-end/38586
17302         * function.c (struct temp_slot): Move to the section of the file
17303         that deals with temp slots.  Remove field 'address'.
17304         (temp_slot_address_table): New hash table of address -> temp slot.
17305         (struct temp_slot_address_entry): New struct, items for the table.
17306         (temp_slot_address_compute_hash, temp_slot_address_hash,
17307         temp_slot_address_eq, insert_temp_slot_address): Support functions
17308         for the new table.
17309         (find_temp_slot_from_address): Rewrite to use the new hash table.
17310         (remove_unused_temp_slot_addresses): Remove addresses of temp
17311         slots that have been made available.
17312         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
17313         worker function for remove_unused_temp_slot_addresses.
17314         (assign_stack_temp_for_type): Don't clear the temp slot address list.
17315         Add the temp slot address to the address -> temp slot map.
17316         (update_temp_slot_address): Update via insert_temp_slot_address.
17317         (free_temp_slots): Call remove_unused_temp_slot_addresses.
17318         (pop_temp_slots): Likewise.
17319         (init_temp_slots): Allocate the address -> temp slot map, or empty
17320         the map if it is already allocated.
17321         (prepare_function_start): Initialize temp slot processing.
17322
17323 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
17324
17325         PR middle-end/38584
17326         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
17327         Calculate the size of all stack vars assuming no packing of stack
17328         vars will happen, replacing a quadratic algorithm with a linear one.
17329
17330 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
17331
17332         PR target/38707
17333         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
17334         can't be used.
17335
17336 2009-01-03  Diego Novillo  <dnovillo@google.com>
17337
17338         * doc/contrib.texi: Update contributions.
17339
17340 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
17341
17342         PR c++/38705
17343         * builtins.c (fold_builtin_memory_op): Give up if either operand
17344         is volatile.  Set srctype or desttype to non-qualified version
17345         of the other type.
17346
17347         PR c/38700
17348         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
17349         and FUNCTION_DECLs.
17350
17351 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
17352
17353         PR rtl-optimization/35805
17354         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
17355         problem if fast dce is able to remove any instructions.
17356         * dce.c (dce_process_block): Fix dump message.
17357
17358 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
17359
17360         PR 33649
17361         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
17362
17363 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
17364
17365         PR middle-end/38690
17366         * tree-flow.h (op_code_prio, op_prio): New prototypes.
17367         * tree-pretty-print.c (op_code_prio): New function.
17368         (op_prio): No longer static.  Use op_code_prio.
17369         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
17370         Use op_prio and op_code_prio to determine if () should be
17371         printed around operand(s) or not.
17372
17373         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
17374         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
17375         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
17376         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
17377         pp_character instead of pp_string for single letter printing.
17378
17379 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
17380
17381         * doc/extend.texi: Fix '#pragma GCC option' typo.
17382
17383 2009-01-02  Richard Guenther  <rguenther@suse.de>
17384
17385         * doc/install.texi (--enable-checking): Mention different
17386         default for stage1.
17387         (--enable-stage1-checking): Document.
17388
17389 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
17390
17391         PR middle-end/30142
17392         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
17393         case to be an error.
17394
17395 2009-01-02  Ben Elliston  <bje@au.ibm.com>
17396
17397         * config/fp-bit.h (pack_d): Constify argument.
17398         * config/fp-bit.c (makenan): Constify return type. Remove casts.
17399         (isnan): Constify argument.
17400         (isinf): Likewise.
17401         (iszero): Likewise.
17402         (pack_d): Likewise.
17403         (_fpadd_parts): Constify return type.
17404         (_fpmul_parts): Likewise.
17405         (_fpdiv_parts): Likewise.
17406
17407 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
17408
17409         PR c/36489
17410         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
17411         warn about overwriting initializer with side-effects or
17412         -Woverride-init if !IMPLICIT.
17413         (output_init_element): Likewise.  Pass IMPLICIT down to
17414         add_pending_init.
17415         (process_init_element): Add IMPLICIT argument.  Pass it down
17416         to output_init_element.
17417         (push_init_element, pop_init_level, set_designator): Adjust
17418         process_init_element callers.
17419         (set_nonincremental_init, set_nonincremental_init_from_string):
17420         Adjust add_pending_init callers.
17421         (output_pending_init_elements): Adjust output_init_element callers.
17422         * c-tree.h (process_init_element): Adjust prototype.
17423         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
17424         process_init_element callers.
17425
17426 \f
17427 Copyright (C) 2009 Free Software Foundation, Inc.
17428
17429 Copying and distribution of this file, with or without modification,
17430 are permitted in any medium without royalty provided the copyright
17431 notice and this notice are preserved.