OSDN Git Service

2009-05-11 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-11  Richard Guenther  <rguenther@suse.de>
2
3         * passes.c (init_optimization_passes): Strip now incorrect comment.
4         (execute_function_todo): Do not set PROP_alias.
5         * tree-pass.h (PROP_alias): Remove.
6         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
7         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
8         * tree-nrv.c (pass_return_slot): Likewise.
9         * tree-object-size.c (pass_object_sizes): Likewise.
10         * tree-ssa-dom.c (pass_dominator): Likewise.
11         (pass_phi_only_cprop): Likewise.
12         * tree-ssa-dse.c (pass_dse): Likewise.
13         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
14         (pass_cselim): Likewise.
15         * tree-ssa-pre.c (pass_pre): Likewise.
16         (pass_fre): Likewise.
17         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
18         * tree-ssa-sink.c (pass_sink_code): Likewise.
19         * tree-stdarg.c (pass_stdarg): Likewise.
20         * tree-tailcall.c (pass_tail_calls): Likewise.
21         * tree-vrp.c (pass_vrp): Likewise.
22
23 2009-05-10  Ian Lance Taylor  <iant@google.com>
24
25         * basic-block.h (enum profile_status): Break out of struct
26         control_flow_graph.
27         * cgraph.h (struct inline_summary): Break out of struct
28         cgraph_local_info.
29         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
30         of struct cgraph_order_sort.
31         * combine.c (enum undo_kind): New enum, broken out of struct
32         undo.
33         * cse.c (struct branch_path): Break out of struct
34         cse_basic_block_data.
35         * except.h (enum eh_region_type): Break out of struct eh_region.
36         * gcc.c (enum add_del): Break out of struct modify_target.
37         * genrecog.c (enum decision_type): Break out of struct
38         decision_test.
39         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
40         ggc_pch_data.
41         * matrix-reorg.c (struct free_info): Break out of struct
42         matrix_info.
43         * regmove.c (enum match_use): New enum, broken out of struct
44         match.
45         * sched-int.h (enum post_call_group): New enum, broken out of
46         struct deps.
47         (struct deps_reg): Break out of struct deps.
48         * target.h (struct asm_int_op): Break out of struct gcc_target.
49         * tree-eh.c (struct goto_queue_node): Break out of struct
50         leh_tf_state.
51         * tree-inline.h (enum copy_body_cge_which): Break out of
52         copy_body_data.
53         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
54
55         * c-decl.c (in_struct, struct_types): New static variables.
56         (pushtag): Add loc parameter.  Change all callers.
57         (lookup_tag): Add ploc parameter.  Change all callers.
58         (check_compound_literal_type): New function.
59         (parser_xref_tag): Add loc parameter.  Change all callers.  If
60         -Wc++-compat, warn about struct/union/enum types defined within a
61         struct or union.
62         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
63         and loc parameters.  Change all callers.  Change error calls to
64         error_at, using loc.  For a redefinition, if the location of the
65         original definition is known, report it.  Set in_struct and
66         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or
67         alignof.
68         (finish_struct): Add new parameters enclosing_in_struct and
69         enclosing_struct_types.  Change all callers.  Set
70         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
71         in the struct.  If in a struct, add this struct to struct_types.
72         (start_enum): Add loc parameter.  Change all callers.  Use
73         error_at for errors, using loc.  For a redefinition, if the
74         location of the original definition is known, report it.  If in a
75         struct, add this enum type to struct_types.  If -Wc++-compat warn
76         if in sizeof, typeof, or alignof.
77         * c-parser.c (disable_extension_diagnostics): Disable
78         -Wc++-compat.
79         (enable_extension_diagnostics): Reenable -Wc++-compat if
80         appropriate.
81         (c_parser_enum_specifier): Get enum location for start_enum.
82         (c_parser_struct_or_union_specifier): Get struct location for
83         start_struct.  Save in_struct and struct_types status between
84         start_struct and finish_struct.
85         (c_parser_cast_expression): Get location of cast.
86         (c_parser_alignof_expression): Get location of type.
87         (c_parser_postfix_expression): Likewise.
88         (c_parser_postfix_expression_after_paren_type): Add type_loc
89         parameter.  Change all callers.  Call
90         check_compound_literal_type.  Use type_loc for error about
91         variable size type.
92         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a
93         use of an enum constant from an enum type defined in a struct or
94         union.
95         (c_cast_expr): Add loc parameter.  Change all callers.  If
96         -Wc++-compat, warn about defining a type in a cast.
97         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
98         (start_enum, start_struct, finish_struct): Update declarations.
99         (parser_xref_tag, c_cast_expr): Update declarations.
100         (check_compound_literal_type): Declare.
101
102 2009-05-11  Ben Elliston  <bje@au.ibm.com>
103
104         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
105         for recent libcpp interface change.
106         (rs6000_macro_to_expand): Likewise.
107
108 2009-05-10  Michael Matz  <matz@suse.de>
109
110         PR target/40031
111         * config/arm/arm.c (require_pic_register): Emit on entry edge,
112         not at entry of function.
113
114 2009-05-10  Richard Guenther  <rguenther@suse.de>
115
116         PR tree-optimization/40081
117         Revert
118         * tree-sra.c (instantiate_element): Instantiate scalar replacements
119         using the main variant of the element type.  Do not fiddle with
120         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
121
122         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
123         structs with volatile fields.
124
125 2009-05-10  Jan Hubicka  <jh@suse.cz>
126
127         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
128         (estimate_move_cost): Assert that it does not get called for VOID_TYPE_P.
129         (estimate_num_insns): Skip VOID types in argument handling.
130         (optimize_inline_calls): Delete unreachable blocks and verify that
131         callgraph is valid.
132
133 2009-05-10  Jan Hubicka  <jh@suse.cz>
134
135         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
136         * cgraph.c (cgraph_mark_address_taken_node): New function.
137         (dump_cgraph_node): Dump new flag.
138         * cgraph.h (struct cgraph_node): Add address_taken.
139         (cgraph_mark_address_taken_node): New function.
140         * ipa.c (cgraph_postorder): Prioritize functions with address taken
141         since new direct calls can be born.
142
143 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
144
145         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
146         tok->val.node.node.
147
148 2009-05-10  Jan Hubicka  <jh@suse.cz>
149
150         PR middle-end/40084
151         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
152         argument; rewrite.
153         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
154         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
155         * tree-inline.c (copy_bb): Set frequency correctly.
156         (fold_marked_statements): Update call to
157         cgraph_update_edges_for_call_stmt.
158
159 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
160
161         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
162         identifiers in diagnostics.
163         * config/arm/arm.c (arm_handle_fndecl_attribute,
164         arm_handle_isr_attribute): Likewise.
165         * config/avr/avr.c (avr_handle_progmem_attribute,
166         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
167         Likewise.
168         * config/bfin/bfin.c (handle_int_attribute,
169         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
170         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
171         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
172         Likewise.
173         * config/darwin.c (darwin_handle_kext_attribute,
174         darwin_handle_weak_import_attribute): Likewise.
175         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
176         h8300_handle_eightbit_data_attribute,
177         h8300_handle_tiny_data_attribute): Likewise.
178         * config/i386/i386.c (ix86_handle_cconv_attribute,
179         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
180         Likewise.
181         * config/i386/winnt.c (ix86_handle_shared_attribute,
182         ix86_handle_selectany_attribute): Likewise.
183         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
184         * config/m32c/m32c.c (function_vector_handler): Likewise.
185         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
186         m68hc11_handle_fntype_attribute): Likewise.
187         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
188         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
189         * config/mips/mips.c (mips_insert_attributes,
190         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
191         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
192         rs6000_handle_struct_attribute): Likewise.
193         * config/sh/sh.c (sh_insert_attributes,
194         sh_handle_resbank_handler_attribute,
195         sh_handle_interrupt_handler_attribute,
196         sh2a_handle_function_vector_handler_attribute,
197         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
198         Likewise.
199         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
200         * config/spu/spu.c (spu_handle_fndecl_attribute,
201         spu_handle_vector_attribute): Likewise.
202         * config/stormy16/stormy16.c
203         (xstormy16_handle_interrupt_attribute): Likewise.
204         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
205         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
206
207 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
208
209         * pretty-print.h (struct pretty_print_info): Add
210         translate_identifiers.
211         (pp_translate_identifiers): New.
212         (pp_identifier): Only conditionally translate identifier to locale
213         character set.
214         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
215         (pp_base_tree_identifier): Only conditionally translate identifier
216         to locale character set.
217         * c-pretty-print.c (M_): Define.
218         (pp_c_type_specifier, pp_c_primary_expression): Mark English
219         fragments for conditional translation with M_.
220         * tree-pretty-print.c (maybe_init_pretty_print): Disable
221         identifier translation.
222
223 2009-05-10  Richard Guenther  <rguenther@suse.de>
224
225         PR tree-optimization/40081
226         * tree-sra.c (instantiate_element): Instantiate scalar replacements
227         using the main variant of the element type.  Do not fiddle with
228         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
229
230 2009-05-09  Jan Hubicka  <jh@suse.cz>
231
232         PR middle-end/40080
233         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
234         indirect calls; verify cgraph afterwards.
235
236 2009-05-09  Jan Hubicka  <jh@suse.cz>
237
238         PR bootstrap/40082
239         * ipa.c (update_inlined_to_pointer): New function.
240         (cgraph_remove_unreachable_nodes): Use it.
241
242 2009-05-09  Jan Hubicka  <jh@suse.cz>
243
244         * tree-eh.c (struct leh_state): Remove prev_try.
245         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
246         not track prev_try.
247         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
248         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
249         remove_eh_handler_and_replace, foreach_reachable_handler,
250         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
251         * except.h (struct eh_region): Remove eh_region_u_cleanup.
252         (gen_eh_region_cleanup): Update prototype.
253
254 2009-05-09  Jan Hubicka  <jh@suse.cz>
255
256         PR middle-end/40043
257         * except.c (copy_eh_region): Always set prev_try.
258         (redirect_eh_edge_to_label): Find outer try.
259         (foreach_reachable_handler): When looking for prev try
260         handle case where previous try is not going to be taken.
261
262 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
263
264         PR tree-optimization/40049
265         * tree-vect-stmts.c (vectorizable_operation): If the machine has
266         only vector/vector shifts, convert the type of the constant to the
267         appropriate type to avoid building incorrect trees, which
268         eventually have problems with garbage collection.
269
270 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
271
272         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
273         -1 for complex floating-point types if honoring signed zeros.
274
275 2009-05-08  Jan Hubicka  <jh@suse.cz>
276
277         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
278         argument; handle correctly when profile is absent.
279         (build_cgraph_edges): Update.
280         (rebuild_cgraph_edges): Update.
281         * cgraph.c: Do not include varray.h.
282         (cgraph_set_call_stmt_including_clones): New function.
283         (cgraph_create_edge_including_clones): Likewise
284         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
285         (cgraph_update_edges_for_call_stmt): Handle clones.
286         (cgraph_remove_node): Handle clone tree.
287         (cgraph_remove_node_and_inline_clones): New function.
288         (dump_cgraph_node): Dump clone tree.
289         (cgraph_clone_node): Handle clone tree.
290         (clone_function_name): Bring here from tree-inline.c.
291         (cgraph_create_virtual_clone): New function.
292         * cgraph.h (ipa_replace_map): Move here from ipa.h.
293         (cgraph_clone_info): New function.
294         (strut cgraph_node): Add clone_info and new clone tree pointers.
295         (cgraph_remove_node_and_inline_clones,
296         cgraph_set_call_stmt_including_clones,
297         cgraph_create_edge_including_clones,
298         cgraph_create_virtual_clone): Declare.
299         (cgraph_function_versioning): Use VEC argument.
300         (compute_call_stmt_bb_frequency): Update prototype.
301         (cgraph_materialize_all_clones): New function.
302         * ipa-cp.c (ipcp_update_cloned_node): Remove.
303         (ipcp_create_replace_map): Update to VECtors.
304         (ipcp_update_callgraph): Use virtual clones.
305         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
306         (ipcp_update_profiling): Do not update local profiling.
307         (ipcp_insert_stage): Use VECtors and virtual clones.
308         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
309         (clone_of_p): New function.
310         (cgraph_preserve_function_body_p): Use clone tree.
311         (cgraph_optimize): Materialize clones.
312         (cgraph_function_versioning): Update for VECtors.
313         (save_inline_function_body): Use clone tree.
314         (cgraph_materialize_clone): New function.
315         (cgraph_materialize_all_clones): Likewise.
316         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
317         * ipa.c: Include gimple.h.
318         (cgraph_remove_unreachable_nodes): Use clone tree.
319         * ipa-prop.c (ipa_note_param_call): Update call to
320         compute_call_stmt_bb_frequencycall.
321         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
322         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
323         (copy_bb): Handle updating of clone tree; add new edge when new call
324         appears.
325         (expand_call_inline): Be strict about every call having edge.
326         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
327         (delete_unreachable_blocks_update_callgraph): New function.
328         (tree_function_versioning): Use VECtors; always remove unreachable
329         blocks and fold conditionals.
330         * tree-inline.h: Do not include varray.h.
331         (tree_function_versioning): Remove.
332         * Makefile.in (GTFILES): Remove tree-inline.c
333         * passes.c (do_per_function): Do only functions having body.
334         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
335         tree.
336
337 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
338             Andrew Morrow  <acm@google.com>
339
340         PR c/36892
341         * c-common.c (c_common_attribute_table): Permit deprecated
342         attribute to take an optional argument.
343         (handle_deprecated_attribute): If the optional argument to
344         __attribute__((deprecated)) is not a string ignore the attribute
345         and emit a warning.
346
347         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
348         * c-typeck.c (build_component_ref): Likewise.
349         (build_external_ref): Likewise.
350
351         * toplev.c (warn_deprecated_use): Add an attribute argument.
352         Emit the message associated with __attribute__((deprecated)).
353
354         * toplev.h (warn_deprecated_use): Updated.
355
356         * doc/extend.texi: Document new optional parameter to
357         __attribute__((deprecated))
358
359 2009-05-08  Michael Eager <eager@eagercon.com>
360
361         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
362         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
363
364 2009-05-08  Richard Guenther  <rguenther@suse.de>
365
366         PR tree-optimization/40062
367         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
368         Avoid exponential behavior.
369
370 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
371
372         PR rtl-optimization/33928
373         PR 26854
374         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
375         process_uses, build_single_def_use_links): New.
376         (update_df): Update use_def_ref.
377         (forward_propagate_into): Use get_def_for_use instead of use-def
378         chains.
379         (fwprop_init): Call build_single_def_use_links and let it initialize
380         dataflow.
381         (fwprop_done): Free use_def_ref.
382         (fwprop_addr): Eliminate duplicate call to df_set_flags.
383         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
384         df_rd_simulate_one_insn): New.
385         (df_rd_bb_local_compute_process_def): Update head comment.
386         (df_chain_create_bb): Use the new RD simulation functions.
387         * df.h (df_rd_simulate_artificial_defs_at_top, 
388         df_rd_simulate_one_insn): New.
389         * opts.c (decode_options): Enable fwprop at -O1.
390         * doc/invoke.texi (-fforward-propagate): Document this.
391
392 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
393
394         PR c/24581
395         * c-typeck.c (build_binary_op): Handle arithmetic between one real
396         and one complex operand specially.
397         * tree-complex.c (some_nonzerop): Do not identify a real value as
398         zero if flag_signed_zeros.
399
400 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
401
402         PR rtl-optimization/33928
403         * loop-invariant.c (record_use): Fix && vs. || mishap.
404
405 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
406
407         PR rtl-optimization/33928
408         * loop-invariant.c (struct use): Add addr_use_p.
409         (struct def): Add n_addr_uses.
410         (struct invariant): Add cheap_address.
411         (create_new_invariant): Set cheap_address.
412         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
413         (record_uses): Pass df_ref to record_use.
414         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
415         used only as such.
416
417 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
418
419         * config/sh/sh.c: Do not include c-pragma.h.
420
421 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
422
423         * config/spu/spu.c: Remove include of c-common.h.
424
425 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
426
427         PR c/39037
428         * c-common.h (mark_valid_location_for_stdc_pragma,
429         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
430         clear_float_const_decimal64, float_const_decimal64_p): New.
431         * c.opt (Wunsuffixed-float-constants): New.
432         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
433         unsuffixed float constant, handle new warning.
434         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
435         * c-decl.c (c_scope): New flag float_const_decimal64.
436         (set_float_const_decimal64, clear_float_const_decimal64,
437         float_const_decimal64_p): New.
438         (push_scope): Set new flag.
439         * c-parser.c (c_parser_translation_unit): Mark when it's valid
440         to use STDC pragmas.
441         (c_parser_external_declaration): Ditto.
442         (c_parser_compound_statement_nostart): Ditto.
443         * c-pragma.c (valid_location_for_stdc_pragma,
444         mark_valid_location_for_stdc_pragma,
445         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
446         handle_pragma_float_const_decimal64): New.
447         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
448         * cp/semantics.c (valid_location_for_stdc_pragma_p,
449         set_float_const_decimal64, clear_float_const_decimal64,
450         float_const_decimal64_p): New dummy functions.
451         * doc/extend.texi (Decimal Float): Remove statement that the
452         pragma, and suffix for double constants, are not supported.
453         * doc/invoke.texi (Warning Options): List new option.
454         (-Wunsuffixed-float-constants): New.
455
456 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
457
458         * config/i386/i386.c: Do not include c-common.h.
459
460 2009-05-07  Mark Heffernan  <meheff@google.com>
461
462         * doc/invoke.texi (Debugging Options): Document change of debugging
463         dump location.
464         * opts.c (decode_options): Make dump_base_name relative to
465         aux_base_name directory.
466
467 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
468
469         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
470         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
471
472 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
473
474         * Makefile.in (install-plugin): Simplify a bit.
475
476 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
477
478         * Makefile.in (OBJS-common): Add regcprop.o.
479         (regcprop.o): New.
480         * timevar.def (TV_CPROP_REGISTERS): New.
481         * regrename.c (regrename_optimize): Return 0.
482         (rest_of_handle_regrename): Delete.
483         (pass_rename_registers): Point to regrename_optimize.
484         (struct value_data_entry, struct value_data, 
485         kill_value_one_regno, kill_value_regno, kill_value,
486         set_value_regno, init_value_data, kill_clobbered_value,
487         kill_set_value, kill_autoinc_value, copy_value,
488         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
489         replace_oldest_value_reg, replace_oldest_value_addr,
490         replace_oldest_value_mem, copyprop_hardreg_forward_1,
491         debug_value_data, validate_value_data): Move...
492         * regcprop.c: ... here.
493         (rest_of_handle_cprop): Delete.
494         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
495
496 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
497
498         PR middle-end/40057
499         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
500         GEN_INT for 1 << bitnum.
501         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
502         build_int_cst_type.
503
504 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
505
506         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
507         Remove wrong description of "nand" operation.
508
509 2009-05-06  Richard Guenther  <rguenther@suse.de>
510             Adam Nemet  <anemet@caviumnetworks.com>
511
512         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
513         comment.  Add that if LHS is not a gimple register, then RHS1 has
514         to be a single object (GIMPLE_SINGLE_RHS).
515
516 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
517
518         * expr.c (get_def_for_expr): Move it up in the file.
519         (store_field): When expanding a bit-field store, look at the
520         defining gimple stmt for the masking conversion.
521
522 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
523
524         PR middle-end/39986
525         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
526         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
527         32-bit memcpy into long.
528
529 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
530
531         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
532         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
533         new_reg_loc_descr.
534         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
535         instead of appending DW_OP_deref*.
536
537 2009-05-06  Michael Matz  <matz@suse.de>
538
539         PR middle-end/40021
540         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
541         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
542
543 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
544
545         * Makefile.in (install-plugin): Fix srcdir handling.
546
547 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
548
549         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
550         when processing for not_regs_needed bitmap.
551         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
552         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
553         handling it for rhs. 
554
555 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
556
557         * config/i386/i386.md (unnamed inc/dec peephole): Use
558         optimize_insn_for_size_p instead of optimize_size.
559         * config/i386/predicates.md (incdec_operand): Likewise.
560         (aligned_operand): Likewise.
561         * config/i386/sse.md (divv8sf3): Likewise.
562         (sqrtv8sf2): Likewise.
563
564 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
565
566         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
567
568         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
569
570 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
571
572         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
573         ssemodesuffixf2c with avxmodesuffixf2c.
574
575 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
576
577         PR c/40032
578         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
579
580 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
581
582         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
583         (struct tree_base): Adjust spacing for 8 bit boundaries.
584         (struct tree_decl_common): Add decl_by_reference_flag bit.
585         (DECL_BY_REFERENCE): Adjust.
586         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
587         print DECL_BY_REFERENCE bit.
588         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
589         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
590         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
591         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
592         unconditionally.
593
594         PR middle-end/39666
595         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
596         range of the type, but default label is missing, add it with one
597         of the existing labels instead of adding a new label for it.
598
599 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
600
601         * dwarf.h: Remove.
602
603 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
604
605         * Makefile.in (enable_plugin, plugin_includedir): New.
606         (install): Depend on install-plugin.
607         (PLUGIN_HEADERS): New.
608         (install-plugin): New.
609         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
610
611 2009-05-05  Richard Guenther  <rguenther@suse.de>
612
613         PR tree-optimization/40022
614         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
615         the only vuse.
616         (phivn_valid_p): Fix tuplification error, simplify.
617         (phiprop_insert_phi): Add dumps.
618         (propagate_with_phi): Simplify.
619
620 2009-05-05  Richard Guenther  <rguenther@suse.de>
621
622         PR middle-end/40023
623         * builtins.c (gimplify_va_arg_expr): Properly build the address.
624
625 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
626
627         * tree.h (strip_float_extensions): Remove duplicate declaration.
628         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
629         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
630         block_ultimate_origin): Rearrange the declarations line to match the
631         comment that indicates the .c file which the functions are defined.
632         (dwarf2out_*, set_decl_rtl): Add comment.
633         (get_base_address): Adjust comment.
634         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
635         declarations line and add comment.
636         (is_builtin_name): Add blank after function name, for clarity.
637
638 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
639
640         * attribs.c (decl_attributes): Use %qE for identifiers in
641         diagnostics.
642         * cgraphunit.c (verify_cgraph_node): Translate function names to
643         locale character set in diagnostics.
644         * coverage.c (get_coverage_counts): Use %qE for identifiers in
645         diagnostics.
646         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
647         Document that functions are named in UTF-8.
648         * expr.c (expand_expr_real_1): Translate function names to locale
649         character set in diagnostics.
650         * gimplify.c (omp_notice_variable, omp_is_private,
651         gimplify_scan_omp_clauses): Use %qE for identifiers in
652         diagnostics.
653         * langhooks.c (lhd_print_error_function): Translate function names
654         to locale character set.
655         * langhooks.h (decl_printable_name): Document that return value is
656         in internal character set.
657         * stmt.c: Include pretty-print.h
658         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
659         diagnostics.
660         (resolve_operand_name_1): Translate named operand name to locale
661         character set.
662         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
663         diagnostics.
664         * toplev.c (announce_function): Translate function names to locale
665         character set.
666         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
667         (default_tree_printer): Use pp_identifier or translate identifiers
668         to locale character set.  Mark "<anonymous>" for translation.
669         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
670         for identifiers in diagnostics.
671         * tree.c (handle_dll_attribute): Use %qE for identifiers in
672         diagnostics.
673         * varasm.c (output_constructor): Use %qE for identifiers in
674         diagnostics.
675
676 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
677
678         * configure.ac: use ` ` instead of $()
679         * configure: Regenerate.
680
681 2009-05-05  Ben Elliston  <bje@au.ibm.com>
682
683         * config/pa/linux-atomic.c: Eliminate conditional include of
684         errno.h on non-LP64 systems to simplify build requirements.
685
686 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
687
688         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
689         diagnostics.
690         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
691         and pass value to identifier_to_locale.
692         (warn_variable_length_array): Make name a tree.
693         (grokdeclarator): Separate diagnostic texts for named and unnamed
694         declarators.  Use %qE for named declarators.
695         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
696         diagnostics.
697         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
698         identifiers in diagnostics.
699         * c-typeck.c (push_member_name, start_init): Pass identifiers to
700         identifier_to_locale.  Mark "anonymous" strings for translation.
701
702 2009-05-04  Michael Eager <eager@eagercon.com>
703
704         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
705         address for DImode/DFmode only if double-precision FP regs.
706
707 2009-05-04  Michael Eager <eager@eagercon.com>
708
709         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
710         TARGET_SINGLE_FLOAT check.
711
712 2009-05-04  Michael Eager <eager@eagercon.com>
713
714         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
715
716 2009-05-04  Michael Eager <eager@eagercon.com>
717
718         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
719         * config/rs6000/t-xilinx: New
720
721 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
722
723         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
724         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
725         * gcc/explow.c (memory_address): Use target hook.
726         * gcc/targhooks.c (default_legitimize_address): New.
727         * gcc/targhooks.h (default_legitimize_address): New.
728         * gcc/target.h (legitimize_address): New.
729         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
730         (TARGET_INITIALIZER): Include it.
731         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
732
733         * config/bfin/bfin-protos.h (legitimize_address): Remove.
734         * config/bfin/bfin.c (legitimize_address): Remove.
735         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
736         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
737         Remove.
738         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
739         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
740
741         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
742         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
743         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
744         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
745         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
746         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
747         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
748         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
749         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
750         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
751         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
752         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
753         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
754         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
755         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
756         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
757         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
758         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
759         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
760         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
761         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
762         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
763         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
764
765         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
766         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
767         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
768         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
769         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
770         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
771         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
772         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
773         (thumb_legitimize_address): Delete.
774         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
775         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
776         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
777         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
778         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
779         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
780         Delete.
781         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
782         Delete.
783
784         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
785         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
786         * config/m32r/m32r.c (m32r_legitimize_address): New.
787         * config/m68k/m68k.c (m68k_legitimize_address): New.
788         * config/score/score.c (score_legitimize_address): Standardize.
789         * config/score/score3.c (score3_legitimize_address): Standardize.
790         * config/score/score3.h (score3_legitimize_address): Adjust.
791         * config/score/score7.c (score7_legitimize_address): Standardize.
792         * config/score/score7.h (score7_legitimize_address): Adjust.
793         * config/sh/sh.c (sh_legitimize_address): New.
794         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
795
796         * gcc/config/s390/s390.c (legitimize_address): Rename to...
797         (s390_legitimize_address): ... this.
798         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
799         (sparc_legitimize_address): ... this.
800         * gcc/config/i386/i386.c (legitimize_address): Rename to...
801         (ix86_legitimize_address): ... this.
802         * gcc/config/avr/avr.c (legitimize_address): Rename to...
803         (avr_legitimize_address): ... this.
804         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
805         (mn10300_legitimize_address): ... this.
806         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
807         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
808         (alpha_expand_mov): Adjust call.
809
810         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
811         * config/spu/spu.c (spu_legitimize_address): Likewise.
812         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
813         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
814
815 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
816
817         * intl.c (locale_encoding, locale_utf8): New.
818         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
819         * intl.h (locale_encoding, locale_utf8): Declare.
820         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
821         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
822         New.
823         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
824         argument.
825         (pp_tree_identifier): Define to call pp_base_tree_identifier.
826         (pp_base_tree_identifier): Declare as function.
827         (identifier_to_locale): Declare.
828         * Makefile.in (pretty-print.o): Update dependencies.
829         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
830
831 2009-05-04  Richard Guenther  <rguenther@suse.de>
832
833         PR middle-end/40015
834         * builtins.c (fold_builtin_memory_op): Do not decay to element
835         type if the size matches the whole array.
836
837 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
838
839         * expmed.c (synth_mult): When trying out a shift, pass the result
840         of a signed shift.
841
842 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
843
844         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
845         (shiftsub1_cost): New.
846         (init_expmed): Compute shiftsub1_cost.
847         (synth_mult): Optimize multiplications by constants of the form
848         -(2^^m-1) for some constant positive integer m.
849
850 2009-05-03  Richard Guenther  <rguenther@suse.de>
851
852         PR c/39983
853         * c-typeck.c (array_to_pointer_conversion): Do not built
854         ADDR_EXPRs of arrays of pointer-to-element type.
855         * c-gimplify.c (c_gimplify_expr): Revert change fixing
856         up wrong ADDR_EXPRs after-the-fact.
857         * c-common.c (strict_aliasing_warning): Strip pointer
858         conversions for obtaining the original type.
859         * builtins.c (fold_builtin_memset): Handle array types.
860         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
861         and array types
862
863 2009-05-03  Richard Guenther  <rguenther@suse.de>
864
865         PR middle-end/23329
866         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
867         Do not lose casts from array types with unknown extent to array
868         types with known extent.
869         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
870         alias set compatibility.
871
872 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
873
874         * flags.h (extra_warnings): Delete.
875         * toplev.c (process_options): Handle Wuninitialized here.
876         * opts.c (extra_warnings): Delete.
877         (set_Wextra): Delete.
878         (common_handle_option): -Wextra can be handled automatically.
879         * c-opts.c (c_common_handle_option): Delete obsolete code.
880         (c_common_post_options): Simplify comment.
881         * common.opt (W): Add Var.
882         (Wextra): Add Var.
883         (Wuninitialized): Initialize to -1.
884
885 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
886             Richard Guenther  <rguenther@suse.de>
887
888         * expr.c (get_def_for_expr): New function.
889         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
890         SSA rather than trees.
891         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
892         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
893         
894 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
895
896         * c-common.c (reswords): Add _Imaginary.
897         * c-common.c (enum rid): Add RID_IMAGINARY.
898
899 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
900
901         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
902         Patch by Richard Guenther.
903
904 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
905
906         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
907         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
908         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
909         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
910         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
911         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
912         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
913         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
914         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
915         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
916         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
917         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
918         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
919         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
920         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
921         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
922         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
923         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
924
925 2009-05-02  Richard Guenther  <rguenther@suse.de>
926
927         PR tree-optimization/39940
928         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
929         doing so.
930
931 2009-05-02  Richard Guenther  <rguenther@suse.de>
932
933         PR middle-end/40001
934         * tree-ssa.c (execute_update_addresses_taken): Properly check
935         if we can mark a variable DECL_GIMPLE_REG_P.
936         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
937         back to the end of the function.
938         (is_gimple_reg_type): Remove complex type special casing.
939         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
940         if not optimizing.
941
942 2009-05-02  Ben Elliston  <bje@au.ibm.com>
943
944         * doc/collect2.texi (Collect2): Document search path behaviour
945         when configured with --with-ld.
946
947 2009-05-02  Jan Hubicka  <jh@suse.cz>
948
949         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
950         parameter; update callers.
951         (coalesce_cost_edge): EH edges are costier because they needs
952         splitting even if not critical and even more costier when there are
953         multiple EH predecestors.
954
955 2009-05-02  Jan Hubicka  <jh@suse.cz>
956
957         * except.c (remove_eh_handler_and_replace): Handle updating after
958         removing TRY blocks.
959
960 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
961
962         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
963
964 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
965
966         * varasm.c: Do not include c-pragma.h.
967         * attribs.c: Do not incude c-common.h.
968
969 2009-05-01  Michael Matz  <matz@suse.de>
970
971         * calls.c (initialize_argument_information): Handle SSA names like
972         decls with a non MEM_P DECL_RTL.
973
974 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
975
976         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
977         * ipa-utils.c: Likewise.
978         * ipa-type-escape.c: Likewise.
979         * cgraphunit.c Do not include c-common.h.
980         * ipa-pure-const.c: Likewise.
981         * tree-if-conv.c: Likewise.
982         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
983         * ipa-struct-reorg.c: Likewise.
984         * tree-nomudflap.c: Likewise.
985         * tree-ssa-structalias.c: Likewise.
986
987 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
988
989         * store-motion.c: Many cleanups to make this pass a first-class
990         citizen instead of an appendix to gcse load motion.  Add TODO list
991         to make this pass faster/cleaner/better.
992
993         (struct ls_expr): Post gcse.c-split cleanups.
994         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
995         "stores" field to "avail_stores".
996         (pre_ldst_mems): Rename to store_motion_mems.
997         (pre_ldst_table): Rename to store_motion_mems_table.
998         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
999         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1000         (ldst_entry): Rename to st_expr_entry, update users.
1001         (free_ldst_entry): Rename to free_st_expr_entry, update users.
1002         (free_ldst_mems): Rename to free_store_motion_mems, update users.
1003         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1004         update caller.
1005         (first_ls_expr): Rename to first_st_expr, update users.
1006         (next_ls_expr): Rename to next_st_expr, update users.
1007         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
1008         fields properly for store motion instead of names inherited from load
1009         motion in gcse.c.
1010         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1011         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
1012         are done with it.
1013
1014         (ae_kill): Rename to st_kill, update users.
1015         (ae_gen): Rename to st_avloc, update users.
1016         (transp): Rename to st_transp, update users.
1017         (pre_insert_map): Rename to st_insert_map, update users.
1018         (pre_delete_map): Rename to st_delete_map, update users.
1019         (insert_store, build_store_vectors, free_store_memory,
1020         one_store_motion_pass): Update for abovementioned changes.
1021
1022         (gcse_subst_count, gcse_create_count): Remove.
1023         (one_store_motion_pass): New statistics counters "n_stores_deleted"
1024         and "n_stores_created", local variables.
1025
1026         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1027         use for_each_rtx.
1028
1029         (regvec, compute_store_table_current_insn): Remove.
1030         (reg_set_info, reg_clear_last_set): Remove.
1031         (compute_store_table): Use DF caches instead of local dataflow
1032         solvers.
1033
1034 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
1035
1036         * c-objc-common.c (c_tree_printer): Print identifiers with
1037         pp_identifier, not pp_string.  Mark "({anonymous})" for
1038         translation.
1039         * c-pretty-print.c (pp_c_ws_string): New.
1040         (pp_c_cv_qualifier, pp_c_type_specifier,
1041         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1042         pp_c_storage_class_specifier, pp_c_function_specifier,
1043         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1044         pp_c_primary_expression, pp_c_postfix_expression,
1045         pp_c_unary_expression, pp_c_shift_expression,
1046         pp_c_relational_expression, pp_c_equality_expression,
1047         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1048         use pp_string and pp_c_ws_string in place of pp_identifier and
1049         pp_c_identifier for non-identifiers.  Mark English strings for
1050         translation.
1051         * c-pretty-print.h (pp_c_ws_string): Declare.
1052
1053 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
1054             Roland McGrath <roland@redhat.com>
1055
1056         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
1057         (ENABLE_LD_BUILDID): New configuration option.
1058         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1059         (LINK_BUILDID_SPEC): New macro.
1060         (init_spec): If defined, prepend it between LINK_EH_SPEC and
1061         link_spec.
1062         * doc/install.texi: Document --enable-linker-build-id option.
1063         * configure: Rebuild.
1064         * config.in: Rebuild.
1065
1066 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
1067
1068         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1069         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1070         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
1071         MIPS_GP_SAVE_AREA_SIZE.
1072         * config/mips/mips.c (struct mips_frame_info): Update comment
1073         before arg_pointer_offset and hard_frame_pointer_offset.
1074         (mips_compute_frame_info): Update diagram before function: to
1075         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1076         indicate the position of frame_pointer_rtx with -fstack-protector and
1077         to show args_size.  Don't allocate cprestore area for leaf functions
1078         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
1079         cprestore_size.
1080         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1081
1082 2009-04-30  Michael Matz  <matz@suse.de>
1083
1084         PR tree-optimization/39955
1085         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
1086
1087 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1088
1089         * ira.c (setup_cover_and_important_classes):  Use safe macro
1090         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1091         directly.
1092         * genpreds.c (write_tm_preds_h):  Output suitable definition of
1093         REG_CLASS_FOR_CONSTRAINT.
1094
1095 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
1096
1097         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1098         instead of an int.
1099         * bitmap.c (bitmap_descriptor): Likewise.
1100         * ggc-common.c (loc_descriptor): Likewise.
1101         * varray.c (varray_descriptor): Likewise.
1102         * vec.c (vec_descriptor): Likewise.
1103
1104 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
1105
1106         * Makefile.in (dce.o): Add $(EXCEPT_H).
1107         * dce.c: Include except.h and delete redundant vector definitions.
1108         (deletable_insn_p): Return false for non-call insns that can throw
1109         if DF is running.
1110
1111 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1112
1113         * gcse.c (ae_gen): Remove.
1114         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1115         and make non-static function to make it available in store-motion.c.
1116         Update call sites with search-and-replace.
1117         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1118         extract_mentioned_regs, extract_mentioned_regs_helper,
1119         find_moveable_store, compute_store_table, load_kills_store, find_loads,
1120         store_killed_in_insn, store_killed_after, store_killed_before,
1121         build_store_vectors, insert_insn_start_basic_block, insert-store,
1122         remove_reachable_equiv_notes, replace_store_insn, delete_store,
1123         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1124         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1125         * store-motion.c: ...new file.  Also copy data structures from gcse.c
1126         and clean up to remove parts not used by store motion.
1127         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1128         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1129
1130 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1131
1132         PR target/38571
1133         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1134         when optimizing for size.
1135
1136 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
1137
1138         * gcse.c (gcse_constant_p): Fix typo in last change.
1139
1140 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
1141
1142         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1143
1144 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
1145
1146         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1147
1148 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
1149
1150         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1151         CONST_HIGH_PART result.
1152
1153 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
1154
1155         * config/avr/avr.c (initial_elimination_offset): Rename to
1156         avr_initial_elimination_offset.
1157         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1158         change return type to bool.
1159         (avr_can_eliminate): New function.
1160         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1161         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1162         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1163         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
1164         avr_initial_elimination_offset.
1165         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1166         (avr_initial_elimination_offset): Define.
1167
1168 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
1169             Steven Bosscher  <steven@gcc.gnu.org>
1170
1171         PR rtl-optimization/39938
1172         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1173         * cfgrtl.c: Include insn-attr.h.
1174         (rest_of_pass_free_cfg): New function.
1175         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1176         * resource.c (init_resource_info): Remove call to df_analyze.
1177
1178 2009-04-29  Richard Guenther  <rguenther@suse.de>
1179
1180         PR target/39943
1181         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1182         allow conversion to signed integers.
1183
1184 2009-04-29  Richard Guenther  <rguenther@suse.de>
1185
1186         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1187         shifts of floating point vectors if the shift amount is
1188         a constant multiple of the element size.
1189
1190 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1191             Michael Matz  <matz@suse.de>
1192
1193         PR middle-end/39927
1194         PR bootstrap/39929
1195         * tree-outof-ssa.c (emit_partition_copy): New function.
1196         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1197         insert_part_to_rtx_on_edge): Perform the partition base var
1198         copy using emit_partition_copy.
1199         (insert_value_copy_on_edge): Convert constants to the right mode.
1200         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1201         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1202
1203 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1204
1205         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1206         scan backwards to try to find a constant to initialize it.
1207
1208         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1209         insn before the loop_end instruction, don't look past labels.
1210
1211 2009-04-29  Richard Guenther  <rguenther@suse.de>
1212
1213         PR middle-end/39937
1214         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1215         loose type conversions.
1216         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
1217         stmts only if there are no uses of its definition.
1218
1219 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1220
1221         * config/bfin/bfin.h (splitting_loops): Declare.
1222         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1223         Reorder bit definitions to be ascending.
1224         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1225         * config/bfin/bfin.c (splitting_loops): New variable.
1226         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1227         (struct loop_info): Remove members INIT and LOOP_INIT.
1228         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
1229         the LSETUP sequence.  Allow LC to be loaded from any register, but
1230         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
1231         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1232         set to 1.
1233         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1234         of reload_completed.
1235
1236         From Jie Zhang:
1237         * config/bfin/bfin.md (movsi_insn): Refine constraints.
1238
1239 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
1240
1241         * Makefile.in (PLUGIN_VERSION_H): New.
1242         (OBJS-common): Remove plugin-version.o.
1243         (plugin.o): Depend on (PLUGIN_VERSION_H).
1244         (plugin-version.o): Remove.
1245         * configure: Regenerate
1246         * configure.ac: Create plugin-version.h.
1247         * gcc-plugin.h (plugin_gcc_version): Remove.
1248         (plugin_default_version_check): Change signature.
1249         * plugin-version.c: Remove.
1250         * plugin.c: Include plugin-version.h.
1251         (str_plugin_gcc_version_name): Remove.
1252         (try_init_one_plugin): Pass gcc version to plugin_init.
1253         (plugin_default_version_check): Both gcc and plugin versions are now
1254         arguments.
1255
1256 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1257         
1258         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1259         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
1260         Remove special case testing for last insn of inner loops. Don't fail
1261         if the loop ends with a jump, emit an extra nop instead.
1262
1263         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1264         DREGS rather than comparing directly.  Remove code that tries to
1265         account for latencies.
1266
1267 2009-04-29  Richard Guenther  <rguenther@suse.de>
1268
1269         PR tree-optimization/39941
1270         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1271         eliminating an indirect call.
1272
1273 2009-04-29  Richard Guenther  <rguenther@suse.de>
1274
1275         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1276         parameter.  Allow invariants as base if !require_lvalue.
1277         (verify_gimple_assign_single): Adjust.
1278
1279 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1280
1281         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1282         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
1283         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1284         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
1285         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1286         a VEC_SELECT.
1287         * config/bfin/bfin.c (bfin_expand_builtin,
1288         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
1289
1290 2009-04-28  Richard Guenther  <rguenther@suse.de>
1291
1292         * tree-vect-loop.c (get_initial_def_for_induction): Use
1293         correct types for pointer increment.
1294
1295 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1296
1297         * toplev.c (print_version): Update GMP version string calculation.
1298
1299 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1300
1301         PR rtl-optimization/39938
1302         * resource.c (init_resource_info): Add call to df_analyze.
1303
1304 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1305
1306         * config/alpha/alpha.md (usegp): Cast the result of
1307         alpha_find_lo_sum_using_gp to enum attr_usegp.
1308         * config/alpha/alpha.c (override_options): Remove end-of-structure
1309         marker element from cpu_table.  Use array size of cpu_table to handle
1310         -mcpu and -mtune options.
1311         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1312
1313 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
1314
1315         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1316         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
1317         tune_32 and tune_64.
1318         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1319         support on PowerPC.
1320         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1321         * config/rs6000/option-defaults.h: ... here.  New file.
1322         (OPT_64, OPT_32): Define.
1323         (MASK_64BIT): Define to 0 if not already defined.
1324         (OPT_ARCH64, OPT_ARCH32): Define.
1325         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1326         and tune_64.
1327
1328 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1329
1330         * config/arm/arm.c (arm_override_options): Emit error on using
1331         fpa with AAPCS.
1332
1333 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1334
1335         PR rtl-optimization/39914
1336         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1337         registers for allocnos created from user-defined variables only
1338         when not optimizing.
1339
1340 2009-04-28  Richard Guenther  <rguenther@suse.de>
1341
1342         PR middle-end/39937
1343         * fold-const.c (fold_binary): Use distribute_real_division only
1344         on float types.
1345
1346 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
1347
1348         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1349         add hpux-stdint.h to tm_file.
1350         (hppa[12]*-*-hpux11*): Ditto.
1351         (ia64*-*-hpux*): Ditto.
1352         * config/hpux-stdint.h: New.
1353         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
1354         __STDC_EXT__ for all compiles.
1355         * config/pa/pa-hpux.h: Ditto.
1356         * config/pa/pa-hpux10.h: Ditto.
1357         * config/pa/pa-hpux11.h: Ditto.
1358
1359 2009-04-28  Catherine Moore  <clm@codesourcery.com>
1360
1361         * debug.h (set_name): Add comment.
1362
1363 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
1364
1365         PR target/39929
1366         * config/darwin.c (machopic_gen_offset): Check
1367         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
1368         * config/arm/arm.c (require_pic_register): Likewise.
1369
1370 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
1371
1372         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
1373         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
1374         m32c_promote_prototypes): Delete.
1375
1376 2009-04-28  Michael Matz  <matz@suse.de>
1377
1378         PR middle-end/39922
1379         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
1380         constants.
1381
1382 2009-04-28  Richard Guenther  <rguenther@suse.de>
1383
1384         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
1385
1386 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1387
1388         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
1389         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
1390         * config/arm/arm-tune.md: Regenerate.
1391
1392 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
1393
1394         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
1395         block if there are complex incoming edges.
1396         (sel_merge_blocks): Remove useless assert.
1397         (sel_redirect_edge_and_branch): Check that edge was redirected.
1398         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1399         (sel_find_rgns): Delete declaration.
1400         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1401         the region when it is not a preheader.
1402
1403 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1404
1405         PR c/39323
1406         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1407
1408 2009-04-28  Richard Guenther  <rguenther@suse.de>
1409
1410         * tree.h (SSA_NAME_VALUE): Remove.
1411         (struct tree_ssa_name): Remove value_handle member.
1412         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1413         array for jump threading.
1414         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1415         SSA_NAME_VALUEs.
1416         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1417         * tree-flow.h (threadedge_initialize_values): Declare.
1418         (threadedge_finalize_values): Likewise.
1419         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1420         (SSA_NAME_VALUE): Define.
1421         (threadedge_initialize_values): New function.
1422         (threadedge_finalize_values): Likewise.
1423         * tree-ssa-dom.c (ssa_name_values): New global variable.
1424         (SSA_NAME_VALUE): Define.
1425         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
1426
1427 2009-04-28  Ira Rosen  <irar@il.ibm.com>
1428
1429         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1430         Use REPORT_VECTORIZED_LOCATIONS instead 
1431         REPORT_VECTORIZED_LOOPS.
1432         * tree-vectorizer.c (vect_verbosity_level): Make static.
1433         (vect_loop_location): Rename to vect_location.
1434         (vect_set_verbosity_level): Update comment.
1435         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1436         and vect_location.
1437         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1438         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1439         instead REPORT_UNVECTORIZED_LOOPS.
1440         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1441         vect_loop_def to vect_external_def and vect_internal_def.
1442         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
1443         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
1444         REPORT_UNVECTORIZED_LOCATIONS.
1445         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1446         and vect_used_in_loop and to vect_unused_in_scope and 
1447         vect_used_in_scope.
1448         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1449         (vect_verbosity_level): Remove declaration.
1450         (vect_analyze_operations): Likewise.
1451         (vect_analyze_stmt): Declare.
1452         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1453         REPORT_UNVECTORIZED_LOCATIONS.
1454         (vect_get_loop_niters): Fix indentation.
1455         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1456         (vect_analyze_loop_operations): New function.
1457         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1458         vect_analyze_operations.
1459         (vect_is_simple_reduction): Use new names.
1460         (vectorizable_live_operation, vect_transform_loop): Likewise.
1461         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1462         specify whether the data references can be a part of interleaving chain.
1463         (vect_analyze_data_ref_dependence): Use new names.
1464         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1465         (vect_create_addr_base_for_vector_ref): Remove redundant code.
1466         * tree-vect-patterns.c (widened_name_p): Use new names.
1467         (vect_recog_dot_prod_pattern): Likewise.
1468         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1469         (process_use, vect_mark_stmts_to_be_vectorized, 
1470         vect_model_simple_cost, vect_model_store_cost,
1471         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1472         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1473         vectorizable_operation, vectorizable_type_demotion,
1474         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1475         vectorizable_condition): Likewise.
1476         (vect_analyze_operations): Split into vect_analyze_loop_operations
1477         and ...
1478         (vect_analyze_stmt): ... new function.
1479         (new_stmt_vec_info): Use new names.
1480         (vect_is_simple_use): Use new names and fix comment.
1481         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1482         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1483
1484 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1485
1486         PR target/39911
1487         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1488         and integer modes for x87 operands.  Do not ICE for unsupported size,
1489         generate error instead.  Generate error for unsupported operand types.
1490         ['z']: Do not handle HImode memory operands specially.  Warning
1491         for floating-point operands.  Fallthru to 'Z' for unsupported operand
1492         types.  Do not ICE for unsupported size, generate error instead.
1493         (output_387_binary_op): Use %Z to output operands.
1494         (output_fp_compare): Ditto.
1495         (output_387_reg_move): Ditto.
1496
1497 2009-04-28  Ben Elliston  <bje@au.ibm.com>
1498
1499         PR c++/35652
1500         Revert:
1501
1502         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1503
1504         * builtins.c (c_strlen): Do not warn here.
1505         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1506         * c-common.c (pointer_int_sum): Take an explicit location.
1507         Warn about offsets out of bounds.
1508         * c-common.h (pointer_int_sum): Adjust declaration.
1509
1510 2009-04-27  Ian Lance Taylor  <iant@google.com>
1511
1512         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1513         names to symkind.
1514         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1515         * df-core.c (df_set_flags): Change return type to int.  Change
1516         type of old_flags to int.
1517         (df_clear_flags): Likewise.
1518         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1519         (df_get_conditional_uses): Likewise.
1520         * df.h (df_set_flags, df_clear_flags): Update declarations.
1521         * dwarf2out.c (struct indirect_string_node): Change type of form
1522         field to enum dwarf_form.
1523         (AT_string_form): Change return type to enum dwarf_form.
1524         * fixed-value.c (fixed_compare): Add cast to enum type.
1525         * fwprop.c (update_df): Change 0 to VOIDmode.
1526         * gensupport.c: Change 0 to UNKNOWN.
1527         * gimple.h (gimple_cond_code): Add cast to enum type.
1528         * haifa-sched.c (reemit_notes): Add cast to enum type.
1529         * hooks.c (hook_int_void_no_regs): Remove function.
1530         * hooks.h (hook_int_void_no_regs): Remove declaration.
1531         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1532         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1533         * real.c (real_arithmetic): Add cast to enum type.
1534         (real_compare): Likewise.
1535         * target.h (struct gcc_target): Change return type of
1536         branch_target_register_class to enum reg_class.
1537         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1538         default_branch_target_register_class.
1539         * targhooks.c (default_branch_target_register_class): New function.
1540         * targhooks.h (default_branch_target_register_class): Declare.
1541         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1542         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1543         cast to int.
1544         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1545         ERROR_MARK.
1546         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1547         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1548         * tree-vect-stmts.c (supportable_widening_operation): Don't
1549         initialize icode1 and icode2.
1550         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1551         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1552         and to STD_C89.
1553         (cmn_err_flag_specs): Change 0 to STD_C89.
1554         (cmn_err_char_table): Likewise.
1555         * config/arm/arm.c (get_arm_condition_code): Change type of code
1556         to enum arm_cond_code.
1557         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1558         (IWMMXT_BUILTIN2): Likewise.
1559         (neon_builtin_type_bits): Don't define typedef.
1560         (neon_builtin_datum): Change type of bits field to int.
1561         (arm_expand_neon_args): Add cast to enum type.
1562         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1563         TLS_MODEL_NONE.
1564         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1565         casts to enum type.
1566         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1567         MIPS_FP_COND_f.
1568         * config/mips/mips.md (jal_macro): Return enum constant.
1569         (single_insn): Likewise.
1570         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1571         CODE_FOR_nothing.
1572         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1573         casts to enum type.
1574         * config/s390/s390.c (s390_tune_flags): Change type to int.
1575         (s390_arch_flags): Likewise.
1576         (s390_handle_arch_option): Change flags field of struct pta to int.
1577         * config/s390/s390.h (s390_tune_flags): Update declaration.
1578         (s390_arch_flags): Likewise.
1579         * config/sh/sh.c (prepare_move_operands): Compare
1580         tls_symbolic_operand result with enum constant.
1581         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1582         (sh_expand_prologue): Add cast to enum type.
1583         (sh_expand_epilogue): Likewise.
1584         (tls_symbolic_operand): Change return type to enum tls_model.
1585         (fpscr_set_from_mem): Add cast to enum type.
1586         (legitimize_pic_address): Compare tls_symbolic_operand result with
1587         enum constant.
1588         (sh_target_reg_class): Change return type to enum reg_class.
1589         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1590         PROCESSOR_xxx.
1591         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1592         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1593         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1594         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1595         (delayed_branch, tls_call_delay): Likewise.
1596         (eligible_for_sibcall_delay): Likewise.
1597         (eligible_for_return_delay): Likewise. 
1598         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1599         (spu_expand_builtin_1): Likewise.
1600
1601         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1602         for all types of conversions.
1603         (output_init_element): Issue -Wc++-compat warning if needed when
1604         initializing a bitfield with enum type.
1605         * c-parser.c (c_parser_expression): Set original_type to
1606         original_type of right hand operand of comman operator.
1607
1608 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1609
1610         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1611         grammar nits.
1612         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1613         * doc/cpp.texi (Standard Predefined Macros)
1614         (Implementation-defined behavior): Likewise.
1615         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1616         * doc/gimple.texi (GIMPLE Exception Handling)
1617         (@code{GIMPLE_ASSIGN}): Likewise.
1618         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1619         * doc/invoke.texi (Warning Options, Optimize Options)
1620         (AVR Options, Darwin Options): Likewise.
1621         (Optimize Options): Reformulate -fwhole-program description.
1622         * doc/loop.texi (Lambda): Likewise.
1623         * doc/md.texi (Output Template, Define Constraints)
1624         (Standard Names, Insn Splitting): Likewise.
1625         * doc/options.texi (Option properties): Likewise.
1626         * doc/passes.texi (Tree-SSA passes): Likewise.
1627         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1628         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1629         (File Names and DBX): Likewise.
1630         * doc/trouble.texi (Incompatibilities): Likewise.
1631
1632 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1633
1634         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1635         instruction is correct.
1636
1637 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1638
1639         Allow non-constant arguments to conversion intrinsics.
1640         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1641         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1642         * spu.c (print_operand): Handle 'v' and 'w'.
1643         (exp2_immediate_p, spu_gen_exp2): Define.
1644         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1645         spu_convtf_1): Update parameter descriptions.
1646         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1647         * constraints.md ('v', 'w'): New.
1648         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1649         Remove.
1650         (i2f, I2F): New define_mode_attr.
1651         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1652         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1653         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1654         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1655         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1656         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1657         patterns for combine.
1658
1659 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1660
1661         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1662         (cprop, hoist, pre, store_motion): New debug counters.
1663         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1664         is not an RTL pass anymore.
1665         (pass_profiling): Remove extern decl for pass removed in 2005.
1666         (pass_gcse, pass_jump_bypass): Remove.
1667         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1668         to 0 for clean state.
1669         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1670         * cse.c (gate_handle_cse_after_global_opts,
1671         rest_of_handle_cse_after_global_opts): New functions.
1672         (pass_cse_after_global_opts): New pass, does local CSE.
1673         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1674         (TV_CPROP): New timevar.
1675         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1676         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1677         (gcse_main, recompute_all_luids): Remove.
1678         (compute_hash_table_work): Call max_reg_num instead of reading
1679         max_gcse_regno.
1680         (cprop_jump): Don't set run_jump_opt_after_gcse.
1681         (constprop_register): Always allow to alter jumps.
1682         (cprop_insn): Likewise.
1683         (do_local_cprop): Likewise.
1684         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1685         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1686         (find_implicit_sets): Add note about missed optimization opportunity.
1687         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1688         pass_rtl_cprop execute function.
1689         Don't bother tracking the pass number, each pass gets its own dumpfile
1690         now anyway.
1691         Always allow to alter jumpsand bypass jumps.
1692         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1693         will just find no suitable set.
1694         (pre_edge_insert): Fix dumping, this function is for PRE only.
1695         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1696         pass_rtl_pre execute function.
1697         (hoist_code): Return non-zero if something changed.  Keep track of
1698         substitutions and insertions for statistics gathering similar to PRE.
1699         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1700         called from the pass_rtl_hoist execute function.  Show pass statistics.
1701         (compute_store_table): Use max_reg_num directly instead of using the
1702         formerly global max_gcse_regno.
1703         (build_store_vectors): Likewise.
1704         (replace_store_insn): Fix dumping.
1705         (store_motion): Rename to ...
1706         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1707         pass, called from the pass_rtl_store_motion execute function.  Keep
1708         track of substitutions and insertions for statistics gathering similar
1709         to PRE.
1710         (bypass_jumps): Remove, fold interesting bits into ...
1711         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1712         from the pass_rtl_cprop execute function.
1713         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1714         pass_jump_bypass): Remove.
1715         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1716         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1717         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1718         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1719         (gate_rtl_store_motion, execute_rtl_store_motion,
1720         pass_rtl_store_motion): New.
1721         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1722         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1723         * passes.c (init_optimization_passes): Remove pass_gcse and
1724         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1725         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1726         instead of pass_jump_bypass.
1727
1728 2009-04-27  Richard Guenther  <rguenther@suse.de>
1729
1730         PR middle-end/39928
1731         * gimplify.c (gimplify_expr): If we are required to create
1732         a temporary make sure it ends up as register.
1733
1734 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1735
1736         PR target/39903
1737         * config/i386/i386.c (construct_container): Don't call
1738         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1739         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1740
1741 2009-04-27  Michael Matz  <matz@suse.de>
1742
1743         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1744         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1745         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1746         (dump_replaceable_exprs): Take a bitmap.
1747         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1748         array.
1749         (expand_gimple_basic_block): Likewise.
1750         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1751         replaceable_expressions member a bitmap.
1752         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1753         (mark_replaceable): Likewise.
1754         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1755         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1756
1757 2009-04-27  Richard Guenther  <rguenther@suse.de>
1758
1759         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1760         (verify_stmts): Dispatch to gimple/type verification code.
1761         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1762         issue with call argument types.
1763
1764 2009-04-27  Michael Matz  <matz@suse.de>
1765
1766         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1767         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1768         to above.
1769
1770 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1771             Eric Botcazou  <ebotcazou@adacore.com>
1772
1773         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1774         a label's basic block.
1775         (mark_target_live_regs): Tidy and rework obsolete comments.
1776         Change back DF problem to LIVE.  If a label starts a basic block,
1777         assume that all registers that used to be live then still are.
1778         (init_resource_info): If a label starts a basic block, set its
1779         BLOCK_FOR_INSN accordingly.
1780         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1781
1782 2009-04-27  Richard Guenther  <rguenther@suse.de>
1783
1784         * tree-flow-inline.h (function_ann): Remove.
1785         (get_function_ann): Likewise.
1786         * tree-dfa.c (create_function_ann): Remove.
1787         * tree-flow.h (struct static_var_ann_d): Remove.
1788         (struct function_ann_d): Likewise.
1789         (union tree_ann_d): Remove fdecl member.
1790         (function_ann_t): Remove.
1791         (function_ann, get_function_ann, create_function_ann): Remove
1792         declarations.
1793
1794 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1795
1796         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1797
1798 2009-04-27  Jan Hubicka  <jh@suse.cz>
1799
1800         * ipa-pure-const.c (struct funct_state_d): New fields
1801         state_previously_known, looping_previously_known; remove
1802         state_set_in_source.
1803         (analyze_function): Use new fields.
1804         (propagate): Avoid assumption that state_set_in_source imply
1805         nonlooping.
1806
1807         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1808         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1809         * cfgloop.h (finite_loop_p): Declare.
1810
1811 2009-04-26  Michael Matz  <matz@suse.de>
1812
1813         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1814
1815 2009-04-26  Michael Matz  <matz@suse.de>
1816
1817         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1818         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1819         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1820         pass_mark_used_blocks): Remove.
1821         * tree-optimize.c (pass_free_datastructures,
1822         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1823         * passes.c (init_optimization_passes): Don't call
1824         pass_mark_used_blocks, remove dead code.
1825
1826 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1827
1828         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1829         * tree-ssa-live.h (register_ssa_partition): Likewise.
1830
1831 2009-04-26  Michael Matz  <matz@suse.de>
1832
1833         Expand from SSA.
1834         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1835         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1836         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1837         SSA names. 
1838         (compare_pairs): Swap cost comparison.
1839         (coalesce_ssa_name): Don't use change_partition_var.
1840         * tree-nrv.c (struct nrv_data): Add modified member.
1841         (finalize_nrv_r): Set it.
1842         (tree_nrv): Use it to update statements.
1843         (pass_nrv): Require PROP_ssa.
1844         * tree-mudflap.c (mf_decl_cache_locals,
1845         mf_build_check_statement_for): Use make_rename_temp.
1846         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1847         * alias.c (find_base_decl): Handle SSA names.
1848         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1849         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1850         * rtl.h (set_reg_attrs_for_parm): Declare.
1851         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1852         to "optimized", remove unused locals at finish.
1853         (execute_free_datastructures): Make global, call
1854         delete_tree_cfg_annotations.
1855         (execute_free_cfg_annotations): Don't call
1856         delete_tree_cfg_annotations.
1857
1858         * ssaexpand.h: New file.
1859         * expr.c (toplevel): Include ssaexpand.h.
1860         (expand_assignment): Handle SSA names the same as register variables.
1861         (expand_expr_real_1): Expand SSA names.
1862         * cfgexpand.c (toplevel): Include ssaexpand.h.
1863         (SA): New global variable.
1864         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1865         (SSAVAR): New macro.
1866         (set_rtl): New helper function.
1867         (add_stack_var): Deal with SSA names, use set_rtl.
1868         (expand_one_stack_var_at): Likewise.
1869         (expand_one_stack_var): Deal with SSA names.
1870         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1871         before unique numbers.
1872         (expand_stack_vars): Use set_rtl.
1873         (expand_one_var): Accept SSA names, add asserts for them, feed them
1874         to above subroutines.
1875         (expand_used_vars): Expand all partitions (without default defs),
1876         then only the local decls (ignoring those expanded already).
1877         (expand_gimple_cond): Remove edges when jumpif() expands an
1878         unconditional jump.
1879         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1880         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1881         SSA name.
1882         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1883         members of SA; deal with PARM_DECL partitions here; expand
1884         all PHI nodes, free tree datastructures and SA.  Commit instructions
1885         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1886         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1887         info and statements at start, collect garbage at finish.
1888         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1889         (VAR_ANN_PARTITION) Remove.
1890         (change_partition_var): Don't declare.
1891         (partition_to_var): Always return SSA names.
1892         (var_to_partition): Only accept SSA names.
1893         (register_ssa_partition): Only check argument.
1894         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1895         member.
1896         (delete_var_map): Don't free it.
1897         (var_union): Only accept SSA names, simplify.
1898         (partition_view_init): Mark only useful SSA names as used.
1899         (partition_view_fini): Only deal with SSA names.
1900         (change_partition_var): Remove.
1901         (dump_var_map): Use ssa_name instead of partition_to_var member.
1902         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1903         basic blocks.
1904         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1905         (struct _elim_graph): New member const_dests; nodes member vector of
1906         ints.
1907         (set_location_for_edge): New static helper.
1908         (create_temp): Remove.
1909         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1910         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1911         (new_elim_graph): Allocate const_dests member.
1912         (clean_elim_graph): Truncate const_dests member.
1913         (delete_elim_graph): Free const_dests member.
1914         (elim_graph_size): Adapt to new type of nodes member.
1915         (elim_graph_add_node): Likewise.
1916         (eliminate_name): Likewise.
1917         (eliminate_build): Don't take basic block argument, deal only with
1918         partition numbers, not variables.
1919         (get_temp_reg): New static helper.
1920         (elim_create): Use it, deal with RTL temporaries instead of trees.
1921         (eliminate_phi): Adjust all calls to new signature.
1922         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1923         (rewrite_trees): Only do checking.
1924         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1925         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1926         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1927         contains_tree_r, MAX_STMTS_IN_LATCH,
1928         process_single_block_loop_latch, analyze_edges_for_bb,
1929         perform_edge_inserts): Remove.
1930         (expand_phi_nodes): New global function.
1931         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1932         functions, initialize new parameter, remember partitions having a
1933         default def.
1934         (finish_out_of_ssa): New global function.
1935         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1936         don't reset in_ssa_p here, don't disable TER when mudflap.
1937         (pass_del_ssa): Remove.
1938         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1939         partition members.
1940         (execute_free_datastructures): Declare.
1941         * Makefile.in (SSAEXPAND_H): New variable.
1942         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1943         * basic-block.h (commit_one_edge_insertion): Declare.
1944         * passes.c (init_optimization_passes): Move pass_nrv and
1945         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1946         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1947         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1948         (redirect_branch_edge): Deal with super block when expanding, split
1949         out jump patching itself into ...
1950         (patch_jump_insn): ... here, new static helper.
1951
1952 2009-04-26  Michael Matz  <matz@suse.de>
1953
1954         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1955         beyond num_ssa_names.
1956         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1957         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1958
1959 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1960
1961         PR inline-asm/39543
1962         * fwprop.c (forward_propagate_asm): New function.
1963         (forward_propagate_and_simplify): Propagate also into __asm, if it
1964         doesn't increase the number of referenced registers.
1965
1966         PR c/39889
1967         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1968
1969 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1970
1971         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1972         note_nonlocal_vla_type for nonlocal VLAs.
1973         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1974         contains_remapped_vars, remap_vla_decls): New functions.
1975         (convert_nonlocal_reference_stmt): If not optimizing, call
1976         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1977         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1978         if it wasn't found in var_map.
1979         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1980         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1981         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1982         declare_vars.
1983         * gimplify.c (nonlocal_vlas): New variable.
1984         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1985         referenced VLAs.
1986         (gimplify_body): Create and destroy nonlocal_vlas.
1987
1988         * dwarf2out.c (loc_descr_plus_const): New function.
1989         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1990         mem_loc_descriptor, loc_descriptor_from_tree_1,
1991         descr_info_loc, gen_variable_die): Use it.
1992
1993         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1994         !TREE_STATIC VAR_DECLs.
1995         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1996         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1997         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1998         DECL_BY_REFERENCE is valid.
1999         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2000         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2001         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2002         Copy DECL_BY_REFERENCE.
2003         (struct nesting_copy_body_data): New type.
2004         (nesting_copy_decl): New function.
2005         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2006         if they have variable length.
2007
2008 2009-04-26  Michael Matz  <matz@suse.de>
2009
2010         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2011         mark new temporaries for renaming.
2012
2013 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2014
2015         PR c/39581
2016         * c-decl.c (global_bindings_p): Return negative value.
2017         (c_variable_size): New.  Based on variable_size from
2018         stor-layout.c.
2019         (grokdeclarator): Call c_variable_size not variable_size.
2020
2021 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
2022
2023         * config/i386/i386.c (print_operand) ['z']: Fix typo.
2024
2025 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
2026
2027         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2028         Redefine it to just use mingw/include.
2029         (ASM_SPEC): Rules for -m32 and -m64.
2030         (LINK_SPEC): Use Likewise.
2031         (SPEC_32): New define.
2032         (SPEC_64): Likewise.
2033         (SUB_LINK_SPEC): Likewise.
2034         (MULTILIB_DEFAULTS): New define.
2035         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2036         Add multilib options.
2037         (MULTILIB_DIRNAMES): Likewise.
2038         (MULTILIB_OSDIRNAMES): Likewise.
2039         (LIBGCC): Likewise.
2040         (INSTALL_LIBGCC): Likewise.
2041
2042 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2043
2044         PR c/39556
2045         * c-tree.h (enum c_inline_static_type): New.
2046         (record_inline_static): Declare.
2047         * c-decl.c (struct c_inline_static, c_inline_statics,
2048         record_inline_static, check_inline_statics): New.
2049         (pop_file_scope): Call check_inline_statics.
2050         (start_decl): Call record_inline_static instead of pedwarning
2051         directly for static in inline function.
2052         * c-typeck.c (build_external_ref): Call record_inline_static
2053         instead of pedwarning directly for static referenced in inline
2054         function.
2055
2056 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
2057
2058         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2059         not new but only being rescanned.
2060         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2061         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2062         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2063         record_set_info, compute_set, grealloc): Remove.
2064         (recompute_all_luids): New function.
2065         (gcse_main): Don't compute sets, and don't do related memory
2066         allocations/free-ing.  If something changed before the end of the
2067         pass, update LUIDs using recompute_all_luids.
2068         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
2069         (free_gcse_mem): Don't free it either.
2070         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2071         Use the df insn LUIDs.
2072         (load_killed_in_block): Likewise.
2073         (compute_hash_table_work): Don't compute reg_set_in_block.
2074         (compute_transp): Use DF_REG_DEF_CHAINs.
2075         (local_cprop_pass): Don't use compute_sets and related functions.
2076         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2077         Use get_max_uid() instead of max_cuid.
2078         (insert_insn_end_basic_block, pre_insert_copy_insn,
2079         update_ld_motion_stores): Don't try to
2080         keep reg_set tables up to date.
2081         (pre_insert_copies): Use df insn LUIDs.
2082         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2083         (reg_set_info): Don't use extra bitmap argument.
2084         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
2085         information to compute regs_set_in_block.
2086         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2087         (bypass_jumps): Don't use compute_sets and friends.
2088
2089 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2090
2091         PR testsuite/39710
2092         * opts.c (undocumented_msg): Do not leave blank even with
2093         ENABLE_CHECKING.
2094
2095 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2096
2097         * c-decl.c (build_enumerator): Allow values folding to integer
2098         constants but not integer constant expressions with a pedwarn if
2099         pedantic.
2100
2101 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2102
2103         PR c/39582
2104         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2105         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2106         type is an integer constant.
2107
2108 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
2109
2110         PR target/39897
2111         * config/i386/i386.c (print_operand) ['z']: Revert handling of
2112         HImode operands.
2113
2114 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2115
2116         PR c/39564
2117         * c-decl.c (grokdeclarator): Diagnose declarations of functions
2118         with variably modified return type and no storage class
2119         specifiers, except for the case of nested functions.  Distinguish
2120         extern declarations of functions with variably modified return
2121         types from those of objects with variably modified types.
2122
2123 2009-04-25  Jan Hubicka  <jh@suse.cz>
2124
2125         * tree.c (list_equal_p): New function.
2126         * tree.h (list_equal_p): Declare.
2127         * coretypes.h (edge_def, edge, const_edge, basic_block_def
2128         basic_block_def, basic_block, const_basic_block): New.
2129         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2130         (redirect_eh_edge): New function.
2131         (make_eh_edge_update_phi): EH edges are not abnormal.
2132         * except.c: Include tree-flow.h.
2133         (list_match): New function.
2134         (eh_region_replaceable_by_p): New function.
2135         (replace_region): New function.
2136         (hash_type_list): New function.
2137         (hash_eh_region): New function.
2138         (eh_regions_equal_p): New function.
2139         (merge_peers): New function.
2140         (remove_unreachable_regions): Verify EH tree when checking;
2141         merge peers.
2142         (copy_eh_region_1): New function.
2143         (copy_eh_region): New function.
2144         (push_reachable_handler): New function.
2145         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2146         regions without label but with live RESX.
2147         * except.h (redirect_eh_edge_to_label): New.
2148         * tree-flow.h (redirect_eh_edge): New.
2149         * coretypes.h (edge_def, edge, const_edge, basic_block_def
2150         basic_block_def, basic_block, const_basic_block): Remove.
2151         * Makefile.in (except.o): Add dependency on tree-flow.h
2152         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2153         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2154         Remove.
2155
2156 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2157
2158         PR bootstrap/39645
2159         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2160         on the destination of memcpy.
2161
2162 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
2163
2164         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2165         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2166         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2167
2168 2009-04-25  Jan Hubicka  <jh@suse.cz>
2169
2170         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2171         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2172         to be reached by different label than left.
2173         (update_eh_edges): Update comment; remove edge_to_remove if possible
2174         and return true if suceeded.
2175         (cleanup_empty_eh): Accept sharing map; handle shared regions.
2176         (cleanup_eh): Compute sharing map.
2177         * except.c (remove_eh_handler_and_replace): Add argument if we should
2178         update regions.
2179         (remove_unreachable_regions): Update for label sharing.
2180         (label_to_region_map): Likewise.
2181         (get_next_region_sharing_label): New function.
2182         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2183         prev_try pointers.
2184         (remove_eh_handler): Update.
2185         (remove_eh_region_and_replace_by_outer_of): New function.
2186         * except.h (struct eh_region): Add next_region_sharing_label.
2187         (remove_eh_region_and_replace_by_outer_of,
2188         get_next_region_sharing_label): Declare.
2189         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2190
2191 2009-04-25  Jan Hubicka  <jh@suse.cz>
2192
2193         * tree-cfg.c (split_critical_edges): Split also edges where we can't
2194         insert code even if they are not critical.
2195
2196 2009-04-25  Jan Hubicka  <jh@suse.cz>
2197
2198         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2199         (gimple_can_remove_branch_p): EH edges won't remove branch by
2200         redirection.
2201         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2202         updating of non-abnormal EH edges.
2203         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2204         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2205         (split_critical_edges): Split also edges where emitting code on them
2206         will lead to splitting later.
2207
2208 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
2209             H.J. Lu  <hongjiu.lu@intel.com>
2210
2211         PR target/39590
2212         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2213         the configured assembler supports fildq and fistpq mnemonics.
2214         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2215         * configure: Regenerated.
2216         * config.in: Ditto.
2217
2218         * config/i386/i386.c (print_operand): Handle 'Z'.
2219         ['z']: Remove handling of special fild/fist suffixes.
2220         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2221         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2222         suffix of fild insn.
2223         (*floatsi<mode>2_vector_mixed): Ditto.
2224         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2225         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2226         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2227         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2228         * config/i386/gas.h (GAS_MNEMONICS): Remove.
2229
2230 2009-04-25  Ben Elliston  <bje@au.ibm.com>
2231  
2232         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2233         the source of a set operation.
2234
2235 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
2236
2237         * target.h (struct gcc_target): Add case_values_threshold field.
2238         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2239         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2240         * targhooks.c (default_case_values_threshold): New function.
2241         * targhooks.h (default_case_values_threshold): Declare function.
2242         * stmt.c (expand_case): Use case_values_threshold target hook.
2243         * expr.h (case_values_threshold): Remove declartation.
2244         * expr.c (case_values_threshold): Remove function.
2245         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2246
2247         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2248         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2249         (avr_case_values_threshold): Declare as static.
2250         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2251
2252         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2253         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2254         (mn10300_case_values_threshold): New function.
2255
2256 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2257
2258         * ira.c (setup_cover_and_important_classes): Add enum cast.
2259
2260 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2261
2262         * genpreds.c (write_enum_constraint_num): Output definition of
2263         CONSTRAINT_NUM_DEFINED_P macro.
2264         * ira.c (setup_cover_and_important_classes): Use
2265         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2266         
2267 2009-04-24  DJ Delorie  <dj@redhat.com>
2268
2269         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2270         __SH2A_SINGLE_ONLY__ also.
2271
2272 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
2273
2274         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2275         (movdf_internal): Ditto.
2276         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2277         SFmode and DFmode constants.
2278         (ia64_print_operand): Add 'G' format for printing
2279         floating point constants.
2280
2281 2009-04-24  Richard Guenther  <rguenther@suse.de>
2282
2283         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2284         from unsigned additions.
2285
2286 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
2287
2288         * c-typeck.c (set_init_index): Allow array designators that are
2289         not integer constant expressions with a pedwarn if pedantic.
2290
2291 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2292
2293         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2294         zero if no overlap in nonzero bits between the operands.
2295
2296 2009-04-24  Ian Lance Taylor  <iant@google.com>
2297
2298         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2299         (record_dead_and_set_regs): Likewise.
2300         * df.h (struct df_mw_hardreg): Change flags field to int.
2301         (struct df_base_ref): Likewise.
2302         (struct df): Change changeable_flags field to int.
2303         * df-scan.c (df_defs_record): Change clobber_flags to int.
2304         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2305         constants rather than #define macros.
2306         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2307         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2308         (enum dwarf_calling_convention): Likewise.
2309         (enum dwarf_line_number_x_ops): Likewise.
2310         (enum dwarf_call_frame_info): Likewise.
2311         (enum dwarf_source_language): Likewise.
2312         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2313         (add_calling_convention_attribute): Likewise.
2314         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2315         (combine_comparisons): Change compcode to int.  Add cast to enum type.
2316         * genrecog.c (maybe_both_true_2): Change c to int.
2317         (write_switch): Likewise.  Add cast to enum type.
2318         * gimplify.c (gimplify_omp_for): Handle return values from
2319         gimplify_expr using MIN rather than bitwise or.
2320         (gimplify_expr): Add cast to enum type.
2321         * ipa-prop.c (update_jump_functions_after_inlining): Change
2322         IPA_BOTTOM to IPA_JF_UNKNOWN.
2323         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2324         Add casts to enum type.
2325         (setup_cover_and_important_classes): Change cl to int.  Add casts
2326         to enum type.
2327         (setup_class_translate): Change cl and mode to int.
2328         (ira_init_once): Change mode to int.
2329         (free_register_move_costs): Likewise.
2330         (setup_prohibited_mode_move_regs): Add casts to enum type.
2331         * langhooks.c (add_builtin_function_common): Rework assertion that
2332         value fits bitfield.
2333         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2334         * omega.c (omega_do_elimination): Avoid math on enum types.
2335         * optabs.c (expand_vec_shift_expr): Remove casts to int.
2336         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
2337         int local to handle integral_argment value.
2338         * regmove.c (try_auto_increment): Change PUT_MODE to
2339         PUT_REG_NOTE_KIND.
2340         * reload.c (push_secondary_reload): Add casts to enum type.
2341         (secondary_reload_class, find_valid_class): Likewise.
2342         * reload1.c (emit_input_reload_insns): Likewise.
2343         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2344         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2345         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2346         constant.
2347         * tree.c (build_common_builtin_nodes): Add casts to enum type.
2348         * tree-complex.c (complex_lattice_t): Typedef to int rather than
2349         enum type.
2350         (expand_complex_libcall): Add casts to enum type.
2351         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
2352         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
2353         with ERROR_MARK, not NUM_TREE_CODES.
2354         (vect_create_epilog_for_reduction): Likewise.
2355         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
2356         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
2357         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
2358         enum machine_mode.
2359         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
2360         vect_unused_in_loop.  Change 0 to loop_vect.
2361         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
2362         * var-tracking.c (get_init_value): Change return type to enum
2363         var_init_status.
2364         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
2365         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
2366         arm_fp_model.
2367         (arm_override_options): Add casts to enum type.
2368         (arm_emit_tls_decoration): Likewise.
2369         * config/i386/i386.c (ix86_function_specific_restore): Add casts
2370         to enum type.
2371         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
2372         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
2373         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
2374         enum type.
2375         * config/s390/s390.c (code_for_builtin_64): Change to array of
2376         enum insn_code.
2377         (code_for_builtin_31): Likewise.
2378         (s390_expand_builtin): Change code_for_builtin to enum insn_code
2379         const *.
2380         * config/sparc/sparc.c (sparc_override_options): Change value
2381         field in struct code_model to enum cmodel.  In initializer change
2382         0 to NULL and add cast to enum type.
2383
2384         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
2385         Change all callers.  Issue a -Wc++-compat warning using
2386         lhs_origtype if necessary.
2387         (convert_for_assignment): Issue -Wc++-compat warnings about
2388         invalid conversions to enum type on assignment.
2389         * c-common.h (build_modify_expr): Update declaration.
2390
2391 2009-04-24  Nick Clifton  <nickc@redhat.com>
2392
2393         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
2394         (function_arg_advance): Likewise.
2395         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
2396         5th alternative.
2397
2398 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2399
2400         * config/s390/constraints.md ('I', 'J'): Fix condition.
2401
2402 2009-04-24  Diego Novillo  <dnovillo@google.com>
2403
2404         * gengtype-parse.c (parse_error): Add newline after message.
2405
2406 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2407
2408         * config/i386/sse.md (avxmodesuffixs): Removed.
2409         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2410         (*avx_pinsr<ssevecsize>): This.
2411
2412 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2413
2414         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2415         follow chains of regs with a single definition, and allow expressions
2416         that are function_invariant_p.
2417         (simple_rhs_p): Allow expressions that are function_invariant_p.
2418
2419 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
2420
2421         PR middle-end/39867
2422         * fold-const.c (fold_cond_expr_with_comparison): When folding
2423         > and >= to MAX, make sure the MAX uses the same type as the
2424         comparison's operands.
2425
2426 2009-04-24  Nick Clifton  <nickc@redhat.com>
2427
2428         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2429         addressing for DImode accesses.
2430         (frv_print_operand_address): Handle PLUS case.
2431         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
2432
2433 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
2434
2435         PR rtl-optimization/39794
2436         * alias.c (canon_true_dependence): Add x_addr argument.
2437         * rtl.h (canon_true_dependence): Adjust prototype.
2438         * cse.c (check_dependence): Adjust canon_true_dependence callers.
2439         * cselib.c (cselib_invalidate_mem): Likewise.
2440         * gcse.c (compute_transp): Likewise.
2441         * dse.c (scan_reads_nospill): Likewise.
2442         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
2443         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2444         canon_base_addr of the group, plus optional offset.
2445         (struct group_info): Rename canon_base_mem to
2446         canon_base_addr.
2447         (get_group_info): Set canon_base_addr to canon_rtx of base, not
2448         canon_rtx of base_mem.
2449
2450 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
2451
2452         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2453         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2454
2455 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2456
2457         * config/spu/spu-builtins.h: Delete file.
2458
2459         * config/spu/spu.h (enum spu_builtin_type): Move here from
2460         spu-builtins.h.
2461         (struct spu_builtin_description): Likewise.  Add GTY marker.
2462         Do not use enum spu_function_code or enum insn_code.
2463         (spu_builtins): Add extern declaration.
2464
2465         * config/spu/spu.c: Do not include "spu-builtins.h".
2466         (enum spu_function_code, enum spu_builtin_type_index,
2467         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2468         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2469         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2470         unsigned_V2DI_type_node): Move here from spu-builtins.h.
2471         (spu_builtin_types): Make static.  Add GTY marker.
2472         (spu_builtins): Add extern declaration with GTY marker.
2473         Include "gt-spu.h".
2474
2475         * config/spu/spu-c.c: Do not include "spu-builtins.h".
2476         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2477         Check programmatically whether all parameters are scalar.
2478
2479         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2480
2481 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2482
2483         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2484         assignment from the constructor either if the target is volatile.
2485
2486 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
2487
2488         * config/arm/arm.md (insv): Do not share operands[0].
2489
2490 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2491
2492         * config/vxlib-tls.c (active_tls_threads): Delete.
2493         (delete_hook_installed): New.
2494         (tls_delete_hook): Don't delete the delete hook.
2495         (tls_destructor): Delete it here.
2496         (__gthread_set_specific): Adjust installing the delete hook.
2497         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2498         __gthread_leave_tsd_dtor_context.
2499
2500 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
2501
2502         * c-format.c (gcc_tdiag_char_table): Add support for %E.
2503
2504 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
2505
2506         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2507         enum type.
2508         (alpha_rtx_costs): Ditto.
2509         (emit_unlikely_jump): Use add_reg_note.
2510         (emit_frame_store_1): Ditto.
2511         (alpha_expand_prologue): Ditto.
2512         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2513         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2514
2515 2009-04-23  Nick Clifton  <nickc@redhat.com>
2516
2517         * config/v850/v850.md (epilogue): Remove suppressed code.
2518         (return): Rename to return_simple and remove test of frame size.
2519         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2520         to gen_return_simple.
2521
2522 2009-04-22  Jing Yu  <jingyu@google.com>
2523
2524         PR testsuite/39781
2525         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2526
2527 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2528
2529         PR C/31499
2530         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2531         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2532         value is a VECTOR_CST, the element type is the element type of the
2533         vector.
2534
2535 2009-04-22  DJ Delorie  <dj@redhat.com>
2536
2537         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2538
2539 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2540
2541         * alias.c (find_base_term): Move around LO_SUM case, so that
2542         CONST falls through into PLUS/MINUS handling.
2543
2544         PR c/39855
2545         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2546         into 0, use omit_one_operand.
2547
2548 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2549
2550         * config/rs6000/linux-unwind.h (get_regs): Remove type
2551         puns. Change the type of `pc' to an array of unsigned ints and
2552         update all users.  Constify frame24.
2553
2554 2009-04-22  DJ Delorie  <dj@redhat.com>
2555
2556         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2557         declarations before code.
2558         (current_function_special_page_vector): Likewise.
2559         (m32c_expand_insv): Silence a warning.
2560
2561 2009-04-21  Taras Glek  <tglek@mozilla.com>
2562
2563         * alias.c: Update GTY annotations to new syntax.
2564         * basic-block.h: Likewise.
2565         * bitmap.h: Likewise.
2566         * c-common.h: Likewise.
2567         * c-decl.c: Likewise.
2568         * c-parser.c: Likewise.
2569         * c-pragma.c: Likewise.
2570         * c-tree.h: Likewise.
2571         * cfgloop.h: Likewise.
2572         * cgraph.h: Likewise.
2573         * config/alpha/alpha.c: Likewise.
2574         * config/arm/arm.h: Likewise.
2575         * config/avr/avr.h: Likewise.
2576         * config/bfin/bfin.c: Likewise.
2577         * config/cris/cris.c: Likewise.
2578         * config/darwin.c: Likewise.
2579         * config/frv/frv.c: Likewise.
2580         * config/i386/i386.c: Likewise.
2581         * config/i386/i386.h: Likewise.
2582         * config/i386/winnt.c: Likewise.
2583         * config/ia64/ia64.h: Likewise.
2584         * config/iq2000/iq2000.c: Likewise.
2585         * config/mips/mips.c: Likewise.
2586         * config/mmix/mmix.h: Likewise.
2587         * config/pa/pa.c: Likewise.
2588         * config/pa/pa.h: Likewise.
2589         * config/rs6000/rs6000.c: Likewise.
2590         * config/s390/s390.c: Likewise.
2591         * config/sparc/sparc.c: Likewise.
2592         * config/xtensa/xtensa.c: Likewise.
2593         * cselib.h: Likewise.
2594         * dbxout.c: Likewise.
2595         * dwarf2out.c: Likewise.
2596         * except.c: Likewise.
2597         * except.h: Likewise.
2598         * fixed-value.h: Likewise.
2599         * function.c: Likewise.
2600         * function.h: Likewise.
2601         * gimple.h: Likewise.
2602         * integrate.c: Likewise.
2603         * optabs.c: Likewise.
2604         * output.h: Likewise.
2605         * real.h: Likewise.
2606         * rtl.h: Likewise.
2607         * stringpool.c: Likewise.
2608         * tree-data-ref.c: Likewise.
2609         * tree-flow.h: Likewise.
2610         * tree-scalar-evolution.c: Likewise.
2611         * tree-ssa-address.c: Likewise.
2612         * tree-ssa-alias.h: Likewise.
2613         * tree-ssa-operands.h: Likewise.
2614         * tree.c: Likewise.
2615         * tree.h: Likewise.
2616         * varasm.c: Likewise.
2617         * varray.h: Likewise.
2618         * vec.h: Likewise.
2619         * coretypes.h: Do not define GTY macro if it is already defined.
2620         * doc/gty.texi: Update GTY documentation to new syntax.
2621         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2622         annotations on structs.
2623         * gengtype-parse.c: Likewise.
2624
2625 2009-04-22  Mark Heffernan  <meheff@google.com>
2626
2627         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2628
2629 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2630
2631         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2632         where appropriate.
2633
2634 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2635
2636         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2637         the same as a PLUS without a shift.  Increase the cost of a
2638         CONST_INT in MULT.
2639
2640 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2641
2642         * Makefile.in: Update dependencies.
2643         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2644         * errors.h: Remove bogus comment about compatibility.
2645         (warning): Update declaration.
2646         * genautomata.c: Update all calls to warning.
2647         * gimple.c: Do not include errors.h. Include toplev.h.
2648         * tree-ssa-structalias.c: Do not include errors.h.
2649         * omega.c: Likewise.
2650         * tree-ssa-reassoc.c: Likewise.
2651         * config/spu/spu-c.c: Likewise.
2652         * config/spu/t-spu-elf: Update dependencies.
2653
2654 2009-04-22  Richard Guenther  <rguenther@suse.de>
2655
2656         PR tree-optimization/39824
2657         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2658         make sure the types are compatible.
2659
2660 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2661
2662         PR c++/14875
2663         * c-common.c (c_parse_error): Take a token_flags parameter.
2664         Use token_type for the token type instead.
2665         Pass token_flags to cpp_type2name.
2666         * c-common.h (c_parse_error): Update declaration.
2667         * c-parser.c (c_parser_error): Pass 0 as token flags.
2668
2669 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2670
2671         PR rtl-optimization/39580
2672         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2673         
2674 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2675
2676         * function.c (expand_function_end): Do not emit a jump to the "naked"
2677         return label for fall-through returns.
2678         * except.c (sjlj_emit_function_exit): Always place the call to the
2679         unregister function at the location installed by expand_function_end.
2680
2681 2009-04-22  Richard Guenther  <rguenther@suse.de>
2682
2683         PR tree-optimization/39845
2684         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2685         (gen_inbound_check): Likewise.
2686
2687 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2688
2689         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2690         padding for PPC.
2691         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2692         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2693
2694 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2695
2696         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2697         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2698         shift counts to avoid out-of-bounds array accesses.
2699
2700 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2701
2702         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2703         (Pmode): Move above.
2704
2705 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2706
2707         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2708         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2709         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2710         * config/alpha/alpha.h: Ditto.
2711         * config/alpha/alpha.md: Ditto.
2712         * config/alpha/constraints.md: Ditto.
2713         * config/alpha/predicates.md: Ditto.
2714         
2715 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2716
2717         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2718         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2719         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2720         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2721         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2722         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2723         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2724         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2725         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2726         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2727         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2728         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2729         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2730         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2731         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2732         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2733         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2734         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2735         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2736         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2737         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2738         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2739         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2740         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2741         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2742         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2743         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2744
2745 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2746
2747         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2748         references from comments.
2749         * cfgbuild.c: (count_basic_blocks): Delete.
2750         (find_basic_blocks_1): Delete.
2751         (find_basic_blocks): Delete.
2752         * except.c (finish_eh_generation): Make static.  Move comment from
2753         except.h here.  Remove find_basic_blocks references from comments.
2754         * except.h (finish_eh_generation): Delete.
2755         * basic-block.h (find_basic_blocks): Delete.
2756         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2757
2758 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2759
2760         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2761         (sdbout_parms):  Likewise.
2762
2763 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2764
2765         * config/sh/sh.c (prepare_cbranch_operands): Use
2766         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2767         (expand_cbranchdi4): Likewise.
2768         (from_compare): Add cast to enum type.
2769         (expand_cbranchsi4): Use add_reg_note.
2770         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2771         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2772         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2773         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2774         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2775         instead of CODE_FOR_nothing.
2776         (cbranchdi4): Likewise.  Fix the order of arguments for
2777         gen_rtx_fmt_ee.
2778         (push_fpscr): Use add_reg_note.
2779         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2780         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2781         
2782 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2783
2784         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2785         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2786         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2787         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2788         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2789         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2790         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2791         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2792         config/alpha/x-vms, config/arc/t-arc,
2793         config/arm/README-interworking, config/arm/arm-c.c,
2794         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2795         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2796         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2797         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2798         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2799         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2800         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2801         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2802         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2803         config/cris/t-elfmulti, config/crx/t-crx,
2804         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2805         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2806         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2807         config/h8300/t-h8300, config/i386/athlon.md,
2808         config/i386/darwin-libgcc.10.4.ver,
2809         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2810         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2811         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2812         config/i386/t-linux64, config/i386/t-nwld,
2813         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2814         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2815         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2816         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2817         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2818         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2819         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2820         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2821         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2822         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2823         config/m68k/t-uclinux, config/mcore/t-mcore,
2824         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2825         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2826         config/mips/crtn.asm, config/mips/irix-crti.asm,
2827         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2828         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2829         config/mips/mips-fixed.md, config/mips/sb1.md,
2830         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2831         config/mips/t-iris6, config/mips/t-isa3264,
2832         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2833         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2834         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2835         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2836         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2837         config/mn10300/t-linux, config/mn10300/t-mn10300,
2838         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2839         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2840         config/picochip/libgccExtras/clzsi2.asm,
2841         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2842         config/rs6000/darwin-libgcc.10.4.ver,
2843         config/rs6000/darwin-libgcc.10.5.ver,
2844         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2845         config/rs6000/t-aix43, config/rs6000/t-aix52,
2846         config/rs6000/t-darwin, config/rs6000/t-fprules,
2847         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2848         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2849         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2850         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2851         config/rs6000/t-rtems, config/rs6000/t-spe,
2852         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2853         config/score/t-score-elf, config/sh/divcost-analysis,
2854         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2855         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2856         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2857         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2858         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2859         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2860         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2861         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2862         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2863         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2864         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2865         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2866         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2867         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2868         * config/h8300/genmova.sh: Include copyright and license notices
2869         in generated output.
2870         * config/h8300/mova.md: Regenerate.
2871         * doc/install.texi2html: Include word "Copyright" in copyright
2872         notice and use name "Free Software Foundation, Inc.".
2873         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2874         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2875         ChangeLog-2007, ChangeLog-2008: Correct dates.
2876
2877 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2878
2879         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2880         NE_EXPR operations as well.
2881         * c-parser.c (c_parser_condition): Do not set location information on
2882         the condition.
2883         (c_parser_conditional_expression): Likewise.
2884         (c_parser_binary_expression): Set location information on operators.
2885         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2886         TRUTH_NOT_EXPR has been folded.
2887         * fold-const.c (fold_truth_not_expr): Copy location information from
2888         the incoming expression to the outgoing one.
2889         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2890         recursive calls on the LHS of the operator but pass that of the
2891         operator to recursive calls on the RHS of the operator.  Set it
2892         on the COND_EXPR.
2893         (shortcut_cond_expr): Set the locus of the operator on the second
2894         COND_EXPR and that of the expression on the first in degenerate cases.
2895         Pass the locus of the expression to calls to shortcut_cond_r.
2896         Set the locus of the 'then' block on the associated jump, if any.
2897         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2898         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2899         expression to call to gimplify_boolean_expr.
2900
2901 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2902
2903         * config.gcc: Add additional configuration for
2904         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2905         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2906         (CPP_SPEC): Redefine for allowing -municode option.
2907         (STARTFILE_SPEC): Likewise.
2908         * config/i386/t-mingw-w64: New.
2909         * config/i386/mingw-w64.opt: New.
2910         (municode): Add new target option.
2911         * doc/invoke.texi (municode): Add documentation for new option.
2912
2913 2009-04-21  Ian Lance Taylor  <iant@google.com>
2914
2915         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2916         Correct test for number of arguments.
2917         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2918
2919 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2920
2921         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2922         argument of emit_library_call.
2923
2924 2009-04-21  Richard Guenther  <rguenther@suse.de>
2925
2926         PR middle-end/39829
2927         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2928         inside VIEW_CONVERT_EXPRs.
2929
2930 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2931
2932         * tree-switch-conversion.c (build_constructors): Split a long line.
2933         (constructor_contains_same_values_p): New function.
2934         (build_one_array): Create assigns of constants if possible, do not
2935         call mark_sym_for_renaming, call update_stmt.
2936         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2937         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2938         update_stmt.
2939         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2940         find_new_referenced_vars, call update_stmt.
2941         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2942         instead of calling make_rename_temp.  Do not call
2943         find_new_referenced_vars or mark_symbols_for_renaming, call
2944         update_stmt.
2945
2946 2009-04-21  Richard Guenther  <rguenther@suse.de>
2947
2948         PR tree-optimization/39827
2949         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2950         (tree_ssa_phiprop): Pass the correct array size.
2951
2952 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2953
2954         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2955
2956 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2957
2958         PR 16202
2959         * c-typeck.c (lvalue_p): Move declaration ...
2960         * c-common.h (lvalue_p): ... to here.
2961         * c-common.c (candidate_equal_p): New.
2962         (add_tlist): Use it.
2963         (merge_tlist): Use it.
2964         (warn_for_collisions_1): Likewise.
2965         (warning_candidate_p): Accept more candidates.
2966         (verify_tree): A warning candidate can be an expression. Use
2967         candidate_equal_p.
2968
2969 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2970
2971         PR target/5267
2972         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2973         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2974         options.  Remove -mcall-solaris documentation.
2975
2976 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2977
2978         PR c++/13358
2979         * doc/invoke.texi (-Wlong-long): Update description.
2980         * c-lex (interpret_integer): Only warn if there was no previous
2981         overflow and -Wlong-long is enabled.
2982         * c-decl.c (declspecs_add_type): Drop redundant flags.
2983         * c.opt (Wlong-long): Init to -1.
2984         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2985         and front-end warn_long_long. Wlong-long only depends on other
2986         flags if it is uninitialized.
2987         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2988         the same for CPP and FE.
2989         (restore_extension_diagnostics): Likewise.
2990
2991 2009-04-20  Ian Lance Taylor  <iant@google.com>
2992
2993         Fix enum conversions which are invalid in C++:
2994         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2995         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2996         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2997         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2998         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2999         (dbxout_parms): Likewise.
3000         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
3001         (df_clear_flags): Likewise.
3002         * df-problems.c (df_rd_bb_local_compute_process_def): Change
3003         top_flag parameter to int.
3004         (df_chain_create_bb_process_use): Likewise.
3005         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3006         Remove cast.
3007         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3008         (df_ref_create_structure, df_def_record_1): Likewise.
3009         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3010         (df_notes_rescan): Change 0 to VOIDmode in function call.
3011         (df_get_call_refs, df_insn_refs_collect): Likewise.
3012         (df_bb_regs_collect): Likewise.
3013         (df_entry_block_defs_collect): Likewise.
3014         (df_exit_block_uses_collect): Likewise.
3015         * df.h: Update declarations.
3016         * double-int.c (double_int_divmod): Add cast to enum type.
3017         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3018         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3019         (based_loc_descr): Likewise.
3020         (loc_descriptor_from_tree_1): Change first_op and second_op to
3021         enum dwarf_location_atom.  Add cast to enum type.
3022         * expmed.c (init_expmed): Change 0 to SET in function call.
3023         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
3024         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3025         (do_store_flag): Likewise.
3026         * fixed-value.h (struct fixed_value): Change mode to enum
3027         machine_mode.
3028         * function.c (assign_parms): Change 0 to VOIDmode in function call.
3029         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3030         function call.
3031         (insert_insn_decl, insert_decl, insert_state): Likewise.
3032         (automata_list_finish): Likewise.
3033         * genrecog.c (process_define_predicate): Add cast to enum type.
3034         * gensupport.c (init_predicate_table): Add cast to enum type.
3035         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3036         function call.
3037         (gimple_build_call_1, gimple_build_label): Likewise.
3038         (gimple_build_goto, gimple_build_asm_1): Likewise.
3039         (gimple_build_switch_1, gimple_build_cdt): Likewise.
3040         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
3041         (enum fallback): Rename from enum fallback_t.
3042         (fallback_t): Typedef as int.
3043         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3044         GSI_SAME_STMT in function call.
3045         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3046         enum type.
3047         (setup_reg_class_relations): Likewise.
3048         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
3049         (setup_prohibited_class_mode_regs): Add cast to enum type.
3050         (setup_prohibited_mode_move_regs): Likewise.
3051         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
3052         (record_address_regs): Change i to enum reg_class.
3053         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3054         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3055         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3056         (GET_MODE_2XWIDER_MODE): Likewise.
3057         (GET_CLASS_NARROWEST_MODE): Likewise.
3058         * omp-low.c (expand_omp_for): Add cast to enum type.
3059         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3060         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3061         * postreload.c (reload_cse_simplify_operands): Change rclass local
3062         to enum reg_class.
3063         * predict.c (combine_predictions_for_insn): Change best_predictor
3064         and predictor to enum br_predictor.
3065         (combine_predictions_for_bb): Likewise.
3066         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3067         use SET_PREDICT_EXPR_OUTCOME.
3068         * real.c (real_arithmetic): Change icode to code in function call.
3069         * reginfo.c (init_move_cost): Add casts to enum type.
3070         (init_reg_sets_1, init_fake_stack_mems): Likewise.
3071         * regmove.c (regclass_compatible_p): Change class0 and class1 to
3072         enum reg_class.
3073         * reload.c (find_valid_class): Add casts to enum type.
3074         (push_reload): Change 0 to NO_REGS in function call.
3075         (find_reloads): Change this_alternative to array of enum
3076         reg_class.  Remove some now-unnecessary casts.
3077         (make_memloc): Change 0 to VOIDmode in function call.
3078         * reload1.c (reload): Change 0 to VOIDmode in function call.
3079         (eliminate_regs_1, elimination_effects): Likewise.
3080         (eliminate_regs_in_insn): Likewise.
3081         (emit_input_reload_insns): Add cast to enum type.
3082         (delete_output_reload): Change 0 to VOIDmode in function call.
3083         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3084         to enum type in function call.
3085         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3086         (SET_PREDICT_EXPR_OUTCOME): Define.
3087         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
3088         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3089         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3090         (dump_function): Likewise.
3091         * tree-dump.h: Update declarations.
3092         * tree-pass.h: Update declarations.
3093         * varasm.c (assemble_integer): Change mclass to enum mode_class.
3094         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3095         enum type.
3096         (arm_rtx_costs_1): Correct parenthesization.
3097         (arm_rtx_costs): Add casts to enum type.
3098         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3099         (vfp_emit_fstmd): Use add_rg_note.
3100         (emit_multi_reg_push, emit_sfm): Likewise.
3101         (thumb_set_frame_pointer): Likewise.
3102         (arm_expand_prologue): Likewise.
3103         (arm_regno_class): Change return type to enum reg_class.
3104         (thumb1_expand_prologue): Use add_reg_note.
3105         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3106         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3107         in function call.
3108         * config/arm/gentune.sh: Add cast to enum type.
3109         * config/arm/arm-tune.md: Rebuild.
3110         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3111         (ix86_split_fp_branch, predict_jump): Likewise.
3112         (ix86_expand_multi_arg_builtin): Change sub_code from enum
3113         insn_code to enum rtx_code.
3114         (ix86_builtin_vectorized_function): Add cast to enum type.
3115         * config/i386/i386.md (truncdfsf2): Change slot to enum
3116         ix86_stack_slot.
3117         (truncxf<mode>2, isinf<mode>2): Likewise.
3118         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3119         enum type.
3120         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3121         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3122         (insert_bundle_state): Change 1 to INSERT in function call.
3123         (ia64_add_bundle_selector_before): Likewise.
3124         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3125         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3126         (restore_stack_nonlocal): Likewise.
3127         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3128         function call.
3129         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3130         function call.
3131         (mips_rtx_costs): Likewise.
3132         (mips_override_options): Add casts to enum type.
3133         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3134         in function call.
3135         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3136         (store_reg, set_reg_plus_d): Likewise.
3137         (hppa_expand_prologue, hppa_profile_hook): Likewise.
3138         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3139         cast to enum type.
3140         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3141         function call.
3142         (emit_unlikely_jump): Use add_reg_note.
3143         (rs6000_emit_allocate_stack): Likewise.
3144         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3145         (output_toc): Change 1 to INSERT in function call.
3146         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3147         (rs6000_initialize_trampoline): Likewise.
3148         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3149         function call.
3150         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3151         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3152         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3153         (save_gprs): Use add_reg_note.
3154         (s390_emit_prologue): Likewise.
3155         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3156         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3157         (sparc_fold_builtin): Add cast to enum type.
3158         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3159         enum insn_code.
3160         (spu_expand_prologue): Use add_reg_note.
3161         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
3162
3163 2009-04-20  Ian Lance Taylor  <iant@google.com>
3164
3165         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3166         (c_parser_postfix_expression_after_primary): Get VEC for list of
3167         arguments.  Get original types of arguments.  Call
3168         build_function_call_vec.
3169         (cached_expr_list_1, cached_expr_list_2): New static variables.
3170         (c_parser_expr_list): Change return type to VEC *.  Add
3171         p_orig_types parameter.  Change all callers.
3172         (c_parser_release_expr): New static function.
3173         (c_parser_vec_to_tree_list): New static function.
3174         * c-typeck.c (build_function_call): Rewrite to build a VEC and
3175         call build_function_call_vec.
3176         (build_function_call_vec): New function, based on old
3177         build_function_call.
3178         (convert_arguments): Remove nargs and argarray parameters.  Change
3179         values to a VEC.  Add origtypes parameter.
3180         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
3181         (convert_for_assignment): Add origtype parameter.  Change all
3182         callers.  If warn_cxx_compat, check for conversion to an enum
3183         type when calling a function.
3184         (store_init_value): Add origtype parameter.  Change all callers.
3185         (digest_init): Likewise.
3186         (struct init_node): Add origtype field.
3187         (add_pending_init): Add origtype parameter.  Change all callers.
3188         (output_init_element): Likewise.
3189         (output_pending_init_elements): Pass origtype from init_node to
3190         output_init_element.
3191         (process_init_element): Pass origtype from c_expr to
3192         output_init_element.
3193         (c_finish_return): Add origtype parameter.  Change all callers.
3194         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
3195         caller.
3196         (sync_resolve_params): Likewise.
3197         (sync_resolve_return): Change params to first_param.  Change caller.
3198         (resolve_overloaded_builtins): Change params to VEC *.  Change
3199         callers.  Save first parameter around call to build_function_call_vec.
3200         * c-decl.c (finish_decl): Add origtype parameter.  Change all
3201         callers.  Call build_function_call_vec rather than
3202         build_function_call for cleanup.
3203         * c-tree.h: Update declarations.
3204         * c-common.h: Update declarations.
3205         * stub-objc.c (objc_rewrite_function_call): Change parameter from
3206         params to first_param.
3207         * target.h (struct gcc_target): Change resolve_overloaded_builtin
3208         params parameter from tree to void *.
3209         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3210         Change arglist parameter to have type void *, and to be a pointer
3211         to a VEC.
3212         * config/rs6000/rs6000-protos.h
3213         (altivec_resolve_overloaded_builtin): Update declaration.
3214         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3215         fnargs parameter to have type void *, and to be a pointer to a
3216         VEC.  Call build_function_call_vec instead of
3217         build_function_call.
3218         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
3219
3220 2009-04-20  Joey Ye  <joey.ye@intel.com>
3221             Xuepeng Guo  <xuepeng.guo@intel.com>
3222             H.J. Lu  <hongjiu.lu@intel.com>
3223
3224         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3225
3226         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3227         (IX86_LEA_PRIORITY): Likewise.
3228         (distance_non_agu_define): New function.
3229         (distance_agu_use): Likewise.
3230         (ix86_lea_for_add_ok): Likewise.
3231         (ix86_dep_by_shift_count): Likewise.
3232
3233         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3234         should split for LEA.
3235
3236         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3237         function.
3238         (ix86_dep_by_shift_count): Likewise.
3239
3240 2009-04-20  Richard Guenther  <rguenther@suse.de>
3241
3242         * expr.c (handled_component_p): Move ...
3243         * tree.h (handled_component_p): ... here.
3244         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3245         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3246         and REALPART_EXPR to be in one group.
3247
3248 2009-04-20  Richard Guenther  <rguenther@suse.de>
3249
3250         * basic-block.h (get_all_dominated_blocks): Declare.
3251         * dominance.c (get_all_dominated_blocks): New function.
3252         * tree-cfg.c (get_all_dominated_blocks): Remove.
3253         (remove_edge_and_dominated_blocks): Adjust.
3254         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3255         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
3256         instead of recursing.
3257
3258 2009-04-20  Doug Kwan  <dougkwan@google.com>
3259
3260         * cgraph.h (cgraph_node_ptr): New type for vector functions.
3261         (struct cgraph_node_set_def): New type.
3262         (cgraph_node_set) New type. Also declare vector functions.
3263         (struct cgraph_node_set_element_def): New type.
3264         (cgraph_node_set_element): Ditto.
3265         (cgraph_node_set_iterator): New iterator type.
3266         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3267         cgraph_node_set_remove, dump_cgraph_node_set,
3268         debug_cgraph_node_set): New prototypes.
3269         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3270         cgraph_node_set_size): New inlines.
3271         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3272         including cgraph.h.
3273         (struct ipa_opt_pass): Add struct cgraph_node_set_def
3274         argument to function 'write_summary'.
3275         * ipa.c: Include ggc.h.
3276         (hash_cgraph_node_set_element,
3277         eq_cgraph_node_set_element, cgraph_node_set_new,
3278         cgraph_node_set_add, cgraph_node_set_remove,
3279         cgraph_node_set_find, dump_cgraph_node_set,
3280         debug_cgraph_node_set): New functions.
3281         * Makefile.in (ipa.o): Add dependency on GGC_H.
3282
3283 2009-04-20  Ira Rosen  <irar@il.ibm.com>
3284
3285         PR tree-optimization/39675
3286         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
3287         check of the return code of vect_schedule_slp. Check that
3288         stmt_vec_info still exists for the statement, before checking its
3289         vectorization type.
3290
3291 2009-04-20  Michael Matz  <matz@suse.de>
3292
3293         * Makefile.in (generated_files): Take out $(simple_generated_c).
3294
3295 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
3296
3297         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
3298         (UINTPTR_TYPE):  Likewise.
3299
3300 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3301
3302         PR c/37481
3303         * c-typeck.c (digest_init): Check for initializing an array with a
3304         string literal.
3305
3306 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3307
3308         PR c/19771
3309         * c-semantics.c (pop_stmt_list): Propagate
3310         STATEMENT_LIST_HAS_LABEL to parent statement list.
3311
3312 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
3313
3314         * config/mips/mips.h (mips_tune_attr): New macro.
3315         * config/mips/mips.md (cpu): Use it.
3316
3317 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3318
3319         PR c/38243
3320         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3321         declaring a tag.
3322
3323 2009-04-19  Diego Novillo  <dnovillo@google.com>
3324
3325         * toplev.c (compile_file): Move call to coverage_finish ...
3326         * cgraphunit.c (ipa_passes): ... here.
3327         Call cgraph_process_new_functions.
3328         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3329         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3330
3331 2009-04-19  Jan Hubicka  <jh@suse.cz>
3332
3333         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3334         cfun.
3335         (dump_cgraph_node): Dump can throw external flag.
3336         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3337
3338 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3339
3340         PR c/32061
3341         PR c++/36954
3342         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3343         * common.opt (Wlogical-op): Move from here...
3344         * c.opt (Wlogical-op): ... to here.
3345         * c-typeck.c (parser_build_binary_op): Update call to
3346