OSDN Git Service

2009-05-11 Martin Jambor <mjambor@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-11  Martin Jambor  <mjambor@suse.cz>
2
3         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4         
5 2009-05-11  Jan Hubicka  <jh@suse.cz>
6
7         * tree-ssa-loop-ivcanon.c: Include target.h
8         (struct loop_size): new structure.
9         (constant_after_peeling): New predicate.
10         (tree_estimate_loop_size): New function.
11         (estimated_unrolled_size): Rewrite for new estimates.
12         (try_unroll_loop_completely): Use new estimates.
13         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
14
15 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16
17         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
18         libcpp interface change.
19         (spu_macro_to_expand): Likewise.
20
21 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
22
23         PR tree-optimization/40026
24         * gimplify.c (gimplify_init_constructor): Change initial conditional
25         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
26         optimize_compound_literals_in_ctor.
27
28 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
29
30         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
31         New devices.
32         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
33
34 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
35
36         * tree-vect-data-refs.c (vect_analyze_group_access): Use
37         HOST_WIDE_INT for gap.
38
39 2009-05-11  Ira Rosen  <irar@il.ibm.com>
40
41         PR tree-optimization/40074
42         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
43         account in group size and step comparison.
44
45 2009-05-11  Richard Guenther  <rguenther@suse.de>
46
47         * passes.c (init_optimization_passes): Strip now incorrect comment.
48         (execute_function_todo): Do not set PROP_alias.
49         * tree-pass.h (PROP_alias): Remove.
50         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
51         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
52         * tree-nrv.c (pass_return_slot): Likewise.
53         * tree-object-size.c (pass_object_sizes): Likewise.
54         * tree-ssa-dom.c (pass_dominator): Likewise.
55         (pass_phi_only_cprop): Likewise.
56         * tree-ssa-dse.c (pass_dse): Likewise.
57         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
58         (pass_cselim): Likewise.
59         * tree-ssa-pre.c (pass_pre): Likewise.
60         (pass_fre): Likewise.
61         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
62         * tree-ssa-sink.c (pass_sink_code): Likewise.
63         * tree-stdarg.c (pass_stdarg): Likewise.
64         * tree-tailcall.c (pass_tail_calls): Likewise.
65         * tree-vrp.c (pass_vrp): Likewise.
66
67 2009-05-10  Ian Lance Taylor  <iant@google.com>
68
69         * basic-block.h (enum profile_status): Break out of struct
70         control_flow_graph.
71         * cgraph.h (struct inline_summary): Break out of struct
72         cgraph_local_info.
73         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
74         of struct cgraph_order_sort.
75         * combine.c (enum undo_kind): New enum, broken out of struct
76         undo.
77         * cse.c (struct branch_path): Break out of struct
78         cse_basic_block_data.
79         * except.h (enum eh_region_type): Break out of struct eh_region.
80         * gcc.c (enum add_del): Break out of struct modify_target.
81         * genrecog.c (enum decision_type): Break out of struct
82         decision_test.
83         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
84         ggc_pch_data.
85         * matrix-reorg.c (struct free_info): Break out of struct
86         matrix_info.
87         * regmove.c (enum match_use): New enum, broken out of struct
88         match.
89         * sched-int.h (enum post_call_group): New enum, broken out of
90         struct deps.
91         (struct deps_reg): Break out of struct deps.
92         * target.h (struct asm_int_op): Break out of struct gcc_target.
93         * tree-eh.c (struct goto_queue_node): Break out of struct
94         leh_tf_state.
95         * tree-inline.h (enum copy_body_cge_which): Break out of
96         copy_body_data.
97         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
98
99         * c-decl.c (in_struct, struct_types): New static variables.
100         (pushtag): Add loc parameter.  Change all callers.
101         (lookup_tag): Add ploc parameter.  Change all callers.
102         (check_compound_literal_type): New function.
103         (parser_xref_tag): Add loc parameter.  Change all callers.  If
104         -Wc++-compat, warn about struct/union/enum types defined within a
105         struct or union.
106         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
107         and loc parameters.  Change all callers.  Change error calls to
108         error_at, using loc.  For a redefinition, if the location of the
109         original definition is known, report it.  Set in_struct and
110         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or
111         alignof.
112         (finish_struct): Add new parameters enclosing_in_struct and
113         enclosing_struct_types.  Change all callers.  Set
114         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
115         in the struct.  If in a struct, add this struct to struct_types.
116         (start_enum): Add loc parameter.  Change all callers.  Use
117         error_at for errors, using loc.  For a redefinition, if the
118         location of the original definition is known, report it.  If in a
119         struct, add this enum type to struct_types.  If -Wc++-compat warn
120         if in sizeof, typeof, or alignof.
121         * c-parser.c (disable_extension_diagnostics): Disable
122         -Wc++-compat.
123         (enable_extension_diagnostics): Reenable -Wc++-compat if
124         appropriate.
125         (c_parser_enum_specifier): Get enum location for start_enum.
126         (c_parser_struct_or_union_specifier): Get struct location for
127         start_struct.  Save in_struct and struct_types status between
128         start_struct and finish_struct.
129         (c_parser_cast_expression): Get location of cast.
130         (c_parser_alignof_expression): Get location of type.
131         (c_parser_postfix_expression): Likewise.
132         (c_parser_postfix_expression_after_paren_type): Add type_loc
133         parameter.  Change all callers.  Call
134         check_compound_literal_type.  Use type_loc for error about
135         variable size type.
136         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a
137         use of an enum constant from an enum type defined in a struct or
138         union.
139         (c_cast_expr): Add loc parameter.  Change all callers.  If
140         -Wc++-compat, warn about defining a type in a cast.
141         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
142         (start_enum, start_struct, finish_struct): Update declarations.
143         (parser_xref_tag, c_cast_expr): Update declarations.
144         (check_compound_literal_type): Declare.
145
146 2009-05-11  Ben Elliston  <bje@au.ibm.com>
147
148         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
149         for recent libcpp interface change.
150         (rs6000_macro_to_expand): Likewise.
151
152 2009-05-10  Michael Matz  <matz@suse.de>
153
154         PR target/40031
155         * config/arm/arm.c (require_pic_register): Emit on entry edge,
156         not at entry of function.
157
158 2009-05-10  Richard Guenther  <rguenther@suse.de>
159
160         PR tree-optimization/40081
161         Revert
162         * tree-sra.c (instantiate_element): Instantiate scalar replacements
163         using the main variant of the element type.  Do not fiddle with
164         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
165
166         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
167         structs with volatile fields.
168
169 2009-05-10  Jan Hubicka  <jh@suse.cz>
170
171         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
172         (estimate_move_cost): Assert that it does not get called for VOID_TYPE_P.
173         (estimate_num_insns): Skip VOID types in argument handling.
174         (optimize_inline_calls): Delete unreachable blocks and verify that
175         callgraph is valid.
176
177 2009-05-10  Jan Hubicka  <jh@suse.cz>
178
179         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
180         * cgraph.c (cgraph_mark_address_taken_node): New function.
181         (dump_cgraph_node): Dump new flag.
182         * cgraph.h (struct cgraph_node): Add address_taken.
183         (cgraph_mark_address_taken_node): New function.
184         * ipa.c (cgraph_postorder): Prioritize functions with address taken
185         since new direct calls can be born.
186
187 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
188
189         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
190         tok->val.node.node.
191
192 2009-05-10  Jan Hubicka  <jh@suse.cz>
193
194         PR middle-end/40084
195         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
196         argument; rewrite.
197         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
198         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
199         * tree-inline.c (copy_bb): Set frequency correctly.
200         (fold_marked_statements): Update call to
201         cgraph_update_edges_for_call_stmt.
202
203 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
204
205         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
206         identifiers in diagnostics.
207         * config/arm/arm.c (arm_handle_fndecl_attribute,
208         arm_handle_isr_attribute): Likewise.
209         * config/avr/avr.c (avr_handle_progmem_attribute,
210         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
211         Likewise.
212         * config/bfin/bfin.c (handle_int_attribute,
213         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
214         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
215         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
216         Likewise.
217         * config/darwin.c (darwin_handle_kext_attribute,
218         darwin_handle_weak_import_attribute): Likewise.
219         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
220         h8300_handle_eightbit_data_attribute,
221         h8300_handle_tiny_data_attribute): Likewise.
222         * config/i386/i386.c (ix86_handle_cconv_attribute,
223         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
224         Likewise.
225         * config/i386/winnt.c (ix86_handle_shared_attribute,
226         ix86_handle_selectany_attribute): Likewise.
227         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
228         * config/m32c/m32c.c (function_vector_handler): Likewise.
229         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
230         m68hc11_handle_fntype_attribute): Likewise.
231         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
232         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
233         * config/mips/mips.c (mips_insert_attributes,
234         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
235         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
236         rs6000_handle_struct_attribute): Likewise.
237         * config/sh/sh.c (sh_insert_attributes,
238         sh_handle_resbank_handler_attribute,
239         sh_handle_interrupt_handler_attribute,
240         sh2a_handle_function_vector_handler_attribute,
241         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
242         Likewise.
243         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
244         * config/spu/spu.c (spu_handle_fndecl_attribute,
245         spu_handle_vector_attribute): Likewise.
246         * config/stormy16/stormy16.c
247         (xstormy16_handle_interrupt_attribute): Likewise.
248         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
249         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
250
251 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
252
253         * pretty-print.h (struct pretty_print_info): Add
254         translate_identifiers.
255         (pp_translate_identifiers): New.
256         (pp_identifier): Only conditionally translate identifier to locale
257         character set.
258         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
259         (pp_base_tree_identifier): Only conditionally translate identifier
260         to locale character set.
261         * c-pretty-print.c (M_): Define.
262         (pp_c_type_specifier, pp_c_primary_expression): Mark English
263         fragments for conditional translation with M_.
264         * tree-pretty-print.c (maybe_init_pretty_print): Disable
265         identifier translation.
266
267 2009-05-10  Richard Guenther  <rguenther@suse.de>
268
269         PR tree-optimization/40081
270         * tree-sra.c (instantiate_element): Instantiate scalar replacements
271         using the main variant of the element type.  Do not fiddle with
272         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
273
274 2009-05-09  Jan Hubicka  <jh@suse.cz>
275
276         PR middle-end/40080
277         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
278         indirect calls; verify cgraph afterwards.
279
280 2009-05-09  Jan Hubicka  <jh@suse.cz>
281
282         PR bootstrap/40082
283         * ipa.c (update_inlined_to_pointer): New function.
284         (cgraph_remove_unreachable_nodes): Use it.
285
286 2009-05-09  Jan Hubicka  <jh@suse.cz>
287
288         * tree-eh.c (struct leh_state): Remove prev_try.
289         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
290         not track prev_try.
291         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
292         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
293         remove_eh_handler_and_replace, foreach_reachable_handler,
294         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
295         * except.h (struct eh_region): Remove eh_region_u_cleanup.
296         (gen_eh_region_cleanup): Update prototype.
297
298 2009-05-09  Jan Hubicka  <jh@suse.cz>
299
300         PR middle-end/40043
301         * except.c (copy_eh_region): Always set prev_try.
302         (redirect_eh_edge_to_label): Find outer try.
303         (foreach_reachable_handler): When looking for prev try
304         handle case where previous try is not going to be taken.
305
306 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
307
308         PR tree-optimization/40049
309         * tree-vect-stmts.c (vectorizable_operation): If the machine has
310         only vector/vector shifts, convert the type of the constant to the
311         appropriate type to avoid building incorrect trees, which
312         eventually have problems with garbage collection.
313
314 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
315
316         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
317         -1 for complex floating-point types if honoring signed zeros.
318
319 2009-05-08  Jan Hubicka  <jh@suse.cz>
320
321         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
322         argument; handle correctly when profile is absent.
323         (build_cgraph_edges): Update.
324         (rebuild_cgraph_edges): Update.
325         * cgraph.c: Do not include varray.h.
326         (cgraph_set_call_stmt_including_clones): New function.
327         (cgraph_create_edge_including_clones): Likewise
328         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
329         (cgraph_update_edges_for_call_stmt): Handle clones.
330         (cgraph_remove_node): Handle clone tree.
331         (cgraph_remove_node_and_inline_clones): New function.
332         (dump_cgraph_node): Dump clone tree.
333         (cgraph_clone_node): Handle clone tree.
334         (clone_function_name): Bring here from tree-inline.c.
335         (cgraph_create_virtual_clone): New function.
336         * cgraph.h (ipa_replace_map): Move here from ipa.h.
337         (cgraph_clone_info): New function.
338         (strut cgraph_node): Add clone_info and new clone tree pointers.
339         (cgraph_remove_node_and_inline_clones,
340         cgraph_set_call_stmt_including_clones,
341         cgraph_create_edge_including_clones,
342         cgraph_create_virtual_clone): Declare.
343         (cgraph_function_versioning): Use VEC argument.
344         (compute_call_stmt_bb_frequency): Update prototype.
345         (cgraph_materialize_all_clones): New function.
346         * ipa-cp.c (ipcp_update_cloned_node): Remove.
347         (ipcp_create_replace_map): Update to VECtors.
348         (ipcp_update_callgraph): Use virtual clones.
349         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
350         (ipcp_update_profiling): Do not update local profiling.
351         (ipcp_insert_stage): Use VECtors and virtual clones.
352         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
353         (clone_of_p): New function.
354         (cgraph_preserve_function_body_p): Use clone tree.
355         (cgraph_optimize): Materialize clones.
356         (cgraph_function_versioning): Update for VECtors.
357         (save_inline_function_body): Use clone tree.
358         (cgraph_materialize_clone): New function.
359         (cgraph_materialize_all_clones): Likewise.
360         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
361         * ipa.c: Include gimple.h.
362         (cgraph_remove_unreachable_nodes): Use clone tree.
363         * ipa-prop.c (ipa_note_param_call): Update call to
364         compute_call_stmt_bb_frequencycall.
365         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
366         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
367         (copy_bb): Handle updating of clone tree; add new edge when new call
368         appears.
369         (expand_call_inline): Be strict about every call having edge.
370         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
371         (delete_unreachable_blocks_update_callgraph): New function.
372         (tree_function_versioning): Use VECtors; always remove unreachable
373         blocks and fold conditionals.
374         * tree-inline.h: Do not include varray.h.
375         (tree_function_versioning): Remove.
376         * Makefile.in (GTFILES): Remove tree-inline.c
377         * passes.c (do_per_function): Do only functions having body.
378         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
379         tree.
380
381 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
382             Andrew Morrow  <acm@google.com>
383
384         PR c/36892
385         * c-common.c (c_common_attribute_table): Permit deprecated
386         attribute to take an optional argument.
387         (handle_deprecated_attribute): If the optional argument to
388         __attribute__((deprecated)) is not a string ignore the attribute
389         and emit a warning.
390
391         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
392         * c-typeck.c (build_component_ref): Likewise.
393         (build_external_ref): Likewise.
394
395         * toplev.c (warn_deprecated_use): Add an attribute argument.
396         Emit the message associated with __attribute__((deprecated)).
397
398         * toplev.h (warn_deprecated_use): Updated.
399
400         * doc/extend.texi: Document new optional parameter to
401         __attribute__((deprecated))
402
403 2009-05-08  Michael Eager <eager@eagercon.com>
404
405         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
406         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
407
408 2009-05-08  Richard Guenther  <rguenther@suse.de>
409
410         PR tree-optimization/40062
411         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
412         Avoid exponential behavior.
413
414 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
415
416         PR rtl-optimization/33928
417         PR 26854
418         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
419         process_uses, build_single_def_use_links): New.
420         (update_df): Update use_def_ref.
421         (forward_propagate_into): Use get_def_for_use instead of use-def
422         chains.
423         (fwprop_init): Call build_single_def_use_links and let it initialize
424         dataflow.
425         (fwprop_done): Free use_def_ref.
426         (fwprop_addr): Eliminate duplicate call to df_set_flags.
427         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
428         df_rd_simulate_one_insn): New.
429         (df_rd_bb_local_compute_process_def): Update head comment.
430         (df_chain_create_bb): Use the new RD simulation functions.
431         * df.h (df_rd_simulate_artificial_defs_at_top, 
432         df_rd_simulate_one_insn): New.
433         * opts.c (decode_options): Enable fwprop at -O1.
434         * doc/invoke.texi (-fforward-propagate): Document this.
435
436 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
437
438         PR c/24581
439         * c-typeck.c (build_binary_op): Handle arithmetic between one real
440         and one complex operand specially.
441         * tree-complex.c (some_nonzerop): Do not identify a real value as
442         zero if flag_signed_zeros.
443
444 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
445
446         PR rtl-optimization/33928
447         * loop-invariant.c (record_use): Fix && vs. || mishap.
448
449 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
450
451         PR rtl-optimization/33928
452         * loop-invariant.c (struct use): Add addr_use_p.
453         (struct def): Add n_addr_uses.
454         (struct invariant): Add cheap_address.
455         (create_new_invariant): Set cheap_address.
456         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
457         (record_uses): Pass df_ref to record_use.
458         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
459         used only as such.
460
461 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
462
463         * config/sh/sh.c: Do not include c-pragma.h.
464
465 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
466
467         * config/spu/spu.c: Remove include of c-common.h.
468
469 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
470
471         PR c/39037
472         * c-common.h (mark_valid_location_for_stdc_pragma,
473         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
474         clear_float_const_decimal64, float_const_decimal64_p): New.
475         * c.opt (Wunsuffixed-float-constants): New.
476         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
477         unsuffixed float constant, handle new warning.
478         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
479         * c-decl.c (c_scope): New flag float_const_decimal64.
480         (set_float_const_decimal64, clear_float_const_decimal64,
481         float_const_decimal64_p): New.
482         (push_scope): Set new flag.
483         * c-parser.c (c_parser_translation_unit): Mark when it's valid
484         to use STDC pragmas.
485         (c_parser_external_declaration): Ditto.
486         (c_parser_compound_statement_nostart): Ditto.
487         * c-pragma.c (valid_location_for_stdc_pragma,
488         mark_valid_location_for_stdc_pragma,
489         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
490         handle_pragma_float_const_decimal64): New.
491         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
492         * cp/semantics.c (valid_location_for_stdc_pragma_p,
493         set_float_const_decimal64, clear_float_const_decimal64,
494         float_const_decimal64_p): New dummy functions.
495         * doc/extend.texi (Decimal Float): Remove statement that the
496         pragma, and suffix for double constants, are not supported.
497         * doc/invoke.texi (Warning Options): List new option.
498         (-Wunsuffixed-float-constants): New.
499
500 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
501
502         * config/i386/i386.c: Do not include c-common.h.
503
504 2009-05-07  Mark Heffernan  <meheff@google.com>
505
506         * doc/invoke.texi (Debugging Options): Document change of debugging
507         dump location.
508         * opts.c (decode_options): Make dump_base_name relative to
509         aux_base_name directory.
510
511 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
512
513         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
514         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
515
516 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
517
518         * Makefile.in (install-plugin): Simplify a bit.
519
520 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
521
522         * Makefile.in (OBJS-common): Add regcprop.o.
523         (regcprop.o): New.
524         * timevar.def (TV_CPROP_REGISTERS): New.
525         * regrename.c (regrename_optimize): Return 0.
526         (rest_of_handle_regrename): Delete.
527         (pass_rename_registers): Point to regrename_optimize.
528         (struct value_data_entry, struct value_data, 
529         kill_value_one_regno, kill_value_regno, kill_value,
530         set_value_regno, init_value_data, kill_clobbered_value,
531         kill_set_value, kill_autoinc_value, copy_value,
532         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
533         replace_oldest_value_reg, replace_oldest_value_addr,
534         replace_oldest_value_mem, copyprop_hardreg_forward_1,
535         debug_value_data, validate_value_data): Move...
536         * regcprop.c: ... here.
537         (rest_of_handle_cprop): Delete.
538         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
539
540 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
541
542         PR middle-end/40057
543         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
544         GEN_INT for 1 << bitnum.
545         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
546         build_int_cst_type.
547
548 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
549
550         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
551         Remove wrong description of "nand" operation.
552
553 2009-05-06  Richard Guenther  <rguenther@suse.de>
554             Adam Nemet  <anemet@caviumnetworks.com>
555
556         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
557         comment.  Add that if LHS is not a gimple register, then RHS1 has
558         to be a single object (GIMPLE_SINGLE_RHS).
559
560 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
561
562         * expr.c (get_def_for_expr): Move it up in the file.
563         (store_field): When expanding a bit-field store, look at the
564         defining gimple stmt for the masking conversion.
565
566 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
567
568         PR middle-end/39986
569         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
570         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
571         32-bit memcpy into long.
572
573 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
574
575         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
576         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
577         new_reg_loc_descr.
578         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
579         instead of appending DW_OP_deref*.
580
581 2009-05-06  Michael Matz  <matz@suse.de>
582
583         PR middle-end/40021
584         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
585         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
586
587 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
588
589         * Makefile.in (install-plugin): Fix srcdir handling.
590
591 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
592
593         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
594         when processing for not_regs_needed bitmap.
595         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
596         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
597         handling it for rhs. 
598
599 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
600
601         * config/i386/i386.md (unnamed inc/dec peephole): Use
602         optimize_insn_for_size_p instead of optimize_size.
603         * config/i386/predicates.md (incdec_operand): Likewise.
604         (aligned_operand): Likewise.
605         * config/i386/sse.md (divv8sf3): Likewise.
606         (sqrtv8sf2): Likewise.
607
608 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
609
610         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
611
612         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
613
614 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
615
616         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
617         ssemodesuffixf2c with avxmodesuffixf2c.
618
619 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
620
621         PR c/40032
622         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
623
624 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
625
626         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
627         (struct tree_base): Adjust spacing for 8 bit boundaries.
628         (struct tree_decl_common): Add decl_by_reference_flag bit.
629         (DECL_BY_REFERENCE): Adjust.
630         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
631         print DECL_BY_REFERENCE bit.
632         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
633         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
634         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
635         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
636         unconditionally.
637
638         PR middle-end/39666
639         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
640         range of the type, but default label is missing, add it with one
641         of the existing labels instead of adding a new label for it.
642
643 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
644
645         * dwarf.h: Remove.
646
647 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
648
649         * Makefile.in (enable_plugin, plugin_includedir): New.
650         (install): Depend on install-plugin.
651         (PLUGIN_HEADERS): New.
652         (install-plugin): New.
653         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
654
655 2009-05-05  Richard Guenther  <rguenther@suse.de>
656
657         PR tree-optimization/40022
658         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
659         the only vuse.
660         (phivn_valid_p): Fix tuplification error, simplify.
661         (phiprop_insert_phi): Add dumps.
662         (propagate_with_phi): Simplify.
663
664 2009-05-05  Richard Guenther  <rguenther@suse.de>
665
666         PR middle-end/40023
667         * builtins.c (gimplify_va_arg_expr): Properly build the address.
668
669 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
670
671         * tree.h (strip_float_extensions): Remove duplicate declaration.
672         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
673         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
674         block_ultimate_origin): Rearrange the declarations line to match the
675         comment that indicates the .c file which the functions are defined.
676         (dwarf2out_*, set_decl_rtl): Add comment.
677         (get_base_address): Adjust comment.
678         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
679         declarations line and add comment.
680         (is_builtin_name): Add blank after function name, for clarity.
681
682 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
683
684         * attribs.c (decl_attributes): Use %qE for identifiers in
685         diagnostics.
686         * cgraphunit.c (verify_cgraph_node): Translate function names to
687         locale character set in diagnostics.
688         * coverage.c (get_coverage_counts): Use %qE for identifiers in
689         diagnostics.
690         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
691         Document that functions are named in UTF-8.
692         * expr.c (expand_expr_real_1): Translate function names to locale
693         character set in diagnostics.
694         * gimplify.c (omp_notice_variable, omp_is_private,
695         gimplify_scan_omp_clauses): Use %qE for identifiers in
696         diagnostics.
697         * langhooks.c (lhd_print_error_function): Translate function names
698         to locale character set.
699         * langhooks.h (decl_printable_name): Document that return value is
700         in internal character set.
701         * stmt.c: Include pretty-print.h
702         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
703         diagnostics.
704         (resolve_operand_name_1): Translate named operand name to locale
705         character set.
706         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
707         diagnostics.
708         * toplev.c (announce_function): Translate function names to locale
709         character set.
710         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
711         (default_tree_printer): Use pp_identifier or translate identifiers
712         to locale character set.  Mark "<anonymous>" for translation.
713         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
714         for identifiers in diagnostics.
715         * tree.c (handle_dll_attribute): Use %qE for identifiers in
716         diagnostics.
717         * varasm.c (output_constructor): Use %qE for identifiers in
718         diagnostics.
719
720 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
721
722         * configure.ac: use ` ` instead of $()
723         * configure: Regenerate.
724
725 2009-05-05  Ben Elliston  <bje@au.ibm.com>
726
727         * config/pa/linux-atomic.c: Eliminate conditional include of
728         errno.h on non-LP64 systems to simplify build requirements.
729
730 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
731
732         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
733         diagnostics.
734         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
735         and pass value to identifier_to_locale.
736         (warn_variable_length_array): Make name a tree.
737         (grokdeclarator): Separate diagnostic texts for named and unnamed
738         declarators.  Use %qE for named declarators.
739         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
740         diagnostics.
741         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
742         identifiers in diagnostics.
743         * c-typeck.c (push_member_name, start_init): Pass identifiers to
744         identifier_to_locale.  Mark "anonymous" strings for translation.
745
746 2009-05-04  Michael Eager <eager@eagercon.com>
747
748         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
749         address for DImode/DFmode only if double-precision FP regs.
750
751 2009-05-04  Michael Eager <eager@eagercon.com>
752
753         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
754         TARGET_SINGLE_FLOAT check.
755
756 2009-05-04  Michael Eager <eager@eagercon.com>
757
758         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
759
760 2009-05-04  Michael Eager <eager@eagercon.com>
761
762         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
763         * config/rs6000/t-xilinx: New
764
765 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
766
767         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
768         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
769         * gcc/explow.c (memory_address): Use target hook.
770         * gcc/targhooks.c (default_legitimize_address): New.
771         * gcc/targhooks.h (default_legitimize_address): New.
772         * gcc/target.h (legitimize_address): New.
773         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
774         (TARGET_INITIALIZER): Include it.
775         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
776
777         * config/bfin/bfin-protos.h (legitimize_address): Remove.
778         * config/bfin/bfin.c (legitimize_address): Remove.
779         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
780         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
781         Remove.
782         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
783         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
784
785         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
786         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
787         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
788         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
789         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
790         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
791         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
792         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
793         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
794         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
795         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
796         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
797         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
798         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
799         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
800         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
801         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
802         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
803         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
804         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
805         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
806         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
807         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
808
809         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
810         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
811         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
812         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
813         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
814         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
815         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
816         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
817         (thumb_legitimize_address): Delete.
818         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
819         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
820         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
821         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
822         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
823         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
824         Delete.
825         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
826         Delete.
827
828         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
829         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
830         * config/m32r/m32r.c (m32r_legitimize_address): New.
831         * config/m68k/m68k.c (m68k_legitimize_address): New.
832         * config/score/score.c (score_legitimize_address): Standardize.
833         * config/score/score3.c (score3_legitimize_address): Standardize.
834         * config/score/score3.h (score3_legitimize_address): Adjust.
835         * config/score/score7.c (score7_legitimize_address): Standardize.
836         * config/score/score7.h (score7_legitimize_address): Adjust.
837         * config/sh/sh.c (sh_legitimize_address): New.
838         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
839
840         * gcc/config/s390/s390.c (legitimize_address): Rename to...
841         (s390_legitimize_address): ... this.
842         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
843         (sparc_legitimize_address): ... this.
844         * gcc/config/i386/i386.c (legitimize_address): Rename to...
845         (ix86_legitimize_address): ... this.
846         * gcc/config/avr/avr.c (legitimize_address): Rename to...
847         (avr_legitimize_address): ... this.
848         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
849         (mn10300_legitimize_address): ... this.
850         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
851         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
852         (alpha_expand_mov): Adjust call.
853
854         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
855         * config/spu/spu.c (spu_legitimize_address): Likewise.
856         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
857         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
858
859 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
860
861         * intl.c (locale_encoding, locale_utf8): New.
862         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
863         * intl.h (locale_encoding, locale_utf8): Declare.
864         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
865         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
866         New.
867         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
868         argument.
869         (pp_tree_identifier): Define to call pp_base_tree_identifier.
870         (pp_base_tree_identifier): Declare as function.
871         (identifier_to_locale): Declare.
872         * Makefile.in (pretty-print.o): Update dependencies.
873         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
874
875 2009-05-04  Richard Guenther  <rguenther@suse.de>
876
877         PR middle-end/40015
878         * builtins.c (fold_builtin_memory_op): Do not decay to element
879         type if the size matches the whole array.
880
881 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
882
883         * expmed.c (synth_mult): When trying out a shift, pass the result
884         of a signed shift.
885
886 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
887
888         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
889         (shiftsub1_cost): New.
890         (init_expmed): Compute shiftsub1_cost.
891         (synth_mult): Optimize multiplications by constants of the form
892         -(2^^m-1) for some constant positive integer m.
893
894 2009-05-03  Richard Guenther  <rguenther@suse.de>
895
896         PR c/39983
897         * c-typeck.c (array_to_pointer_conversion): Do not built
898         ADDR_EXPRs of arrays of pointer-to-element type.
899         * c-gimplify.c (c_gimplify_expr): Revert change fixing
900         up wrong ADDR_EXPRs after-the-fact.
901         * c-common.c (strict_aliasing_warning): Strip pointer
902         conversions for obtaining the original type.
903         * builtins.c (fold_builtin_memset): Handle array types.
904         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
905         and array types
906
907 2009-05-03  Richard Guenther  <rguenther@suse.de>
908
909         PR middle-end/23329
910         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
911         Do not lose casts from array types with unknown extent to array
912         types with known extent.
913         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
914         alias set compatibility.
915
916 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
917
918         * flags.h (extra_warnings): Delete.
919         * toplev.c (process_options): Handle Wuninitialized here.
920         * opts.c (extra_warnings): Delete.
921         (set_Wextra): Delete.
922         (common_handle_option): -Wextra can be handled automatically.
923         * c-opts.c (c_common_handle_option): Delete obsolete code.
924         (c_common_post_options): Simplify comment.
925         * common.opt (W): Add Var.
926         (Wextra): Add Var.
927         (Wuninitialized): Initialize to -1.
928
929 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
930             Richard Guenther  <rguenther@suse.de>
931
932         * expr.c (get_def_for_expr): New function.
933         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
934         SSA rather than trees.
935         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
936         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
937         
938 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
939
940         * c-common.c (reswords): Add _Imaginary.
941         * c-common.c (enum rid): Add RID_IMAGINARY.
942
943 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
944
945         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
946         Patch by Richard Guenther.
947
948 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
949
950         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
951         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
952         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
953         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
954         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
955         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
956         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
957         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
958         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
959         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
960         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
961         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
962         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
963         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
964         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
965         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
966         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
967         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
968
969 2009-05-02  Richard Guenther  <rguenther@suse.de>
970
971         PR tree-optimization/39940
972         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
973         doing so.
974
975 2009-05-02  Richard Guenther  <rguenther@suse.de>
976
977         PR middle-end/40001
978         * tree-ssa.c (execute_update_addresses_taken): Properly check
979         if we can mark a variable DECL_GIMPLE_REG_P.
980         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
981         back to the end of the function.
982         (is_gimple_reg_type): Remove complex type special casing.
983         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
984         if not optimizing.
985
986 2009-05-02  Ben Elliston  <bje@au.ibm.com>
987
988         * doc/collect2.texi (Collect2): Document search path behaviour
989         when configured with --with-ld.
990
991 2009-05-02  Jan Hubicka  <jh@suse.cz>
992
993         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
994         parameter; update callers.
995         (coalesce_cost_edge): EH edges are costier because they needs
996         splitting even if not critical and even more costier when there are
997         multiple EH predecestors.
998
999 2009-05-02  Jan Hubicka  <jh@suse.cz>
1000
1001         * except.c (remove_eh_handler_and_replace): Handle updating after
1002         removing TRY blocks.
1003
1004 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
1005
1006         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1007
1008 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
1009
1010         * varasm.c: Do not include c-pragma.h.
1011         * attribs.c: Do not incude c-common.h.
1012
1013 2009-05-01  Michael Matz  <matz@suse.de>
1014
1015         * calls.c (initialize_argument_information): Handle SSA names like
1016         decls with a non MEM_P DECL_RTL.
1017
1018 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1019
1020         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1021         * ipa-utils.c: Likewise.
1022         * ipa-type-escape.c: Likewise.
1023         * cgraphunit.c Do not include c-common.h.
1024         * ipa-pure-const.c: Likewise.
1025         * tree-if-conv.c: Likewise.
1026         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1027         * ipa-struct-reorg.c: Likewise.
1028         * tree-nomudflap.c: Likewise.
1029         * tree-ssa-structalias.c: Likewise.
1030
1031 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1032
1033         * store-motion.c: Many cleanups to make this pass a first-class
1034         citizen instead of an appendix to gcse load motion.  Add TODO list
1035         to make this pass faster/cleaner/better.
1036
1037         (struct ls_expr): Post gcse.c-split cleanups.
1038         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
1039         "stores" field to "avail_stores".
1040         (pre_ldst_mems): Rename to store_motion_mems.
1041         (pre_ldst_table): Rename to store_motion_mems_table.
1042         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1043         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1044         (ldst_entry): Rename to st_expr_entry, update users.
1045         (free_ldst_entry): Rename to free_st_expr_entry, update users.
1046         (free_ldst_mems): Rename to free_store_motion_mems, update users.
1047         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1048         update caller.
1049         (first_ls_expr): Rename to first_st_expr, update users.
1050         (next_ls_expr): Rename to next_st_expr, update users.
1051         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
1052         fields properly for store motion instead of names inherited from load
1053         motion in gcse.c.
1054         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1055         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
1056         are done with it.
1057
1058         (ae_kill): Rename to st_kill, update users.
1059         (ae_gen): Rename to st_avloc, update users.
1060         (transp): Rename to st_transp, update users.
1061         (pre_insert_map): Rename to st_insert_map, update users.
1062         (pre_delete_map): Rename to st_delete_map, update users.
1063         (insert_store, build_store_vectors, free_store_memory,
1064         one_store_motion_pass): Update for abovementioned changes.
1065
1066         (gcse_subst_count, gcse_create_count): Remove.
1067         (one_store_motion_pass): New statistics counters "n_stores_deleted"
1068         and "n_stores_created", local variables.
1069
1070         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1071         use for_each_rtx.
1072
1073         (regvec, compute_store_table_current_insn): Remove.
1074         (reg_set_info, reg_clear_last_set): Remove.
1075         (compute_store_table): Use DF caches instead of local dataflow
1076         solvers.
1077
1078 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
1079
1080         * c-objc-common.c (c_tree_printer): Print identifiers with
1081         pp_identifier, not pp_string.  Mark "({anonymous})" for
1082         translation.
1083         * c-pretty-print.c (pp_c_ws_string): New.
1084         (pp_c_cv_qualifier, pp_c_type_specifier,
1085         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1086         pp_c_storage_class_specifier, pp_c_function_specifier,
1087         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1088         pp_c_primary_expression, pp_c_postfix_expression,
1089         pp_c_unary_expression, pp_c_shift_expression,
1090         pp_c_relational_expression, pp_c_equality_expression,
1091         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1092         use pp_string and pp_c_ws_string in place of pp_identifier and
1093         pp_c_identifier for non-identifiers.  Mark English strings for
1094         translation.
1095         * c-pretty-print.h (pp_c_ws_string): Declare.
1096
1097 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
1098             Roland McGrath <roland@redhat.com>
1099
1100         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
1101         (ENABLE_LD_BUILDID): New configuration option.
1102         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1103         (LINK_BUILDID_SPEC): New macro.
1104         (init_spec): If defined, prepend it between LINK_EH_SPEC and
1105         link_spec.
1106         * doc/install.texi: Document --enable-linker-build-id option.
1107         * configure: Rebuild.
1108         * config.in: Rebuild.
1109
1110 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
1111
1112         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1113         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1114         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
1115         MIPS_GP_SAVE_AREA_SIZE.
1116         * config/mips/mips.c (struct mips_frame_info): Update comment
1117         before arg_pointer_offset and hard_frame_pointer_offset.
1118         (mips_compute_frame_info): Update diagram before function: to
1119         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1120         indicate the position of frame_pointer_rtx with -fstack-protector and
1121         to show args_size.  Don't allocate cprestore area for leaf functions
1122         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
1123         cprestore_size.
1124         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1125
1126 2009-04-30  Michael Matz  <matz@suse.de>
1127
1128         PR tree-optimization/39955
1129         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
1130
1131 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1132
1133         * ira.c (setup_cover_and_important_classes):  Use safe macro
1134         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1135         directly.
1136         * genpreds.c (write_tm_preds_h):  Output suitable definition of
1137         REG_CLASS_FOR_CONSTRAINT.
1138
1139 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
1140
1141         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1142         instead of an int.
1143         * bitmap.c (bitmap_descriptor): Likewise.
1144         * ggc-common.c (loc_descriptor): Likewise.
1145         * varray.c (varray_descriptor): Likewise.
1146         * vec.c (vec_descriptor): Likewise.
1147
1148 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
1149
1150         * Makefile.in (dce.o): Add $(EXCEPT_H).
1151         * dce.c: Include except.h and delete redundant vector definitions.
1152         (deletable_insn_p): Return false for non-call insns that can throw
1153         if DF is running.
1154
1155 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1156
1157         * gcse.c (ae_gen): Remove.
1158         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1159         and make non-static function to make it available in store-motion.c.
1160         Update call sites with search-and-replace.
1161         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1162         extract_mentioned_regs, extract_mentioned_regs_helper,
1163         find_moveable_store, compute_store_table, load_kills_store, find_loads,
1164         store_killed_in_insn, store_killed_after, store_killed_before,
1165         build_store_vectors, insert_insn_start_basic_block, insert-store,
1166         remove_reachable_equiv_notes, replace_store_insn, delete_store,
1167         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1168         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1169         * store-motion.c: ...new file.  Also copy data structures from gcse.c
1170         and clean up to remove parts not used by store motion.
1171         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1172         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1173
1174 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1175
1176         PR target/38571
1177         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1178         when optimizing for size.
1179
1180 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
1181
1182         * gcse.c (gcse_constant_p): Fix typo in last change.
1183
1184 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
1185
1186         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1187
1188 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
1189
1190         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1191
1192 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
1193
1194         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1195         CONST_HIGH_PART result.
1196
1197 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
1198
1199         * config/avr/avr.c (initial_elimination_offset): Rename to
1200         avr_initial_elimination_offset.
1201         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1202         change return type to bool.
1203         (avr_can_eliminate): New function.
1204         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1205         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1206         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
1207         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
1208         avr_initial_elimination_offset.
1209         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1210         (avr_initial_elimination_offset): Define.
1211
1212 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
1213             Steven Bosscher  <steven@gcc.gnu.org>
1214
1215         PR rtl-optimization/39938
1216         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1217         * cfgrtl.c: Include insn-attr.h.
1218         (rest_of_pass_free_cfg): New function.
1219         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1220         * resource.c (init_resource_info): Remove call to df_analyze.
1221
1222 2009-04-29  Richard Guenther  <rguenther@suse.de>
1223
1224         PR target/39943
1225         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1226         allow conversion to signed integers.
1227
1228 2009-04-29  Richard Guenther  <rguenther@suse.de>
1229
1230         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1231         shifts of floating point vectors if the shift amount is
1232         a constant multiple of the element size.
1233
1234 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1235             Michael Matz  <matz@suse.de>
1236
1237         PR middle-end/39927
1238         PR bootstrap/39929
1239         * tree-outof-ssa.c (emit_partition_copy): New function.
1240         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1241         insert_part_to_rtx_on_edge): Perform the partition base var
1242         copy using emit_partition_copy.
1243         (insert_value_copy_on_edge): Convert constants to the right mode.
1244         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1245         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1246
1247 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1248
1249         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1250         scan backwards to try to find a constant to initialize it.
1251
1252         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1253         insn before the loop_end instruction, don't look past labels.
1254
1255 2009-04-29  Richard Guenther  <rguenther@suse.de>
1256
1257         PR middle-end/39937
1258         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1259         loose type conversions.
1260         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
1261         stmts only if there are no uses of its definition.
1262
1263 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1264
1265         * config/bfin/bfin.h (splitting_loops): Declare.
1266         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1267         Reorder bit definitions to be ascending.
1268         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1269         * config/bfin/bfin.c (splitting_loops): New variable.
1270         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1271         (struct loop_info): Remove members INIT and LOOP_INIT.
1272         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
1273         the LSETUP sequence.  Allow LC to be loaded from any register, but
1274         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
1275         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1276         set to 1.
1277         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1278         of reload_completed.
1279
1280         From Jie Zhang:
1281         * config/bfin/bfin.md (movsi_insn): Refine constraints.
1282
1283 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
1284
1285         * Makefile.in (PLUGIN_VERSION_H): New.
1286         (OBJS-common): Remove plugin-version.o.
1287         (plugin.o): Depend on (PLUGIN_VERSION_H).
1288         (plugin-version.o): Remove.
1289         * configure: Regenerate
1290         * configure.ac: Create plugin-version.h.
1291         * gcc-plugin.h (plugin_gcc_version): Remove.
1292         (plugin_default_version_check): Change signature.
1293         * plugin-version.c: Remove.
1294         * plugin.c: Include plugin-version.h.
1295         (str_plugin_gcc_version_name): Remove.
1296         (try_init_one_plugin): Pass gcc version to plugin_init.
1297         (plugin_default_version_check): Both gcc and plugin versions are now
1298         arguments.
1299
1300 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1301         
1302         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1303         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
1304         Remove special case testing for last insn of inner loops. Don't fail
1305         if the loop ends with a jump, emit an extra nop instead.
1306
1307         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1308         DREGS rather than comparing directly.  Remove code that tries to
1309         account for latencies.
1310
1311 2009-04-29  Richard Guenther  <rguenther@suse.de>
1312
1313         PR tree-optimization/39941
1314         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1315         eliminating an indirect call.
1316
1317 2009-04-29  Richard Guenther  <rguenther@suse.de>
1318
1319         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1320         parameter.  Allow invariants as base if !require_lvalue.
1321         (verify_gimple_assign_single): Adjust.
1322
1323 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1324
1325         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1326         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
1327         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1328         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
1329         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1330         a VEC_SELECT.
1331         * config/bfin/bfin.c (bfin_expand_builtin,
1332         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
1333
1334 2009-04-28  Richard Guenther  <rguenther@suse.de>
1335
1336         * tree-vect-loop.c (get_initial_def_for_induction): Use
1337         correct types for pointer increment.
1338
1339 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1340
1341         * toplev.c (print_version): Update GMP version string calculation.
1342
1343 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1344
1345         PR rtl-optimization/39938
1346         * resource.c (init_resource_info): Add call to df_analyze.
1347
1348 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1349
1350         * config/alpha/alpha.md (usegp): Cast the result of
1351         alpha_find_lo_sum_using_gp to enum attr_usegp.
1352         * config/alpha/alpha.c (override_options): Remove end-of-structure
1353         marker element from cpu_table.  Use array size of cpu_table to handle
1354         -mcpu and -mtune options.
1355         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1356
1357 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
1358
1359         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1360         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
1361         tune_32 and tune_64.
1362         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1363         support on PowerPC.
1364         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1365         * config/rs6000/option-defaults.h: ... here.  New file.
1366         (OPT_64, OPT_32): Define.
1367         (MASK_64BIT): Define to 0 if not already defined.
1368         (OPT_ARCH64, OPT_ARCH32): Define.
1369         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1370         and tune_64.
1371
1372 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1373
1374         * config/arm/arm.c (arm_override_options): Emit error on using
1375         fpa with AAPCS.
1376
1377 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1378
1379         PR rtl-optimization/39914
1380         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1381         registers for allocnos created from user-defined variables only
1382         when not optimizing.
1383
1384 2009-04-28  Richard Guenther  <rguenther@suse.de>
1385
1386         PR middle-end/39937
1387         * fold-const.c (fold_binary): Use distribute_real_division only
1388         on float types.
1389
1390 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
1391
1392         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1393         add hpux-stdint.h to tm_file.
1394         (hppa[12]*-*-hpux11*): Ditto.
1395         (ia64*-*-hpux*): Ditto.
1396         * config/hpux-stdint.h: New.
1397         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
1398         __STDC_EXT__ for all compiles.
1399         * config/pa/pa-hpux.h: Ditto.
1400         * config/pa/pa-hpux10.h: Ditto.
1401         * config/pa/pa-hpux11.h: Ditto.
1402
1403 2009-04-28  Catherine Moore  <clm@codesourcery.com>
1404
1405         * debug.h (set_name): Add comment.
1406
1407 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
1408
1409         PR target/39929
1410         * config/darwin.c (machopic_gen_offset): Check
1411         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
1412         * config/arm/arm.c (require_pic_register): Likewise.
1413
1414 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
1415
1416         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
1417         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
1418         m32c_promote_prototypes): Delete.
1419
1420 2009-04-28  Michael Matz  <matz@suse.de>
1421
1422         PR middle-end/39922
1423         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
1424         constants.
1425
1426 2009-04-28  Richard Guenther  <rguenther@suse.de>
1427
1428         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
1429
1430 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1431
1432         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
1433         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
1434         * config/arm/arm-tune.md: Regenerate.
1435
1436 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
1437
1438         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
1439         block if there are complex incoming edges.
1440         (sel_merge_blocks): Remove useless assert.
1441         (sel_redirect_edge_and_branch): Check that edge was redirected.
1442         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1443         (sel_find_rgns): Delete declaration.
1444         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1445         the region when it is not a preheader.
1446
1447 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1448
1449         PR c/39323
1450         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1451
1452 2009-04-28  Richard Guenther  <rguenther@suse.de>
1453
1454         * tree.h (SSA_NAME_VALUE): Remove.
1455         (struct tree_ssa_name): Remove value_handle member.
1456         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1457         array for jump threading.
1458         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1459         SSA_NAME_VALUEs.
1460         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1461         * tree-flow.h (threadedge_initialize_values): Declare.
1462         (threadedge_finalize_values): Likewise.
1463         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1464         (SSA_NAME_VALUE): Define.
1465         (threadedge_initialize_values): New function.
1466         (threadedge_finalize_values): Likewise.
1467         * tree-ssa-dom.c (ssa_name_values): New global variable.
1468         (SSA_NAME_VALUE): Define.
1469         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
1470
1471 2009-04-28  Ira Rosen  <irar@il.ibm.com>
1472
1473         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1474         Use REPORT_VECTORIZED_LOCATIONS instead 
1475         REPORT_VECTORIZED_LOOPS.
1476         * tree-vectorizer.c (vect_verbosity_level): Make static.
1477         (vect_loop_location): Rename to vect_location.
1478         (vect_set_verbosity_level): Update comment.
1479         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1480         and vect_location.
1481         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1482         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1483         instead REPORT_UNVECTORIZED_LOOPS.
1484         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1485         vect_loop_def to vect_external_def and vect_internal_def.
1486         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
1487         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
1488         REPORT_UNVECTORIZED_LOCATIONS.
1489         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1490         and vect_used_in_loop and to vect_unused_in_scope and 
1491         vect_used_in_scope.
1492         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1493         (vect_verbosity_level): Remove declaration.
1494         (vect_analyze_operations): Likewise.
1495         (vect_analyze_stmt): Declare.
1496         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1497         REPORT_UNVECTORIZED_LOCATIONS.
1498         (vect_get_loop_niters): Fix indentation.
1499         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1500         (vect_analyze_loop_operations): New function.
1501         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1502         vect_analyze_operations.
1503         (vect_is_simple_reduction): Use new names.
1504         (vectorizable_live_operation, vect_transform_loop): Likewise.
1505         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1506         specify whether the data references can be a part of interleaving chain.
1507         (vect_analyze_data_ref_dependence): Use new names.
1508         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1509         (vect_create_addr_base_for_vector_ref): Remove redundant code.
1510         * tree-vect-patterns.c (widened_name_p): Use new names.
1511         (vect_recog_dot_prod_pattern): Likewise.
1512         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1513         (process_use, vect_mark_stmts_to_be_vectorized, 
1514         vect_model_simple_cost, vect_model_store_cost,
1515         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1516         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1517         vectorizable_operation, vectorizable_type_demotion,
1518         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1519         vectorizable_condition): Likewise.
1520         (vect_analyze_operations): Split into vect_analyze_loop_operations
1521         and ...
1522         (vect_analyze_stmt): ... new function.
1523         (new_stmt_vec_info): Use new names.
1524         (vect_is_simple_use): Use new names and fix comment.
1525         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1526         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1527
1528 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
1529
1530         PR target/39911
1531         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1532         and integer modes for x87 operands.  Do not ICE for unsupported size,
1533         generate error instead.  Generate error for unsupported operand types.
1534         ['z']: Do not handle HImode memory operands specially.  Warning
1535         for floating-point operands.  Fallthru to 'Z' for unsupported operand
1536         types.  Do not ICE for unsupported size, generate error instead.
1537         (output_387_binary_op): Use %Z to output operands.
1538         (output_fp_compare): Ditto.
1539         (output_387_reg_move): Ditto.
1540
1541 2009-04-28  Ben Elliston  <bje@au.ibm.com>
1542
1543         PR c++/35652
1544         Revert:
1545
1546         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1547
1548         * builtins.c (c_strlen): Do not warn here.
1549         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1550         * c-common.c (pointer_int_sum): Take an explicit location.
1551         Warn about offsets out of bounds.
1552         * c-common.h (pointer_int_sum): Adjust declaration.
1553
1554 2009-04-27  Ian Lance Taylor  <iant@google.com>
1555
1556         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1557         names to symkind.
1558         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1559         * df-core.c (df_set_flags): Change return type to int.  Change
1560         type of old_flags to int.
1561         (df_clear_flags): Likewise.
1562         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1563         (df_get_conditional_uses): Likewise.
1564         * df.h (df_set_flags, df_clear_flags): Update declarations.
1565         * dwarf2out.c (struct indirect_string_node): Change type of form
1566         field to enum dwarf_form.
1567         (AT_string_form): Change return type to enum dwarf_form.
1568         * fixed-value.c (fixed_compare): Add cast to enum type.
1569         * fwprop.c (update_df): Change 0 to VOIDmode.
1570         * gensupport.c: Change 0 to UNKNOWN.
1571         * gimple.h (gimple_cond_code): Add cast to enum type.
1572         * haifa-sched.c (reemit_notes): Add cast to enum type.
1573         * hooks.c (hook_int_void_no_regs): Remove function.
1574         * hooks.h (hook_int_void_no_regs): Remove declaration.
1575         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1576         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1577         * real.c (real_arithmetic): Add cast to enum type.
1578         (real_compare): Likewise.
1579         * target.h (struct gcc_target): Change return type of
1580         branch_target_register_class to enum reg_class.
1581         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1582         default_branch_target_register_class.
1583         * targhooks.c (default_branch_target_register_class): New function.
1584         * targhooks.h (default_branch_target_register_class): Declare.
1585         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1586         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1587         cast to int.
1588         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1589         ERROR_MARK.
1590         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1591         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1592         * tree-vect-stmts.c (supportable_widening_operation): Don't
1593         initialize icode1 and icode2.
1594         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1595         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1596         and to STD_C89.
1597         (cmn_err_flag_specs): Change 0 to STD_C89.
1598         (cmn_err_char_table): Likewise.
1599         * config/arm/arm.c (get_arm_condition_code): Change type of code
1600         to enum arm_cond_code.
1601         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1602         (IWMMXT_BUILTIN2): Likewise.
1603         (neon_builtin_type_bits): Don't define typedef.
1604         (neon_builtin_datum): Change type of bits field to int.
1605         (arm_expand_neon_args): Add cast to enum type.
1606         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1607         TLS_MODEL_NONE.
1608         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1609         casts to enum type.
1610         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1611         MIPS_FP_COND_f.
1612         * config/mips/mips.md (jal_macro): Return enum constant.
1613         (single_insn): Likewise.
1614         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1615         CODE_FOR_nothing.
1616         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1617         casts to enum type.
1618         * config/s390/s390.c (s390_tune_flags): Change type to int.
1619         (s390_arch_flags): Likewise.
1620         (s390_handle_arch_option): Change flags field of struct pta to int.
1621         * config/s390/s390.h (s390_tune_flags): Update declaration.
1622         (s390_arch_flags): Likewise.
1623         * config/sh/sh.c (prepare_move_operands): Compare
1624         tls_symbolic_operand result with enum constant.
1625         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1626         (sh_expand_prologue): Add cast to enum type.
1627         (sh_expand_epilogue): Likewise.
1628         (tls_symbolic_operand): Change return type to enum tls_model.
1629         (fpscr_set_from_mem): Add cast to enum type.
1630         (legitimize_pic_address): Compare tls_symbolic_operand result with
1631         enum constant.
1632         (sh_target_reg_class): Change return type to enum reg_class.
1633         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1634         PROCESSOR_xxx.
1635         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1636         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1637         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1638         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1639         (delayed_branch, tls_call_delay): Likewise.
1640         (eligible_for_sibcall_delay): Likewise.
1641         (eligible_for_return_delay): Likewise. 
1642         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1643         (spu_expand_builtin_1): Likewise.
1644
1645         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1646         for all types of conversions.
1647         (output_init_element): Issue -Wc++-compat warning if needed when
1648         initializing a bitfield with enum type.
1649         * c-parser.c (c_parser_expression): Set original_type to
1650         original_type of right hand operand of comman operator.
1651
1652 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1653
1654         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1655         grammar nits.
1656         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1657         * doc/cpp.texi (Standard Predefined Macros)
1658         (Implementation-defined behavior): Likewise.
1659         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1660         * doc/gimple.texi (GIMPLE Exception Handling)
1661         (@code{GIMPLE_ASSIGN}): Likewise.
1662         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1663         * doc/invoke.texi (Warning Options, Optimize Options)
1664         (AVR Options, Darwin Options): Likewise.
1665         (Optimize Options): Reformulate -fwhole-program description.
1666         * doc/loop.texi (Lambda): Likewise.
1667         * doc/md.texi (Output Template, Define Constraints)
1668         (Standard Names, Insn Splitting): Likewise.
1669         * doc/options.texi (Option properties): Likewise.
1670         * doc/passes.texi (Tree-SSA passes): Likewise.
1671         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1672         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1673         (File Names and DBX): Likewise.
1674         * doc/trouble.texi (Incompatibilities): Likewise.
1675
1676 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1677
1678         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1679         instruction is correct.
1680
1681 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1682
1683         Allow non-constant arguments to conversion intrinsics.
1684         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1685         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1686         * spu.c (print_operand): Handle 'v' and 'w'.
1687         (exp2_immediate_p, spu_gen_exp2): Define.
1688         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1689         spu_convtf_1): Update parameter descriptions.
1690         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1691         * constraints.md ('v', 'w'): New.
1692         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1693         Remove.
1694         (i2f, I2F): New define_mode_attr.
1695         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1696         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1697         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1698         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1699         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1700         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1701         patterns for combine.
1702
1703 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1704
1705         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1706         (cprop, hoist, pre, store_motion): New debug counters.
1707         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1708         is not an RTL pass anymore.
1709         (pass_profiling): Remove extern decl for pass removed in 2005.
1710         (pass_gcse, pass_jump_bypass): Remove.
1711         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1712         to 0 for clean state.
1713         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1714         * cse.c (gate_handle_cse_after_global_opts,
1715         rest_of_handle_cse_after_global_opts): New functions.
1716         (pass_cse_after_global_opts): New pass, does local CSE.
1717         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1718         (TV_CPROP): New timevar.
1719         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1720         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1721         (gcse_main, recompute_all_luids): Remove.
1722         (compute_hash_table_work): Call max_reg_num instead of reading
1723         max_gcse_regno.
1724         (cprop_jump): Don't set run_jump_opt_after_gcse.
1725         (constprop_register): Always allow to alter jumps.
1726         (cprop_insn): Likewise.
1727         (do_local_cprop): Likewise.
1728         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1729         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1730         (find_implicit_sets): Add note about missed optimization opportunity.
1731         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1732         pass_rtl_cprop execute function.
1733         Don't bother tracking the pass number, each pass gets its own dumpfile
1734         now anyway.
1735         Always allow to alter jumpsand bypass jumps.
1736         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1737         will just find no suitable set.
1738         (pre_edge_insert): Fix dumping, this function is for PRE only.
1739         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1740         pass_rtl_pre execute function.
1741         (hoist_code): Return non-zero if something changed.  Keep track of
1742         substitutions and insertions for statistics gathering similar to PRE.
1743         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1744         called from the pass_rtl_hoist execute function.  Show pass statistics.
1745         (compute_store_table): Use max_reg_num directly instead of using the
1746         formerly global max_gcse_regno.
1747         (build_store_vectors): Likewise.
1748         (replace_store_insn): Fix dumping.
1749         (store_motion): Rename to ...
1750         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1751         pass, called from the pass_rtl_store_motion execute function.  Keep
1752         track of substitutions and insertions for statistics gathering similar
1753         to PRE.
1754         (bypass_jumps): Remove, fold interesting bits into ...
1755         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1756         from the pass_rtl_cprop execute function.
1757         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1758         pass_jump_bypass): Remove.
1759         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1760         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1761         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1762         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1763         (gate_rtl_store_motion, execute_rtl_store_motion,
1764         pass_rtl_store_motion): New.
1765         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1766         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1767         * passes.c (init_optimization_passes): Remove pass_gcse and
1768         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1769         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1770         instead of pass_jump_bypass.
1771
1772 2009-04-27  Richard Guenther  <rguenther@suse.de>
1773
1774         PR middle-end/39928
1775         * gimplify.c (gimplify_expr): If we are required to create
1776         a temporary make sure it ends up as register.
1777
1778 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR target/39903
1781         * config/i386/i386.c (construct_container): Don't call
1782         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1783         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1784
1785 2009-04-27  Michael Matz  <matz@suse.de>
1786
1787         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1788         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1789         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1790         (dump_replaceable_exprs): Take a bitmap.
1791         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1792         array.
1793         (expand_gimple_basic_block): Likewise.
1794         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1795         replaceable_expressions member a bitmap.
1796         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1797         (mark_replaceable): Likewise.
1798         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1799         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1800
1801 2009-04-27  Richard Guenther  <rguenther@suse.de>
1802
1803         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1804         (verify_stmts): Dispatch to gimple/type verification code.
1805         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1806         issue with call argument types.
1807
1808 2009-04-27  Michael Matz  <matz@suse.de>
1809
1810         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1811         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1812         to above.
1813
1814 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1815             Eric Botcazou  <ebotcazou@adacore.com>
1816
1817         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1818         a label's basic block.
1819         (mark_target_live_regs): Tidy and rework obsolete comments.
1820         Change back DF problem to LIVE.  If a label starts a basic block,
1821         assume that all registers that used to be live then still are.
1822         (init_resource_info): If a label starts a basic block, set its
1823         BLOCK_FOR_INSN accordingly.
1824         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1825
1826 2009-04-27  Richard Guenther  <rguenther@suse.de>
1827
1828         * tree-flow-inline.h (function_ann): Remove.
1829         (get_function_ann): Likewise.
1830         * tree-dfa.c (create_function_ann): Remove.
1831         * tree-flow.h (struct static_var_ann_d): Remove.
1832         (struct function_ann_d): Likewise.
1833         (union tree_ann_d): Remove fdecl member.
1834         (function_ann_t): Remove.
1835         (function_ann, get_function_ann, create_function_ann): Remove
1836         declarations.
1837
1838 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1839
1840         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1841
1842 2009-04-27  Jan Hubicka  <jh@suse.cz>
1843
1844         * ipa-pure-const.c (struct funct_state_d): New fields
1845         state_previously_known, looping_previously_known; remove
1846         state_set_in_source.
1847         (analyze_function): Use new fields.
1848         (propagate): Avoid assumption that state_set_in_source imply
1849         nonlooping.
1850
1851         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1852         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1853         * cfgloop.h (finite_loop_p): Declare.
1854
1855 2009-04-26  Michael Matz  <matz@suse.de>
1856
1857         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1858
1859 2009-04-26  Michael Matz  <matz@suse.de>
1860
1861         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1862         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1863         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1864         pass_mark_used_blocks): Remove.
1865         * tree-optimize.c (pass_free_datastructures,
1866         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1867         * passes.c (init_optimization_passes): Don't call
1868         pass_mark_used_blocks, remove dead code.
1869
1870 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1871
1872         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1873         * tree-ssa-live.h (register_ssa_partition): Likewise.
1874
1875 2009-04-26  Michael Matz  <matz@suse.de>
1876
1877         Expand from SSA.
1878         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1879         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1880         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1881         SSA names. 
1882         (compare_pairs): Swap cost comparison.
1883         (coalesce_ssa_name): Don't use change_partition_var.
1884         * tree-nrv.c (struct nrv_data): Add modified member.
1885         (finalize_nrv_r): Set it.
1886         (tree_nrv): Use it to update statements.
1887         (pass_nrv): Require PROP_ssa.
1888         * tree-mudflap.c (mf_decl_cache_locals,
1889         mf_build_check_statement_for): Use make_rename_temp.
1890         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1891         * alias.c (find_base_decl): Handle SSA names.
1892         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1893         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1894         * rtl.h (set_reg_attrs_for_parm): Declare.
1895         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1896         to "optimized", remove unused locals at finish.
1897         (execute_free_datastructures): Make global, call
1898         delete_tree_cfg_annotations.
1899         (execute_free_cfg_annotations): Don't call
1900         delete_tree_cfg_annotations.
1901
1902         * ssaexpand.h: New file.
1903         * expr.c (toplevel): Include ssaexpand.h.
1904         (expand_assignment): Handle SSA names the same as register variables.
1905         (expand_expr_real_1): Expand SSA names.
1906         * cfgexpand.c (toplevel): Include ssaexpand.h.
1907         (SA): New global variable.
1908         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1909         (SSAVAR): New macro.
1910         (set_rtl): New helper function.
1911         (add_stack_var): Deal with SSA names, use set_rtl.
1912         (expand_one_stack_var_at): Likewise.
1913         (expand_one_stack_var): Deal with SSA names.
1914         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1915         before unique numbers.
1916         (expand_stack_vars): Use set_rtl.
1917         (expand_one_var): Accept SSA names, add asserts for them, feed them
1918         to above subroutines.
1919         (expand_used_vars): Expand all partitions (without default defs),
1920         then only the local decls (ignoring those expanded already).
1921         (expand_gimple_cond): Remove edges when jumpif() expands an
1922         unconditional jump.
1923         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1924         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1925         SSA name.
1926         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1927         members of SA; deal with PARM_DECL partitions here; expand
1928         all PHI nodes, free tree datastructures and SA.  Commit instructions
1929         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1930         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1931         info and statements at start, collect garbage at finish.
1932         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1933         (VAR_ANN_PARTITION) Remove.
1934         (change_partition_var): Don't declare.
1935         (partition_to_var): Always return SSA names.
1936         (var_to_partition): Only accept SSA names.
1937         (register_ssa_partition): Only check argument.
1938         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1939         member.
1940         (delete_var_map): Don't free it.
1941         (var_union): Only accept SSA names, simplify.
1942         (partition_view_init): Mark only useful SSA names as used.
1943         (partition_view_fini): Only deal with SSA names.
1944         (change_partition_var): Remove.
1945         (dump_var_map): Use ssa_name instead of partition_to_var member.
1946         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1947         basic blocks.
1948         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1949         (struct _elim_graph): New member const_dests; nodes member vector of
1950         ints.
1951         (set_location_for_edge): New static helper.
1952         (create_temp): Remove.
1953         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1954         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1955         (new_elim_graph): Allocate const_dests member.
1956         (clean_elim_graph): Truncate const_dests member.
1957         (delete_elim_graph): Free const_dests member.
1958         (elim_graph_size): Adapt to new type of nodes member.
1959         (elim_graph_add_node): Likewise.
1960         (eliminate_name): Likewise.
1961         (eliminate_build): Don't take basic block argument, deal only with
1962         partition numbers, not variables.
1963         (get_temp_reg): New static helper.
1964         (elim_create): Use it, deal with RTL temporaries instead of trees.
1965         (eliminate_phi): Adjust all calls to new signature.
1966         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1967         (rewrite_trees): Only do checking.
1968         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1969         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1970         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1971         contains_tree_r, MAX_STMTS_IN_LATCH,
1972         process_single_block_loop_latch, analyze_edges_for_bb,
1973         perform_edge_inserts): Remove.
1974         (expand_phi_nodes): New global function.
1975         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1976         functions, initialize new parameter, remember partitions having a
1977         default def.
1978         (finish_out_of_ssa): New global function.
1979         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1980         don't reset in_ssa_p here, don't disable TER when mudflap.
1981         (pass_del_ssa): Remove.
1982         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1983         partition members.
1984         (execute_free_datastructures): Declare.
1985         * Makefile.in (SSAEXPAND_H): New variable.
1986         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1987         * basic-block.h (commit_one_edge_insertion): Declare.
1988         * passes.c (init_optimization_passes): Move pass_nrv and
1989         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1990         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1991         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1992         (redirect_branch_edge): Deal with super block when expanding, split
1993         out jump patching itself into ...
1994         (patch_jump_insn): ... here, new static helper.
1995
1996 2009-04-26  Michael Matz  <matz@suse.de>
1997
1998         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1999         beyond num_ssa_names.
2000         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2001         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2002
2003 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2004
2005         PR inline-asm/39543
2006         * fwprop.c (forward_propagate_asm): New function.
2007         (forward_propagate_and_simplify): Propagate also into __asm, if it
2008         doesn't increase the number of referenced registers.
2009
2010         PR c/39889
2011         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2012
2013 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2014
2015         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2016         note_nonlocal_vla_type for nonlocal VLAs.
2017         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2018         contains_remapped_vars, remap_vla_decls): New functions.
2019         (convert_nonlocal_reference_stmt): If not optimizing, call
2020         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2021         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2022         if it wasn't found in var_map.
2023         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
2024         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2025         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2026         declare_vars.
2027         * gimplify.c (nonlocal_vlas): New variable.
2028         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2029         referenced VLAs.
2030         (gimplify_body): Create and destroy nonlocal_vlas.
2031
2032         * dwarf2out.c (loc_descr_plus_const): New function.
2033         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2034         mem_loc_descriptor, loc_descriptor_from_tree_1,
2035         descr_info_loc, gen_variable_die): Use it.
2036
2037         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2038         !TREE_STATIC VAR_DECLs.
2039         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2040         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2041         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
2042         DECL_BY_REFERENCE is valid.
2043         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2044         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2045         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2046         Copy DECL_BY_REFERENCE.
2047         (struct nesting_copy_body_data): New type.
2048         (nesting_copy_decl): New function.
2049         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2050         if they have variable length.
2051
2052 2009-04-26  Michael Matz  <matz@suse.de>
2053
2054         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2055         mark new temporaries for renaming.
2056
2057 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2058
2059         PR c/39581
2060         * c-decl.c (global_bindings_p): Return negative value.
2061         (c_variable_size): New.  Based on variable_size from
2062         stor-layout.c.
2063         (grokdeclarator): Call c_variable_size not variable_size.
2064
2065 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         * config/i386/i386.c (print_operand) ['z']: Fix typo.
2068
2069 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
2070
2071         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2072         Redefine it to just use mingw/include.
2073         (ASM_SPEC): Rules for -m32 and -m64.
2074         (LINK_SPEC): Use Likewise.
2075         (SPEC_32): New define.
2076         (SPEC_64): Likewise.
2077         (SUB_LINK_SPEC): Likewise.
2078         (MULTILIB_DEFAULTS): New define.
2079         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2080         Add multilib options.
2081         (MULTILIB_DIRNAMES): Likewise.
2082         (MULTILIB_OSDIRNAMES): Likewise.
2083         (LIBGCC): Likewise.
2084         (INSTALL_LIBGCC): Likewise.
2085
2086 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2087
2088         PR c/39556
2089         * c-tree.h (enum c_inline_static_type): New.
2090         (record_inline_static): Declare.
2091         * c-decl.c (struct c_inline_static, c_inline_statics,
2092         record_inline_static, check_inline_statics): New.
2093         (pop_file_scope): Call check_inline_statics.
2094         (start_decl): Call record_inline_static instead of pedwarning
2095         directly for static in inline function.
2096         * c-typeck.c (build_external_ref): Call record_inline_static
2097         instead of pedwarning directly for static referenced in inline
2098         function.
2099
2100 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
2101
2102         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2103         not new but only being rescanned.
2104         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2105         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2106         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2107         record_set_info, compute_set, grealloc): Remove.
2108         (recompute_all_luids): New function.
2109         (gcse_main): Don't compute sets, and don't do related memory
2110         allocations/free-ing.  If something changed before the end of the
2111         pass, update LUIDs using recompute_all_luids.
2112         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
2113         (free_gcse_mem): Don't free it either.
2114         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2115         Use the df insn LUIDs.
2116         (load_killed_in_block): Likewise.
2117         (compute_hash_table_work): Don't compute reg_set_in_block.
2118         (compute_transp): Use DF_REG_DEF_CHAINs.
2119         (local_cprop_pass): Don't use compute_sets and related functions.
2120         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2121         Use get_max_uid() instead of max_cuid.
2122         (insert_insn_end_basic_block, pre_insert_copy_insn,
2123         update_ld_motion_stores): Don't try to
2124         keep reg_set tables up to date.
2125         (pre_insert_copies): Use df insn LUIDs.
2126         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2127         (reg_set_info): Don't use extra bitmap argument.
2128         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
2129         information to compute regs_set_in_block.
2130         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2131         (bypass_jumps): Don't use compute_sets and friends.
2132
2133 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2134
2135         PR testsuite/39710
2136         * opts.c (undocumented_msg): Do not leave blank even with
2137         ENABLE_CHECKING.
2138
2139 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2140
2141         * c-decl.c (build_enumerator): Allow values folding to integer
2142         constants but not integer constant expressions with a pedwarn if
2143         pedantic.
2144
2145 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2146
2147         PR c/39582
2148         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2149         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2150         type is an integer constant.
2151
2152 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
2153
2154         PR target/39897
2155         * config/i386/i386.c (print_operand) ['z']: Revert handling of
2156         HImode operands.
2157
2158 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
2159
2160         PR c/39564
2161         * c-decl.c (grokdeclarator): Diagnose declarations of functions
2162         with variably modified return type and no storage class
2163         specifiers, except for the case of nested functions.  Distinguish
2164         extern declarations of functions with variably modified return
2165         types from those of objects with variably modified types.
2166
2167 2009-04-25  Jan Hubicka  <jh@suse.cz>
2168
2169         * tree.c (list_equal_p): New function.
2170         * tree.h (list_equal_p): Declare.
2171         * coretypes.h (edge_def, edge, const_edge, basic_block_def
2172         basic_block_def, basic_block, const_basic_block): New.
2173         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2174         (redirect_eh_edge): New function.
2175         (make_eh_edge_update_phi): EH edges are not abnormal.
2176         * except.c: Include tree-flow.h.
2177         (list_match): New function.
2178         (eh_region_replaceable_by_p): New function.
2179         (replace_region): New function.
2180         (hash_type_list): New function.
2181         (hash_eh_region): New function.
2182         (eh_regions_equal_p): New function.
2183         (merge_peers): New function.
2184         (remove_unreachable_regions): Verify EH tree when checking;
2185         merge peers.
2186         (copy_eh_region_1): New function.
2187         (copy_eh_region): New function.
2188         (push_reachable_handler): New function.
2189         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2190         regions without label but with live RESX.
2191         * except.h (redirect_eh_edge_to_label): New.
2192         * tree-flow.h (redirect_eh_edge): New.
2193         * coretypes.h (edge_def, edge, const_edge, basic_block_def
2194         basic_block_def, basic_block, const_basic_block): Remove.
2195         * Makefile.in (except.o): Add dependency on tree-flow.h
2196         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2197         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2198         Remove.
2199
2200 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
2201
2202         PR bootstrap/39645
2203         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2204         on the destination of memcpy.
2205
2206 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
2207
2208         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2209         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2210         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2211
2212 2009-04-25  Jan Hubicka  <jh@suse.cz>
2213
2214         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2215         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2216         to be reached by different label than left.
2217         (update_eh_edges): Update comment; remove edge_to_remove if possible
2218         and return true if suceeded.
2219         (cleanup_empty_eh): Accept sharing map; handle shared regions.
2220         (cleanup_eh): Compute sharing map.
2221         * except.c (remove_eh_handler_and_replace): Add argument if we should
2222         update regions.
2223         (remove_unreachable_regions): Update for label sharing.
2224         (label_to_region_map): Likewise.
2225         (get_next_region_sharing_label): New function.
2226         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2227         prev_try pointers.
2228         (remove_eh_handler): Update.
2229         (remove_eh_region_and_replace_by_outer_of): New function.
2230         * except.h (struct eh_region): Add next_region_sharing_label.
2231         (remove_eh_region_and_replace_by_outer_of,
2232         get_next_region_sharing_label): Declare.
2233         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2234
2235 2009-04-25  Jan Hubicka  <jh@suse.cz>
2236
2237         * tree-cfg.c (split_critical_edges): Split also edges where we can't
2238         insert code even if they are not critical.
2239
2240 2009-04-25  Jan Hubicka  <jh@suse.cz>
2241
2242         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2243         (gimple_can_remove_branch_p): EH edges won't remove branch by
2244         redirection.
2245         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2246         updating of non-abnormal EH edges.
2247         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2248         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2249         (split_critical_edges): Split also edges where emitting code on them
2250         will lead to splitting later.
2251
2252 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
2253             H.J. Lu  <hongjiu.lu@intel.com>
2254
2255         PR target/39590
2256         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2257         the configured assembler supports fildq and fistpq mnemonics.
2258         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2259         * configure: Regenerated.
2260         * config.in: Ditto.
2261
2262         * config/i386/i386.c (print_operand): Handle 'Z'.
2263         ['z']: Remove handling of special fild/fist suffixes.
2264         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2265         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2266         suffix of fild insn.
2267         (*floatsi<mode>2_vector_mixed): Ditto.
2268         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2269         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2270         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2271         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2272         * config/i386/gas.h (GAS_MNEMONICS): Remove.
2273
2274 2009-04-25  Ben Elliston  <bje@au.ibm.com>
2275  
2276         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2277         the source of a set operation.
2278
2279 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
2280
2281         * target.h (struct gcc_target): Add case_values_threshold field.
2282         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2283         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2284         * targhooks.c (default_case_values_threshold): New function.
2285         * targhooks.h (default_case_values_threshold): Declare function.
2286         * stmt.c (expand_case): Use case_values_threshold target hook.
2287         * expr.h (case_values_threshold): Remove declartation.
2288         * expr.c (case_values_threshold): Remove function.
2289         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2290
2291         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2292         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2293         (avr_case_values_threshold): Declare as static.
2294         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2295
2296         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2297         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2298         (mn10300_case_values_threshold): New function.
2299
2300 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         * ira.c (setup_cover_and_important_classes): Add enum cast.
2303
2304 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
2305
2306         * genpreds.c (write_enum_constraint_num): Output definition of
2307         CONSTRAINT_NUM_DEFINED_P macro.
2308         * ira.c (setup_cover_and_important_classes): Use
2309         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2310         
2311 2009-04-24  DJ Delorie  <dj@redhat.com>
2312
2313         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2314         __SH2A_SINGLE_ONLY__ also.
2315
2316 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
2317
2318         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2319         (movdf_internal): Ditto.
2320         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2321         SFmode and DFmode constants.
2322         (ia64_print_operand): Add 'G' format for printing
2323         floating point constants.
2324
2325 2009-04-24  Richard Guenther  <rguenther@suse.de>
2326
2327         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2328         from unsigned additions.
2329
2330 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
2331
2332         * c-typeck.c (set_init_index): Allow array designators that are
2333         not integer constant expressions with a pedwarn if pedantic.
2334
2335 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2336
2337         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2338         zero if no overlap in nonzero bits between the operands.
2339
2340 2009-04-24  Ian Lance Taylor  <iant@google.com>
2341
2342         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2343         (record_dead_and_set_regs): Likewise.
2344         * df.h (struct df_mw_hardreg): Change flags field to int.
2345         (struct df_base_ref): Likewise.
2346         (struct df): Change changeable_flags field to int.
2347         * df-scan.c (df_defs_record): Change clobber_flags to int.
2348         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2349         constants rather than #define macros.
2350         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2351         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2352         (enum dwarf_calling_convention): Likewise.
2353         (enum dwarf_line_number_x_ops): Likewise.
2354         (enum dwarf_call_frame_info): Likewise.
2355         (enum dwarf_source_language): Likewise.
2356         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2357         (add_calling_convention_attribute): Likewise.
2358         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2359         (combine_comparisons): Change compcode to int.  Add cast to enum type.
2360         * genrecog.c (maybe_both_true_2): Change c to int.
2361         (write_switch): Likewise.  Add cast to enum type.
2362         * gimplify.c (gimplify_omp_for): Handle return values from
2363         gimplify_expr using MIN rather than bitwise or.
2364         (gimplify_expr): Add cast to enum type.
2365         * ipa-prop.c (update_jump_functions_after_inlining): Change
2366         IPA_BOTTOM to IPA_JF_UNKNOWN.
2367         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2368         Add casts to enum type.
2369         (setup_cover_and_important_classes): Change cl to int.  Add casts
2370         to enum type.
2371         (setup_class_translate): Change cl and mode to int.
2372         (ira_init_once): Change mode to int.
2373         (free_register_move_costs): Likewise.
2374         (setup_prohibited_mode_move_regs): Add casts to enum type.
2375         * langhooks.c (add_builtin_function_common): Rework assertion that
2376         value fits bitfield.
2377         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2378         * omega.c (omega_do_elimination): Avoid math on enum types.
2379         * optabs.c (expand_vec_shift_expr): Remove casts to int.
2380         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
2381         int local to handle integral_argment value.
2382         * regmove.c (try_auto_increment): Change PUT_MODE to
2383         PUT_REG_NOTE_KIND.
2384         * reload.c (push_secondary_reload): Add casts to enum type.
2385         (secondary_reload_class, find_valid_class): Likewise.
2386         * reload1.c (emit_input_reload_insns): Likewise.
2387         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2388         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2389         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2390         constant.
2391         * tree.c (build_common_builtin_nodes): Add casts to enum type.
2392         * tree-complex.c (complex_lattice_t): Typedef to int rather than
2393         enum type.
2394         (expand_complex_libcall): Add casts to enum type.
2395         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
2396         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
2397         with ERROR_MARK, not NUM_TREE_CODES.
2398         (vect_create_epilog_for_reduction): Likewise.
2399         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
2400         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
2401         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
2402         enum machine_mode.
2403         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
2404         vect_unused_in_loop.  Change 0 to loop_vect.
2405         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
2406         * var-tracking.c (get_init_value): Change return type to enum
2407         var_init_status.
2408         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
2409         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
2410         arm_fp_model.
2411         (arm_override_options): Add casts to enum type.
2412         (arm_emit_tls_decoration): Likewise.
2413         * config/i386/i386.c (ix86_function_specific_restore): Add casts
2414         to enum type.
2415         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
2416         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
2417         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
2418         enum type.
2419         * config/s390/s390.c (code_for_builtin_64): Change to array of
2420         enum insn_code.
2421         (code_for_builtin_31): Likewise.
2422         (s390_expand_builtin): Change code_for_builtin to enum insn_code
2423         const *.
2424         * config/sparc/sparc.c (sparc_override_options): Change value
2425         field in struct code_model to enum cmodel.  In initializer change
2426         0 to NULL and add cast to enum type.
2427
2428         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
2429         Change all callers.  Issue a -Wc++-compat warning using
2430         lhs_origtype if necessary.
2431         (convert_for_assignment): Issue -Wc++-compat warnings about
2432         invalid conversions to enum type on assignment.
2433         * c-common.h (build_modify_expr): Update declaration.
2434
2435 2009-04-24  Nick Clifton  <nickc@redhat.com>
2436
2437         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
2438         (function_arg_advance): Likewise.
2439         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
2440         5th alternative.
2441
2442 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2443
2444         * config/s390/constraints.md ('I', 'J'): Fix condition.
2445
2446 2009-04-24  Diego Novillo  <dnovillo@google.com>
2447
2448         * gengtype-parse.c (parse_error): Add newline after message.
2449
2450 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2451
2452         * config/i386/sse.md (avxmodesuffixs): Removed.
2453         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2454         (*avx_pinsr<ssevecsize>): This.
2455
2456 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2457
2458         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2459         follow chains of regs with a single definition, and allow expressions
2460         that are function_invariant_p.
2461         (simple_rhs_p): Allow expressions that are function_invariant_p.
2462
2463 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
2464
2465         PR middle-end/39867
2466         * fold-const.c (fold_cond_expr_with_comparison): When folding
2467         > and >= to MAX, make sure the MAX uses the same type as the
2468         comparison's operands.
2469
2470 2009-04-24  Nick Clifton  <nickc@redhat.com>
2471
2472         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2473         addressing for DImode accesses.
2474         (frv_print_operand_address): Handle PLUS case.
2475         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
2476
2477 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
2478
2479         PR rtl-optimization/39794
2480         * alias.c (canon_true_dependence): Add x_addr argument.
2481         * rtl.h (canon_true_dependence): Adjust prototype.
2482         * cse.c (check_dependence): Adjust canon_true_dependence callers.
2483         * cselib.c (cselib_invalidate_mem): Likewise.
2484         * gcse.c (compute_transp): Likewise.
2485         * dse.c (scan_reads_nospill): Likewise.
2486         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
2487         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2488         canon_base_addr of the group, plus optional offset.
2489         (struct group_info): Rename canon_base_mem to
2490         canon_base_addr.
2491         (get_group_info): Set canon_base_addr to canon_rtx of base, not
2492         canon_rtx of base_mem.
2493
2494 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
2495
2496         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2497         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2498
2499 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2500
2501         * config/spu/spu-builtins.h: Delete file.
2502
2503         * config/spu/spu.h (enum spu_builtin_type): Move here from
2504         spu-builtins.h.
2505         (struct spu_builtin_description): Likewise.  Add GTY marker.
2506         Do not use enum spu_function_code or enum insn_code.
2507         (spu_builtins): Add extern declaration.
2508
2509         * config/spu/spu.c: Do not include "spu-builtins.h".
2510         (enum spu_function_code, enum spu_builtin_type_index,
2511         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2512         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2513         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2514         unsigned_V2DI_type_node): Move here from spu-builtins.h.
2515         (spu_builtin_types): Make static.  Add GTY marker.
2516         (spu_builtins): Add extern declaration with GTY marker.
2517         Include "gt-spu.h".
2518
2519         * config/spu/spu-c.c: Do not include "spu-builtins.h".
2520         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2521         Check programmatically whether all parameters are scalar.
2522
2523         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2524
2525 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2526
2527         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2528         assignment from the constructor either if the target is volatile.
2529
2530 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
2531
2532         * config/arm/arm.md (insv): Do not share operands[0].
2533
2534 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
2535
2536         * config/vxlib-tls.c (active_tls_threads): Delete.
2537         (delete_hook_installed): New.
2538         (tls_delete_hook): Don't delete the delete hook.
2539         (tls_destructor): Delete it here.
2540         (__gthread_set_specific): Adjust installing the delete hook.
2541         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2542         __gthread_leave_tsd_dtor_context.
2543
2544 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
2545
2546         * c-format.c (gcc_tdiag_char_table): Add support for %E.
2547
2548 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
2549
2550         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2551         enum type.
2552         (alpha_rtx_costs): Ditto.
2553         (emit_unlikely_jump): Use add_reg_note.
2554         (emit_frame_store_1): Ditto.
2555         (alpha_expand_prologue): Ditto.
2556         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2557         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2558
2559 2009-04-23  Nick Clifton  <nickc@redhat.com>
2560
2561         * config/v850/v850.md (epilogue): Remove suppressed code.
2562         (return): Rename to return_simple and remove test of frame size.
2563         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2564         to gen_return_simple.
2565
2566 2009-04-22  Jing Yu  <jingyu@google.com>
2567
2568         PR testsuite/39781
2569         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2570
2571 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2572
2573         PR C/31499
2574         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2575         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2576         value is a VECTOR_CST, the element type is the element type of the
2577         vector.
2578
2579 2009-04-22  DJ Delorie  <dj@redhat.com>
2580
2581         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2582
2583 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2584
2585         * alias.c (find_base_term): Move around LO_SUM case, so that
2586         CONST falls through into PLUS/MINUS handling.
2587
2588         PR c/39855
2589         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2590         into 0, use omit_one_operand.
2591
2592 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2593
2594         * config/rs6000/linux-unwind.h (get_regs): Remove type
2595         puns. Change the type of `pc' to an array of unsigned ints and
2596         update all users.  Constify frame24.
2597
2598 2009-04-22  DJ Delorie  <dj@redhat.com>
2599
2600         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2601         declarations before code.
2602         (current_function_special_page_vector): Likewise.
2603         (m32c_expand_insv): Silence a warning.
2604
2605 2009-04-21  Taras Glek  <tglek@mozilla.com>
2606
2607         * alias.c: Update GTY annotations to new syntax.
2608         * basic-block.h: Likewise.
2609         * bitmap.h: Likewise.
2610         * c-common.h: Likewise.
2611         * c-decl.c: Likewise.
2612         * c-parser.c: Likewise.
2613         * c-pragma.c: Likewise.
2614         * c-tree.h: Likewise.
2615         * cfgloop.h: Likewise.
2616         * cgraph.h: Likewise.
2617         * config/alpha/alpha.c: Likewise.
2618         * config/arm/arm.h: Likewise.
2619         * config/avr/avr.h: Likewise.
2620         * config/bfin/bfin.c: Likewise.
2621         * config/cris/cris.c: Likewise.
2622         * config/darwin.c: Likewise.
2623         * config/frv/frv.c: Likewise.
2624         * config/i386/i386.c: Likewise.
2625         * config/i386/i386.h: Likewise.
2626         * config/i386/winnt.c: Likewise.
2627         * config/ia64/ia64.h: Likewise.
2628         * config/iq2000/iq2000.c: Likewise.
2629         * config/mips/mips.c: Likewise.
2630         * config/mmix/mmix.h: Likewise.
2631         * config/pa/pa.c: Likewise.
2632         * config/pa/pa.h: Likewise.
2633         * config/rs6000/rs6000.c: Likewise.
2634         * config/s390/s390.c: Likewise.
2635         * config/sparc/sparc.c: Likewise.
2636         * config/xtensa/xtensa.c: Likewise.
2637         * cselib.h: Likewise.
2638         * dbxout.c: Likewise.
2639         * dwarf2out.c: Likewise.
2640         * except.c: Likewise.
2641         * except.h: Likewise.
2642         * fixed-value.h: Likewise.
2643         * function.c: Likewise.
2644         * function.h: Likewise.
2645         * gimple.h: Likewise.
2646         * integrate.c: Likewise.
2647         * optabs.c: Likewise.
2648         * output.h: Likewise.
2649         * real.h: Likewise.
2650         * rtl.h: Likewise.
2651         * stringpool.c: Likewise.
2652         * tree-data-ref.c: Likewise.
2653         * tree-flow.h: Likewise.
2654         * tree-scalar-evolution.c: Likewise.
2655         * tree-ssa-address.c: Likewise.
2656         * tree-ssa-alias.h: Likewise.
2657         * tree-ssa-operands.h: Likewise.
2658         * tree.c: Likewise.
2659         * tree.h: Likewise.
2660         * varasm.c: Likewise.
2661         * varray.h: Likewise.
2662         * vec.h: Likewise.
2663         * coretypes.h: Do not define GTY macro if it is already defined.
2664         * doc/gty.texi: Update GTY documentation to new syntax.
2665         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2666         annotations on structs.
2667         * gengtype-parse.c: Likewise.
2668
2669 2009-04-22  Mark Heffernan  <meheff@google.com>
2670
2671         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2672
2673 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2674
2675         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2676         where appropriate.
2677
2678 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2679
2680         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2681         the same as a PLUS without a shift.  Increase the cost of a
2682         CONST_INT in MULT.
2683
2684 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2685
2686         * Makefile.in: Update dependencies.
2687         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2688         * errors.h: Remove bogus comment about compatibility.
2689         (warning): Update declaration.
2690         * genautomata.c: Update all calls to warning.
2691         * gimple.c: Do not include errors.h. Include toplev.h.
2692         * tree-ssa-structalias.c: Do not include errors.h.
2693         * omega.c: Likewise.
2694         * tree-ssa-reassoc.c: Likewise.
2695         * config/spu/spu-c.c: Likewise.
2696         * config/spu/t-spu-elf: Update dependencies.
2697
2698 2009-04-22  Richard Guenther  <rguenther@suse.de>
2699
2700         PR tree-optimization/39824
2701         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2702         make sure the types are compatible.
2703
2704 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2705
2706         PR c++/14875
2707         * c-common.c (c_parse_error): Take a token_flags parameter.
2708         Use token_type for the token type instead.
2709         Pass token_flags to cpp_type2name.
2710         * c-common.h (c_parse_error): Update declaration.
2711         * c-parser.c (c_parser_error): Pass 0 as token flags.
2712
2713 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2714
2715         PR rtl-optimization/39580
2716         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2717         
2718 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2719
2720         * function.c (expand_function_end): Do not emit a jump to the "naked"
2721         return label for fall-through returns.
2722         * except.c (sjlj_emit_function_exit): Always place the call to the
2723         unregister function at the location installed by expand_function_end.
2724
2725 2009-04-22  Richard Guenther  <rguenther@suse.de>
2726
2727         PR tree-optimization/39845
2728         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2729         (gen_inbound_check): Likewise.
2730
2731 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2732
2733         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2734         padding for PPC.
2735         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2736         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2737
2738 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2739
2740         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2741         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2742         shift counts to avoid out-of-bounds array accesses.
2743
2744 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2745
2746         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2747         (Pmode): Move above.
2748
2749 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2750
2751         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2752         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2753         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2754         * config/alpha/alpha.h: Ditto.
2755         * config/alpha/alpha.md: Ditto.
2756         * config/alpha/constraints.md: Ditto.
2757         * config/alpha/predicates.md: Ditto.
2758         
2759 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2760
2761         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2762         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2763         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2764         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2765         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2766         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2767         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2768         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2769         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2770         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2771         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2772         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2773         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2774         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2775         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2776         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2777         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2778         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2779         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2780         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2781         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2782         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2783         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2784         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2785         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2786         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2787         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2788
2789 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2790
2791         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2792         references from comments.
2793         * cfgbuild.c: (count_basic_blocks): Delete.
2794         (find_basic_blocks_1): Delete.
2795         (find_basic_blocks): Delete.
2796         * except.c (finish_eh_generation): Make static.  Move comment from
2797         except.h here.  Remove find_basic_blocks references from comments.
2798         * except.h (finish_eh_generation): Delete.
2799         * basic-block.h (find_basic_blocks): Delete.
2800         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2801
2802 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2803
2804         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2805         (sdbout_parms):  Likewise.
2806
2807 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2808
2809         * config/sh/sh.c (prepare_cbranch_operands): Use
2810         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2811         (expand_cbranchdi4): Likewise.
2812         (from_compare): Add cast to enum type.
2813         (expand_cbranchsi4): Use add_reg_note.
2814         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2815         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2816         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2817         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2818         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2819         instead of CODE_FOR_nothing.
2820         (cbranchdi4): Likewise.  Fix the order of arguments for
2821         gen_rtx_fmt_ee.
2822         (push_fpscr): Use add_reg_note.
2823         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2824         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2825         
2826 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2827
2828         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2829         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2830         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2831         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2832         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2833         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2834         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2835         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2836         config/alpha/x-vms, config/arc/t-arc,
2837         config/arm/README-interworking, config/arm/arm-c.c,
2838         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2839         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2840         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2841         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2842         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2843         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2844         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2845         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2846         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2847         config/cris/t-elfmulti, config/crx/t-crx,
2848         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2849         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2850         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2851         config/h8300/t-h8300, config/i386/athlon.md,
2852         config/i386/darwin-libgcc.10.4.ver,
2853         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2854         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2855         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2856         config/i386/t-linux64, config/i386/t-nwld,
2857         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2858         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2859         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2860         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2861         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2862         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2863         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2864         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2865         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2866         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2867         config/m68k/t-uclinux, config/mcore/t-mcore,
2868         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2869         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2870         config/mips/crtn.asm, config/mips/irix-crti.asm,
2871         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2872         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2873         config/mips/mips-fixed.md, config/mips/sb1.md,
2874         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2875         config/mips/t-iris6, config/mips/t-isa3264,
2876         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2877         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2878         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2879         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2880         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2881         config/mn10300/t-linux, config/mn10300/t-mn10300,
2882         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2883         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2884         config/picochip/libgccExtras/clzsi2.asm,
2885         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2886         config/rs6000/darwin-libgcc.10.4.ver,
2887         config/rs6000/darwin-libgcc.10.5.ver,
2888         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2889         config/rs6000/t-aix43, config/rs6000/t-aix52,
2890         config/rs6000/t-darwin, config/rs6000/t-fprules,
2891         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2892         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2893         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2894         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2895         config/rs6000/t-rtems, config/rs6000/t-spe,
2896         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2897         config/score/t-score-elf, config/sh/divcost-analysis,
2898         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2899         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2900         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2901         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2902         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2903         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2904         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2905         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2906         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2907         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2908         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2909         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2910         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2911         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2912         * config/h8300/genmova.sh: Include copyright and license notices
2913         in generated output.
2914         * config/h8300/mova.md: Regenerate.
2915         * doc/install.texi2html: Include word "Copyright" in copyright
2916         notice and use name "Free Software Foundation, Inc.".
2917         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2918         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2919         ChangeLog-2007, ChangeLog-2008: Correct dates.
2920
2921 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2922
2923         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2924         NE_EXPR operations as well.
2925         * c-parser.c (c_parser_condition): Do not set location information on
2926         the condition.
2927         (c_parser_conditional_expression): Likewise.
2928         (c_parser_binary_expression): Set location information on operators.
2929         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2930         TRUTH_NOT_EXPR has been folded.
2931         * fold-const.c (fold_truth_not_expr): Copy location information from
2932         the incoming expression to the outgoing one.
2933         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2934         recursive calls on the LHS of the operator but pass that of the
2935         operator to recursive calls on the RHS of the operator.  Set it
2936         on the COND_EXPR.
2937         (shortcut_cond_expr): Set the locus of the operator on the second
2938         COND_EXPR and that of the expression on the first in degenerate cases.
2939         Pass the locus of the expression to calls to shortcut_cond_r.
2940         Set the locus of the 'then' block on the associated jump, if any.
2941         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2942         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2943         expression to call to gimplify_boolean_expr.
2944
2945 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2946
2947         * config.gcc: Add additional configuration for
2948         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2949         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2950         (CPP_SPEC): Redefine for allowing -municode option.
2951         (STARTFILE_SPEC): Likewise.
2952         * config/i386/t-mingw-w64: New.
2953         * config/i386/mingw-w64.opt: New.
2954         (municode): Add new target option.
2955         * doc/invoke.texi (municode): Add documentation for new option.
2956
2957 2009-04-21  Ian Lance Taylor  <iant@google.com>
2958
2959         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2960         Correct test for number of arguments.
2961         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2962
2963 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2964
2965         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2966         argument of emit_library_call.
2967
2968 2009-04-21  Richard Guenther  <rguenther@suse.de>
2969
2970         PR middle-end/39829
2971         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2972         inside VIEW_CONVERT_EXPRs.
2973
2974 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2975
2976         * tree-switch-conversion.c (build_constructors): Split a long line.
2977         (constructor_contains_same_values_p): New function.
2978         (build_one_array): Create assigns of constants if possible, do not
2979         call mark_sym_for_renaming, call update_stmt.
2980         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2981         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2982         update_stmt.
2983         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2984         find_new_referenced_vars, call update_stmt.
2985         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2986         instead of calling make_rename_temp.  Do not call
2987         find_new_referenced_vars or mark_symbols_for_renaming, call
2988         update_stmt.
2989
2990 2009-04-21  Richard Guenther  <rguenther@suse.de>
2991
2992         PR tree-optimization/39827
2993         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2994         (tree_ssa_phiprop): Pass the correct array size.
2995
2996 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2997
2998         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2999
3000 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3001
3002         PR 16202
3003         * c-typeck.c (lvalue_p): Move declaration ...
3004         * c-common.h (lvalue_p): ... to here.
3005         * c-common.c (candidate_equal_p): New.
3006         (add_tlist): Use it.
3007         (merge_tlist): Use it.
3008         (warn_for_collisions_1): Likewise.
3009         (warning_candidate_p): Accept more candidates.
3010         (verify_tree): A warning candidate can be an expression. Use
3011         candidate_equal_p.
3012
3013 2009-04-21  Ben Elliston  <bje@au.ibm.com>
3014
3015         PR target/5267
3016         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3017         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3018         options.  Remove -mcall-solaris documentation.
3019
3020 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3021
3022         PR c++/13358
3023         * doc/invoke.texi (-Wlong-long): Update description.
3024         * c-lex (interpret_integer): Only warn if there was no previous
3025         overflow and -Wlong-long is enabled.
3026         * c-decl.c (declspecs_add_type): Drop redundant flags.
3027         * c.opt (Wlong-long): Init to -1.
3028         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3029         and front-end warn_long_long. Wlong-long only depends on other
3030         flags if it is uninitialized.
3031         * c-parser.c (disable_extension_diagnostics): warn_long_long is
3032         the same for CPP and FE.
3033         (restore_extension_diagnostics): Likewise.
3034
3035 2009-04-20  Ian Lance Taylor  <iant@google.com>
3036
3037         Fix enum conversions which are invalid in C++:
3038         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3039         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
3040         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3041         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
3042         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
3043         (dbxout_parms): Likewise.
3044         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
3045         (df_clear_flags): Likewise.
3046         * df-problems.c (df_rd_bb_local_compute_process_def): Change
3047         top_flag parameter to int.
3048         (df_chain_create_bb_process_use): Likewise.
3049         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3050         Remove cast.
3051         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3052         (df_ref_create_structure, df_def_record_1): Likewise.
3053         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3054         (df_notes_rescan): Change 0 to VOIDmode in function call.
3055         (df_get_call_refs, df_insn_refs_collect): Likewise.
3056         (df_bb_regs_collect): Likewise.
3057         (df_entry_block_defs_collect): Likewise.
3058         (df_exit_block_uses_collect): Likewise.
3059         * df.h: Update declarations.
3060         * double-int.c (double_int_divmod): Add cast to enum type.
3061         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3062         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3063         (based_loc_descr): Likewise.
3064         (loc_descriptor_from_tree_1): Change first_op and second_op to
3065         enum dwarf_location_atom.  Add cast to enum type.
3066         * expmed.c (init_expmed): Change 0 to SET in function call.
3067         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
3068         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3069         (do_store_flag): Likewise.
3070         * fixed-value.h (struct fixed_value): Change mode to enum
3071         machine_mode.
3072         * function.c (assign_parms): Change 0 to VOIDmode in function call.
3073         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3074         function call.
3075         (insert_insn_decl, insert_decl, insert_state): Likewise.
3076         (automata_list_finish): Likewise.
3077         * genrecog.c (process_define_predicate): Add cast to enum type.
3078         * gensupport.c (init_predicate_table): Add cast to enum type.
3079         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3080         function call.
3081         (gimple_build_call_1, gimple_build_label): Likewise.
3082         (gimple_build_goto, gimple_build_asm_1): Likewise.
3083         (gimple_build_switch_1, gimple_build_cdt): Likewise.
3084         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
3085         (enum fallback): Rename from enum fallback_t.
3086         (fallback_t): Typedef as int.
3087         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3088         GSI_SAME_STMT in function call.
3089         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3090         enum type.
3091         (setup_reg_class_relations): Likewise.
3092         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
3093         (setup_prohibited_class_mode_regs): Add cast to enum type.
3094         (setup_prohibited_mode_move_regs): Likewise.
3095         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
3096         (record_address_regs): Change i to enum reg_class.
3097         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3098         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3099         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3100         (GET_MODE_2XWIDER_MODE): Likewise.
3101         (GET_CLASS_NARROWEST_MODE): Likewise.
3102         * omp-low.c (expand_omp_for): Add cast to enum type.
3103         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3104         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3105         * postreload.c (reload_cse_simplify_operands): Change rclass local
3106         to enum reg_class.
3107         * predict.c (combine_predictions_for_insn): Change best_predictor
3108         and predictor to enum br_predictor.
3109         (combine_predictions_for_bb): Likewise.
3110         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3111         use SET_PREDICT_EXPR_OUTCOME.
3112         * real.c (real_arithmetic): Change icode to code in function call.
3113         * reginfo.c (init_move_cost): Add casts to enum type.
3114         (init_reg_sets_1, init_fake_stack_mems): Likewise.
3115         * regmove.c (regclass_compatible_p): Change class0 and class1 to
3116         enum reg_class.
3117         * reload.c (find_valid_class): Add casts to enum type.
3118         (push_reload): Change 0 to NO_REGS in function call.
3119         (find_reloads): Change this_alternative to array of enum
3120         reg_class.  Remove some now-unnecessary casts.
3121         (make_memloc): Change 0 to VOIDmode in function call.
3122         * reload1.c (reload): Change 0 to VOIDmode in function call.
3123         (eliminate_regs_1, elimination_effects): Likewise.
3124         (eliminate_regs_in_insn): Likewise.
3125         (emit_input_reload_insns): Add cast to enum type.
3126         (delete_output_reload): Change 0 to VOIDmode in function call.
3127         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3128         to enum type in function call.
3129         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3130         (SET_PREDICT_EXPR_OUTCOME): Define.
3131         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
3132         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3133         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3134         (dump_function): Likewise.
3135         * tree-dump.h: Update declarations.
3136         * tree-pass.h: Update declarations.
3137         * varasm.c (assemble_integer): Change mclass to enum mode_class.
3138         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3139         enum type.
3140         (arm_rtx_costs_1): Correct parenthesization.
3141         (arm_rtx_costs): Add casts to enum type.
3142         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3143         (vfp_emit_fstmd): Use add_rg_note.
3144         (emit_multi_reg_push, emit_sfm): Likewise.
3145         (thumb_set_frame_pointer): Likewise.
3146         (arm_expand_prologue): Likewise.
3147         (arm_regno_class): Change return type to enum reg_class.
3148         (thumb1_expand_prologue): Use add_reg_note.
3149         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3150         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3151         in function call.
3152         * config/arm/gentune.sh: Add cast to enum type.
3153         * config/arm/arm-tune.md: Rebuild.
3154         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3155         (ix86_split_fp_branch, predict_jump): Likewise.
3156         (ix86_expand_multi_arg_builtin): Change sub_code from enum
3157         insn_code to enum rtx_code.
3158         (ix86_builtin_vectorized_function): Add cast to enum type.
3159         * config/i386/i386.md (truncdfsf2): Change slot to enum
3160         ix86_stack_slot.
3161         (truncxf<mode>2, isinf<mode>2): Likewise.
3162         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3163         enum type.
3164         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3165         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3166         (insert_bundle_state): Change 1 to INSERT in function call.
3167         (ia64_add_bundle_selector_before): Likewise.
3168         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3169         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3170         (restore_stack_nonlocal): Likewise.
3171         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3172         function call.
3173         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3174         function call.
3175         (mips_rtx_costs): Likewise.
3176         (mips_override_options): Add casts to enum type.
3177         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3178         in function call.
3179         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3180         (store_reg, set_reg_plus_d): Likewise.
3181         (hppa_expand_prologue, hppa_profile_hook): Likewise.
3182         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3183         cast to enum type.
3184         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3185         function call.
3186         (emit_unlikely_jump): Use add_reg_note.
3187         (rs6000_emit_allocate_stack): Likewise.
3188         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3189         (output_toc): Change 1 to INSERT in function call.
3190         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3191         (rs6000_initialize_trampoline): Likewise.
3192         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3193         function call.
3194         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3195         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3196         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3197         (save_gprs): Use add_reg_note.
3198         (s390_emit_prologue): Likewise.
3199         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3200         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3201         (sparc_fold_builtin): Add cast to enum type.
3202         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3203         enum insn_code.
3204         (spu_expand_prologue): Use add_reg_note.
3205         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
3206
3207 2009-04-20  Ian Lance Taylor  <iant@google.com>
3208
3209         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3210         (c_parser_postfix_expression_after_primary): Get VEC for list of
3211         arguments.  Get original types of arguments.  Call
3212         build_function_call_vec.
3213         (cached_expr_list_1, cached_expr_list_2): New static variables.
3214         (c_parser_expr_list): Change return type to VEC *.  Add
3215         p_orig_types parameter.  Change all callers.
3216         (c_parser_release_expr): New static function.
3217         (c_parser_vec_to_tree_list): New static function.
3218         * c-typeck.c (build_function_call): Rewrite to build a VEC and
3219         call build_function_call_vec.
3220         (build_function_call_vec): New function, based on old
3221         build_function_call.
3222         (convert_arguments): Remove nargs and argarray parameters.  Change
3223         values to a VEC.  Add origtypes parameter.
3224         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
3225         (convert_for_assignment): Add origtype parameter.  Change all
3226         callers.  If warn_cxx_compat, check for conversion to an enum
3227         type when calling a function.
3228         (store_init_value): Add origtype parameter.  Change all callers.
3229         (digest_init): Likewise.
3230         (struct init_node): Add origtype field.
3231         (add_pending_init): Add origtype parameter.  Change all callers.
3232         (output_init_element): Likewise.
3233         (output_pending_init_elements): Pass origtype from init_node to
3234         output_init_element.
3235         (process_init_element): Pass origtype from c_expr to
3236         output_init_element.
3237         (c_finish_return): Add origtype parameter.  Change all callers.
3238         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
3239         caller.
3240         (sync_resolve_params): Likewise.
3241         (sync_resolve_return): Change params to first_param.  Change caller.
3242         (resolve_overloaded_builtins): Change params to VEC *.  Change
3243         callers.  Save first parameter around call to build_function_call_vec.
3244         * c-decl.c (finish_decl): Add origtype parameter.  Change all
3245         callers.  Call build_function_call_vec rather than
3246         build_function_call for cleanup.
3247         * c-tree.h: Update declarations.
3248         * c-common.h: Update declarations.
3249         * stub-objc.c (objc_rewrite_function_call): Change parameter from
3250         params to first_param.
3251         * target.h (struct gcc_target): Change resolve_overloaded_builtin
3252         params parameter from tree to void *.
3253         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3254         Change arglist parameter to have type void *, and to be a pointer
3255         to a VEC.
3256         * config/rs6000/rs6000-protos.h
3257         (altivec_resolve_overloaded_builtin): Update declaration.
3258         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3259         fnargs parameter to have type void *, and to be a pointer to a
3260         VEC.  Call build_function_call_vec instead of
3261         build_function_call.
3262         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
3263
3264 2009-04-20  Joey Ye  <joey.ye@intel.com>
3265             Xuepeng Guo  <xuepeng.guo@intel.com>
3266             H.J. Lu  <hongjiu.lu@intel.com>
3267
3268         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3269
3270         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3271         (IX86_LEA_PRIORITY): Likewise.
3272         (distance_non_agu_define): New function.
3273         (distance_agu_use): Likewise.
3274         (ix86_lea_for_add_ok): Likewise.
3275         (ix86_dep_by_shift_count): Likewise.
3276
3277         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3278         should split for LEA.
3279
3280         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3281         function.
3282         (ix86_dep_by_shift_count): Likewise.
3283
3284 2009-04-20  Richard Guenther  <rguenther@suse.de>
3285
3286         * expr.c (handled_component_p): Move ...
3287         * tree.h (handled_component_p): ... here.
3288         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3289         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3290         and REALPART_EXPR to be in one group.
3291
3292 2009-04-20  Richard Guenther  <rguenther@suse.de>
3293
3294         * basic-block.h (get_all_dominated_blocks): Declare.
3295         * dominance.c (get_all_dominated_blocks): New function.
3296         * tree-cfg.c (get_all_dominated_blocks): Remove.
3297         (remove_edge_and_dominated_blocks): Adjust.
3298         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3299         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
3300         instead of recursing.
3301
3302 2009-04-20  Doug Kwan  <dougkwan@google.com>
3303
3304         * cgraph.h (cgraph_node_ptr): New type for vector functions.
3305         (struct cgraph_node_set_def): New type.
3306         (cgraph_node_set) New type. Also declare vector functions.
3307         (struct cgraph_node_set_element_def): New type.
3308         (cgraph_node_set_element): Ditto.
3309         (cgraph_node_set_iterator): New iterator type.
3310         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3311         cgraph_node_set_remove, dump_cgraph_node_set,
3312         debug_cgraph_node_set): New prototypes.
3313         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3314         cgraph_node_set_size): New inlines.
3315         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3316         including cgraph.h.
3317         (struct ipa_opt_pass): Add struct cgraph_node_set_def
3318         argument to function 'write_summary'.
3319         * ipa.c: Include ggc.h.
3320         (hash_cgraph_node_set_element,
3321         eq_cgraph_node_set_element, cgraph_node_set_new,
3322         cgraph_node_set_add, cgraph_node_set_remove,
3323         cgraph_node_set_find, dump_cgraph_node_set,
3324         debug_cgraph_node_set): New functions.
3325         * Makefile.in (ipa.o): Add dependency on GGC_H.
3326
3327 2009-04-20  Ira Rosen  <irar@il.ibm.com>
3328
3329         PR tree-optimization/39675
3330         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
3331         check of the return code of vect_schedule_slp. Check that
3332         stmt_vec_info still exists for the statement, before checking its
3333         vectorization type.
3334
3335 2009-04-20  Michael Matz  <matz@suse.de>
3336
3337         * Makefile.in (generated_files): Take out $(simple_generated_c).
3338
3339 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
3340
3341         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
3342         (UINTPTR_TYPE):  Likewise.
3343
3344 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3345
3346         PR c/37481
3347         * c-typeck.c (digest_init): Check for initializing an array with a
3348         string literal.
3349
3350 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3351
3352         PR c/19771
3353         * c-semantics.c (pop_stmt_list): Propagate
3354         STATEMENT_LIST_HAS_LABEL to parent statement list.
3355
3356 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
3357
3358         * config/mips/mips.h (mips_tune_attr): New macro.
3359         * config/mips/mips.md (cpu): Use it.
3360
3361 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
3362
3363         PR c/38243
3364         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3365         declaring a tag.
3366
3367 2009-04-19  Diego Novillo  <dnovillo@google.com>
3368
3369         * toplev.c (compile_file): Move call to coverage_finish ...
3370         * cgraphunit.c (ipa_passes): ... here.
3371         Call cgraph_process_new_functions.
3372         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3373         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3374
3375 2009-04-19  Jan Hubicka  <jh@suse.cz>
3376
3377         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3378         cfun.
3379         (dump_cgraph_node): Dump can throw external flag.
3380         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3381
3382 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3383
3384         PR c/32061
3385         PR c++/36954
3386         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3387         * common.opt (Wlogical-op): Move from here...
3388         * c.opt (Wlogical-op): ... to here.
3389         * c-typeck.c (parser_build_binary_op): Update call to
3390         warn_logical_operator.
3391         * c-opts.c (c_common_post_options): Enable warn_logical_op with
3392         extra_warnings.
3393         * c-common.c (warn_logical_op): Update.
3394         * c-common.h (warn_logical_op): Update declaration.
3395
3396 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3397
3398         * tree.c (protected_set_expr_location): Fix formatting.
3399
3400 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3401
3402         PR c/27676
3403         * c-typeck.c (readonly_warning): new.
3404         (build_unary_op, build_modify_expr): Use readonly_warning for
3405         storing into something readonly but not const-qualified.
3406
3407 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3408
3409         PR c/22367
3410         * c-typeck.c (build_unary_op): Check for taking address of
3411         expression of type void.
3412
3413 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
3414
3415         PR c/35210
3416         * c-typeck.c (build_function_call): Check for calling a function
3417         with qualified void return types.  Call require_complete_type when
3418         generating a trap.
3419
3420 2009-04-18  Jan Hubicka  <jh@suse.cz>
3421
3422         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
3423         Set nothrow flag.
3424         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
3425         can_throw_external flag.
3426         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
3427         * ipa-pure-const.c (ignore_edge): New function.
3428         (propagate): Compute order for NOTHROW computation; set NOTHROWs
3429         only over can_throw_external edges.
3430         (local_pure_const): Add nothrow flag.
3431         * ipa-utils.c (searchc): Add ignore_edge callback.
3432         (ipa_utils_reduced_inorder): Add ignore_edge callback.
3433         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
3434         (set_nothrow_function_flags): Update cgraph.
3435         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
3436
3437 2009-04-18  Richard Guenther  <rguenther@suse.de>
3438
3439         PR middle-end/39804
3440         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
3441         (fold_stmt): ... this and ...
3442         (fold_stmt_inplace): ... this.
3443         (fold_stmt_1): Fold references in calls and asms.
3444         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
3445
3446 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3447
3448         * tree-vrp.c (ssa_name_nonzero_p): Remove.
3449         * tree.h: Remove the prototype for ssa_name_nonzero_p.
3450
3451 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3452
3453         * tree.c (function_args_count): Remove.
3454         * tree.h: Remove the prototype for function_args_count.
3455
3456 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3457
3458         * tree-iterator.c (expr_only): Remove.
3459         * tree.h: Remove the prototype for expr_only.
3460
3461 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3462
3463         * reginfo.c (cannot_change_mode_set_regs): Remove.
3464         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
3465
3466 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
3467
3468         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
3469         whether operands 0 and 1 overlaps.
3470
3471 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3472
3473         PR middle-end/36902
3474         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
3475         pointer. Use warning_at instead of warning.
3476         (search_for_addr_array): Likewise.
3477         (check_array_bounds): Likewise.
3478         (check_all_array_refs): Check that the incoming edge is not in the
3479         list of edges to be removed.
3480         (check_all_array_refs): Avoid the temporal pointer.
3481         (vrp_visit_cond_stmt): Fix typo.
3482         (simplify_switch_using_ranges): Handle the case where the switch
3483         index is an integer constant.
3484
3485 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
3486
3487         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
3488
3489 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
3490
3491         * doc/extend.texi, doc/invoke.texi: Fix typos.
3492
3493 2009-04-17  Cary Coutant  <ccoutant@google.com>
3494
3495         * tree-flow-inline.h (get_lineno): Fix inverted test.
3496
3497 2009-04-17  Diego Novillo  <dnovillo@google.com>
3498
3499         * tree-ssa-pre.c (create_expression_by_pieces): Remove
3500         assertion for AVAIL_OUT.
3501
3502 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
3503
3504         PR target/38627
3505         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
3506         * config/sh/linux-atomic.asm: Likewise.
3507
3508 2009-04-17  Diego Novillo  <dnovillo@google.com>
3509
3510         * except.c (debug_eh_tree): New.
3511         (struct eh_region, struct eh_status): Move ...
3512         * except.h: ... here.
3513         (add_type_for_runtime): Declare extern.
3514         (lookup_type_for_runtime): Likewise.
3515         (debug_eh_tree): Declare.
3516         * Makefile.in (GTFILES): List except.h before except.c
3517
3518 2009-04-17  Diego Novillo  <dnovillo@google.com>
3519
3520         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
3521         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3522         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
3523         (find_vars_r): ... here.
3524         * tree-flow.h (find_referenced_vars_in): Declare.
3525         * tree-ssa-pre.c (create_expression_by_pieces): Assert
3526         that AVAIL_OUT exists for BLOCK.
3527         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
3528         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
3529         (tree-parloops.o): Likewise.
3530
3531 2009-04-17  Simon Baldwin  <simonb@google.com>
3532
3533         * toplev.c (default_tree_printer): Add handling for %E format.
3534
3535 2009-04-17  Diego Novillo  <dnovillo@google.com>
3536
3537         * tree-pretty-print.c (dump_generic_node): Add break after
3538         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
3539         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
3540         FUNCTION_TYPE together.  Call print_struct_decl when printing
3541         structures and TDF_SLIM is not given.
3542         (print_struct_decl): Fix logic for detecting recursion.
3543
3544 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3545
3546         PR 31567
3547         * gcc.c (create_at_file): New.
3548         (compile_input_file_p): New.
3549         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
3550         * main.c (main): Update call to toplev_main.
3551         * toplev.c (toplev_main): Change signature. Call expandargv.
3552         * toplev.h (toplev_main): Change signature.
3553
3554 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3555
3556         * dwarf2out.c (field_byte_offset): Use the type size as the field size
3557         if the latter is not constant.
3558
3559 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
3560
3561         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3562
3563 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3564
3565         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3566         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3567
3568 2009-04-17  Richard Guenther  <rguenther@suse.de>
3569
3570         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3571         Handle component references view-converting an invariant address.
3572
3573 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
3574
3575         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3576         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3577         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3578         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3579         Use @deftypevr rather than @deftypevar.
3580
3581 2009-04-17  Richard Guenther  <rguenther@suse.de>
3582
3583         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
3584         (get_prop_source_stmt): Likewise.
3585         (can_propagate_from): Likewise.
3586
3587 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
3588
3589         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3590         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3591         (--with-multilib-list): Add default value.
3592         * configure: Regenerate.
3593         * Makefile.in (TM_ENDIAN_CONFIG): Define.
3594         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3595         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3596         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3597         Don't add default cpu to multilib list unnecessarily, but do enable
3598         the relevant compiler option..
3599         Add support for --with-multilib-list=<blank> and
3600         --with-multilib-list=!<somelib> to supress unwanted multilibs.
3601         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3602         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3603         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3604         TM_MULTILIB_CONFIG.
3605         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3606         (MULTILIB_OSDIRNAMES): New variable.
3607         * config/sh/t-1e: Delete file.
3608         * config/sh/t-mlib-sh1: Delete file.
3609         * config/sh/t-mlib-sh2: Delete file.
3610         * config/sh/t-mlib-sh2a: Delete file.
3611         * config/sh/t-mlib-sh2a-nofpu: Delete file.
3612         * config/sh/t-mlib-sh2a-single: Delete file.
3613         * config/sh/t-mlib-sh2a-single-only: Delete file.
3614         * config/sh/t-mlib-sh2e: Delete file.
3615         * config/sh/t-mlib-sh3e: Delete file.
3616         * config/sh/t-mlib-sh4: Delete file.
3617         * config/sh/t-mlib-sh4-nofpu: Delete file.
3618         * config/sh/t-mlib-sh4-single: Delete file.
3619         * config/sh/t-mlib-sh4-single-only: Delete file.
3620         * config/sh/t-mlib-sh4a: Delete file.
3621         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3622         * config/sh/t-mlib-sh4a-single: Delete file.
3623         * config/sh/t-mlib-sh4a-single-only: Delete file.
3624         * config/sh/t-mlib-sh4al: Delete file.
3625         * config/sh/t-mlib-sh5-32media: Delete file.
3626         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3627         * config/sh/t-mlib-sh5-64media: Delete file.
3628         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3629         * config/sh/t-mlib-sh5-compact: Delete file.
3630         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3631         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3632         * doc/install.texi (Options specification): Add
3633         --with-multilib-list and --with-endian.
3634
3635 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3636
3637         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3638         REVISION_c.
3639         (OBJS-common): Add plugin-version.o.
3640         (plugin-version.o): New.
3641         * gcc-plugin.h (plugin_gcc_version): New.
3642         (plugin_default_version_check): New.
3643         (plugin_init_func, plugin_init): Add version argument.
3644         * plugin-version.c: New.
3645         * plugin.c (str_plugin_gcc_version_name): New.
3646         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3647         pass it to the init function.
3648         (plugin_default_version_check): New.
3649
3650 2009-04-17  Richard Guenther  <rguenther@suse.de>
3651
3652         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3653         for decl-vs-decl disambiguation.
3654
3655 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3656
3657         * config/s390/s390.h (s390_tune_attr): New macro definition.
3658         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3659
3660 2009-04-17  Richard Guenther  <rguenther@suse.de>
3661
3662         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3663         (fold_stmt_r): Likewise.
3664         (maybe_fold_reference): New function.
3665         (fold_gimple_assign): Handle cases fold_stmt_r did.
3666         (fold_stmt): Do not use fold_stmt_r.
3667         (fold_stmt_inplace): Likewise.
3668
3669 2009-04-17  Richard Guenther  <rguenther@suse.de>
3670
3671         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3672         (record_equivalences_from_stmt): Remove useless checks and
3673         simplifications.
3674         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3675         the type is already suitable.
3676
3677 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3678
3679         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3680
3681 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3682
3683         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3684         (CMPtype): Define as __gcc_CMPtype.
3685
3686 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3687
3688         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3689         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3690
3691 2009-04-17  Richard Guenther  <rguenther@suse.de>
3692
3693         PR tree-optimization/39746
3694         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3695         special-casing for builtins and static variable use/def.
3696         (call_may_clobber_ref_p_1): Likewise.
3697
3698 2009-04-16  Ian Lance Taylor  <iant@google.com>
3699
3700         * df.h: Include "timevar.h".
3701         (struct df_problem): Change tv_id field to timevar_id_t.
3702         * tree-pass.h: Include "timevar.h".
3703         (struct opt_pass): Change tv_id field to timevar_id_t.
3704         * timevar.h (timevar_id_t): Define TV_NONE.
3705         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3706         TV_NONE rather than tv_id != 0.
3707         (execute_one_pass): Likewise.
3708         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3709         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3710         dependencies to $(TREE_PASS_H).
3711         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3712         to TV_NONE.
3713         (pass_branch_target_load_optimize2): Likewise.
3714         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3715         (pass_outof_cfg_layout_mode): Likewise.
3716         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3717         (pass_rebuild_cgraph_edges): Likewise.
3718         (pass_remove_cgraph_callee_edges): Likewise.
3719         * df-core.c (pass_df_initialize_opt): Likewise.
3720         (pass_df_initialize_no_opt): Likewise.
3721         (pass_df_finish): Likewise.
3722         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3723         * except.c (pass_set_nothrow_function_flags): Likewise.
3724         (pass_convert_to_eh_region_ranges): Likewise.
3725         * final.c (pass_compute_alignments): Likewise.
3726         * function.c (pass_instantiate_virtual_regs): Likewise.
3727         (pass_init_function): Likewise.
3728         (pass_leaf_regs): Likewise.
3729         (pass_match_asm_constraints): Likewise.
3730         * gimple-low.c (pass_lower_cf): Likewise.
3731         (pass_mark_used_blocks): Likewise.
3732         * init-regs.c (pass_initialize_regs): Likewise.
3733         * integrate.c (pass_initial_value_sets): Likewise.
3734         * ira.c (pass_ira): Likewise.
3735         * jump.c (pass_cleanup_barriers): Likewise.
3736         * omp-low.c (pass_expand_omp): Likewise.
3737         (pass_lower_omp): Likewise.
3738         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3739         * recog.c (pass_split_all_insns): Likewise.
3740         (pass_split_after_reload): Likewise.
3741         (pass_split_before_regstack): Likewise.
3742         (pass_split_before_sched2): Likewise.
3743         (pass_split_for_shorten_branches): Likewise.
3744         * reginfo.c (pass_reginfo_init): Likewise.
3745         (pass_subregs_of_mode_init): Likewise.
3746         (pass_subregs_of_mode_finish): Likewise.
3747         * passes.c (pass_postreload): Likewise.
3748         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3749         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3750         (pass_warn_function_return): Likewise.
3751         (pass_warn_function_noreturn): Likewise.
3752         * tree-complex.c (pass_lower_complex): Likewise.
3753         (pass_lower_complex_O0): Likewise.
3754         * tree-if-conv.c (pass_if_conversion): Likewise.
3755         * tree-into-ssa.c (pass_build_ssa): Likewise.
3756         * tree-mudflap.c (pass_mudflap_1): Likewise.
3757         (pass_mudflap_2): Likewise.
3758         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3759         (pass_mudflap_2): Likewise.
3760         * tree-nrv.c (pass_return_slot): Likewise.
3761         * tree-object-size.c (pass_object_sizes): Likewise.
3762         * tree-optimize.c (pass_all_optimizations): Likewise.
3763         (pass_early_local_passes): Likewise.
3764         (pass_all_early_optimizations): Likewise.
3765         (pass_cleanup_cfg): Likewise.
3766         (pass_cleanup_cfg_post_optimizing): Likewise.
3767         (pass_free_datastructures): Likewise.
3768         (pass_free_cfg_annotations): Likewise.
3769         (pass_fixup_cfg): Likewise.
3770         (pass_init_datastructures): Likewise.
3771         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3772         (pass_late_warn_uninitialized): Likewise.
3773         (pass_update_address_taken): Likewise.
3774         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3775         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3776         (pass_cse_sincos): Likewise.
3777         (pass_convert_to_rsqrt): Likewise.
3778         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3779         * tree-stdarg.c (pass_stdarg): Likewise.
3780         * tree-tailcall.c (pass_tail_recursion): Likewise.
3781         (pass_tail_calls): Likewise.
3782         * tree-vect-generic.c (pass_lower_vector): Likewise.
3783         (pass_lower_vector_ssa): Likewise.
3784         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3785
3786 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3787
3788         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3789         XLR entry.
3790         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3791         Handle -march=xlr.
3792         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3793         logical and signext.
3794
3795 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3796
3797         PR target/39767
3798         * config/sh/predicates.md (arith_operand): Check if the operand
3799         of TRUNCATE is a REG.
3800
3801 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3802
3803         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3804         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3805
3806 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3807
3808         * tree-iterator.c (tsi_split_statement_list_after,
3809         tsi_split_statement_list_before): Remove.
3810         * tree-iterator.h: Remove the prototypes for
3811         tsi_split_statement_list_after and tsi_split_statement_list_before.
3812
3813 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3814
3815         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3816         * tree-ssa-propagate.h: Remove the prototype for
3817         stmt_makes_single_load.
3818
3819 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3820
3821         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3822         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3823
3824 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3825
3826         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3827
3828 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3829
3830         * except.c (eh_region_outer_p): Remove.
3831         * except.h: Remove the prototype for eh_region_outer_p.
3832
3833 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3834
3835         * function.c (current_function_assembler_name): Remove.
3836         * function.h: Remove the prototype for
3837         current_function_assembler_name.
3838
3839 2009-04-16  Ian Lance Taylor  <iant@google.com>
3840
3841         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3842         (add_reg_note): Call alloc_reg_note.
3843         * rtl.h (alloc_reg_note): Declare.
3844         * combine.c (try_combine): Use alloc_reg_note.
3845         (recog_for_combine, move_deaths): Likewise.
3846         (distribute_notes): Use alloc_reg_note and add_reg_note.
3847         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3848         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3849         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3850
3851 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3852
3853         PR rtl-optimization/39762
3854         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3855         ira_may_move_out_cost): Add comments about way of their usage.
3856         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3857
3858         * ira-conflicts.c (process_regs_for_copy): Use function
3859         ira_get_register_move_cost instead of global
3860         ira_register_move_cost.
3861
3862         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3863         color_pass, move_spill_restore, update_curr_costs): Ditto.
3864
3865         * ira-lives.c (process_single_reg_class_operands): Ditto.
3866
3867         * ira-emit.c (emit_move_list): Ditto.
3868
3869         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3870         (record_reg_classes): Ditto.  Use functions
3871         ira_get_register_move_cost and ira_get_may_move_cost instead of
3872         global vars ira_register_move_cost, ira_may_move_out_cost and
3873         ira_may_move_in_cost.
3874         (record_address_regs): Don't call ira_init_register_move_cost.
3875         Use function ira_get_may_move_cost instead of global
3876         ira_may_move_in_cost.
3877         (process_bb_node_for_hard_reg_moves): Use function
3878         ira_get_register_move_cost instead of global ira_register_move_cost.
3879         (ira_costs): Don't call ira_init_register_move_cost.
3880
3881 2009-04-16  Richard Guenther  <rguenther@suse.de>
3882
3883         * tree-cfg.c (verify_gimple_assign_binary):
3884         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3885         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3886         (create_general_new_stmt): Note that this function is broken.
3887
3888 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3889
3890         * common.opt (fhelp): Add Var(help_flag).
3891         * gcc-plugin.h (plugin_info): Add help.
3892         * plugin.c (plugin_name_args): Add help.
3893         (register_plugin_info): Set plugin->help.
3894         (print_help_one_plugin): New.
3895         (print_plugins_help): New.
3896         * plugin.h (print_plugins_help): New.
3897         * toplev.c (toplev_main): Call print_plugins_help if needed.
3898
3899 2009-04-16  Richard Guenther  <rguenther@suse.de>
3900
3901         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3902         (gimple_ior_addresses_taken_1): New function.
3903         (gimple_ior_addresses_taken): Likewise.
3904         * gimple.h (struct gimple_statement_with_ops_base): Remove
3905         addresses_taken member.
3906         (gimple_ior_addresses_taken): Declare.
3907         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3908         gimple_set_addresses_taken): Remove.
3909         * ipa-reference.c (mark_address): New function.
3910         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3911         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3912         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3913         (gimple_add_to_addresses_taken): Remove.
3914         (get_tmr_operands): Call mark_address_taken.
3915         (get_asm_expr_operands): Likewise.
3916         (get_expr_operands): Likewise.
3917         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3918         (free_stmt_operands): Do not free it.
3919         * tree-ssa.c (delete_tree_ssa): Likewise.
3920         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3921
3922 2009-04-16  Richard Guenther  <rguenther@suse.de>
3923
3924         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3925         (walk_stmt_load_store_ops): Likewise.
3926         * gimple.c (get_base_loadstore): New function.
3927         (walk_stmt_load_store_addr_ops): Likewise.
3928         (walk_stmt_load_store_ops): Likewise.
3929         * ipa-pure-const.c (check_op): Simplify.
3930         (check_load, check_store): New functions.
3931         (check_stmt): Use walk_stmt_load_store_ops.
3932         * ipa-reference.c (mark_load): Adjust signature.
3933         (mark_store): Likewise.
3934         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3935
3936 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3937
3938         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3939         (plugin_info): New.
3940         * opts.c (common_handle_option): Don't call print_version.
3941         * plugin.c (plugin_name_args): Add version.
3942         (register_plugin_info): New.
3943         (register_callback): Handle PLUGIN_INFO.
3944         (try_init_one_plugin): New.
3945         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3946         if failed to init.
3947         (finalize_one_plugin): New.
3948         (finalize_plugins): New.
3949         (print_one_plugin): New.
3950         (print_plugins_versions): New.
3951         * plugin.h (print_plugins_versions): New.
3952         (finalize_plugins): New.
3953         * toplev.c (compile_file): Don't call initialize_plugins.
3954         (print_version): Call print_plugins_versions.
3955         (toplev_main): Call initialize_plugins. Print version if needed.
3956         Call finalize_plugins.
3957
3958 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3959
3960         * common.opt (fversion): New.
3961         * gcc.c (print_version): New.
3962         (process_command): Don't print the version. Just set print_version.
3963         (main): Print version. Call subprocesses if print_version and
3964         verbose_flag are set.
3965         * opts.c (common_handle_option): Handle OPT_fversion.
3966
3967 2009-04-16  Richard Guenther  <rguenther@suse.de>
3968             Ira Rosen  <irar@il.ibm.com>
3969
3970         PR tree-optimization/39698
3971         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3972         type of the reduction variable.  Only generate the def if
3973         it is needed.
3974
3975         * omp-low.c (expand_omp_for_generic): When converting to a pointer
3976         make sure to first convert to an integer of the same precision.
3977         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3978         the type of the evolution correctly in computing the new
3979         induction variable base.
3980
3981 2009-04-16  Richard Guenther  <rguenther@suse.de>
3982
3983         PR middle-end/39625
3984         * tree-cfg.c (make_blocks): Split statements with to-be
3985         abnormal SSA names on the lhs.
3986
3987 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
3988
3989         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3990         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3991         * c-typeck.c (really_start_incremental_init): Likewise.
3992         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3993         (TARGET_INITIALIZER): Remove it.
3994         * target.h (struct target): Remove vector_opaque_p.
3995         * tree.c (build_opaque_vector_type): New.
3996         * tree.h (TYPE_VECTOR_OPAQUE): New.
3997         (build_opaque_vector_type): Declare.
3998         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3999         * config/rs6000/rs6000.c (build_opaque_vector_type,
4000         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4001         (rs6000_init_builtins): Use build_opaque_vector_type for
4002         opaque_V4SI_type_node.
4003
4004 2009-04-15  Catherine Moore  <clm@codesourcery.com>
4005
4006         * debug.h (set_name):  Declare.
4007         * dwarf2out.c (dwarf2out_set_name): Declare.
4008         (dwarf2_debug_hooks): Add set_name.
4009         (find_AT_string): New.
4010         (add_AT_string): Call find_AT_string.
4011         (dwarf2out_set_name): New.
4012         * cp/decl.c (grokdeclarator): Call set_name.
4013         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4014         * debug.c (do_nothing_debug_hooks):  Likewise.
4015         * dbxout.c (dbx_debug_hooks): Likewise.
4016         * sdbout.c (sdb_debug_hooks): Likewise.
4017
4018 2009-04-15  Michael Eager  <eager@eagercon.com>
4019
4020         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4021         reg for single-precision FPU.
4022         * config/rs6000/rs6000.md (movsi_internal1): Only for
4023         !TARGET_SINGLE_FPU.
4024         (movsi_internal1_single): New. Add pattern to move SI values to/from
4025         single-precision FP regs.
4026
4027 2009-04-15  Richard Guenther  <rguenther@suse.de>
4028
4029         * omp-low.c (lower_rec_input_clauses): Build correct address
4030         expressions.
4031         (expand_omp_for_generic): Fix multiplication type.
4032         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
4033         (generate_memset_zero): Fix types.
4034         * tree-profile.c (prepare_instrumented_value): Correctly
4035         widen a pointer.
4036
4037 2009-04-15  Ian Lance Taylor  <iant@google.com>
4038
4039         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
4040         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4041         for -Wall and for -Wc++-compat.
4042         (c_common_post_options): For C++, set warn_enum_compare if not
4043         already set.
4044         * c-tree.h (struct c_expr): Add field original_type.
4045         (build_external_ref): Update declaration.
4046         * c-parser.c (c_parser_braced_init): Set original_type.
4047         (c_parser_initelt): Likewise.
4048         (c_parser_expr_no_commas): Likewise.
4049         (c_parser_conditional_expression): Likewise.
4050         (c_parser_cast_expression): Likewise.
4051         (c_parser_unary_expression): Likewise.  Pull setting of
4052         original_code to top of function.
4053         (c_parser_sizeof_expression): Set original_type.
4054         (c_parser_alignof_expression): Likewise.
4055         (c_parser_postfix_expression): Likewise.  Pull setting of
4056         original_code to top of function.
4057         (c_parser_postfix_expression_after_paren_type): Set original_type.
4058         (c_parser_postfix_expression_after_primary): Likewise.
4059         (c_parser_expression): Likewise.
4060         * c-typeck.c (build_external_ref): Add type parameter.  Change all
4061         callers.
4062         (c_expr_sizeof_expr): Set original_type field.
4063         (parser_build_unary_op): Likewise.
4064         (parser_build_binary_op): Likewise.  Optionally warn about
4065         comparisons of enums of different types.
4066         (digest_init): Set original_type field.
4067         (really_start_incremental_init): Likewise.
4068         (push_init_level, pop_init_level): Likewise.
4069         * doc/invoke.texi (Warning Options): -Wenum-compare now
4070         supported in C.
4071
4072 2009-04-15  Richard Guenther  <rguenther@suse.de>
4073
4074         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4075         out a necessary conversion.
4076         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
4077         names we didn't value number.
4078         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
4079
4080 2009-04-15  Richard Guenther  <rguenther@suse.de>
4081
4082         PR tree-optimization/39764
4083         * tree-ssa-ccp.c (get_value): Canonicalize value with
4084         canonicalize_float_value.
4085
4086 2009-04-15  Jan Hubicka  <jh@suse.cz>
4087
4088         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
4089         Wrong version of patch.
4090
4091 2009-04-15  Jan Hubicka  <jh@suse.cz>
4092
4093         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
4094
4095 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
4096
4097         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
4098         our distinct integral and vector types.
4099
4100 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
4101
4102         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
4103         * init.c (build_vtbl_address): Remove call to assemble_external.
4104
4105 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
4106
4107         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4108         output for other floating point modes.
4109
4110 2009-04-14  Diego Novillo  <dnovillo@google.com>
4111
4112         * diagnostic.c (diagnostic_report_diagnostic): Do not
4113         warn about loaded plugins for DK_ERROR and DK_WARNING.
4114         * c-decl.c (declspecs_add_type): Move call to
4115         invoke_plugin_callbacks ...
4116         * c-parser.c (c_parser_declspecs): ... here.
4117         * plugin.c (dump_active_plugins): Tidy output.
4118
4119 2009-04-14  Diego Novillo  <dnovillo@google.com>
4120             Le-Chun Wu  <lcwu@google.com>
4121
4122         * configure.ac: Add --enable-plugin support.
4123         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
4124         * Makefile.in (PLUGIN_H): Define.
4125         Export ENABLE_PLUGIN and GMPINC to site.exp.
4126         Add PLUGINLIBS to link command.
4127         Add/modify dependencies for plugin.o and files including plugin.h.
4128         (plugin.o): New.
4129         * config.in: Regenerate.
4130
4131         * opts.c (common_handle_option): Handle OPT_fplugin_ and
4132         OPT_fplugin_arg_.
4133
4134 2009-04-14  Le-Chun Wu  <lcwu@google.com>
4135
4136         * tree-pass.h (register_one_dump_file): Add a prototype for
4137         register_one_dump_file.
4138         * toplev.c (compile_file): Call initialize_plugins.
4139         (do_compile): Call invoke_plugin_callbacks.
4140         (toplev_main): Call invoke_plugin_callbacks.
4141         * common.opt: Add -fplugin= and -fplugin-arg-.
4142         * gcc-plugin.h: New public header file for plugins to include.
4143         * plugin.c: New source file.
4144         * plugin.h: New internal header file.
4145         * passes.c (register_one_dump_file): Make it external.
4146
4147         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
4148
4149 2009-04-14  Diego Novillo  <dnovillo@google.com>
4150
4151         * doc/plugins.texi: New.
4152         * doc/gccint.texi: Add reference to Plugins chapter.
4153         * doc/invoke.texi: Document -fplugin and -fplugin-arg
4154         * diagnostic.c (diagnostic_report_diagnostic): Warn about
4155         loaded plugins, if any.
4156         * timevar.def (TV_PLUGIN_INIT): Define.
4157         (TV_PLUGIN_RUN): Define.
4158         * plugin.c: Include timevar.h
4159         (plugins_active_p): New.
4160         (dump_active_plugins): New.
4161         (debug_active_plugins): New.
4162
4163 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
4164
4165         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4166         library paths.
4167         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
4168
4169 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
4170
4171         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
4172         the same as a minus without a shift.
4173
4174 2009-04-14  Nick Clifton  <nickc@redhat.com>
4175
4176         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
4177         comparisons with small integers will always produce a short
4178         branch.
4179
4180 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
4181
4182         Merge:
4183         2008-12-19  Diego Novillo  <dnovillo@google.com>
4184
4185         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
4186
4187 2009-04-14  Richard Guenther  <rguenther@suse.de>
4188
4189         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
4190         verification.
4191         (verify_gimple_assign_binary): Likewise.  Handle shifts and
4192         rotates correctly.
4193         (verify_gimple_phi): Print the mismatched argument position.
4194         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4195         Fix types.
4196         (vect_update_init_of_dr): Likewise.
4197         * matrix-reorg.c (transform_access_sites): Do what the
4198         comment suggests.
4199         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4200
4201 2009-04-13  Michael Eager  <eager@eagercon.com>
4202
4203         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4204         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4205         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
4206         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
4207         remove duplicate config
4208
4209 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
4210
4211         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4212         file_name:line_number type locator of the call site.
4213
4214 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4215
4216         * genautomata.c: Put blank after comma.
4217         (automaton_decls): New.
4218         (struct unit_usage): Add comments to member next.
4219         (store_alt_unit_usage): Keep the list ordered.
4220         (unit_present_on_list_p, equal_alternatives_p): New.
4221         (check_regexp_units_distribution): Check units distribution
4222         correctness correctly.
4223         (main): Don't write automata if error is found.  Return correct
4224         exit code.
4225
4226         * config/m68k/cf.md (cfv4_ds): Remove.
4227         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4228         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4229
4230         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4231         power4-load-ext, power4-store, power4-store-update,
4232         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4233         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4234         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4235         power4-sqrt, power4-isync): Modify reservation to make correct
4236         unit distribution to automata.
4237
4238         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4239         power5-store-update, power5-two, power5-three, power5-lmul,
4240         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
4241
4242 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
4243
4244         * except.c (pass_set_nothrow_function_flags): Set name and add
4245         TODO_dump_func.
4246         (set_nothrow_function_flags): Mention in the dump file when
4247         changing a function to nothrow.
4248
4249 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
4250
4251         PR/39066
4252         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4253         instead of unsigned long.
4254
4255 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4256
4257         * config/arm/arm.c (return_used_this_function): Remove.
4258         (arm_output_function_prologue): Remove use of
4259         return_used_this_function.
4260         (output_return_instruction): Replace use of
4261         return_used_this_function
4262         by cfun->machine->return_used_this_function.
4263         (arm_output_epilogue): Likewise.
4264         (arm_output_function_epilogue): Likewise.
4265         (thumb_unexpanded_epilogue): Likewise.
4266         * config/arm/arm.h (struct machine_function):
4267         New member return_used_this_function.
4268
4269 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
4270
4271         * doc/install.texi: Correct description of default directory for
4272         --with-gxx-include-dir.
4273
4274 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4275
4276         * fold-const.c (build_range_check): Properly deal with enumeral and
4277         boolean base types.
4278
4279 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
4280
4281         * doc/invoke.texi (max_gcse_passes): Remove documentation.
4282         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4283         * params.h (MAX_GCSE_PASSES): Remove.
4284         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4285         in sequence.  Remove ability to run multiple passes.
4286         (bypass_jumps): Report run as third CPROP pass.
4287
4288 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
4289
4290         PR middle-end/39651
4291         * except.c (can_throw_external): Look at each insn in a SEQUENCE
4292         when deciding whether the whole SEQUENCE can throw.
4293
4294 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
4295
4296         PR target/39740
4297         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4298         offseted label references.
4299
4300 2009-04-11  Jan Hubicka  <jh@suse.cz>
4301
4302         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4303
4304 2009-04-11  Richard Guenther  <rguenther@suse.de>
4305
4306         PR middle-end/39732
4307         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4308         return variables as TREE_ADDRESSABLE.
4309
4310 2009-04-11  Richard Guenther  <rguenther@suse.de>
4311
4312         PR tree-optimization/39713
4313         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4314         reference trees have SSA_NAME operands.
4315
4316 2009-04-11  Richard Guenther  <rguenther@suse.de>
4317
4318         PR c/39712
4319         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4320         address expressions.
4321
4322 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
4323
4324         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
4325         match changes in Cygwin 1.7
4326         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4327         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
4328
4329 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4330
4331         PR tree-optimization/39701
4332         * doc/invoke.texi (Optimization Options): Document change in
4333         meaning and initialization of -fdelete-null-pointer-checks.
4334
4335 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4336
4337         PR middle-end/39701
4338         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4339
4340         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4341         here.
4342
4343         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4344
4345 2009-04-10  Chao-ying Fu  <fu@mips.com>
4346
4347         * doc/tm.texi (Instruction Output): Document
4348         TARGET_ASM_FINAL_POSTSCAN_INSN.
4349         * target.h (final_postscan_insn): New field in asm_out.
4350         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4351         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4352         * final.c (final_scan_insn): Call
4353         targetm.asm_out.final_postscan_insn after outputting
4354         an asm macro and a normal instruction.
4355
4356         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
4357         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
4358         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
4359         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
4360         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4361
4362 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
4363
4364         PR middle-end/39701
4365         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
4366         variables as non-NULL even with -fdelete-null-pointer-checks.
4367
4368 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
4369
4370         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
4371
4372 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
4373
4374         PR target/39678
4375         * config/i386/i386.c (classify_argument): Handle SCmode with
4376         (bit_offset % 64) != 0.
4377
4378 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
4379
4380         * doc/invoke.texi (Optimize Options): Add cross-reference to
4381         -Q --help=optimizers examples.
4382
4383 2009-04-10  Ben Elliston  <bje@au.ibm.com>
4384
4385         PR target/36800
4386         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
4387         regalign for the reg == fpr and TDmode case.
4388
4389 2009-04-09  David Ayers  <ayers@fsfe.org>
4390
4391         PR objc/29200
4392         * objc/objc-act.c (warn_with_method): Remove helper function.
4393         (check_duplicates): Call warning and inform directly.
4394         (really_start_method): Likewise.
4395
4396 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4397
4398         * expmed.c (expand_divmod): Always use a comparison for a division
4399         by a large unsigned integer.
4400
4401         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
4402         for things others than variables or functions as nonzero.
4403
4404 2009-04-09  Nick Clifton  <nickc@redhat.com>
4405
4406         * unwind-compat.c: Change copyright header to refer to version
4407         3 of the GNU General Public License with version 3.1 of the
4408         GCC Runtime Library Exception and to point readers at the
4409         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
4410         * config/alpha/crtfastmath.c: Likewise.
4411         * config/alpha/linux-unwind.h: Likewise.
4412         * config/alpha/qrnnd.asm: Likewise.
4413         * config/alpha/vms-crt0-64.c: Likewise.
4414         * config/alpha/vms-crt0.c: Likewise.
4415         * config/alpha/vms-dwarf2.asm: Likewise.
4416         * config/alpha/vms-dwarf2eh.asm: Likewise.
4417         * config/alpha/vms-psxcrt0-64.c: Likewise.
4418         * config/alpha/vms-psxcrt0.c: Likewise.
4419         * config/alpha/vms_tramp.asm: Likewise.
4420         * config/arc/initfini.c: Likewise.
4421         * config/arc/lib1funcs.asm: Likewise.
4422         * config/arm/bpabi-v6m.S: Likewise.
4423         * config/arm/bpabi.S: Likewise.
4424         * config/arm/bpabi.c: Likewise.
4425         * config/arm/crti.asm: Likewise.
4426         * config/arm/crtn.asm: Likewise.
4427         * config/arm/ieee754-df.S: Likewise.
4428         * config/arm/ieee754-sf.S: Likewise.
4429         * config/arm/lib1funcs.asm: Likewise.
4430         * config/arm/libunwind.S: Likewise.
4431         * config/arm/linux-atomic.c: Likewise.
4432         * config/arm/mmintrin.h: Likewise.
4433         * config/arm/pr-support.c: Likewise.
4434         * config/arm/unaligned-funcs.c: Likewise.
4435         * config/arm/unwind-arm.c: Likewise.
4436         * config/arm/unwind-arm.h: Likewise.
4437         * config/avr/libgcc.S: Likewise.
4438         * config/bfin/crti.s: Likewise.
4439         * config/bfin/crtlibid.s: Likewise.
4440         * config/bfin/crtn.s: Likewise.
4441         * config/bfin/lib1funcs.asm: Likewise.
4442         * config/bfin/linux-unwind.h: Likewise.
4443         * config/cris/arit.c: Likewise.
4444         * config/cris/cris_abi_symbol.c: Likewise.
4445         * config/darwin-64.c: Likewise.
4446         * config/darwin-crt2.c: Likewise.
4447         * config/darwin-crt3.c: Likewise.
4448         * config/darwin.h: Likewise.
4449         * config/dbxelf.h: Likewise.
4450         * config/dfp-bit.c: Likewise.
4451         * config/dfp-bit.h: Likewise.
4452         * config/elfos.h: Likewise.
4453         * config/fixed-bit.c: Likewise.
4454         * config/fixed-bit.h: Likewise.
4455         * config/fp-bit.c: Likewise.
4456         * config/fp-bit.h: Likewise.
4457         * config/fr30/crti.asm: Likewise.
4458         * config/fr30/crtn.asm: Likewise.
4459         * config/fr30/lib1funcs.asm: Likewise.
4460         * config/freebsd-spec.h: Likewise.
4461         * config/frv/cmovd.c: Likewise.
4462         * config/frv/cmovh.c: Likewise.
4463         * config/frv/cmovw.c: Likewise.
4464         * config/frv/frvbegin.c: Likewise.
4465         * config/frv/frvend.c: Likewise.
4466         * config/frv/lib1funcs.asm: Likewise.
4467         * config/glibc-stdint.h: Likewise.
4468         * config/h8300/clzhi2.c: Likewise.
4469         * config/h8300/crti.asm: Likewise.
4470         * config/h8300/crtn.asm: Likewise.
4471         * config/h8300/ctzhi2.c: Likewise.
4472         * config/h8300/fixunssfsi.c: Likewise.
4473         * config/h8300/lib1funcs.asm: Likewise.
4474         * config/h8300/parityhi2.c: Likewise.
4475         * config/h8300/popcounthi2.c: Likewise.
4476         * config/i386/ammintrin.h: Likewise.
4477         * config/i386/att.h: Likewise.
4478         * config/i386/avxintrin.h: Likewise.
4479         * config/i386/biarch64.h: Likewise.
4480         * config/i386/bmmintrin.h: Likewise.
4481         * config/i386/cpuid.h: Likewise.
4482         * config/i386/cross-stdarg.h: Likewise.
4483         * config/i386/crtfastmath.c: Likewise.
4484         * config/i386/crtprec.c: Likewise.
4485         * config/i386/cygming-crtbegin.c: Likewise.
4486         * config/i386/cygming-crtend.c: Likewise.
4487         * config/i386/cygwin.asm: Likewise.
4488         * config/i386/emmintrin.h: Likewise.
4489         * config/i386/gmm_malloc.h: Likewise.
4490         * config/i386/gthr-win32.c: Likewise.
4491         * config/i386/i386.h: Likewise.
4492         * config/i386/immintrin.h: Likewise.
4493         * config/i386/linux-unwind.h: Likewise.
4494         * config/i386/linux64.h: Likewise.
4495         * config/i386/mm3dnow.h: Likewise.
4496         * config/i386/mmintrin-common.h: Likewise.
4497         * config/i386/mmintrin.h: Likewise.
4498         * config/i386/nmmintrin.h: Likewise.
4499         * config/i386/pmm_malloc.h: Likewise.
4500         * config/i386/pmmintrin.h: Likewise.
4501         * config/i386/smmintrin.h: Likewise.
4502         * config/i386/sol2-c1.asm: Likewise.
4503         * config/i386/sol2-ci.asm: Likewise.
4504         * config/i386/sol2-cn.asm: Likewise.
4505         * config/i386/sol2-gc1.asm: Likewise.
4506         * config/i386/tmmintrin.h: Likewise.
4507         * config/i386/unix.h: Likewise.
4508         * config/i386/w32-unwind.h: Likewise.
4509         * config/i386/wmmintrin.h: Likewise.
4510         * config/i386/x86-64.h: Likewise.
4511         * config/i386/x86intrin.h: Likewise.
4512         * config/i386/xmmintrin.h: Likewise.
4513         * config/ia64/crtbegin.asm: Likewise.
4514         * config/ia64/crtend.asm: Likewise.
4515         * config/ia64/crtfastmath.c: Likewise.
4516         * config/ia64/crti.asm: Likewise.
4517         * config/ia64/crtn.asm: Likewise.
4518         * config/ia64/fde-glibc.c: Likewise.
4519         * config/ia64/lib1funcs.asm: Likewise.
4520         * config/ia64/linux-unwind.h: Likewise.
4521         * config/ia64/quadlib.c: Likewise.
4522         * config/ia64/unwind-ia64.c: Likewise.
4523         * config/linux.h: Likewise.
4524         * config/m32c/m32c-lib1.S: Likewise.
4525         * config/m32c/m32c-lib2-trapv.c: Likewise.
4526         * config/m32c/m32c-lib2.c: Likewise.
4527         * config/m32r/initfini.c: Likewise.
4528         * config/m68hc11/larith.asm: Likewise.
4529         * config/m68hc11/m68hc11-crt0.S: Likewise.
4530         * config/m68k/cf.md: Likewise.
4531         * config/m68k/crti.s: Likewise.
4532         * config/m68k/crtn.s: Likewise.
4533         * config/m68k/lb1sf68.asm: Likewise.
4534         * config/m68k/linux-unwind.h: Likewise.
4535         * config/mcore/crti.asm: Likewise.
4536         * config/mcore/crtn.asm: Likewise.
4537         * config/mcore/lib1.asm: Likewise.
4538         * config/mips/linux-unwind.h: Likewise.
4539         * config/mips/loongson.h: Likewise.
4540         * config/mips/mips16.S: Likewise.
4541         * config/mmix/crti.asm: Likewise.
4542         * config/mmix/crtn.asm: Likewise.
4543         * config/pa/fptr.c: Likewise.
4544         * config/pa/hpux-unwind.h: Likewise.
4545         * config/pa/lib2funcs.asm: Likewise.
4546         * config/pa/linux-atomic.c: Likewise.
4547         * config/pa/linux-unwind.h: Likewise.
4548         * config/pa/milli64.S: Likewise.
4549         * config/pa/quadlib.c: Likewise.
4550         * config/pa/stublib.c: Likewise.
4551         * config/picochip/libgccExtras/adddi3.asm: Likewise.
4552         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4553         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4554         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4555         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4556         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4557         * config/picochip/libgccExtras/divmod15.asm: Likewise.
4558         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4559         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4560         * config/picochip/libgccExtras/longjmp.asm: Likewise.
4561         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4562         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4563         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4564         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4565         * config/picochip/libgccExtras/setjmp.asm: Likewise.
4566         * config/picochip/libgccExtras/subdi3.asm: Likewise.
4567         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4568         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4569         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4570         * config/rs6000/750cl.h: Likewise.
4571         * config/rs6000/altivec.h: Likewise.
4572         * config/rs6000/biarch64.h: Likewise.
4573         * config/rs6000/crtresfpr.asm: Likewise.
4574         * config/rs6000/crtresgpr.asm: Likewise.
4575         * config/rs6000/crtresxfpr.asm: Likewise.
4576         * config/rs6000/crtresxgpr.asm: Likewise.
4577         * config/rs6000/crtsavfpr.asm: Likewise.
4578         * config/rs6000/crtsavgpr.asm: Likewise.
4579         * config/rs6000/darwin-asm.h: Likewise.
4580         * config/rs6000/darwin-fallback.c: Likewise.
4581         * config/rs6000/darwin-fpsave.asm: Likewise.
4582         * config/rs6000/darwin-ldouble.c: Likewise.
4583         * config/rs6000/darwin-tramp.asm: Likewise.
4584         * config/rs6000/darwin-unwind.h: Likewise.
4585         * config/rs6000/darwin-vecsave.asm: Likewise.
4586         * config/rs6000/darwin-world.asm: Likewise.
4587         * config/rs6000/e500crtres32gpr.asm: Likewise.
4588         * config/rs6000/e500crtres64gpr.asm: Likewise.
4589         * config/rs6000/e500crtres64gprctr.asm: Likewise.
4590         * config/rs6000/e500crtrest32gpr.asm: Likewise.
4591         * config/rs6000/e500crtrest64gpr.asm: Likewise.
4592         * config/rs6000/e500crtresx32gpr.asm: Likewise.
4593         * config/rs6000/e500crtresx64gpr.asm: Likewise.
4594         * config/rs6000/e500crtsav32gpr.asm: Likewise.
4595         * config/rs6000/e500crtsav64gpr.asm: Likewise.
4596         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4597         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4598         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4599         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4600         * config/rs6000/eabi-ci.asm: Likewise.
4601         * config/rs6000/eabi-cn.asm: Likewise.
4602         * config/rs6000/eabi.asm: Likewise.
4603         * config/rs6000/linux-unwind.h: Likewise.
4604         * config/rs6000/linux64.h: Likewise.
4605         * config/rs6000/paired.h: Likewise.
4606         * config/rs6000/paired.md: Likewise.
4607         * config/rs6000/ppc64-fp.c: Likewise.
4608         * config/rs6000/ppu_intrinsics.h: Likewise.
4609         * config/rs6000/rs6000.h: Likewise.
4610         * config/rs6000/si2vmx.h: Likewise.
4611         * config/rs6000/sol-ci.asm: Likewise.
4612         * config/rs6000/sol-cn.asm: Likewise.
4613         * config/rs6000/spe.h: Likewise.
4614         * config/rs6000/spu2vmx.h: Likewise.
4615         * config/rs6000/sysv4.h: Likewise.
4616         * config/rs6000/tramp.asm: Likewise.
4617         * config/rs6000/vec_types.h: Likewise.
4618         * config/s390/linux-unwind.h: Likewise.
4619         * config/s390/tpf-unwind.h: Likewise.
4620         * config/score/crti.asm: Likewise.
4621         * config/score/crtn.asm: Likewise.
4622         * config/sh/crt1.asm: Likewise.
4623         * config/sh/crti.asm: Likewise.
4624         * config/sh/crtn.asm: Likewise.
4625         * config/sh/divtab-sh4-300.c: Likewise.
4626         * config/sh/divtab-sh4.c: Likewise.
4627         * config/sh/divtab.c: Likewise.
4628         * config/sh/lib1funcs-4-300.asm: Likewise.
4629         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4630         * config/sh/lib1funcs.asm: Likewise.
4631         * config/sh/lib1funcs.h: Likewise.
4632         * config/sh/linux-atomic.asm: Likewise.
4633         * config/sh/linux-unwind.h: Likewise.
4634         * config/sh/shmedia.h: Likewise.
4635         * config/sh/sshmedia.h: Likewise.
4636         * config/sh/ushmedia.h: Likewise.
4637         * config/sparc/crtfastmath.c: Likewise.
4638         * config/sparc/linux-unwind.h: Likewise.
4639         * config/sparc/sol2-c1.asm: Likewise.
4640         * config/sparc/sol2-ci.asm: Likewise.
4641         * config/sparc/sol2-cn.asm: Likewise.
4642         * config/spu/divmodti4.c: Likewise.
4643         * config/spu/divv2df3.c: Likewise.
4644         * config/spu/float_disf.c: Likewise.
4645         * config/spu/float_unsdidf.c: Likewise.
4646         * config/spu/float_unsdisf.c: Likewise.
4647         * config/spu/float_unssidf.c: Likewise.
4648         * config/spu/mfc_multi_tag_release.c: Likewise.
4649         * config/spu/mfc_multi_tag_reserve.c: Likewise.
4650         * config/spu/mfc_tag_release.c: Likewise.
4651         * config/spu/mfc_tag_reserve.c: Likewise.
4652         * config/spu/mfc_tag_table.c: Likewise.
4653         * config/spu/multi3.c: Likewise.
4654         * config/spu/spu_internals.h: Likewise.
4655         * config/spu/spu_intrinsics.h: Likewise.
4656         * config/spu/spu_mfcio.h: Likewise.
4657         * config/spu/vec_types.h: Likewise.
4658         * config/spu/vmx2spu.h: Likewise.
4659         * config/stormy16/stormy16-lib2.c: Likewise.
4660         * config/svr4.h: Likewise.
4661         * config/sync.c: Likewise.
4662         * config/v850/lib1funcs.asm: Likewise.
4663         * config/vxlib-tls.c: Likewise.
4664         * config/vxlib.c: Likewise.
4665         * config/vxworks-dummy.h: Likewise.
4666         * config/xtensa/crti.asm: Likewise.
4667         * config/xtensa/crtn.asm: Likewise.
4668         * config/xtensa/ieee754-df.S: Likewise.
4669         * config/xtensa/ieee754-sf.S: Likewise.
4670         * config/xtensa/lib1funcs.asm: Likewise.
4671         * config/xtensa/lib2funcs.S: Likewise.
4672         * config/xtensa/linux-unwind.h: Likewise.
4673         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4674         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4675         * coretypes.h: Likewise.
4676         * crtstuff.c: Likewise.
4677         * defaults.h: Likewise.
4678         * dwarf2.h: Likewise.
4679         * emutls.c: Likewise.
4680         * gbl-ctors.h: Likewise.
4681         * gcov-io.h: Likewise.
4682         * ginclude/float.h: Likewise.
4683         * ginclude/iso646.h: Likewise.
4684         * ginclude/stdarg.h: Likewise.
4685         * ginclude/stdbool.h: Likewise.
4686         * ginclude/stddef.h: Likewise.
4687         * ginclude/stdfix.h: Likewise.
4688         * ginclude/stdint-gcc.h: Likewise.
4689         * ginclude/tgmath.h: Likewise.
4690         * gthr-aix.h: Likewise.
4691         * gthr-dce.h: Likewise.
4692         * gthr-gnat.c: Likewise.
4693         * gthr-gnat.h: Likewise.
4694         * gthr-lynx.h: Likewise.
4695         * gthr-mipssde.h: Likewise.
4696         * gthr-nks.h: Likewise.
4697         * gthr-posix.c: Likewise.
4698         * gthr-posix.h: Likewise.
4699         * gthr-posix95.h: Likewise.
4700         * gthr-rtems.h: Likewise.
4701         * gthr-single.h: Likewise.
4702         * gthr-solaris.h: Likewise.
4703         * gthr-tpf.h: Likewise.
4704         * gthr-vxworks.h: Likewise.
4705         * gthr-win32.h: Likewise.
4706         * gthr.h: Likewise.
4707         * libgcc2.c: Likewise.
4708         * libgcc2.h: Likewise.
4709         * libgcov.c: Likewise.
4710         * tsystem.h: Likewise.
4711         * typeclass.h: Likewise.
4712         * unwind-c.c: Likewise.
4713         * unwind-compat.h: Likewise.
4714         * unwind-dw2-fde-compat.c: Likewise.
4715         * unwind-dw2-fde-darwin.c: Likewise.
4716         * unwind-dw2-fde-glibc.c: Likewise.
4717         * unwind-dw2-fde.c: Likewise.
4718         * unwind-dw2-fde.h: Likewise.
4719         * unwind-dw2.c: Likewise.
4720         * unwind-dw2.h: Likewise.
4721         * unwind-generic.h: Likewise.
4722         * unwind-pe.h: Likewise.
4723         * unwind-sjlj.c: Likewise.
4724         * unwind.inc: Likewise.
4725         * config/arm/neon-gen.ml: Change generated copyright header to
4726         refer to version 3 of the GNU General Public License with
4727         version 3.1 of the GCC Runtime Library Exception and to point
4728         readers at the COPYING3 and COPYING3.RUNTIME files and the
4729         FSF's license web page.
4730         * config/arm/arm_neon.h: Regenerate.
4731
4732 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4733
4734         * config/cris/cris.md: Change copyright header to refer to version
4735         3 of the GNU General Public License.
4736         * doc/install.texi2html: Change copyright header to refer to version
4737         3 of the GNU General Public License and to point readers at the
4738         COPYING3 file and the FSF's license web page.
4739         * config/vax/linux.h: Likewise.
4740
4741 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4742
4743         * config/i386/i386.md (cmpcc): New.
4744         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4745         (sync_compare_and_swap_cc*): Delete.
4746
4747         * config/s390/s390.c (s390_compare_emitted): Remove.
4748         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4749         s390_compare_emitted used to be handled.  Assert that modes match.
4750         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4751         refer to sync_compare_and_swap_ccsi.
4752         * config/s390/s390.h (s390_compare_emitted): Remove.
4753         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4754         instead of s390_compare_emitted.
4755         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4756         instead of s390_compare_emitted.
4757         * config/s390/s390.md (cmpcc): New.
4758         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4759         CC_REGNUM, do not pretend it's set.
4760         (sync_compare_and_swap_cc*): Delete.
4761         * config/s390/predicates.md (cc_reg_operand): New.
4762
4763         * expr.c (sync_compare_and_swap_cc): Delete.
4764         * optabs.h (sync_compare_and_swap_cc): Delete.
4765         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4766         is being used with can_compare_p.
4767         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4768         (find_cc_set): New.
4769         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4770         look for a MODE_CC set instead.  Use emit_store_flag.
4771         (expand_compare_and_swap_loop): Likewise, with some additional
4772         complication to avoid a force_reg when useless.  Use
4773         emit_cmp_and_jump_insns.
4774         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4775         * doc/md.texi (sync_compare_and_swap_cc): Merge with
4776         sync_compare_and_swap documentation.
4777
4778 2009-04-09  Jan Hubicka  <jh@suse.cz>
4779
4780         * except.c (find_prev_try): Break out from ....
4781         (duplicate_eh_regions): ... here; properly update prev_try pointers
4782         when duplication part of tree.
4783         (dump_eh_tree): Improve dumping.
4784         (verify_eh_region): New.
4785         (verify_eh_tree): Use it.
4786
4787 2009-04-06  Richard Guenther  <rguenther@suse.de>
4788
4789         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4790         &ARRAY addresses by adjusting their types and prepending
4791         a conversion.
4792         * tree-cfg.c (verify_gimple_assign_single): Verify that
4793         addresses are correct.
4794
4795 2009-04-09  Richard Guenther  <rguenther@suse.de>
4796
4797         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4798         indices into an array reference if possible.
4799         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4800         Fold POINTER_PLUS_EXPR statements with invariant address.
4801
4802 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
4803
4804         PR target/39634
4805         * config.gcc (powerpc64-*-linux*): Always build biarch.
4806
4807 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
4808
4809         PR c/39613
4810         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4811         it and pedwarn if this results in an INTEGER_CST.
4812
4813 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4814
4815         * doc/install.texi: Update minimum GMP version.  Remove obsolete
4816         text in MPFR section.
4817
4818 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4819
4820         * dwarf2out.c (class_scope_p): New static inline.
4821         (class_or_namespace_scope_p): Use it.
4822         (gen_variable_die): Use DW_TAG_member tag for static data member
4823         declarations instead of DW_TAG_variable.
4824
4825         PR middle-end/39573
4826         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4827         variables.
4828
4829 2009-04-08  Richard Guenther  <rguenther@suse.de>
4830
4831         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4832         valueize random data.
4833
4834 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
4835
4836         * config.gcc (aix tm_file):  Add aix-stdint.h.
4837         (aix tm clause use_gcc_stdint):  Set to wrap.
4838         * config/rs6000/aix-stdint.h:  New file.
4839
4840 2009-04-08  Richard Guenther  <rguenther@suse.de>
4841
4842         PR middle-end/36291
4843         * tree-dfa.c (add_referenced_var): Do not recurse into
4844         global initializers.
4845         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4846         exposed variables.
4847         (fold_const_aggregate_ref): Likewise.
4848
4849 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4850
4851         * recog.c (ordered_comparison_operator): New.
4852         * gensupport.c (std_preds): Add it.
4853         * doc/md.texi (Machine-Independent Predicates): Document it.
4854
4855 2009-04-08  Jan Hubicka  <jh@suse.cz>
4856
4857         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4858         * function.h (rtl_eh): Remove exception_handler_label_map.
4859         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4860         remove_exception_handler_label, for_each_eh_label_1): Remove.
4861         (rtl_remove_unreachable_regions): Remove.
4862         (convert_from_eh_region_ranges): Do not remove unreachable regions.
4863         (find_exception_handler_labels): Don't build the hashtable.
4864         (maybe_remove_eh_handler): Remove.
4865         (for_each_eh_label): Rewrite to walk the tree.
4866         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4867         * except.h (maybe_remove_eh_handler): Remove.
4868         * passes.c (init_optimization_passes): Schedule second EH cleanup
4869         before out-of-ssa.
4870         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4871         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4872
4873 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4874
4875         * genoutput.c (validate_optab_operands): New.
4876         (gen_insn, gen_expand): Call it.
4877
4878         * genflags.c (gen_insn): Detect misused iterators.
4879         (main): Pass line_no to gen_insn, exit with status 1 on error.
4880
4881         * genextract.c (line_no): Make global.
4882         (VEC_safe_set_locstr): Change assertion to error message.
4883         (main): Exit with status 1 on error.
4884
4885 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
4886
4887         PR c/39614
4888         PR c/39673
4889         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4890         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4891         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4892         * c-convert.c (convert): Do not call fold on results of conversion
4893         functions when the result is a C_MAYBE_CONST_EXPR.
4894         * c-parser.c (c_parser_postfix_expression): Do not fold condition
4895         of __builtin_choose_expr.
4896         * c-typeck.c (remove_c_maybe_const_expr): New.
4897         (build_unary_op, build_conditional_expr, build_compound_expr,
4898         build_binary_op, c_objc_common_truthvalue_conversion): Call
4899         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4900         integer operands.
4901
4902 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
4903
4904         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
4905         CODE to produce a new one. Add a prototype to use fold_convert_const
4906
4907 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4908
4909         PR bootstrap/39660
4910         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4911         mix declarations and code.
4912
4913 2009-04-08  Ben Elliston  <bje@au.ibm.com>
4914
4915         * gcc.c: Replace `CC' with `GCC' throughout.
4916
4917 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4918
4919         * doc/invoke.texi: Document Atom support.
4920
4921 2009-04-07  Jason Merrill  <jason@redhat.com>
4922
4923         PR c++/25185
4924         * c-common.h, c-common.c: Add flag_pretty_templates.
4925         * c-opts.c (c_common_handle_option): Set it.
4926         * c.opt: Add -fno-pretty-templates.
4927         * doc/invoke.texi (C++ Dialect Options): Likewise.
4928
4929 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
4930
4931         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4932         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4933         (ia64_expand_builtin): Likewise.
4934
4935 2009-04-07  Martin Jambor  <mjambor@suse.cz>
4936
4937         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4938         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4939         ADDR_EXPRS are include too.
4940
4941 2009-04-07  Richard Guenther  <rguenther@suse.de>
4942
4943         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4944         decls are only used if passes as parameters or if they are
4945         local statics and the call is not to a builtin.
4946         (call_may_clobber_ref_p_1): Likewise.
4947
4948 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4949
4950         * expr.c (do_store_flag): Remove last argument.  Simplify code
4951         to avoid duplication of tests already done by can_compare_p.
4952         (expand_expr_real_1): Adjust caller.
4953
4954 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4955
4956         * optabs.c (can_compare_p): Test the predicate of a
4957         cbranch and cstore pattern.
4958
4959 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4960
4961         * expr.c (convert_move): Use emit_store_flag instead of
4962         "emulating" it.
4963
4964 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4965
4966         * config/i386/i386.c (ix86_compare_emitted): Remove.
4967         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4968         ix86_compare_op0 like ix86_compare_emitted used to be handled.
4969         * config/i386/i386.h (ix86_compare_emitted): Remove.
4970         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4971         instead of ix86_compare_emitted.
4972         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
4973
4974 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
4975
4976         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4977         Add t-sysroot-suffix to tmake_file.
4978         * config/print-sysroot-suffix.sh: New file.
4979         * config/t-sysroot-suffix: New file.
4980
4981 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4982
4983         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4984         as the latter produces a warning when the target does not support
4985         infinity.
4986
4987 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4988
4989         * dfp.c: Replace type punning assignments with memcpy throughout.
4990         * Makefile.in (dfp.o-warn): Remove.
4991
4992 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
4993
4994         PR target/39634
4995         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4996         Include soft-fp/t-softfp after rs6000/t-linux64.
4997
4998 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4999
5000         * stor-layout.c (set_sizetype): Use the full precision of their
5001         machine mode for bitsize types.
5002
5003 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
5004
5005         * config/i386/i386.md: Revert 2 accidental checkins.
5006
5007 2009-04-06  Joey Ye  <joey.ye@intel.com>
5008             Xuepeng Guo  <xuepeng.guo@intel.com>
5009             H.J. Lu  <hongjiu.lu@intel.com>
5010
5011         Atom pipeline model, tuning and insn selection.
5012         * config.gcc (atom): Add atom config options and target.
5013
5014         * config/i386/atom.md: New.
5015
5016         * config/i386/i386.c (atom_cost): New cost.
5017         (m_ATOM): New macro flag.
5018         (initial_ix86_tune_features): Set m_ATOM.
5019         (x86_accumulate_outgoing_args): Likewise.
5020         (x86_arch_always_fancy_math_387): Likewise.
5021         (processor_target): Add Atom cost.
5022         (cpu_names): Add Atom cpu name.
5023         (override_options): Set Atom ISA.
5024         (ix86_issue_rate): New case PROCESSOR_ATOM.
5025         (ix86_adjust_cost): Likewise.
5026
5027         * config/i386/i386.h (TARGET_ATOM): New target macro.
5028         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5029         (TARGET_OPT_AGU): New target option.
5030         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5031         (processor_type): Add PROCESSOR_ATOM.
5032
5033         * config/i386/i386.md (cpu): Add new value "atom".
5034         (use_carry, movu): New attr.
5035         (atom.md): Include atom.md.
5036         (adddi3_carry_rex64): Set attr "use_carry".
5037         (addqi3_carry): Likewise.
5038         (addhi3_carry): Likewise.
5039         (addsi3_carry): Likewise.
5040         (*addsi3_carry_zext): Likewise.
5041         (subdi3_carry_rex64): Likewise.
5042         (subqi3_carry): Likewise.
5043         (subhi3_carry): Likewise.
5044         (subsi3_carry): Likewise.
5045         (x86_movdicc_0_m1_rex64): Likewise.
5046         (*x86_movdicc_0_m1_se): Likewise.
5047         (x86_movsicc_0_m1): Likewise.
5048         (*x86_movsicc_0_m1_se): Likewise.
5049         (*adddi_1_rex64): Emit add insn as much as possible.
5050         (*addsi_1): Likewise.
5051         (return_internal): Set atom_unit.
5052         (return_internal_long): Likewise.
5053         (return_pop_internal): Likewise.
5054         (*rcpsf2_sse): Set atom_sse_attr attr.
5055         (*qrt<mode>2_sse): Likewise.
5056         (*prefetch_sse): Likewise.
5057
5058         * config/i386/i386-c.c (ix86_target_macros_internal): New case
5059         PROCESSOR_ATOM.
5060         (ix86_target_macros_internal): Likewise.
5061
5062         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5063         (*prefetch_sse_rex): Likewise.
5064         (sse_rcpv4sf2): Likewise.
5065         (sse_vmrcpv4sf2): Likewise.
5066         (sse_sqrtv4sf2): Likewise.
5067         (<sse>_vmsqrt<mode>2): Likewise.
5068         (sse_ldmxcsr): Likewise.
5069         (sse_stmxcsr): Likewise.
5070         (*sse_sfence): Likewise.
5071         (sse2_clflush): Likewise.
5072         (*sse2_mfence): Likewise.
5073         (*sse2_lfence): Likewise.
5074         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5075         (<sse>_movup<ssemodesuffixf2c>): Likewise.
5076         (avx_movdqu<avxmodesuffix>): Likewise.
5077         (avx_lddqu<avxmodesuffix>): Likewise.
5078         (sse2_movntv2di): Change attr "type" to "ssemov".
5079         (sse2_movntsi): Likewise.
5080         (rsqrtv8sf2): Change attr "type" to "sseadd".
5081         (sse3_addsubv2df3): Set attr "atom_unit".
5082         (sse3_h<plusminus_insn>v4sf3): Likewise.
5083         (*sse2_pmaddwd): Likewise.
5084         (*vec_extractv2di_1_rex64): Likewise.
5085         (*vec_extractv2di_1_avx): Likewise.
5086         (sse2_psadbw): Likewise.
5087         (ssse3_phaddwv8hi3): Likewise.
5088         (ssse3_phaddwv4hi3): Likewise.
5089         (ssse3_phadddv4si3): Likewise.
5090         (ssse3_phadddv2si3): Likewise.
5091         (ssse3_phaddswv8hi3): Likewise.
5092         (ssse3_phaddswv4hi3): Likewise.
5093         (ssse3_phsubwv8hi3): Likewise.
5094         (ssse3_phsubwv4hi3): Likewise.
5095         (ssse3_phsubdv4si3): Likewise.
5096         (ssse3_phsubdv2si3): Likewise.
5097         (ssse3_phsubswv8hi3): Likewise.
5098         (ssse3_phsubswv4hi3): Likewise.
5099         (ssse3_pmaddubsw128): Likewise.
5100         (sse3_pmaddubsw: Likewise.
5101         (ssse3_palignrti): Likewise.
5102         (ssse3_palignrdi): Likewise.
5103
5104 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
5105
5106         * doc/install.texi (Specific): Fix two cross-references to MinGW.
5107
5108 2009-04-06  Richard Guenther  <rguenther@suse.de>
5109
5110         PR tree-optimization/28868
5111         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5112         of which PHI results we inserted.
5113         (insert_into_preds_of_block): Record inserted PHIs.
5114         (eliminate): Eliminate redundant PHI nodes.
5115         (init_pre): Init inserted_phi_names.
5116
5117 2009-04-06  Richard Guenther  <rguenther@suse.de>
5118
5119         PR tree-optimization/39643
5120         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
5121         IMAGPART_EXPRs of complex constants.
5122         (execute_fold_all_builtins): If we folded a call queue
5123         TODO_update_address_taken.
5124
5125 2009-04-06  Jan Hubicka  <jh@suse.cz>
5126
5127         PR middle-end/39659
5128         * except.c (remove_unreachable_regions): Propagate may_contain_throw
5129         flag.
5130
5131 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
5132
5133         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
5134         delay slot.
5135         (ic_invalidate_array): Likewise.
5136
5137 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
5138
5139         * calls.c (emit_library_call_value_1): Fix a problem with parameter
5140         alignment for library calls.
5141
5142 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
5143
5144         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
5145         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
5146         * config/i386/mingw-stdint.h:  New file.
5147
5148 2009-04-05  Richard Guenther  <rguenther@suse.de>
5149
5150         PR tree-optimization/39648
5151         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
5152         our &A vs. &A[0] IL deficiencies.
5153
5154 2009-04-04  Jan Hubicka  <jh@suse.cz>
5155
5156         * except.c (sjlj_find_directly_reachable_regions): Be ready for
5157         removed toplevel regions.
5158         (sjlj_mark_call_sites): Likewise.
5159
5160 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
5161
5162         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
5163         (cygwin tm clause use_gcc_stdint):  Set to wrap.
5164         * config/i386/cygwin-stdint.h:  New file.
5165
5166 2009-04-04  Richard Guenther  <rguenther@suse.de>
5167
5168         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
5169         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
5170         single-argument PHIs if we are in loop-closed SSA form.
5171         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
5172         for the pre-condition.
5173         (slpeel_tree_peel_loop_to_edge): Likewise.
5174         (vect_build_loop_niters): Take an optional sequence to append stmts.
5175         (vect_generate_tmps_on_preheader): Likewise.
5176         (vect_do_peeling_for_loop_bound): Take extra guards for the
5177         pre-condition.
5178         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
5179         the cost model check.
5180         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
5181         guards if we are going to peel.  Do not apply versioning in that case.
5182         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
5183         (vect_do_peeling_for_loop_bound): Likewise.
5184         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
5185         loop bound only record extra pre-conditions, do not apply loop
5186         versioning.
5187
5188 2009-04-04  Richard Guenther  <rguenther@suse.de>
5189
5190         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5191         renaming code.
5192
5193 2009-04-04  Jan Hubicka  <jh@suse.cz>
5194
5195         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5196         last_basic_block for size of bb->index indexed array.
5197         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5198         compute_out, link_btr_uses, build_btr_def_use_webs,
5199         build_btr_def_use_webs, migrate_btr_defs): Likewise.
5200
5201 2009-04-04  Jan Hubicka  <jh@suse.cz>
5202
5203         * except.c (remove_eh_handler_and_replace): Break out from ...
5204         (remove_eh_handler): ... here.
5205         (bring_to_root): New function.
5206         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5207         handled ones, bring others to root of tree.
5208
5209 2009-04-04  Jan Hubicka  <jh@suse.cz>
5210
5211         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5212         (all_phis_safe_to_merge): New function.
5213         (update_info): New structure.
5214         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5215         (cleanup_empty_eh): Update SSA if possible.
5216
5217 2009-04-04  Richard Guenther  <rguenther@suse.de>
5218
5219         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5220         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5221         (append_vuse): Likewise.
5222
5223 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
5224
5225         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5226         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5227         instead of REG_UNSAVED for DW_CFA_undefined.
5228         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5229         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5230         outermost frame.
5231
5232 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
5233
5234         PR target/39501
5235         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5236         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5237         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5238
5239 2009-04-04  Richard Guenther  <rguenther@suse.de>
5240
5241         PR tree-optimization/8781
5242         PR tree-optimization/37892
5243         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5244         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5245         (valueize_refs): Call it for *& valueizations.
5246         (shared_reference_ops_from_ref): Rename to ...
5247         (valueize_shared_reference_ops_from_ref): ... this and valueize.
5248         (shared_reference_ops_from_call): Rename to ...
5249         (valueize_shared_reference_ops_from_call): ... this and valueize.
5250         (vn_reference_lookup): Update.
5251         (visit_reference_op_call): Likewise.
5252         * tree-ssa-pre.c (phi_translate_1): Fold *&.
5253         (eliminate): Value-replace the call address in call statements.
5254
5255 2009-04-04  Richard Guenther  <rguenther@suse.de>
5256
5257         PR tree-optimization/39636
5258         * tree-ssa-forwprop.c
5259         (forward_propagate_addr_into_variable_array_index): Check for
5260         GIMPLE_ASSIGN before accessing the rhs code.
5261
5262 2009-04-03  Jason Merrill  <jason@redhat.com>
5263
5264         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5265
5266 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
5267
5268         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5269         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5270         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5271         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5272         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5273         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5274         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5275         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5276         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5277         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5278         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5279         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5280         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5281         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5282         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5283         Use fr_reg_or_fp01_operand instead of fr_register_operand
5284
5285         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5286         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5287         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5288
5289 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
5290
5291         PR rtl-optimization/39607
5292         PR rtl-optimization/39631
5293
5294         Revert:
5295
5296         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5297         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5298         instead of DF_LR_OUT.
5299         * ira-lives.c (process_bb_node_lives): Ditto.
5300         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5301         instead of DF_LR_{OUT,IN}.
5302         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5303         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5304
5305 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
5306
5307         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5308         (execute_lower_omp): Always run but take the short way out if -fopenmp
5309         is not given.
5310         (gate_lower_omp): Remove, forcing the pass manager to always run the
5311         pass and always set PROP_gimple_lomp.
5312         (pass_lower_omp): Remove gate function.
5313         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5314         PROP_trees.  Instead, require it.
5315         * ipa-cp.c (pass_ipa_cp): Likewise.
5316         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5317         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5318         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5319         and PROP_gimple_leh.
5320
5321 2009-04-03  Richard Guenther  <rguenther@suse.de>
5322
5323         PR middle-end/13146
5324         PR tree-optimization/23940
5325         PR tree-optimization/33237
5326         PR middle-end/33974
5327         PR middle-end/34093
5328         PR tree-optimization/36201
5329         PR tree-optimization/36230
5330         PR tree-optimization/38049
5331         PR tree-optimization/38207
5332         PR tree-optimization/38230
5333         PR tree-optimization/38301
5334         PR tree-optimization/38585
5335         PR middle-end/38895
5336         PR tree-optimization/38985
5337         PR tree-optimization/39299
5338         * tree-ssa-structalias.h: Remove.
5339         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5340         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5341         (struct vuse_element_d): Remove.
5342         (struct vuse_vec_d): Likewise.
5343         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5344         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5345         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5346         VUSE_ELEMENT_VAR): Likewise.
5347         (struct voptype_d): Likewise.
5348         (NUM_VOP_FREE_BUCKETS): Likewise.
5349         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5350         (struct stmt_operands_d): Remove.
5351         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5352         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
5353         VDEF_NUM, VDEF_VECT): Likewise.
5354         (copy_virtual_operands): Remove.
5355         (operand_build_cmp): Likewise.
5356         (create_ssa_artificial_load_stmt): Likewise.
5357         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
5358         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
5359         vuse_index and mayuse_index members.  Pack and move done and iter_type
5360         members to the front.
5361         (SSA_OP_VMAYUSE): Remove.
5362         (SSA_OP_VIRTUAL_USES): Adjust.
5363         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
5364         (unlink_stmt_vdef): Declare.
5365         (add_to_addressable_set): Remove.
5366         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
5367         (vrp_visit_stmt): Likewise.
5368         * doc/tree-ssa.texi (Alias analysis): Update.
5369         * doc/invoke.texi (max-aliased-vops): Remove docs.
5370         (avg-aliased-vops): Likewise.
5371         * tree-into-ssa.c (syms_to_rename): Remove.
5372         (need_to_update_vops_p): Likewise.
5373         (need_to_initialize_update_ssa_p): Rename to ...
5374         (update_ssa_initialized_fn): ... this.  Track function we are
5375         initialized for.
5376         (symbol_marked_for_renaming): Simplify.
5377         (add_new_name_mapping): Do not set need_to_update_vops_p.
5378         (dump_currdefs): Use SYMS_TO_RENAME.
5379         (rewrite_update_stmt): Always walk all uses/defs.
5380         (dump_update_ssa): Adjust.
5381         (init_update_ssa): Take function argument.  Track what we are
5382         initialized for.
5383         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
5384         (create_new_def_for): Initialize for cfun, assert we are initialized
5385         for cfun.
5386         (mark_sym_for_renaming): Simplify.
5387         (mark_set_for_renaming): Do not initialize update-ssa.
5388         (need_ssa_update_p): Simplify.  Take function argument.
5389         (name_mappings_registered_p): Assert we ask for the correct function.
5390         (name_registered_for_update_p): Likewise.
5391         (ssa_names_to_replace): Likewise.
5392         (release_ssa_name_after_update_ssa): Likewise.
5393         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
5394         (dump_decl_set): Do not print a newline.
5395         (debug_decl_set): Do it here.
5396         (dump_update_ssa): And here.
5397         * tree-ssa-loop-im.c (move_computations): Adjust.
5398         (movement_possibility): Likewise.
5399         (determine_max_movement): Likewise.
5400         (gather_mem_refs_stmt): Likewise.
5401         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
5402         or NAME_MEMORY_TAG.
5403         * tree-complex.c (update_all_vops): Remove.
5404         (expand_complex_move): Adjust.
5405         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
5406         Simplify test for memory referencing statement.  Exclude
5407         non-invariant ADDR_EXPRs.
5408         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
5409         * tree-loop-distribution.c (generate_memset_zero): Adjust.
5410         (rdg_flag_uses): Likewise.
5411         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
5412         related code.
5413         (tree_optimize_tail_calls_1): Also split the
5414         edge from the entry block if we have degenerate PHI nodes in
5415         the first basic block.
5416         * tree.c (init_ttree): Remove memory-tag related code.
5417         (tree_code_size): Likewise.
5418         (tree_node_structure): Likewise.
5419         (build7_stat): Re-write to be build6_stat.
5420         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
5421         (SSA_VAR_P): Adjust.
5422         (struct tree_memory_tag): Remove.
5423         (struct tree_memory_partition_tag): Likewise.
5424         (union tree_node): Adjust.
5425         (build7): Re-write to be build6.
5426         * tree-pass.h (pass_reset_cc_flags): Remove.
5427         (TODO_update_address_taken): New flag.
5428         (pass_simple_dse): Remove.
5429         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
5430         * params.h (MAX_ALIASED_VOPS): Remove.
5431         (AVG_ALIASED_VOPS): Likewise.
5432         * omp-low.c (expand_omp_taskreg): Update SSA form.
5433         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
5434         aliases the lhs in a copy stmt.
5435         * tree-ssa-dse.c (struct address_walk_data): Remove.
5436         (memory_ssa_name_same): Likewise.
5437         (memory_address_same): Likewise.
5438         (get_kill_of_stmt_lhs): Likewise.
5439         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
5440         unused stores.  Look through PHI nodes into post-dominated regions.
5441         (dse_optimize_stmt): Simplify.  Properly remove stores.
5442         (tree_ssa_dse): Compute dominators.
5443         (execute_simple_dse): Remove.
5444         (pass_simple_dse): Likewise.
5445         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
5446         gimple_loaded_syms and gimple_stored_syms computation.
5447         * toplev.c (dump_memory_report): Dump alias and pta stats.
5448         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
5449         (vn_reference_eq): Likewise.
5450         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
5451         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
5452         valueize_vuses): Remove.
5453         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
5454         (get_def_ref_stmt_vuse): ... this.
5455         (vn_reference_lookup_2): New function.
5456         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
5457         walking equivalent vuses.  Simplify.
5458         (vn_reference_lookup): Likewise.
5459         (vn_reference_insert): Likewise.
5460         (vn_reference_insert_pieces): Likewise.
5461         (visit_reference_op_call): Simplify.
5462         (visit_reference_op_load): Likewise.
5463         (visit_reference_op_store): Likewise.
5464         (init_scc_vn): Remove shared_lookup_vuses initialization.
5465         (free_scc_vn): Remove shared_lookup_vuses freeing.
5466         (sort_vuses, sort_vuses_heap): Remove.
5467         (get_ref_from_reference_ops): Export.
5468         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
5469         vector with single vuse pointer.
5470         (vn_reference_lookup_pieces, vn_reference_lookup,
5471         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
5472         (shared_vuses_from_stmt): Remove.
5473         (get_ref_from_reference_ops): Declare.
5474         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
5475         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5476         memory-tag related code.
5477         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
5478         (likely_value): Add comment, skip static-chain of call statements.
5479         (surely_varying_stmt_p): Adjust.
5480         (gimplify_and_update_call_from_tree): Likewise.
5481         (execute_fold_all_builtins): Do not rebuild alias info.
5482         (gimplify_and_update_call_from_tree): Properly update VOPs.
5483         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
5484         (copy_ref_info): Remove memory-tag related code.
5485         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
5486         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
5487         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
5488         computation.
5489         * tree-ssa-dom.c (gimple_p): Remove typedef.
5490         (eliminate_redundant_computations): Adjust.
5491         (record_equivalences_from_stmt): Likewise.
5492         (avail_expr_hash): Likewise.
5493         (avail_expr_eq): Likewise.
5494         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5495         (stmt_makes_single_load): Likewise.
5496         (stmt_makes_single_store): Likewise.
5497         * tree-ssa-alias.c: Rewrite completely.
5498         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
5499         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
5500         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
5501         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
5502         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
5503         Remove public functions.
5504         (pass_reset_cc_flags): Remove.
5505         (pass_build_alias): Move ...
5506         * tree-ssa-structalias.c (pass_build_alias): ... here.
5507         * tree-ssa-alias.c (may_be_aliased): Move ...
5508         * tree-flow-inline.h (may_be_aliased): ... here.
5509         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
5510         count_uses_and_derefs): Move ...
5511         * gimple.c: ... here.
5512         * gimple.h (count_uses_and_derefs): Declare.
5513         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
5514         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
5515         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
5516         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
5517         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
5518         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
5519         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
5520         New functions.
5521         * tree-dfa.c (refs_may_alias_p): Move ...
5522         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
5523         * tree-ssa-alias.h: New file.
5524         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
5525         (statement_sink_location): Likewise.
5526         * opts.c (decode_options): Do not adjust max-aliased-vops or
5527         avg-aliased-vops values.
5528         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
5529         (TV_CALL_CLOBBER): Likewise.
5530         (TV_FLOW_SENSITIVE): Likewise.
5531         (TV_FLOW_INSENSITIVE): Likewise.
5532         (TV_MEMORY_PARTITIONING): Likewise.
5533         (TV_ALIAS_STMT_WALK): New timevar.
5534         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
5535         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
5536         (get_address_description): Remove memory-tag related code.
5537         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
5538         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
5539         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
5540         and immediate uses in statements.  Document.
5541         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
5542         (dump_symbols): Remove.
5543         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
5544         * alias.c (get_deref_alias_set): New function split out from ...
5545         (get_alias_set): ... here.
5546         * alias.h (get_deref_alias_set): Declare.
5547         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
5548         type parameter.  Remove restrict pointer handling.  Create a
5549         ref-all pointer in case type-based alias sets do not conflict.
5550         (vect_analyze_data_refs): Remove SMT related code.
5551         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5552         (vectorizable_load): Likewise.
5553         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5554         (DR_SYMBOL_TAG, DR_VOPS): Remove.
5555         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5556         Ignore vops and SMTs.
5557         (dr_analyze_alias): Likewise..
5558         (free_data_ref): Likewise.
5559         (create_data_ref): Likewise.
5560         (analyze_all_data_dependences): Likewise.
5561         (get_references_in_stmt): Adjust.
5562         * tree-flow-inline.h (gimple_aliases_computed_p,
5563         gimple_addressable_vars, gimple_call_clobbered_vars,
5564         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5565         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5566         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5567         gimple_mem_ref_stats): Remove.
5568         (gimple_vop): New function.
5569         (op_iter_next_use): Remove vuses and mayuses cases.
5570         (op_iter_next_def): Remove vdefs case.
5571         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5572         (clear_and_done_ssa_iter): Do not set removed fields.
5573         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
5574         Assert we are not iterating over vuses or vdefs if not also
5575         iterating over uses or defs.
5576         (op_iter_init_use): Likewise.
5577         (op_iter_init_def): Likewise.
5578         (op_iter_next_vdef): Remove.
5579         (op_iter_next_mustdef): Likewise.
5580         (op_iter_init_vdef): Likewise.
5581         (compare_ssa_operands_equal): Likewise.
5582         (link_use_stmts_after): Handle vuse operand.
5583         (is_call_used): Use is_call_clobbered.
5584         (is_call_clobbered): Global variables are always call clobbered,
5585         query the call-clobbers bitmap.
5586         (mark_call_clobbered): Ignore global variables.
5587         (clear_call_clobbered): Likewise.
5588         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5589         virtual operands sanity check.
5590         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5591         Remove.
5592         (TARGET_MEM_REF): Remove TMR_TAG operand.
5593         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5594         Remove call-clobber related code.
5595         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
5596         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5597         partitions or escape reason.
5598         (get_single_def_stmt, get_single_def_stmt_from_phi,
5599         get_single_def_stmt_with_phi): Remove.
5600         (dump_referenced_vars): Tidy.
5601         (get_ref_base_and_extent): Allow bare decls.
5602         (collect_dfa_stats): Adjust.
5603         * graphite.c (rename_variables_in_stmt): Adjust.
5604         (graphite_copy_stmts_from_block): Likewise.
5605         (translate_clast): Likewise.
5606         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5607         (EXPR_DIES): New.
5608         (translate_vuse_through_block): Use the oracle.
5609         (phi_translate_1): Adjust.
5610         (value_dies_in_block_x): Use the oracle.  Cache the outcome
5611         in EXPR_DIES.
5612         (valid_in_sets): Check if the VUSE for
5613         a REFERENCE is available.
5614         (eliminate): Do not remove stmts during elimination,
5615         instead queue and remove them afterwards.
5616         (do_pre): Do not rebuild alias info.
5617         (pass_pre): Run TODO_rebuild_alias before PRE.
5618         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5619         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5620         (mark_all_v_defs_stmt): Remove.
5621         (mark_all_v_defs_seq): Adjust.
5622         (sra_replace): Likewise.
5623         (scalarize_use): Likewise.
5624         (scalarize_copy): Likewise.
5625         (scalarize_init): Likewise.
5626         (scalarize_ldst): Likewise.
5627         (todoflags): Remove.
5628         (tree_sra): Do not rebuild alias info.
5629         (tree_sra_early): Adjust.
5630         (pass_sra): Run TODO_update_address_taken before SRA.
5631         * tree-predcom.c (set_alias_info): Remove.
5632         (prepare_initializers_chain): Do not call it.
5633         (mark_virtual_ops_for_renaming): Adjust.
5634         (mark_virtual_ops_for_renaming_list): Remove.
5635         (initialize_root_vars): Adjust.
5636         (initialize_root_vars_lm): Likewise.
5637         (prepare_initializers_chain): Likewise.
5638         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5639         (may_propagate_copy_into_stmt): Likewise.
5640         (merge_alias_info): Do nothing for now.
5641         (propagate_tree_value_into_stmt): Adjust.
5642         (stmt_may_generate_copy): Likewise.
5643         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5644         not mark symbols for renaming.
5645         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5646         with the same statement, make sure to update the new pointed-to one.
5647         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5648         call statements, do not mark symbols for renaming.
5649         (mark_operand_necessary): Dump something.
5650         (ref_may_be_aliased): New function.
5651         (mark_aliased_reaching_defs_necessary_1): New helper function.
5652         (mark_aliased_reaching_defs_necessary): Likewise.
5653         (mark_all_reaching_defs_necessary_1): Likewise.
5654         (mark_all_reaching_defs_necessary): Likewise.
5655         (propagate_necessity): Do not process virtual PHIs.  For
5656         non-aliased loads mark all reaching definitions as necessary.
5657         For aliased loads and stores mark the immediate dominating
5658         aliased clobbers as necessary.
5659         (visited): New global static.
5660         (perform_tree_ssa_dce): Free visited bitmap after propagating
5661         necessity.
5662         (remove_dead_phis): Perform simple dead virtual PHI removal.
5663         (remove_dead_stmt): Properly unlink virtual operands when
5664         removing stores.
5665         (eliminate_unnecessary_stmts): Schedule PHI removal after
5666         stmt removal.
5667         * tree-ssa-ter.c (is_replaceable_p): Adjust.
5668         (process_replaceable): Likewise.
5669         (find_replaceable_in_bb): Likewise.
5670         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5671         based on the single gimple vop.
5672         (verify_flow_insensitive_alias_info): Remove.
5673         (verify_flow_sensitive_alias_info): Likewise.
5674         (verify_call_clobbering): Likewise.
5675         (verify_memory_partitions): Likewise.
5676         (verify_alias_info): Likewise.
5677         (verify_ssa): Adjust..
5678         (execute_update_addresses_taken): Export.  Update SSA
5679         manually.  Optimize only when optimizing.  Use a local bitmap.
5680         (pass_update_address_taken): Remove TODO_update_ssa, add
5681         TODO_dump_func.
5682         (pass_update_address_taken): Just use TODO_update_address_taken.
5683         (init_tree_ssa): Do not initialize addressable_vars.
5684         (verify_ssa): Verify new VUSE / VDEF properties.
5685         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5686         Do not call verify_alias_info.
5687         (delete_tree_ssa): Clear the VUSE, VDEF operands.
5688         Do not free the loaded and stored syms bitmaps.  Reset the escaped
5689         and callused solutions.  Do not free addressable_vars.
5690         Remove memory-tag related code.
5691         (warn_uninitialized_var): Aliases are always available.
5692         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5693         * lambda-code.c (can_put_in_inner_loop): Adjust.
5694         (can_put_after_inner_loop): Likewise.
5695         (perfect_nestify): Likewise.
5696         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5697         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5698         (vectorizable_conversion): Do not mark symbols for renaming.
5699         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5700         (expand_call_inline): Unlink the calls virtual operands before
5701         replacing it.
5702         (tree_function_versioning): Do not call update_ssa if we are not
5703         updating clones.  Simplify.
5704         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5705         (propagate_with_phi): Likewise..
5706         * tree-outof-ssa.c (create_temp): Remove memory tag and call
5707         clobber code.  Assert we are not aliased or global.
5708         * tree-flow.h: Include tree-ssa-alias.h
5709         (enum escape_type): Remove.
5710         (struct mem_sym_stats_d): Likewise.
5711         (struct mem_ref_stats_d): Likewise.
5712         (struct gimple_df): Add vop member.  Remove global_var,
5713         call_clobbered_vars, call_used_vars, addressable_vars,
5714         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
5715         escaped and callused members.
5716         (struct ptr_info_def): Remove all members, add points-to solution
5717         member pt.
5718         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5719         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5720         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5721         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5722         (tree-ssa-alias.o): Likewise.
5723         (toplev.o): Add tree-ssa-alias.h
5724         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5725         * gimple.c (gimple_set_bb): Fix off-by-one error.
5726         (is_gimple_reg): Do not handle memory tags.
5727         (gimple_copy): Also copy virtual operands.
5728         Delay updating the statement.  Do not reset loaded and stored syms.
5729         (gimple_set_stored_syms): Remove.
5730         (gimple_set_loaded_syms): Likewise.
5731         (gimple_call_copy_skip_args): Copy the virtual operands
5732         and mark the new statement modified.
5733         * tree-ssa-structalias.c (may_alias_p): Remove.
5734         (set_uids_in_ptset): Take the alias set to prune with as
5735         parameter.  Fold in the alias test of may_alias_p.
5736         (compute_points_to_sets): Compute whether a ptr is dereferenced
5737         in a local sbitmap.
5738         (process_constraint): Deal with &ANYTHING on the lhs, reject all
5739         other ADDRESSOF constraints on the lhs.
5740         (get_constraint_for_component_ref): Assert that we don't get
5741         ADDRESSOF constraints from the base of the reference.
5742         Properly generate UNKNOWN_OFFSET for DEREF if needed.
5743         (struct variable_info): Remove collapsed_to member.
5744         (get_varinfo_fc): Remove.
5745         (new_var_info): Do not set collapsed_to.
5746         (dump_constraint): Do not follow cycles.
5747         (dump_constraint_graph): Likewise.
5748         (build_pred_graph): Likewise.
5749         (build_succ_graph): Likewise.
5750         (rewrite_constraints): Likewise.
5751         (do_simple_structure_copy): Remove.
5752         (do_rhs_deref_structure_copy): Remove.
5753         (do_lhs_deref_structure_copy): Remove.
5754         (collapse_rest_of_var): Remove.
5755         (do_structure_copy): Re-implement.
5756         (pta_stats): New global variable.
5757         (dump_pta_stats): New function.
5758         (struct constraint_expr): Make offset signed.
5759         (UNKNOWN_OFFSET): Define special value.
5760         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5761         (solution_set_expand): New helper function split out from ...
5762         (do_sd_constraint): ... here.
5763         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
5764         (do_ds_constraint): Likewise.
5765         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
5766         and CALLUSED = *CALLUSED.
5767         (set_union_with_increment): Make inc argument signed.
5768         (type_safe): Remove.
5769         (get_constraint_for_ptr_offset): Handle unknown and negative
5770         constant offsets.
5771         (first_vi_for_offset): Handle offsets before start.  Bail
5772         out early for offsets beyond the variable extent.
5773         (first_or_preceding_vi_for_offset): New function.
5774         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5775         Together with ESCAPED = *ESCAPED this properly computes reachability.
5776         (find_what_var_points_to): New function.
5777         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5778         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5779         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5780         pt_solutions_intersect): New functions.
5781         (compute_call_used_vars): Remove.
5782         (compute_may_aliases): New main entry into PTA computation.
5783         * gimple.h (gimple_p): New typedef.
5784         (struct gimple_statement_base): Remove references_memory_p.
5785         (struct gimple_statement_with_memory_ops_base): Remove
5786         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
5787         members.
5788         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5789         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5790         gimple_set_references_memory): Remove.
5791         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5792         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5793         New functions.
5794         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5795         (verify_expr): Allow RESULT_DECL.
5796         (gimple_duplicate_bb): Do not copy virtual operands.
5797         (gimple_duplicate_sese_region): Adjust.
5798         (gimple_duplicate_sese_tail): Likewise.
5799         (mark_virtual_ops_in_region): Remove.
5800         (move_sese_region_to_fn): Do not call it.
5801         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5802         and pass_simple_dse.
5803         (execute_function_todo): Handle TODO_update_address_taken,
5804         call execute_update_addresses_taken for TODO_rebuild_alias.
5805         (execute_todo): Adjust.
5806         (execute_one_pass): Init dump files early.
5807         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5808         call-clobbered.
5809         (create_general_new_stmt): Clear vops.
5810         * tree-ssa-reassoc.c (get_rank): Adjust.
5811         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5812         symbols for renaming.
5813         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5814         (PARAM_AVG_ALIASED_VOPS): Likewise.
5815         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5816         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
5817         * tree-ssa-operands.c: Simplify for new virtual operand representation.
5818         (operand_build_cmp, copy_virtual_operands,
5819         create_ssa_artificial_load_stmt, add_to_addressable_set,
5820         gimple_add_to_addresses_taken): Remove public functions.
5821         (unlink_stmt_vdef): New function.
5822
5823 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5824
5825         * config.gcc (powerpc-*-linux*): Merge variants.
5826
5827 2009-04-02  Chao-ying Fu  <fu@mips.com>
5828             James Grosbach  <james.grosbach@microchip.com>
5829
5830         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5831         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5832         cop0_sp_offset.
5833         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5834         keep_interrupts_masked_p, use_debug_exception_return_p.
5835         (mips_attribute_table): Add interrupt, use_shadow_register_set,
5836         keep_interrupts_masked, use_debug_exception_return.
5837         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5838         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5839         New functions.
5840         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5841         (mips_print_operand): Process COP0 registers to print $0 .. $31
5842         correctly for GAS to process.
5843         (mips_interrupt_extra_call_saved_reg_p): New function.
5844         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5845         extra registers.
5846         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5847         (mips_compute_frame_info): Add supports for interrupt context that
5848         includes doubleword accumulators and COP0 registers.
5849         (mips_for_each_saved_acc): New function.
5850         (mips_for_each_saved_gpr_and_fpr): Change the function name from
5851         mips_for_each_saved_reg.
5852         (mips_save_reg): Save accumulators.
5853         (mips_kernel_reg_p): A new for_each_rtx callback.
5854         (mips_expand_prologue): Support interrupt handlers.
5855         (mips_restore_reg): Restore accumulators.
5856         (mips_expand_epilogue): Support interrupt handlers.
5857         (mips_can_use_return_insn): Return false for interrupt handlers.
5858         (mips_epilogue_uses): New function.
5859         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5860         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5861         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5862         cop0_move): New instructions.
5863         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5864         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5865         defines.
5866         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5867         New defines.
5868         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5869         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5870         interrupt handlers, we use K0 as the temporary register.
5871         (EPILOGUE_USES): Change to a function call.
5872         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5873         handlers, we use K0 as the temporary register.
5874
5875         * doc/extend.texi (Function Attributes): Document interrupt,
5876         use_shadow_register_set, keep_interrupts_masked,
5877         use_debug_exception_return for MIPS attributes.
5878
5879 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5880
5881         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5882         Remove a number of t-files from tmake_file.
5883         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5884         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5885         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5886         target_prototype, not TARGET_PROTOTYPE.
5887         (LINK_OS_GNU_SPEC): Define.
5888         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5889         and darwin-ldoubdle.c.
5890
5891 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5892
5893         PR driver/39293
5894         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5895         (cpp_options): Ditto.
5896         (default_compilers): Ditto.
5897         (display_help): Ditto.
5898         (process_command): Ditto.
5899         (do_spec_1): Ditto.
5900         (set_input): Use lbasename instead of duplicate code.
5901         (save_temps_prefix): New static for -save-temps=obj.
5902         (save_temps_length): Ditto.
5903
5904         * doc/invoke.texi (-save-temps=obj): Document new variant to
5905         -save-temps switch.
5906
5907 2009-04-02  Jeff Law  <law@redhat.com>
5908
5909         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5910         variable.
5911
5912 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5913
5914         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5915         * configure: Regenerated.
5916
5917 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5918
5919         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5920         share the argument list.
5921
5922 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5923
5924         Merge
5925
5926         2009-02-12  Diego Novillo  <dnovillo@google.com>
5927
5928         * varpool.c (debug_varpool): New.
5929         * cgraph.h (debug_varpool): Declare.
5930
5931 2009-04-02  Jan Hubicka  <jh@suse.cz>
5932
5933         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5934         pass.
5935
5936 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5937
5938         * config/i386/i386.c (ix86_abi): Move initialization to ...
5939         (override_options): Here.
5940
5941 2009-04-02  Christian Bruel  <christian.bruel@st.com>
5942
5943         * config/sh/sh.c (sh_dwarf_register_span): New function.
5944         (TARGET_DWARF_REGISTER_SPAN): Define.
5945         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
5946
5947 2009-04-02  Ira Rosen  <irar@il.ibm.com>
5948
5949         PR tree-optimization/39595
5950         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
5951         interleaved loads group is not  greater than the SLP group size.
5952
5953 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5954
5955         * builtins.c (is_builtin_name): New.
5956         (called_as_built_in): Use is_builtin_name.
5957         * tree.h (is_builtin_name): New.
5958         * varasm.c (incorporeal_function_p): Use is_builtin_name
5959
5960 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
5961
5962         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5963
5964 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
5965
5966         PR c++/26693
5967         * c-decl.c (clone_underlying_type): Move this ...
5968         * c-common.c (set_underlying_type): ... here.
5969         Also, make sure the function properly sets TYPE_STUB_DECL() on
5970         the newly created typedef variant type.
5971         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
5972         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5973         points.
5974
5975 2009-04-02  Richard Guenther  <rguenther@suse.de>
5976
5977         PR tree-optimization/37221
5978         * tree-flow.h (degenerate_phi_result): Declare.
5979         * tree-ssa-dom.c (degenerate_phi_result): Export.
5980         * tree-scalar-evolution.c (analyze_initial_condition): If
5981         the initial condition is defined by a degenerate PHI node
5982         use the degenerate value.
5983
5984 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
5985
5986         PR rtl-optimization/39588
5987         * combine.c (merge_outer_ops): Do not set the constant when this
5988         is not necessary.
5989         (simplify_shift_const_1): Do not modify it either in this case.
5990
5991 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
5992
5993         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5994         tuning is deprecated if -mtune value is set to an Itanium1 variant.
5995
5996 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
5997
5998         PR c/29027
5999         * c-lex.c (interpret_float): Default (no suffix) is double.
6000
6001 2009-04-1  Xinliang David Li  <davidxl@google.com>
6002
6003         * config/i386/i386.c (legitimate_constant_p): Recognize
6004         all one vector constant.
6005
6006 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6007
6008         * config/vax/vax.c: Add #includes to silence warnings.
6009         Change #include order to silence two warnings.
6010
6011 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6012
6013         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6014         (ASM_SPEC): Pass -k to the assembler for PIC code.
6015
6016 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6017
6018         * config.gcc: Add vax-*-linux* to the switch.
6019         * config/vax/linux.h: New file. (TARGET_VERSION,
6020         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6021
6022 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6023
6024         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6025         Use predicate macros instead of GET_CODE() == foo.
6026         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6027         ashlsi3, rotrsi3, <unnamed>): Likewise.
6028
6029 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6030
6031         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6032         jbbccihi, jbbccisi): Remova trailing whitespace.
6033         * config/vax/constraints.md: Likewise.
6034         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6035         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6036         * config/vax/predicates.md: Likewise.
6037         * config/vax/vax.c (print_operand_address, vax_output_int_move,
6038         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
6039         * config/vax/vax.h: Likewise.
6040         * config/vax/vax.md (nonlocal_goto): Likewise.
6041
6042 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6043
6044         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6045         (indirectable_address_p, adjacent_operands_p): Add spaces around
6046         braces.
6047         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6048
6049 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6050
6051         * config/vax/vax.c (legitimate_constant_address_p,
6052         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6053         index_term_p, reg_plus_index_p, legitimate_address_p,
6054         vax_mode_dependent_address_p): Update comments to match functions
6055         modified by the recent int->bool conversion.
6056
6057 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6058
6059         * config/vax/builtins.md: Update copyright message.
6060         * config/vax/constraints.md: Likewise.
6061         * config/vax/netbsd-elf.h: Likewise.
6062         * config/vax/predicates.md: Likewise.
6063         * config/vax/vax-protos.h: Likewise.
6064         * config/vax/vax.c: Likewise.
6065         * config/vax/vax.h: Likewise.
6066         * config/vax/vax.md: Likewise.
6067         * config/vax/vax.opt: Likewise.
6068
6069 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6070
6071         * config/vax/builtins.md (ffssi2, ffssi2_internal,
6072         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
6073         * config/vax/constraints.md (B, R): Likewise.
6074         * config/vax/predicates.md (external_memory_operand,
6075         nonimmediate_addsub_di_operand): Likewise.
6076         * config/vax/vax.c (vax_output_int_add): Likewise.
6077         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
6078         untyped_call): Likewise.
6079
6080 2009-04-01  Matt Thomas  <matt@3am-software.com>
6081
6082         * config/vax/predicates.md: New file.
6083         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
6084         external_const_operand, nonsymbolic_operand, external_memory_operand,
6085         indirect_memory_operand, indexed_memory_operand,
6086         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
6087         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
6088         predicate.
6089         * config/vax/constraints.md: New file.
6090         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
6091         New constraint.
6092         * config/vax/builtins.md: New file.
6093         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
6094         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
6095         jbbccisi): Define.
6096         * config/vax/vax.opt (mqmath): Add option.
6097         * config/vax/vax.md (isfx): Extend with DI.
6098         (VAXintQH, VAXintQHSD): Define.
6099         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
6100         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
6101         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
6102         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
6103         (movdi): Update constraints and use vax_output_int_move().
6104         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
6105         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
6106         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
6107         nonlocal_goto): New.
6108         (mov<mode>): Extend accepted operand types.
6109         (subdi3_old): Rename from subdi3, change update constraints and use
6110         a new implementation.
6111         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
6112         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
6113         MOVE_RATIO, CLEAR_RATIO): Define.
6114         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
6115         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
6116         (PRINT_OPERAND): Redefine using a function instead of inlined code.
6117         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6118         (split_quadword_operands): Make static and really allow variable
6119         splitting.
6120         (print_operand_address): Update for PIC generation.
6121         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
6122         indexable_address_p, fixup_mathdi_operand,
6123         vax_expand_addsub_di_operands, adjacent_operands_p): New.
6124         (vax_float_literal, legitimate_constant_p,
6125         indirectable_constant_address_p, index_term_p,
6126         reg_plus_index_p): Return bool instead of int.
6127         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
6128         where needed.
6129         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
6130         generation.
6131         (vax_output_conditional_branch): Indent.
6132         (legitimate_constant_address_p, indirectable_constant_address_p,
6133         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
6134         vax_mode_dependent_address_p): Return bool instead of int, update for
6135         PIC generation.
6136         * config/vax/vax-protos.h (legitimate_constant_address_p,
6137         legitimate_constant_p, legitimate_address_p,
6138         vax_mode_dependent_address_p): Change declaration to bool.
6139         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
6140         vax_expand_addsub_di_operands, vax_output_int_subtract,
6141         vax_output_movmemsi): Declare.
6142         (split_quadword_operands, vax_float_literal): Delete declaration.
6143         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
6144         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
6145         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
6146         ASM_OUTPUT_DWARF_PCREL): Define.
6147         (ASM_SPEC): Change definition to allow PIC generation.
6148
6149 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
6150
6151         * doc/sourcebuild.texi: Update front-end requirements.
6152
6153 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
6154
6155         PR target/39226
6156         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
6157         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
6158         (booldi3_internal3): Use boolean_or_operator instead of
6159         boolean_operator.
6160
6161 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
6162
6163         PR c/39605
6164         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
6165         declarator whose size is not an integer constant expression but
6166         folds to an integer constant, then treat it as a constant
6167         subsequently.
6168
6169 2009-04-01  Richard Guenther  <rguenther@suse.de>
6170
6171         * fold-const.c (fold_plusminus_mult_expr): Do not fold
6172         i * 4 + 2 to (i * 2 + 1) * 2.
6173
6174 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
6175
6176         PR c/37772
6177         * c-parser.c (c_parser_asm_statement): Skip until close paren and
6178         return if c_parser_asm_string_literal returned NULL.
6179
6180 2009-04-01  Nick Clifton  <nickc@redhat.com>
6181
6182         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
6183         already defined.
6184         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6185         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
6186         other typedefs to avoid conflicts with libgcc2.c.  Define labels
6187         to gain 16-bit bit-manipulation functions from libgcc2.c and then
6188         include it.
6189         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
6190         to gain 16-bit trapping arithmetic functions from libgcc2.c and
6191         then include it.
6192
6193 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
6194
6195         * varasm.c (default_function_rodata_section): Declare DOT as
6196         const char*.
6197
6198 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
6199             Andrey Galkin  <agalkin@hypercom.com>
6200
6201         PR/39492
6202         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6203         Make object_name unique for each process.
6204
6205 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
6206
6207         PR other/39591
6208         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6209         addressable variables in the parallel that could go out of scope while
6210         running queued tasks.
6211
6212 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
6213
6214         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6215         (CASE_VALUES_THRESHOLD): Redefine.
6216         * config/avr/avr.c (avr_override_options): Remove initialization of
6217         avr_case_values_threshold variable.
6218         (avr_case_values_threshold): Remove variable. Add new function.
6219         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6220         * config/avr/avr.opt (mno-tablejump): Remove option.
6221         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6222
6223 2009-04-01  DJ Delorie  <dj@redhat.com>
6224
6225         * varasm.c (default_function_rodata_section): Don't assume
6226         anything about where the first '.' in the section name is.
6227
6228 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
6229
6230         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6231         rs6000_emit_stack_tie.
6232
6233 2009-03-31  Ian Lance Taylor  <iant@google.com>
6234
6235         * tree-eh.c (tree_remove_unreachable_handlers): Compare
6236         gimple_code with GIMPLE_RESX, not RESX.
6237
6238 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6239
6240         * c-common.c (c_get_ident): New.
6241         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
6242
6243 2009-04-01  Ben Elliston  <bje@au.ibm.com>
6244
6245         * config/rs6000/sysv4.opt (msdata): Improve option description.
6246
6247 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
6248
6249         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6250         (divdf3_internal_lat): Remove.
6251         (divxf3_internal_lat): Remove.
6252         (divxf3_internal_thr): Remove.
6253         (divxf): Use divxf3_internal.
6254         * config/ia64/div.md (divsf3_internal_lat): New.
6255         (divdf3_internal_lat): New.
6256         (divxf3_internal): New.
6257
6258 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6259
6260         PR c/448
6261         * Makefile.in (USE_GCC_STDINT): Define.
6262         (stmp-int-hdrs): Install stdint.h if applicable.
6263         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6264         if known.
6265         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6266         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6267         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6268         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6269         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6270         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6271         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6272         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6273         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6274         (c_common_nodes_and_builtins): Initialize
6275         underlying_wchar_type_node.  Do not initialize
6276         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
6277         nodes for new types.
6278         (c_stddef_cpp_builtins): Define macros for new types.
6279         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6280         Remove.
6281         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6282         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6283         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6284         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6285         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6286         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6287         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6288         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6289         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6290         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6291         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6292         int16_type_node, int32_type_node, int64_type_node,
6293         uint8_type_node, uint16_type_node, c_uint32_type_node,
6294         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6295         int_least32_type_node, int_least64_type_node,
6296         uint_least8_type_node, uint_least16_type_node,
6297         uint_least32_type_node, uint_least64_type_node,
6298         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6299         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6300         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6301         uintptr_type_node): Define.
6302         * c-cppbuiltin.c (builtin_define_constants,
6303         builtin_define_type_minmax): New.
6304         (builtin_define_stdint_macros): Define more macros.
6305         (c_cpp_builtins): Define more limit macros.
6306         (type_suffix): New.
6307         (builtin_define_type_max): Define in terms of
6308         builtin_define_type_minmax.  Remove is_long parameter.  All
6309         callers changed.
6310         * config.gcc (use_gcc_stdint): Define.
6311         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6312         Add newlib-stdint.h for generic targets.
6313         * config/glibc-stdint.h, config/newlib-stdint.h,
6314         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6315         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6316         * config/score/score.h (UINTPTR_TYPE): Define.
6317         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6318         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6319         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6320         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6321         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6322         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6323         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6324         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6325         * config/spu/spu.h (STDINT_LONG32): Define.
6326         * configure.ac (use_gcc_stdint): Substitute.
6327         * configure: Regenerate.
6328         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6329         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6330         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6331         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6332         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6333         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6334         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6335         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6336         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6337         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6338         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6339         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6340         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6341         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6342         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6343         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6344         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6345         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6346         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6347         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6348         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6349         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6350         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6351         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6352         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6353         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6354         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6355         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6356         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
6357
6358 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
6359
6360         * loop-iv.c (suitable_set_for_replacement): Renamed from
6361         simplify_using_assignment; changed to return bool and to accept new
6362         args DEST and SRC.  Return true iff we find a source/destination pair
6363         that can be used to make a replacement, and fill SRC and DEST if so.
6364         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
6365         changed.
6366         (simplify_using_initial_values): Deal with altered regs here and track
6367         more precisely the effect they have on the validity of our expression.
6368
6369         * loop-iv.c (simplify_using_condition): A condition of the form
6370         (EQ REG CONST) can be used to simply make a substitution.
6371         (simplify_using_initial_values): Keep track of conditions we have seen
6372         and keep using them to simplify new expressions, while applying the
6373         same substitutions to them as to the expression.
6374
6375         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6376         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
6377         GEU/LTU reversed.
6378
6379         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
6380         changed.  Use this when trying to improve the upper bound.
6381         Generate the comparison by using simplify_gen_relational.
6382
6383         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
6384
6385         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
6386         functions.
6387         (simplify_using_assignment, simplify_using_initial_values): Call
6388         replace_in_expr to make replacements.  Call replace_single_def_regs
6389         once on the initial version of the expression.
6390
6391 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6392
6393         PR target/27237
6394         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
6395
6396 2009-03-31  Richard Guenther  <rguenther@suse.de>
6397
6398         PR middle-end/31029
6399         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
6400         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
6401
6402 2009-03-31  Richard Guenther  <rguenther@suse.de>
6403
6404         * tree.h (div_if_zero_remainder): Declare.
6405         * fold-const.c (div_if_zero_remainder): Export.
6406         * tree-ssa-forwprop.c
6407         (forward_propagate_addr_into_variable_array_index): Handle
6408         constant array index addition outside of the variable index.
6409
6410 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6411
6412         PR target/39592
6413         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
6414         define_splits, floatunssi<mode>2): Require x87 conversions from
6415         DImode to be permitted.
6416
6417 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
6418
6419         PR preprocessor/15638
6420         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
6421
6422 2009-03-31  Richard Guenther  <rguenther@suse.de>
6423
6424         PR middle-end/23401
6425         PR middle-end/27810
6426         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
6427         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
6428         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
6429         a separate statement.
6430         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
6431         (lookup_tmp_var): Likewise.
6432         (is_gimple_formal_tmp_or_call_rhs): Remove.
6433         (is_gimple_reg_or_call_rhs): Rename to ...
6434         (is_gimple_reg_rhs_or_call): ... this.
6435         (is_gimple_mem_or_call_rhs): Rename to ...
6436         (is_gimple_mem_rhs_or_call): ... this.
6437         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
6438         DECL_GIMPLE_REG_P only if is_formal is true.
6439         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
6440         for non-proper post-modify expression gimplification.
6441         (gimplify_self_mod_expr): For post-modify expressions gimplify
6442         the lvalue to a minimal lvalue.
6443         (rhs_predicate_for): Remove formal temp case.
6444         (gimplify_modify_expr_rhs): Likewise.
6445         (gimplify_addr_expr): Use is_gimple_reg.
6446         (gimplify_expr): Remove formal temp cases.
6447         (gimple_regimplify_operands): Likewise.
6448         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
6449         and FILTER_EXPR like constants.
6450         * gimple.c (walk_gimple_op): Fix val_only initialization, use
6451         is_gimple_reg.
6452         (is_gimple_formal_tmp_rhs): Remove.
6453         (is_gimple_reg_rhs): Remove special casing.
6454         (is_gimple_mem_rhs): Fix.
6455         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
6456         (is_gimple_formal_tmp_var): Remove.
6457         (is_gimple_formal_tmp_reg): Likewise.
6458         (is_gimple_min_lval): Allow invariant component ref parts.
6459         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
6460         is_gimple_formal_tmp_reg): Remove declarations.
6461         * tree-cfg.c (verify_expr): Verify that variables with address
6462         taken do not have DECL_GIMPLE_REG_P set.
6463         * tree-mudflap.c (mf_build_check_statement_for): Use
6464         force_gimple_operand instead of gimplify_expr.
6465
6466 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
6467
6468         * modulo-sched.c (sms_schedule_by_order): Pass the actual
6469         schedulable rows to compute_split_row.
6470
6471 2009-03-31  Ben Elliston  <bje@au.ibm.com>
6472
6473         PR target/31635
6474         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
6475         OPT_mvrsave.
6476
6477 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6478
6479         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
6480         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
6481         * configure: Regenerate.
6482         * config.in: Regenerate.
6483         * config/rs6000/rs6000.opt (mtls-markers): Add.
6484         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
6485         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
6486         (tls_ld_aix, tls_ld_sysv): Likewise.
6487         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
6488         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
6489
6490 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
6491
6492         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
6493
6494 2009-03-30  Jan Hubicka  <jh@suse.cz>
6495
6496         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
6497         out of RESX.
6498         (tree_remove_unreachable_handlers): Cleanup EH predecestor
6499         detection and label handling.
6500
6501 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6502
6503         * ira-int.h (ira_allocno): Rename left_conflicts_num to
6504         left_conflicts_size.
6505         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
6506         ALLOCNO_LEFT_CONFLICTS_SIZE.
6507
6508         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
6509         remove_allocno_from_bucket_and_push,
6510         allocno_spill_priority_compare, push_allocnos_to_stack,
6511         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6512         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
6513         (setup_allocno_left_conflicts_num): Ditto.  Rename to
6514         setup_allocno_left_conflicts_size.
6515         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6516         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
6517         setup_allocno_left_conflicts_size instead of
6518         setup_allocno_left_conflicts_num.
6519
6520         * ira-build.c (ira_create_allocno): Use
6521         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
6522         ALLOCNO_LEFT_CONFLICTS_NUM.
6523
6524 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6525
6526         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6527         instead of DF_LR_OUT.
6528
6529         * ira-lives.c (process_bb_node_lives): Ditto.
6530
6531         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6532         instead of DF_LR_{OUT,IN}.
6533
6534         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6535
6536         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6537
6538 2009-03-30  Jan Hubicka  <jh@suse.cz>
6539
6540         * except.c (label_to_region_map): Fix thinko.
6541
6542 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
6543
6544         PR middle-end/38237
6545         * tree.h (tree_find_value): New declaration.
6546         * tree.c (tree_find_value): New function.
6547         * varasm.c (assemble_external): Avoid duplicate entries on lists.
6548
6549 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
6550
6551         PR debug/39563
6552         * c-decl.c (struct c_binding): Add locus field.
6553         (bind): Add locus argument, set locus field from it.
6554         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6555         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6556         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6557         implicitly_declare, undeclared_variable, lookup_label,
6558         declare_label, c_make_fname_decl, c_builtin_function,
6559         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6560         bind callers.
6561
6562 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6563
6564         PR target/38781
6565         * config/i386/i386.c (classify_argument): Check total size of
6566         structure.
6567
6568 2009-03-30  Martin Jambor  <mjambor@suse.cz>
6569
6570         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6571         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6572         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6573         respectively.
6574
6575         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6576         seen_variable_array_ref while also traversing a union.
6577
6578         * tree-inline.c (optimize_inline_calls): Do not call
6579         cgraph_node_remove_callees.
6580         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6581         (pass_remove_cgraph_callee_edges): New variable.
6582         * passes.c (init_optimization_passes): Add
6583         pass_remove_cgraph_callee_edges after early inlining and before all
6584         late intraprocedural passes.
6585
6586         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6587
6588 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6589
6590         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6591         Fix typos in names.
6592
6593 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6594
6595         * combine.c (simplify_comparison): Use have_insn_for.
6596         * dojump.c (do_jump): Likewise.
6597
6598 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6599
6600         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6601         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6602         sparc_compare_op0 like sparc_compare_emitted used to be handled.
6603         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6604         instead of sparc_compare_emitted.
6605         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6606         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6607         instead of sparc_compare_emitted.
6608
6609 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6610
6611         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6612         enter/exit cfglayout mode.
6613         (pass_partition_block): Require it.
6614         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6615         (combine_instructions): Track basic blocks instead of labels.
6616         (update_cfg_for_uncondjump): New.
6617         (try_combine): Use it.  Update jumps after rescanning.
6618         (pass_combine): Require PROP_cfglayout.
6619         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6620
6621 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6622
6623         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6624         Provide/destroy PROP_cfglayout respectively.
6625         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6626         * tree-pass.h (PROP_cfglayout): New.
6627
6628 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6629
6630         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6631         fold_convert_const_fixed_from_fixed,
6632         fold_convert_const_fixed_from_int,
6633         fold_convert_const_fixed_from_real, fold_negate_const): Do not
6634         set TREE_CONSTANT_OVERFLOW.
6635         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6636         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6637
6638 2009-03-30  Ira Rosen  <irar@il.ibm.com>
6639
6640         * tree-vect-loop-manip.c: New file.
6641         * tree-vectorizer.c: Update documentation and included files.
6642         (vect_loop_location): Make extern.
6643         (rename_use_op): Move to tree-vect-loop-manip.c
6644         (rename_variables_in_bb, rename_variables_in_loop,
6645         slpeel_update_phis_for_duplicate_loop,
6646         slpeel_update_phi_nodes_for_guard1,
6647         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6648         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6649         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
6650         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
6651         find_loop_location): Likewise.
6652         (new_stmt_vec_info): Move to tree-vect-stmts.c.
6653         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6654         get_vectype_for_scalar_type, vect_is_simple_use,
6655         supportable_widening_operation, supportable_narrowing_operation):
6656         Likewise.
6657         (bb_in_loop_p): Move to tree-vect-loop.c.
6658         (new_loop_vec_info, destroy_loop_vec_info,
6659         reduction_code_for_scalar_code, report_vect_op,
6660         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6661         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6662         (vect_supportable_dr_alignment): Likewise.
6663         * tree-vectorizer.h (tree-data-ref.h): Include.
6664         (vect_loop_location): Declare.
6665         Reorganize function declarations according to the new file structure.
6666         * tree-vect-loop.c: New file.
6667         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
6668         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6669         * tree-vect-data-refs.c: New file.
6670         * tree-vect-patterns.c (timevar.h): Don't include.
6671         * tree-vect-stmts.c: New file.
6672         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
6673         tree-vect-slp.c, tree-vect-loop.c.
6674         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6675         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
6676         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6677         (tree-vect-analyze.o): Remove.
6678         (tree-vect-transform.o): Likewise.
6679         (tree-vect-data-refs.o): Add rule.
6680         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
6681         tree-vect-slp.o): Likewise.
6682         (tree-vect-patterns.o): Remove redundant dependencies.
6683         (tree-vectorizer.o): Likewise.
6684         * tree-vect-slp.c: New file.
6685
6686 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6687
6688         * optc-gen.awk: Warn if an option flag has multiple different
6689         help strings.
6690
6691 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6692
6693         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6694         -floop-block): Document dependences on PPL, CLooG and Graphite.
6695
6696 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6697
6698         PR rtl-optimization/323
6699         * c-common.c (c_fully_fold, convert_and_check,
6700         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6701         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6702         * c-common.def (EXCESS_PRECISION_EXPR): New.
6703         * c-cppbuiltin.c (builtin_define_float_constants): Define
6704         constants with enough digits for long double.
6705         * c-lex.c (interpret_float): Interpret constant with excess
6706         precision where appropriate.
6707         * c-opts.c (c_common_post_options): Set
6708         flag_excess_precision_cmdline.  Give an error for
6709         -fexcess-precision=standard for C++ for processors where the
6710         option is significant.
6711         * c-parser.c (c_parser_conditional_expression): Handle excess
6712         precision in condition.
6713         * c-typeck.c (convert_arguments): Handle arguments with excess
6714         precision.
6715         (build_unary_op): Move excess precision outside operation.
6716         (build_conditional_expr): Likewise.
6717         (build_compound_expr): Likewise.
6718         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6719         (build_modify_expr): Handle excess precision in RHS.
6720         (convert_for_assignment): Handle excess precision in converted
6721         value.
6722         (digest_init, output_init_element, process_init_element): Handle
6723         excess precision in initializer.
6724         (c_finish_return): Handle excess precision in return value.
6725         (build_binary_op): Handle excess precision in operands and add
6726         excess precision as needed for operation.
6727         * common.opt (-fexcess-precision=): New option.
6728         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6729         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6730         For standard excess precision, output explicit conversion to and
6731         truncation from XFmode.
6732         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6733         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6734         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6735         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6736         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6737         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6738         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6739         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6740         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6741         define_splits, sqrt<mode>2): Disable where appropriate for
6742         standard excess precision.
6743         * convert.c (convert_to_real): Do not shorten arithmetic to type
6744         for which excess precision would be used.
6745         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6746         * doc/invoke.texi (-fexcess-precision=): Document option.
6747         (-mfpmath=): Correct index entry.
6748         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6749         flag_excess_precision): New.
6750         * langhooks.c (lhd_post_options): Set
6751         flag_excess_precision_cmdline.
6752         * opts.c (common_handle_option): Handle -fexcess-precision=.
6753         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6754         init_excess_precision): New.
6755         (lang_dependent_init_target): Call init_excess_precision.
6756         * tree.c (excess_precision_type): New.
6757         * tree.h (excess_precision_type): Declare.
6758
6759 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6760
6761         PR c/35235
6762         * c-typeck.c (build_component_ref): Do not copy qualifiers from
6763         non-lvalue to component.
6764
6765 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6766
6767         PR preprocessor/34695
6768         * Makefile.in (c-opts.o): Depend on c-tree.h.
6769         * c-common.c: Move down include of diagnostic.h.
6770         (done_lexing, c_cpp_error): New.
6771         * c-common.h (done_lexing): Declare.
6772         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6773         (parse_in).
6774         * c-opts.c: Include c-tree.h.
6775         (c_common_init_options): Set preprocessor error callback.
6776         (c_common_handle_option): Do not set preprocessor
6777         inhibit_warnings, warnings_are_errors, warn_system_headers,
6778         pedantic_errors or inhibit_warnings flags.
6779         (c_common_post_options): Do not check cpp_errors (parse_in).
6780         (c_common_finish): Do not output dependencies if there were
6781         errors.  Do not check return value of cpp_finish.
6782         * c-ppoutput.c (pp_file_change): Set input_location.
6783         * c-tree.h (c_cpp_error): Declare.
6784         * diagnostic.c (diagnostic_set_info_translated): Also initialize
6785         override_column.
6786         (diagnostic_build_prefix): Check override_column.
6787         * diagnostic.h (diagnostic_info): Add override_column field.
6788         (diagnostic_override_column): Define.
6789
6790 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
6791
6792         * c-common.c (c_expand_expr, c_staticp): Remove.
6793         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6794         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6795         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6796         * c-gimplify.c (gimplify_compound_literal_expr,
6797         optimize_compound_literals_in_ctor): Remove.
6798         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6799         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6800         * c-semantics.c (emit_local_var): Remove.
6801
6802         * langhooks-def.h (lhd_expand_expr): Remove.
6803         * langhooks.c (lhd_expand_expr): Remove.
6804         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6805
6806         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6807         handling from c-semantics.c; don't call into langhook.
6808         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6809         * gimplify.c (gimplify_compound_literal_expr,
6810         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6811         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6812         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6813         as was done in c-gimplify.c.
6814         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6815         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6816         Move from c-common.h.
6817         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
6818
6819         * tree.c (staticp): Do not call langhook.
6820         * langhooks.c (lhd_staticp): Delete.
6821         * langhooks-def.h (lhd_staticp): Delete prototype.
6822         (LANG_HOOKS_STATICP): Delete.
6823         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6824
6825         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6826         instead of DECL_STMTs.
6827
6828 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6829
6830         PR c/456
6831         PR c/5675
6832         PR c/19976
6833         PR c/29116
6834         PR c/31871
6835         PR c/35198
6836         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6837         void_type_node.
6838         (fold_call_expr): Return a NOP_EXPR from folding rather than the
6839         contained expression.
6840         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
6841         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
6842         conditional expressions for C.
6843         (decl_constant_value_for_optimization): Move from
6844         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
6845         whether optimizing and that the expression is a VAR_DECL not of
6846         array type instead of doing such checks in the caller.  Do not
6847         check pedantic.  Call gcc_unreachable for C++.
6848         * c-common.def (C_MAYBE_CONST_EXPR): New.
6849         * c-common.h (c_fully_fold, c_save_expr,
6850         decl_constant_value_for_optimization): New prototypes.
6851         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6852         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6853         EXPR_INT_CONST_OPERANDS): Define.
6854         * c-convert.c (convert): Strip nops from expression.
6855         * c-decl.c (groktypename): Take extra parameters expr and
6856         expr_const_operands.  Update call to grokdeclarator.
6857         (start_decl): Update call to grokdeclarator.  Add statement for
6858         expressions used in type of decl.
6859         (grokparm): Update call to grokdeclarator.
6860         (push_parm_decl): Update call to grokdeclarator.
6861         (build_compound_literal): Add parameter non_const and build a
6862         C_MAYBE_COSNT_EXPR if applicable.
6863         (grokdeclarator): Take extra parameters expr and
6864         expr_const_operands.  Track expressions used in declaration
6865         specifiers and declarators.  Fold array sizes and track whether
6866         they are constant expressions and whether they are integer
6867         constant expressions.
6868         (parser_xref_tag): Set expr and expr_const_operands fields in
6869         return value.
6870         (grokfield): Update call to grokdeclarator.
6871         (start_function): Update call to grokdeclarator.
6872         (build_null_declspecs): Set expr and expr_const_operands fields in
6873         return value.
6874         (declspecs_add_type): Handle expressions in typeof specifiers.
6875         * c-parser.c (c_parser_declspecs): Set expr and
6876         expr_const_operands fields for declaration specifiers.
6877         (c_parser_enum_specifier): Likewise.
6878         (c_parser_struct_or_union_specifier): Likewise.
6879         (c_parser_typeof_specifier): Likewise.  Update call to
6880         groktypename.  Fold expression as needed.  Return expressions with
6881         type instead of adding statements.
6882         (c_parser_attributes): Update calls to c_parser_expr_list.
6883         (c_parser_statement_after_labels): Fold expression before passing
6884         to objc_build_throw_stmt.
6885         (c_parser_condition): Fold expression.
6886         (c_parser_asm_operands): Fold expression.
6887         (c_parser_conditional_expression): Use c_save_expr.  Update call
6888         to build_conditional_expr.
6889         (c_parser_alignof_expression): Update call to groktypename.
6890         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6891         original_code.  Fold expression argument of va_arg.  Create
6892         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6893         argument to va_arg.  Update calls to groktypename.  Fold array
6894         index for offsetof.  Verify that first argument to
6895         __builtin_choose_expr has integer type.
6896         (c_parser_postfix_expression_after_paren_type): Update calls to
6897         groktypename and build_compound_literal.  Handle expressions with
6898         side effects in type name.
6899         (c_parser_postfix_expression_after_primary): Update call to
6900         c_parser_expr_list.  Set original_code for calls to
6901         __builtin_constant_p.
6902         (c_parser_expr_list): Take extra parameter fold_p.  Fold
6903         expressions if requested.
6904         (c_parser_objc_type_name): Update call to groktypename.
6905         (c_parser_objc_synchronized_statement): Fold expression.
6906         (c_parser_objc_receiver): Fold expression.
6907         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6908         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6909         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6910         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6911         (struct c_typespec): Add elements expr and expr_const_operands.
6912         (struct c_declspecs): Add elements expr and expr_const_operands.
6913         (groktypename, build_conditional_expr, build_compound_literal):
6914         Update prototypes.
6915         (in_late_binary_op): Declare.
6916         * c-typeck.c (note_integer_operands): New function.
6917         (in_late_binary_op): New variable.
6918         (decl_constant_value_for_broken_optimization): Move to c-common.c
6919         and rename to decl_constant_value_for_optimization.
6920         (default_function_array_conversion): Do not strip nops.
6921         (default_conversion): Do not call
6922         decl_constant_value_for_broken_optimization.
6923         (build_array_ref): Do not fold result.
6924         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
6925         result when operand is a VLA.
6926         (c_expr_sizeof_type): Update call to groktypename.  Handle
6927         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
6928         result when operand names a VLA type.
6929         (build_function_call): Update call to build_compound_literal.
6930         Only fold result for calls to __builtin_* functions.  Strip
6931         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
6932         the function designator.
6933         (convert_arguments): Fold arguments.  Update call to
6934         convert_for_assignment.
6935         (build_unary_op): Handle increment and decrement of
6936         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
6937         decrement earlier.  Fold operand of increment and decrement.
6938         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
6939         built for integer operand.  Wrap returns that are INTEGER_CSTs
6940         without being integer constant expressions or that have integer
6941         constant operands without being INTEGER_CSTs.
6942         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6943         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
6944         result is an integer constant expression or can be used in
6945         unevaluated parts of one and avoid folding and wrap as
6946         appropriate.  Fold operands before possibly doing -Wsign-compare
6947         warnings.
6948         (build_compound_expr): Wrap result for C99 if operands can be used
6949         in integer constant expressions.
6950         (build_c_cast): Update call to digest_init.  Do not ignore
6951         overflow from casting floating-point constants to integers.  Wrap
6952         results that could be confused with integer constant expressions,
6953         null pointer constants or floating-point constants.
6954         (c_cast_expr): Update call to groktypename.  Handle expressions
6955         included in type name.
6956         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
6957         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
6958         Update calls to convert_for_assignment.
6959         (convert_for_assignment): Take new parameter
6960         null_pointer_constant.  Do not strip nops or call
6961         decl_constant_value_for_broken_optimization.  Set
6962         in_late_binary_op for conversions to boolean.
6963         (store_init_value): Update call to digest_init.
6964         (digest_init): Take new parameter null_pointer_constant.  Do not
6965         call decl_constant_value_for_broken_optimization.  pedwarn for
6966         initializers not constant expressions.  Update calls to
6967         convert_for_assignment.
6968         (constructor_nonconst): New.
6969         (struct constructor_stack): Add nonconst element.
6970         (really_start_incremental_init, push_init_level, pop_init_level):
6971         Handle constructor_nonconst and nonconst element.
6972         (set_init_index): Call constant_expression_warning for array
6973         designators.
6974         (output_init_element): Fold value.  Set constructor_nonconst as
6975         applicable.  pedwarn for initializers not constant expressions.
6976         Update call to digest_init.  Call constant_expression_warning
6977         where constant initializers are required.
6978         (process_init_element): Use c_save_expr.
6979         (c_finish_goto_ptr): Fold expression.
6980         (c_finish_return): Fold return value.  Update call to
6981         convert_for_assignment.
6982         (c_start_case): Fold switch expression.
6983         (c_process_expr_stmt): Fold expression.
6984         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
6985         ensure statement expression is not evaluated in constant expression.
6986         (build_binary_op): Track whether results are integer constant
6987         expressions or may occur in such, disable folding and wrap results
6988         as applicable.  Fold operands for -Wsign-compare warnings unless
6989         in_late_binary_op.
6990         (c_objc_common_truthvalue_conversion): Handle results folded to
6991         integer constants that are not integer constant expressions.
6992         * doc/extend.texi: Document when typeof operands are evaluated,
6993         that condition of __builtin_choose_expr is an integer constant
6994         expression, and more about use of __builtin_constant_p in
6995         initializers.
6996
6997 2009-03-29  Richard Guenther  <rguenther@suse.de>
6998
6999         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7000         propagate addresses of array references.
7001
7002 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
7003
7004         * regmove.c (perhaps_ends_bb_p): Remove.
7005         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
7006         from INSN and check that the main loop stays within that basic block.
7007         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7008         (regmove_forward_pass): Split out from regmove_optimize.  Use
7009         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7010         (regmove_backward_pass): Split out from regmove_optimize.  Use
7011         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7012         (regmove_optimize): Simplify.
7013
7014 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7015
7016         PR target/39545
7017         * config/i386/i386.c (classify_argument): Ignore flexible array
7018         member in struct and warn ABI change.
7019
7020 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7021
7022         * config/i386/i386-protos.h (ix86_agi_dependent): New.
7023
7024         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7025         (ix86_adjust_cost): Updated.
7026
7027 2009-03-29  Jan Hubicka  <jh@suse.cz>
7028
7029         PR middle-end/28850
7030         * tree-pass.h (pass_cleanup_eh): New function.
7031         (remove_unreachable_regions): Break code handling RTL
7032         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7033         that can not be reached by runtime.
7034         (can_be_reached_by_runtime): New function.
7035         (label_to_region_map): New function.
7036         (num_eh_regions): New function.
7037         (rtl_remove_unreachable_regions): New function.
7038         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7039         (remove_eh_region): New function.
7040         * except.h: Include sbitmap and vecprim.
7041         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7042         num_eh_regions): Declare.
7043         * passes.c (init_optimization_passes): Schedule cleanup_eh.
7044         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
7045         * tree-eh.c (tree_remove_unreachable_handlers): New function.
7046         (tree_empty_eh_handler_p): New function.
7047         (cleanup_empty_eh): New function.
7048         (cleanup_eh): New function.
7049         (pass_cleanup_eh): New function.
7050
7051 2009-03-29  Jan Hubicka  <jh@suse.cz>
7052
7053         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7054         for removed regions.
7055
7056 2009-03-29  Jan Hubicka  <jh@suse.cz>
7057
7058         * except.c (dump_eh_tree): Dump all datastructures.
7059
7060 2009-03-29  Jan Hubicka  <jh@suse.cz>
7061
7062         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7063         (duplicate_eh_regions_1): Likewise.
7064         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7065         vector; call EH verification.
7066         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7067         Be ready for region being removed.
7068
7069 2009-03-29  Jan Hubicka  <jh@suse.cz>
7070
7071         * bitmap.c (bitmap_last_set_bit): New function.
7072         * bitmap.h (bitmap_last_set_bit): Declare.
7073
7074 2009-03-29  David Ayers  <ayers@fsfe.org>
7075
7076         PR objc/27377
7077         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
7078         by calling objc_compare_types and surpress warnings about
7079         incompatible C pointers that are compatible ObjC pointers.
7080
7081 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
7082
7083         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
7084         call initialize_inline_failed.
7085         (initialize_inline_failed): Move it from here ...
7086         * cgraph.c (initialize_inline_failed): ... to here.
7087         (cgraph_create_edge): Call initialize_inline_failed rather than
7088         setting inline_failed directly.
7089
7090 2009-03-29  Ben Elliston  <bje@au.ibm.com>
7091
7092         PR target/32542
7093         * sysv4.opt (msdata): Improve comment.
7094         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
7095         * sysv4.h (SVR4_ASM_SPEC): Likewise.
7096
7097 2009-03-29  Ben Elliston  <bje@au.ibm.com>
7098
7099         PR target/30451
7100         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
7101         load and store attributes.
7102
7103 2009-03-29  Ben Elliston  <bje@au.ibm.com>
7104
7105         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
7106         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
7107         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
7108         * doc/extend.texi (X86 Built-in Functions): Add index entries for
7109         __builtin_infq and __builtin_huge_valq.
7110
7111 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
7112
7113         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
7114         atmega8m1 devices.
7115         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7116         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
7117
7118 2009-03-28  Xinliang David Li  <davidxl@google.com>
7119
7120         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
7121         (do_dbg_cnt): New function.
7122
7123 2009-03-28  Jan Hubicka  <jh@suse.cz>
7124
7125         Merge from pretty-ipa:
7126
7127         2009-03-27  Jan Hubicka  <jh@suse.cz>
7128
7129         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7130         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
7131         * passes.c (function_called_by_processed_nodes_p): New.
7132         * ipa-pure-const.c (check_call): Fix handling of operands.
7133         (analyze_function): Dump debug output for skipped bodies.
7134         (local_pure_const): Use function_called_by_processed_nodes_p.
7135         * dwarf2out.c (reference_to_unused): Use output.
7136         * passes.c (do_per_function_toporder): Likewise.
7137
7138         2008-11-12  Jan Hubicka  <jh@suse.cz>
7139
7140         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
7141         * ipa-pure-const.c (funct_state_d): Add can throw field; make
7142         state_set_in_source enum
7143         (check_decl): Ignore memory tags; do not set fake looping flags;
7144         dump diagnostics.
7145         (check_operand, check_tree, check_rhs_var, check_lhs_var,
7146         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
7147         (check_call, analyze_function): Rewrite.
7148         (check_stmt): New.
7149         (add_new_function): Update call of analyze_function.
7150         (generate_summary): Add call of analyze_function.
7151         (propagate): Propagate can_throw; handle state_set_in_source correctly.
7152         (local_pure_const): New function.
7153         (pass_local_pure_const): New pass.
7154         * ipa-inline.c (inline_transform): Set after_inlining.
7155         * tree-eh.c (stmt_can_throw_external): New.
7156         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
7157         work with aliasing built.
7158         * tree-flow.h (stmt_can_throw_external): New.
7159         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
7160         and local pure/const pass in early and late optimization queue.
7161
7162 2009-03-28  Martin Jambor  <mjambor@suse.cz>
7163
7164         * fold-const.c (get_pointer_modulus_and_residue): New parameter
7165         allow_func_align.
7166         (fold_binary): Allow function decl aligment consideration is the
7167         second argument is integer constant one.
7168         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
7169         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
7170         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
7171
7172 2009-03-28  Jan Hubicka  <jh@suse.cz>
7173
7174         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
7175         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
7176         * function.h (rtl_data): Add nothrow flag.
7177         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
7178         set DECL_NOTHROW for AVAILABLE functions.
7179
7180 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
7181
7182         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
7183         following vector keyword has expansion starting with pixel or bool
7184         keyword, expand vector to __vector and pixel or bool to __pixel or
7185         __bool.
7186
7187         PR c++/39554
7188         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
7189         warn_if_disallowed_function_p): Removed.
7190         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7191         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7192         warning_if_disallowed_function_p.
7193         * flags.h (warn_if_disallowed_function_p,
7194         warn_disallowed_functions): Removed.
7195         * common.opt (Wdisallowed-function-list=): Removed.
7196         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7197
7198 2009-03-28  Richard Guenther  <rguenther@suse.de>
7199
7200         PR tree-optimization/38723
7201         * tree-ssa-pre.c (compute_avail): Add all default definitions to
7202         the entry block.
7203
7204 2009-03-28  Jan Hubicka  <jh@suse.cz>
7205
7206         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7207         test introduced by my previous patch.
7208
7209 2009-03-28  Richard Guenther  <rguenther@suse.de>
7210
7211         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7212         the PHIs value undefined.
7213
7214 2009-03-28  Jan Hubicka  <jh@suse.cz>
7215
7216         * tree-pass.h (pass_fixup_cfg): New pass.
7217         * ipa-inline.c (inline_transform): Set
7218         always_inline_functions_inlined/after_inlining.
7219         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7220         (pass_fixup_cfg): New pass.
7221         * passes.c (init_optimization_passes): Add fixup_cfg.
7222
7223 2009-03-28  Richard Guenther  <rguenther@suse.de>
7224
7225         PR tree-optimization/38458
7226         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7227         argument use the arguments copy-of value.
7228
7229 2009-03-28  Richard Guenther  <rguenther@suse.de>
7230
7231         PR tree-optimization/38180
7232         * tree-ssa-ccp.c (get_default_value): Simplify.
7233         (likely_value): Likewise.
7234         (surely_varying_stmt_p): Properly handle VOP case.
7235         (ccp_initialize): Likewise.
7236         (ccp_fold): Handle propagating through *&.
7237         (fold_const_aggregate_ref): Also handle decls.
7238
7239 2009-03-28  Jan Hubicka  <jh@suse.cz>
7240
7241         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7242         * cgraph.h (cgraph_node): Likewise.
7243         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7244         (cgraph_reset_node): Use process flag.
7245         (cgraph_mark_functions_to_output): Likewise.
7246         (cgraph_expand_function): Likewise.
7247         (cgraph_expand_all_functions): Likewise.
7248         (cgraph_output_in_order): Likewise.
7249         * dwarf2out.c (reference_to_unused): Likewise.
7250         * passes.c do_per_function_toporder): Likewise.
7251
7252 2009-03-28  Jan Hubicka  <jh@suse.cz>
7253
7254         Bring from lto-branch:
7255
7256         2008-09-03  Doug Kwan  <dougkwan@google.com>
7257
7258         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7259         enums instead of reason strings.
7260         * cgraph.c (cgraph_create_edge): Same.
7261         (cgraph_inline_failed_string): New function.
7262         * cgraph.h (cgraph_inline_failed_t): New enum type.
7263         (cgraph_inline_failed_string): New prototype.
7264         (struct cgraph_edge): Change type of INLINED_FAILED from constant
7265         char pointer to cgraph_inline_failed_t.
7266         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7267         (cgraph_default_inline_p): Ditto.
7268         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
7269         to cgraph_inline_failed_t pointer.
7270         * cif-code.def: New file.
7271         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7272         reason string.
7273         (cgraph_check_inline_limits): Change type of REASON to pointer to
7274         cgraph_inline_failed_t.  Replace reason strings with enums.
7275         (cgraph_default_inline_p): Ditto.
7276         (cgraph_recursive_inlining_p): Ditto.
7277         (update_caller_keys): Change type of FAILED_REASON to
7278         cgraph_inline_failed_t.
7279         (cgraph_set_inline_failed): Change type of REASON to pointer to
7280         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
7281         convert enums to strings for text output.
7282         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7283         to be of type cgraph_inline_failed_t.  Replace reason strings with
7284         enums.  Call cgraph_inline_failed_string to covert enums
7285         to strings for text output.
7286         (cgraph_decide_inlining): Replace reason strings with enums.
7287         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7288         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
7289         for text output.
7290         * tree-inline.c (expand_call_inline): Change type of REASON
7291         to cgraph_inline_failed_t.  Replace reason strings with enums.
7292         Call cgraph_inline_failed_string for text output.
7293         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7294         (cgraph.o): Ditto.
7295
7296 2009-03-28  Jan Hubicka  <jh@suse.cz>
7297
7298         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7299         cgraph_clone_node): Remove master clone handling.
7300         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7301         * cgraph.h (master_clone): Remove.
7302         (cgraph_is_master_clone, cgraph_master_clone): Remove.
7303         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7304         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7305
7306 2009-03-28  Jan Hubicka  <jh@suse.cz>
7307
7308         * cgraph.c (cgraph_function_body_availability): Functions declared
7309         inline are always safe to assume that it is not going to be replaced.
7310
7311 2009-03-28  Richard Guenther  <rguenther@suse.de>
7312
7313         PR tree-optimization/38513
7314         * tree-ssa-pre.c (eliminate): Remove redundant stores.
7315         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7316         EXC_PTR_EXPR and FILTER_EXPR.
7317         (get_ref_from_reference_ops): Likewise.
7318
7319 2009-03-28  Richard Guenther  <rguenther@suse.de>
7320
7321         PR tree-optimization/38968
7322         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7323         Use FLOOR_MOD_EXPR to compute misalignment.
7324
7325 2009-03-28  Richard Guenther  <rguenther@suse.de>
7326
7327         PR tree-optimization/37795
7328         * tree.h (combine_comparisons): Declare.
7329         * fold-const.c (combine_comparisons): Export.
7330         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7331         comparisons.
7332         (ifcombine_iforif): Use combine_comparisons.
7333
7334 2009-03-28  Jan Hubicka  <jh@suse.cz>
7335
7336         * tree-eh.c (inlinable_call_p): New function.
7337         (make_eh_edges): Use it.
7338         (verify_eh_edges): Use it.
7339         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7340         * except.c (reachable_next_level): Add inlinable_function argument
7341         (sjlj_find_directly_reachable_regions): Update.
7342         (add_reachable_handler): Do not set saw_any_handlers.
7343         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7344         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7345         Add new inlinable call parameter.
7346         (can_throw_internal, can_throw_external): Update.
7347         * except.h (can_throw_internal_1, can_throw_external_1,
7348         foreach_reachable_handler): Update declaration.
7349
7350 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
7351
7352         * config/arm/t-arm-coff, config/h8300/coff.h,
7353         config/i386/i386-aout.h, config/i386/i386-coff.h,
7354         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
7355         config/pdp11/2bsd.h, config/rs6000/aix41.h,
7356         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
7357         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
7358         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
7359         sys-types.h: Remove.
7360         * Makefile.in: Remove protoize and fixproto support and references
7361         in comments.
7362         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
7363         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
7364         Remove.
7365         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
7366         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
7367         unprotoize$(exeext).
7368         (rest.encap): Don't depend on $(STMP_FIXPROTO)
7369         (.PHONY): Don't depend on proto.
7370         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
7371         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
7372         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
7373         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
7374         build/gen-protos.o, build/scan.o, xsys-protos.h,
7375         build/fix-header$(build_exeext), build/fix-header.o,
7376         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
7377         stmp-install-fixproto): Remove.
7378         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
7379         SYSCALLS.c or fixproto files.
7380         (install-common): Don't install protoize.
7381         (install-headers-tar, install-headers-cpio, install-headers-cp):
7382         Don't depend on $(STMP_FIXPROTO).
7383         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
7384         install fixproto files or write out fixproto settings.
7385         (uninstall): Don't uninstall protoize.
7386         * config.gcc (use_fixproto): Remove.
7387         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
7388         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
7389         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
7390         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
7391         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
7392         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
7393         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
7394         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
7395         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
7396         * config/t-vxworks (STMP_FIXPROTO): Remove.
7397         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
7398         STMP_FIXPROTO): Remove.
7399         * config.in, configure: Regenerate.
7400         * crtstuff.c (gid_t, uid_t): Don't undefine.
7401         * doc/install.texi: Change m68k-coff to m68k-elf in example.
7402         (arm-*-coff, arm-*-aout: Remove target entries.
7403         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
7404         Remove mention of AIX 4.1.
7405         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
7406         * doc/invoke.texi (Running Protoize): Remove.
7407         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
7408         (Protoize Caveats): Remove.
7409         * tsystem.h: Update comments on headers assumed to exist.
7410
7411 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
7412
7413         * genautomata.c: Add a new year to the copyright.  Add a new
7414         reference.
7415         (struct insn_reserv_decl): Add comments for member bypass_list.
7416         (find_bypass): Remove.
7417         (insert_bypass): New.
7418         (process_decls): Use insert_bypass.
7419         (output_internal_insn_latency_func): Output all bypasses with the
7420         same input insn in one switch case.
7421
7422         * rtl.def (define_bypass): Describe bypass choice.
7423         * doc/md.texi (define_bypass): Ditto.
7424
7425 2009-03-27  Richard Guenther  <rguenther@suse.de>
7426
7427         * gimplify.c (mark_addressable): Export.
7428         * tree-flow.h (mark_addressable): Declare.
7429         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
7430         * tree-ssa.c (verify_phi_args): Verify that address taken
7431         variables have TREE_ADDRESSABLE set.
7432
7433 2009-03-27  Richard Guenther  <rguenther@suse.de>
7434
7435         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
7436         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
7437         Do not mark decls TREE_ADDRESSABLE.
7438         (build_fold_addr_expr): Adjust.
7439         (fold_addr_expr): Remove.
7440         (fold_unary): Use build_fold_addr_expr.
7441         (fold_comparison): Likewise.
7442         (split_address_to_core_and_offset): Likewise.
7443         * coverage.c (tree_coverage_counter_addr): Mark the array decl
7444         TREE_ADDRESSABLE.
7445         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
7446         (gimplify_modify_expr_to_memcpy): Mark source and destination
7447         addressable.
7448         * omp-low.c (create_omp_child_function): Mark the object decl
7449         TREE_ADDRESSABLE.
7450         (lower_rec_input_clauses): Mark the var we take the address of
7451         TREE_ADDRESSABLE.
7452         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
7453
7454 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7455
7456         PR middle-end/39315
7457         * cfgexpand.c (expand_one_stack_var_at): Change alignment
7458         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
7459
7460 2009-03-27  Richard Guenther  <rguenther@suse.de>
7461
7462         PR tree-optimization/39120
7463         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
7464         constraints.
7465         (handle_lhs_call): Process return constraints.  Add escape
7466         constraints if necessary.
7467         (handle_const_call): Fill out return constraints.  Make nested
7468         case more precise.  Avoid consttmp if possible.
7469         (handle_pure_call): Fill out return constraints.  Avoid
7470         callused if possible.
7471         (find_func_aliases): Simplify call handling.
7472
7473 2009-03-27  Richard Guenther  <rguenther@suse.de>
7474
7475         PR tree-optimization/39120
7476         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
7477         as a representative.
7478         (solve_graph): Do propagate CALLUSED.
7479         (handle_pure_call): Use a scalar constraint from CALLUSED for
7480         the return value.
7481         (find_what_p_points_to): CALLUSED shall not appear in poins-to
7482         solutions.
7483
7484 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7485
7486         PR c/39323
7487         * c-common.c (handle_aligned_attribute): Properly check alignment
7488         overflow.  Use (1U << i) instead of (1 << i).
7489
7490         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7491
7492         * expr.h (get_mem_align_offset): Updated.
7493
7494         * tree.h (tree_decl_common): Change align to "unsigned int" and
7495         move it before pointer_alias_set.
7496
7497 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7498             Jakub Jelinek  <jakub@redhat.com>
7499
7500         PR target/38034
7501         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
7502         gr_register_operand with gr_reg_or_0_operand.
7503         (cmpxchg_rel_di): Likewise.
7504         (sync_lock_test_and_set<mode>): Likewise.
7505
7506 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7507
7508         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
7509         (true_regnum): Likewise.
7510
7511         * rtlanal.c (subreg_info): Moved to ...
7512         * rtl.h (subreg_info): Here.  New.
7513         (subreg_get_info): New.
7514
7515         * rtlanal.c (subreg_get_info): Make it extern.
7516
7517 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7518
7519         PR target/39472
7520         * config/i386/i386.c (ix86_abi): New.
7521         (override_options): Handle -mabi=.
7522         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
7523         (ix86_call_abi_override): Likewise.
7524         (init_cumulative_args): Likewise.
7525         (function_arg_advance): Likewise.
7526         (function_arg_64): Likewise.
7527         (function_arg): Likewise.
7528         (ix86_pass_by_reference): Likewise.
7529         (ix86_function_value_regno_p): Likewise.
7530         (ix86_build_builtin_va_list_abi): Likewise.
7531         (setup_incoming_varargs_64): Likewise.
7532         (is_va_list_char_pointer): Likewise.
7533         (ix86_init_machine_status): Likewise.
7534         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
7535         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
7536         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
7537         (ix86_function_abi): Make it static and return enum calling_abi.
7538         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
7539         with ix86_abi.
7540         (ix86_fn_abi_va_list): Updated.
7541
7542         * config/i386/i386.h (ix86_abi): New.
7543         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
7544         (CONDITIONAL_REGISTER_USAGE): Likewise.
7545         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
7546         (machine_function): Likewise.
7547
7548         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
7549         with ix86_abi.
7550         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
7551         (STACK_BOUNDARY): Likewise.
7552         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7553
7554         * config/i386/i386.opt (mabi=): New.
7555
7556         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7557         return enum calling_abi.
7558         (ix86_function_type_abi): Likewise.
7559         (ix86_function_abi): Removed.
7560
7561         * doc/invoke.texi: Document -mabi= option for x86.
7562
7563 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7564
7565         * builtins.c (real_dconstp): Delete.
7566         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7567
7568 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
7569             Jakub Jelinek  <jakub@redhat.com>
7570
7571         PR debug/37959
7572         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7573         (gen_subprogram_die): When a function is explicit, generate the
7574         DW_AT_explicit attribute.
7575         * langhooks.h (struct lang_hooks_for_decls): Add
7576         function_decl_explicit_p langhook.
7577         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7578         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7579
7580 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
7581
7582         * builtins.c (fold_builtin_memory_op): Optimize memmove
7583         into memcpy if we can prove source and destination don't overlap.
7584
7585         * tree-inline.c: Include gt-tree-inline.h.
7586         (clone_fn_id_num): New variable.
7587         (clone_function_name): New function.
7588         (tree_function_versioning): Use it.
7589         * Makefile.in (GTFILES): Add tree-inline.c.
7590
7591 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
7592
7593         * BASE-VER: Change to 4.5.0.
7594
7595 2009-03-27  Xinliang David Li  <davidxl@google.com>
7596
7597         PR tree-optimization/39557
7598         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7599
7600 2009-03-27  Xinliang David Li  <davidxl@google.com>
7601
7602         PR tree-optimization/39548
7603         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
7604         candidate check.
7605
7606 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7607
7608         * c-common.c (pointer_int_sum): Use %wd on return from
7609         tree_low_cst.
7610
7611 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7612
7613         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7614         on return from tree_low_cst.
7615
7616 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7617
7618         PR c++/36799
7619         * ginclude/stdarg.h (va_copy): Define also for
7620         __GXX_EXPERIMENTAL_CXX0X__.
7621
7622 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7623
7624         PR c++/35652
7625         * builtins.h (c_strlen): Do not warn here.
7626         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7627         * c-common.c (pointer_int_sum): Take an explicit location.
7628         Warn about offsets out of bounds.
7629         * c-common.h (pointer_int_sum): Adjust declaration.
7630
7631 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7632
7633         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7634         markup glitch.
7635
7636 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
7637
7638         PR c++/39554
7639         * opts.c (warn_if_disallowed_function_p): Don't assume
7640         get_callee_fndecl must return non-NULL.
7641
7642 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7643
7644         PR rtl-optimization/39522
7645         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7646         when reg_reloaded_valid is set.
7647
7648 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7649
7650         * config/spu/divv2df3.c: New file.
7651         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7652         (DPBIT_FUNCS): Filter out _div_df.
7653
7654 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7655
7656         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7657         a jump insn, count that jump in the distance to the loop start.
7658
7659 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7660
7661         PR target/39523
7662         * config/sh/sh.c (calc_live_regs): Fix condition for global
7663         registers except PIC_OFFSET_TABLE_REGNUM.
7664
7665 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
7666
7667         PR/39518
7668         * doc/invoke.texi (-mconsole): New.
7669         (-mcygwin): New.
7670         (-mno-cygwin): New.
7671         (-mdll): New.
7672         (-mnop-fun-dllimport): New.
7673         (-mthread): New.
7674         (-mwin32): New.
7675         (-mwindows): New.
7676         (sub section "i386 and x86-64 Windows Options"): New.
7677
7678 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
7679
7680         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7681         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7682
7683 2009-03-25  Richard Guenther  <rguenther@suse.de>
7684
7685         PR middle-end/39497
7686         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7687         of -Wno-error.
7688
7689 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
7690
7691         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7692         neither of haifa/selective schedulers are working.
7693
7694 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7695
7696         * doc/invoke.texi (Debugging Options): Fix description of
7697         -fno-merge-debug-strings.
7698
7699 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
7700
7701         * config/cris/libgcc.ver: New version-script.
7702         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7703
7704         * configure.ac <GAS features, nop mnemonic>: Add pattern
7705         crisv32-*-* for "nop".
7706         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
7707         * configure: Regenerate.
7708
7709 2009-03-24  Ira Rosen  <irar@il.ibm.com>
7710
7711         PR tree-optimization/39529
7712         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7713         mark_sym_for_renaming for the tag copied to the new vector
7714         pointer.
7715
7716 2009-03-24  Arthur Loiret  <aloiret@debian.org>
7717
7718         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
7719         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7720         EXTRA_SPEC_FUNCTIONS.
7721         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7722         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7723         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7724         -march and -mtune options.
7725
7726 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
7727
7728         * config/m68k/t-rtems: Add m5329 multilib.
7729
7730 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
7731             Jakub Jelinek  <jakub@redhat.com>
7732
7733         PR debug/39524
7734         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7735         nodes.
7736
7737 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7738
7739         PR c/39495
7740         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7741         instead of c_parser_expression_conv, if original_code isn't one of the
7742         4 allowed comparison codes, fail.
7743
7744 2009-03-23  Richard Guenther  <rguenther@suse.de>
7745
7746         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7747         * tree.h (struct tree_type): Likewise.
7748         * reload.h (struct insn_chain): Likewise.
7749         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7750         * function.h (struct function): Likewise.
7751         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7752
7753 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR tree-optimization/39516
7756         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7757
7758 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
7759
7760         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
7761         should be set true if BITS_PER_WORD of target is bigger than 32
7762
7763 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
7764
7765         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7766         Translate -B-options to -rpath-link.  Correct existing
7767         rpath-link and conditionalize on !nostdlib.
7768
7769 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7770
7771         * doc/extend.texi (Function Attributes, Variable Attributes):
7772         Fix typos.
7773         * doc/invoke.texi (Debugging Options, Optimize Options)
7774         (i386 and x86-64 Options, MCore Options): Likewise.
7775
7776 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
7777
7778         PR debug/37890
7779         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7780         it for block local namespace aliases.
7781         (gen_decl_die): Pass context_die to gen_namespace_die.
7782
7783 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7784
7785         PR c/39495
7786         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7787         minimum or maximum value.
7788
7789 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
7790
7791         * reginfo.c (globalize_reg): Recompute derived reg sets.
7792
7793 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
7794
7795         PR target/39063
7796         * libgcc2.c (mprotect): Do not use signed arguments for
7797         VirtualProtect, use DWORD arguments.  Also fix the 'may
7798         be used uninitialized' warning for the np variable.
7799
7800 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7801
7802         PR target/39496
7803         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7804         functions using regparm calling conventions when not optimizing.
7805         (ix86_function_sseregparm): Similarly for sseregparm calling
7806         conventions.
7807
7808 2009-03-19  Li Feng  <nemokingdom@gmail.com>
7809
7810         PR middle-end/39500
7811         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7812         dependence if the first conflict is after niter iterations.
7813
7814 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
7815
7816         PR middle-end/38609
7817         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7818         functions with dynamic stack-pointer adjustments.
7819
7820 2009-03-19  Ben Elliston  <bje@au.ibm.com>
7821
7822         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7823         option; change to -msdata=data.
7824
7825 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7826
7827         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7828         and -fopenmp.
7829
7830 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
7831
7832         PR target/35180
7833         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7834
7835 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
7836
7837         * doc/invoke.texi (Code Gen Options): Expand discussion of
7838         -fno-common.
7839
7840 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
7841
7842         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7843         * matrix-reorg.c (struct matrix_info): Likewise.
7844         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7845         * rtl.h (struct mem_attrs): Likewise.
7846         * df.h (struct df): Likewise.
7847         * tree-data-ref.h (struct data_dependence_relation): Likewise.
7848         * ira-int.h (struct ira_allocno): Likewise.
7849         * df-scan.c (struct df_collection_rec): Likewise.
7850         * ira.c (struct equivalence): Likewise.
7851         * function.c (struct temp_slot): Likewise.
7852         * cfgloop.h (struct loop): Likewise.
7853
7854         PR debug/39485
7855         * function.c (use_register_for_decl): When not optimizing, disregard
7856         register keyword for variables with types containing methods.
7857
7858 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
7859
7860         PR middle-end/39447
7861         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7862         (is_simple_operand): Call contains_component_ref_p before calling data
7863         reference analysis that would fail on COMPONENT_REFs.
7864
7865         * tree-vrp.c (search_for_addr_array): Fix formatting.
7866
7867 2009-03-18  Richard Guenther  <rguenther@suse.de>
7868
7869         * tree-vect-transform.c (vect_loop_versioning): Fold the
7870         generated comparisons.
7871         * tree-vectorizer.c (set_prologue_iterations): Likewise.
7872         (slpeel_tree_peel_loop_to_edge): Likewise.
7873
7874 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7875
7876         PR middle-end/37805
7877         * opts.c (print_specific_help): In addition to `undocumented',
7878         accept `separate' and `joined' flags if passed alone.  Describe
7879         output by the first matched one of those.
7880         (common_handle_option): Skip over empty strings.
7881         * gcc.c (display_help): Fix help string for `--help='.
7882         * doc/invoke.texi (Option Summary, Overall Options): With
7883         `--help=', classes and qualifiers can both be repeated, but
7884         only the latter can be negated.  One should not pass only
7885         negated qualifiers.  Fix markup and examples.
7886
7887         Revert
7888         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
7889         PR middle-end/37805
7890         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7891         and -fhelp=separate.
7892
7893 2009-03-17  Jing Yu  <jingyu@google.com>
7894
7895         PR middle-end/39378
7896         * function.h (struct rtl_data): Move is_thunk from here...
7897         (struct function): ...to here.
7898         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
7899         * varasm.c (assemble_start_function): Change is_thunk from crtl to
7900         cfun.
7901         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7902         cfun.
7903         (alpha_does_function_need_gp, alpha_start_function): Likewise.
7904         (alpha_output_function_end_prologue): Likewise.
7905         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7906         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7907         (rs6000_output_function_epilogue): Likewise.
7908         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
7909
7910 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
7911
7912         PR target/39482
7913         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7914         from different units in a single alternative.
7915         (*truncdfsf_i387): Ditto.
7916         (*truncxfsf2_mixed): Ditto.
7917         (*truncxfdf2_mixed): Ditto.
7918
7919 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
7920
7921         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7922         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7923
7924         PR debug/39474
7925         * tree-ssa-live.c (remove_unused_locals): Don't remove local
7926         unused non-artificial variables when not optimizing.
7927
7928         PR debug/39471
7929         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7930         DW_TAG_imported_module even if decl is IMPORTED_DECL with
7931         NAMESPACE_DECL in its DECL_INITIAL.
7932
7933         PR middle-end/39443
7934         * optabs.c (set_user_assembler_libfunc): New function.
7935         * expr.h (set_user_assembler_libfunc): New prototype.
7936         * c-common.c: Include libfuncs.h.
7937         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7938         for memcmp, memset, memcpy, memmove and abort.
7939         * Makefile.in (c-common.o): Depend on libfuncs.h.
7940
7941         PR debug/39412
7942         * dwarf2out.c (gen_inlined_enumeration_type_die,
7943         gen_inlined_structure_type_die, gen_inlined_union_type_die,
7944         gen_tagged_type_instantiation_die): Removed.
7945         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7946         do nothing.
7947
7948 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
7949
7950         PR testsuite/38526
7951         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7952         its use.
7953         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7954         (check-parallel-%): Ditto.
7955         (check-consistency): Ditto.
7956
7957 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
7958
7959         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7960         local variable rhs by NULL_TREE.
7961
7962 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7963
7964         PR target/39477
7965         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
7966
7967 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7968
7969         PR target/39476
7970         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
7971
7972 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7973
7974         PR target/39473
7975         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7976         for ms->sysv ABI calls only in 64bit mode.
7977
7978         * config/i386/i386.md (untyped_call): Support 32bit.
7979
7980 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7981
7982         * doc/extend.texi: Replace x86_65 with x86_64.
7983
7984 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
7985
7986         PR tree-optimization/39455
7987         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7988         mismatches for POINTER_TYPE_P (type).
7989         (number_of_iterations_le): Likewise.
7990
7991 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7992
7993         * config/picochip/picochip.c: Removed profiling support.
7994         * config/picochip/picochip.md: Removed profiling instruction.
7995         * config/picochip/picochip.h: Removed profiling builtin.
7996
7997 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
7998
7999         * doc/install.texi (--with-host-libstdcxx): Document.
8000
8001 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
8002
8003         PR target/34299
8004         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8005         generate a warning if the function name does not begin with
8006         "__vector" and the function has either the 'signal' or 'interrupt'
8007         attribute, from here to ...
8008         (avr_declare_function_name): ...here. New function.
8009         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8010         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8011
8012 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
8013
8014         PR bootstrap/39454
8015         * cse.c (fold_rtx): Don't modify original const_arg1 when
8016         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8017         separate variable instead.
8018         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8019         from out of range shift counts.
8020         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8021
8022 2009-03-13  Catherine Moore  <clm@codesourcery.com>
8023
8024         * config/i386/x-mingw32 (host-mingw32.o): Replace
8025         diagnostic.h with $(DIAGNOSTIC_H).
8026
8027 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
8028
8029         PR target/39431
8030         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8031         predicate.
8032         * config/i386/sync.md (sync_compare_and_swap<mode>,
8033         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8034         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8035         into a register.
8036         (sync_double_compare_and_swapdi_pic,
8037         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8038         cmpxchg8b_pic_memory_operand instead of just memory_operand.
8039
8040 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8041
8042         PR target/39445
8043         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
8044
8045 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8046
8047         PR target/39327
8048         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8049         (avx_addsubv4df3): Likewise.
8050         (*avx_addsubv4sf3): Likewise.
8051         (sse3_addsubv4sf3): Likewise.
8052
8053 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8054
8055         PR target/38824
8056         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
8057
8058 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
8059
8060         PR debug/39432
8061         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8062         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8063         registers for allocnos created from user-defined variables.
8064
8065 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8066
8067         PR target/39181
8068         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8069         of non-integer mode as well.
8070
8071 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
8072
8073         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8074         for functions for which the parameter types are unknown.
8075
8076 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
8077
8078         PR target/39137
8079         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
8080         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
8081         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
8082         * config/i386/i386.c (ix86_local_alignment): For
8083         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
8084         long long variables on the stack to avoid dynamic realignment.
8085         Allow the first argument to be a decl rather than type.
8086         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
8087
8088 2009-03-11  Nick Clifton  <nickc@redhat.com>
8089
8090         PR target/5362
8091         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
8092         options.
8093         Add description to mno-lsim option.
8094         * config/mcore/mcore.h: Remove comment about deprecated m4align
8095         option.
8096         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
8097         * doc/invoke.texi: Add description of mno-lsim and
8098         mstack-increment options.
8099
8100         * config/fr30/fr30.opt: Document the -mno-lsim option.
8101         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
8102         and -mno-lsim options.
8103
8104 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8105
8106         * fold-const.c (fold_comparison): Only call fold_inf_compare
8107         if the mode supports infinities.
8108
8109 2009-03-11  Jason Merrill  <jason@redhat.com>
8110
8111         PR debug/39086
8112         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
8113         end already did.  Notice GIMPLE_CALL modifications of the result.
8114         Don't copy debug information from an ignored decl or a decl from
8115         another function.
8116
8117 2009-03-10  Richard Guenther  <rguenther@suse.de>
8118             Nathan Froyd  <froydnj@codesourcery.com>
8119
8120         PR middle-end/37850
8121         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
8122         (__divMODE3): Likewise.
8123
8124 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
8125
8126         PR tree-optimization/39394
8127         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
8128         DECL_SIZE_UNIT of variable length FIELD_DECLs.
8129
8130 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8131
8132         * recog.c (verfiy_changes): Disallow renaming of hard regs in
8133         inline asms for register asm ("") declarations.
8134
8135 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
8136
8137         * fold-const.c (fold_unary): Fix comment.
8138
8139 2009-03-07  Jan Hubicka  <jh@suse.cz>
8140
8141         PR target/39361
8142         * tree-inline.c (setup_one_parameter): Do replacement of const
8143         argument by constant in SSA form.
8144
8145 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8146
8147         PR middle-end/38028
8148         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
8149         determine alignment passed to assign_stack_local.
8150         (assign_parms_unsplit_complex): Likewise.
8151         * except.c (sjlj_build_landing_pads): Likewise.
8152
8153 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
8154
8155         PR middle-end/39360
8156         * tree-flow.h (add_referenced_var): Return bool instead of void.
8157         * tree-dfa.c (add_referenced_var): Return result of
8158         referenced_var_check_and_insert call.
8159         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
8160         of referenced_var_check_and_insert.
8161
8162         PR debug/39372
8163         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
8164         (gen_variable_die): Emit DW_AT_location on abstract static variable's
8165         DIE, don't emit it if abstract origin already has it.
8166         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
8167         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
8168
8169 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8170
8171         * genpreds.c (needs_variable): Fix parentheses at variable name
8172         detection.
8173         (write_tm_constrs_h): Indent generated code.
8174
8175 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8176
8177         * doc/extend.texi (Function Attributes): Add documentation
8178         for isr attributes.
8179
8180 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
8181
8182         PR debug/39387
8183         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
8184         take locus from its DECL_SOURCE_LOCATION instead of input_location.
8185
8186 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
8187
8188         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
8189         the loop as bad.
8190
8191 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
8192
8193         PR debug/39379
8194         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8195         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8196
8197 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
8198
8199         * config/i386/i386.md (R8_REG, R9_REG): New constants.
8200         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8201         constants instead of magic numbers.
8202         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8203         (QI_REG_P): Ditto.
8204         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8205         (x86_64_ms_abi_int_parameter_registers): Ditto.
8206         (x86_64_int_return_registers): Ditto.
8207         (ix86_maybe_switch_abi): Ditto.
8208         (ix86_expand_call): Ditto for clobbered_registers array.
8209         (ix86_hard_regno_mode_ok): Ditto.
8210         (x86_extended_QIreg_mentioned_p): Ditto.
8211
8212 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
8213
8214         PR tree-optimization/39349
8215         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8216
8217         * combine.c (gen_lowpart_for_combine): Use omode when generating
8218         clobber.
8219
8220 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
8221
8222         PR rtl-optimization/39235
8223         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8224
8225 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
8226
8227         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8228
8229 2009-03-04  Richard Guenther  <rguenther@suse.de>
8230
8231         PR tree-optimization/39362
8232         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8233         that occur in abnormal PHIs should be varying.
8234
8235 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
8236
8237         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8238         Extend comments.
8239         (simple_iv):  Take loop as an argument instead of statement.
8240         * tree-scalar-evolution.h (simple_iv): Declaration changed.
8241         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8242         to simple_iv.
8243         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8244         Ditto.
8245         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8246         * matrix-reorg.c (analyze_transpose): Ditto.
8247         * tree-data-ref.c (dr_analyze_innermost): Ditto.
8248         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8249         * tree-predcom.c (ref_at_iteration): Ditto.
8250         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8251
8252 2009-03-04  Richard Guenther  <rguenther@suse.de>
8253
8254         PR tree-optimization/39358
8255         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8256         escaped_id and callused_id.
8257         (solve_graph): Likewise.
8258
8259 2009-03-04  Richard Guenther  <rguenther@suse.de>
8260
8261         PR tree-optimization/39339
8262         * tree-sra.c (try_instantiate_multiple_fields): Make it
8263         no longer ICE on the above.
8264
8265 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
8266
8267         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8268         that fits within Pmode.
8269
8270 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
8271
8272         PR middle-end/10109
8273         * tm.texi (LIBCALL_VALUE): Update description.
8274
8275 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
8276
8277         PR middle-end/34443
8278         * doc/extend.texi (section): Update description.
8279
8280 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
8281
8282         PR middle-end/39345
8283         * tree-inline.c (remapped_type): New.
8284         (can_be_nonlocal): Call remapped_type instead of remap_type.
8285
8286 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
8287
8288         PR fortran/39354
8289         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8290         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8291
8292 2009-03-03  Richard Guenther  <rguenther@suse.de>
8293
8294         PR middle-end/39272
8295         * tree.c (tree_nonartificial_location): New function.
8296         * tree.h (tree_nonartificial_location): Declare.
8297         * builtins.c (expand_builtin_memory_chk): Provide location
8298         of the call location for artificial function pieces.
8299         (maybe_emit_chk_warning): Likewise.
8300         (maybe_emit_sprintf_chk_warning): Likewise.
8301         (maybe_emit_free_warning): Likewise.
8302         * expr.c (expand_expr_real_1): Likewise.
8303
8304 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
8305
8306         PR tree-optimization/39343
8307         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8308         COMPONENT_REF t has ARRAY_TYPE.
8309
8310 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
8311
8312         PR middle-end/39335
8313         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8314         when the type precision of the induction variable should be
8315         larger than the type precision of nit.
8316         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8317         * graphite.c (graphite_loop_normal_form): Same.
8318         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8319
8320 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8321
8322         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8323         (*call_1_rex64_ms_sysv): Use named constants instead of magic
8324         numbers to describe clobbered registers.
8325         (*call_value_0_rex64_ms_sysv): Ditto.
8326         * config/i386/mmx.md (mmx_emms): Ditto.
8327         (mmx_femms): Ditto.
8328
8329 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
8330
8331         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8332         of ABI_64.
8333
8334 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8335
8336         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8337         (spu_section_type_flags): New function.
8338
8339 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
8340
8341         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8342         reg_class_contents of FLOAT_REGS into a temporary.
8343
8344 2009-03-02  Richard Guenther  <rguenther@suse.de>
8345             Ira Rosen  <irar@il.ibm.com>
8346
8347         PR tree-optimization/39318
8348         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8349         information to the vectorized statement.
8350
8351 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
8352
8353         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
8354         variable.  Use defined names instead of magic constants for REX SSE
8355         registers.
8356
8357 2009-03-01  Richard Guenther  <rguenther@suse.de>
8358
8359         PR tree-optimization/39331
8360         * omp-low.c (lower_send_shared_vars): Do not receive new
8361         values for the reference of DECL_BY_REFERENCE parms or results.
8362
8363 2009-03-01  Jan Hubicka  <jh@suse.cz>
8364
8365         PR debug/39267
8366         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
8367         BLOCK_NONLOCALIZED_VAR): New macros.
8368         (tree_block): Add nonlocalized_vars.
8369         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
8370         gen_decl_die): Add origin argument.  Allow generation of die with
8371         origin at hand only.
8372         (gen_member_die, gen_type_die_with_usage, force_decl_die,
8373         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
8374         of gen_*.
8375         (gen_block_die): Fix checking for unused blocks.
8376         (process_scope_var): Break out from .... ; work with origins only.
8377         (decls_for_scope) ... here; process nonlocalized list.
8378         (dwarf2out_ignore_block): Look for nonlocalized vars.
8379         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
8380         vars.
8381         (dump_scope_block): Dump them.
8382         * tree-inline.c (remap_decls): Handle nonlocalized vars.
8383         (remap_block): Likewise.
8384         (can_be_nonlocal): New predicate.
8385         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
8386
8387 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8388
8389         * configure: Regenerate.
8390
8391 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8392
8393         * optc-gen.awk: No need to duplicate option flags twice.
8394         Reuse help texts for duplicate options which do not have any.
8395
8396         * gcc.c (display_help): Document --version.
8397
8398         * gcc.c (main): If print_help_list and verbose_flag, ensure
8399         driver output comes before subprocess output.
8400
8401         * optc-gen.awk: Assign all remaining fields to help string,
8402         space-separated, for multi-line help in *.opt.
8403
8404         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
8405         -Wno-pedantic-ms-format is for MinGW targets only.
8406
8407         * doc/options.texi (Option file format): Fix bad indentation,
8408         restoring dropped sentence.
8409
8410 2009-02-28  Jan Hubicka  <jh@suse.cz>
8411
8412         * tree-inline.c (tree_function_versioning): Output debug info.
8413
8414 2009-02-28  Jan Hubicka  <jh@suse.cz>
8415
8416         PR debug/39267
8417         * tree-inline.c (setup_one_parameter): Do not copy propagate
8418         arguments when not optimizing.
8419
8420 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8421
8422         PR target/39327
8423         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8424         (avx_addsubv4df3): Likewise.
8425         (*avx_addsubv4sf3): Likewise.
8426         (sse3_addsubv4sf3): Likewise.
8427         (*avx_addsubv2df3): Likewise.
8428         (sse3_addsubv2df3): Likewise.
8429         (avx_unpckhps256): Correct item selectors.
8430         (avx_unpcklps256): Likewise.
8431         (avx_unpckhpd256): Likewise.
8432         (avx_unpcklpd256): Likewise.
8433
8434 2009-02-28  Jan Hubicka  <jh@suse.cz>
8435
8436         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
8437         static vars.
8438         (copy_arguments_for_versioning): If var is declared don't declare it.
8439         (tree_function_versioning): First setup substitutions and then copy
8440         args.
8441
8442 2009-02-27  Jan Hubicka  <jh@suse.cz>
8443
8444         PR debug/39267
8445         * cgraph.h (varpool_output_debug_info): Remove.
8446         * cgraphunit.c (varpool_output_debug_info): Remove.
8447         * dwarf2out.c (deferred_locations_struct): New struct
8448         (deferred_locations): New type.
8449         (deferred_locations_list): New static var.
8450         (deffer_location): New function.
8451         (gen_variable_die): Use it.
8452         (decls_for_scope): Output info on local static vars.
8453         (dwarf2out_finish): Process deferred locations.
8454         * varpool.c (varpool_output_debug_info): Remove.
8455
8456 2009-02-27  Jan Hubicka  <jh@suse.cz>
8457
8458         PR debug/39267
8459         * tree.h (TREE_PROTECTED): Fix comment.
8460         (BLOCK_HANDLER_BLOCK): Remove.
8461         (struct tree_block): Remove handler_block add body_block.
8462         (inlined_function_outer_scope_p): New.
8463         (is_body_block): Remove.
8464         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
8465         * dwarf2out.c (is_inlined_entry_point): Remove.
8466         (add_high_low_attributes): Use inlined_function_outer_scope_p.
8467         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
8468         code.
8469         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
8470         * gimplify.c (gimplify_expr): Gimplify body blocks.
8471         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
8472         block with multiple subblocks.
8473         (dump_scope_block): Prettier output; dump more flags and info.
8474         (dump_scope_blocks): New.
8475         (remove_unused_locals): Use dump_scope_blocks.
8476         * tree-flow.h (dump_scope_blocks): Declare.
8477         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
8478         * stmt.c (is_body_block): Remove.
8479         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
8480         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
8481
8482 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
8483
8484         PR middle-end/39308
8485         * graphite.c (graphite_loop_normal_form): Do not call
8486         number_of_iterations_exit from a gcc_assert.
8487
8488 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8489
8490         * config/s390/s390.c (s390_swap_cmp): Look for conditional
8491         jumps if COND is NULL.
8492         (find_cond_jump): New function.
8493         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
8494         * config/s390/s390.md: Remove z10_cobra attribute value.
8495
8496 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
8497
8498         * config/alpha/alpha.h (alpha_expand_mov): Return false if
8499         force_const_mem returns NULL_RTX.
8500
8501 2009-02-26  Jan Hubicka  <jh@suse.cz>
8502
8503         PR debug/39267
8504         * cgraph.h (varpool_output_debug_info): Remove.
8505         * cgraphunit.c (varpool_output_debug_info): Remove.
8506         * dwarf2out.c (deferred_locations_struct): New struct
8507         (deferred_locations): New type.
8508         (deferred_locations_list): New static var.
8509         (deffer_location): New function.
8510         (gen_variable_die): Use it.
8511         (decls_for_scope): Output info on local static vars.
8512         (dwarf2out_finish): Process deferred locations.
8513         * varpool.c (varpool_output_debug_info): Remove.
8514
8515 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8516
8517         PR rtl-optimization/39241
8518         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
8519         to subreg_offset_representable_p.
8520
8521 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8522
8523         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
8524         execute function prototype.  Get f and nregs from max_reg_num
8525         and get_insns.  Remove the first backward pass as it's dead,
8526         guard the forward pass by flag_expensive_optimizations.
8527         (rest_of_handle_regmove): Delete.
8528         (pass_regmove): Replace it with regmove_optimize.
8529
8530 2009-02-25  Martin Jambor  <mjambor@suse.cz>
8531
8532         PR tree-optimization/39259
8533         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
8534         calls_alloca function flags.
8535         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
8536         calls are detected.
8537
8538 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
8539
8540         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
8541         flags_set_1_rtx, flags_set_1_set): Delete.
8542         (regmove_optimize): Do not call mark_flags_life_zones.
8543
8544 2009-02-24  Julian Brown  <julian@codesourcery.com>
8545
8546         PR target/35965
8547         * config/arm/arm.c (require_pic_register): Only set
8548         cfun->machine->pic_reg once per function.
8549
8550 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
8551
8552         * doc/invoke.texi (Link Options): Document an easier way to pass
8553         options that take arguments to the GNU linker using -Xlinker and -Wl.
8554
8555 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
8556
8557         PR target/33785
8558         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8559
8560 2009-02-24  Richard Guenther  <rguenther@suse.de>
8561
8562         PR debug/39285
8563         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8564
8565 2009-02-24  Richard Guenther  <rguenther@suse.de>
8566             Zdenek Dvorak  <ook@ucw.cz>
8567
8568         PR tree-optimization/39233
8569         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8570         from converting them to a generic type.
8571
8572 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
8573
8574         PR tree-optimization/39260
8575         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8576         contains a condition with a real type.
8577         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8578
8579 2009-02-23  Jason Merrill  <jason@redhat.com>
8580
8581         PR c++/38880
8582         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8583         narrowing_initializer_constant_valid_p.
8584         (narrowing_initializer_constant_valid_p): Don't return
8585         null_pointer_node for adding a pointer to itself.
8586
8587 2009-02-23  Jan Hubicka  <jh@suse.cz>
8588
8589         PR c/12245
8590         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8591         resizing.
8592
8593 2009-02-23  Jan Hubicka  <jh@suse.cz>
8594
8595         PR tree-optimization/37709
8596         * tree.c (block_ultimate_origin): Move here from dwarf2out.
8597         * tree.h (block_ultimate_origin): Declare.
8598         * dwarf2out.c (block_ultimate_origin): Move to tree.c
8599         * tree-ssa-live.c (remove_unused_scope_block_p):
8600         Eliminate blocks containig no instructions nor live variables nor
8601         nested blocks.
8602         (dump_scope_block): New function.
8603         (remove_unused_locals): Enable removal of dead blocks by default;
8604         enable dumping at TDF_DETAILS.
8605
8606 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8607
8608         * config/i386/i386.c (classify_argument): Don't allow COImode
8609         and OImode.
8610         (function_arg_advance_32): Don't allow OImode.
8611         (function_arg_32): Likewise.
8612         (function_value_32): Likewise.
8613         (return_in_memory_32): Likewise.
8614         (function_arg_64): Remove OImode comment.
8615
8616 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8617
8618         PR target/39261
8619         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8620         ix86_expand_vector_set for V4DImode in 64bit mode only.
8621         (ix86_expand_vector_init_one_var): Likewise.
8622
8623 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
8624
8625         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8626
8627 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8628
8629         PR bootstrap/39257
8630         * loop-iv.c: Revert last change.
8631         * emit-rtl.c: Likewise.
8632
8633 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8634
8635         PR target/39256
8636         * config/i386/i386.c (type_natural_mode): Remove an extra
8637         space in the warning message.
8638         (function_value_32): Handle 32-byte vector modes.
8639         (return_in_memory_32): Likewise.
8640
8641 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8642
8643         * loop-iv.c (truncate_value): New function.
8644         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8645         of lowpart_subreg.
8646         (lowpart_subreg): Move to...
8647         * emit-rtl.c: ...here.
8648
8649 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
8650
8651         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8652         accidental and undocumented change at revision 140860.
8653
8654 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
8655
8656         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8657         take gimple_seq * arguments.
8658         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8659         types_compatible_p langhook.
8660
8661 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
8662             Joseph Myers  <joseph@codesourcery.com>
8663
8664         * config/arm/arm.c (arm_builtin_va_list): New function.
8665         (arm_expand_builtin_va_start): Likewise.
8666         (arm_gimplify_va_arg_expr): Likewise.
8667         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8668         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8669         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8670         (va_list_type): New variable.
8671         (arm_mangle_type): Mangle va_list_type appropriately.
8672
8673 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8674
8675         PR middle-end/39157
8676         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8677         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8678         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8679         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8680         parameter to 1000 for -O1 by default.
8681         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8682         parameter.
8683         * loop-invariant.c: Include params.h.
8684         (move_loop_invariants): Don't call move_single_loop_invariants on
8685         very large loops.
8686
8687 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
8688
8689         * calls.c (emit_library_call_value_1): Use slot_offset instead of
8690         offset when calculating bounds for indexing stack_usage_map.  Fixes
8691         a buffer overflow with certain target setups.
8692
8693 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8694
8695         PR target/39240
8696         * calls.c (expand_call): Clear try_tail_call if caller and callee
8697         disagree in promotion of function return value.
8698
8699 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
8700
8701         PR target/39175
8702         * c-common.c (c_determine_visibility): If visibility changed and
8703         DECL_RTL has been already set, call make_decl_rtl to update symbol
8704         flags.
8705
8706 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8707
8708         PR c++/39188
8709         * varasm.c (assemble_variable): Don't check DECL_NAME when
8710         globalizing a variable.
8711
8712 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
8713
8714         PR c/38483
8715         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8716         expression before any __builtin_trap call.
8717         * c-typeck.c (build_function_call): Convert and check function
8718         arguments before generating a call to a trap.  Evaluate the
8719         function arguments before the trap.
8720
8721 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
8722
8723         PR target/39228
8724         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8725         (UNSPEC_FXAM_MEM): New unspec.
8726         (fxam<mode>2_i387_with_temp): New insn and split pattern.
8727         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
8728         memory using fxam<mode>2_i387_with_temp to remove excess precision.
8729
8730 2009-02-19  Richard Guenther  <rguenther@suse.de>
8731
8732         PR tree-optimization/39207
8733         PR tree-optimization/39074
8734         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8735         storedanything_tree): New.
8736         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
8737         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
8738         (build_succ_graph): Add edges from STOREDANYTHING to all
8739         non-direct nodes.
8740         (init_base_vars): Initialize STOREDANYTHING.
8741         (compute_points_to_sets): Free substitution info after
8742         building the succ graph.
8743         (ipa_pta_execute): Likewise.
8744
8745         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8746         field.
8747         (do_ds_constraint): Do not add to special var or non-pointer
8748         field solutions.
8749         (type_could_have_pointers): Split out from ...
8750         (could_have_pointers): ... here.  For arrays use the element type.
8751         (create_variable_info_for): Initialize may_have_pointers.
8752         (new_var_info): Likewise.
8753         (handle_lhs_call): Make the HEAP variable unknown-sized.
8754         (intra_create_variable_infos): Use a type with pointers for
8755         PARM_NOALIAS, make it unknown-sized.
8756
8757 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8758
8759         PR target/39224
8760         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
8761
8762 2009-02-18  Jason Merrill  <jason@redhat.com>
8763
8764         PR target/39179
8765         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8766         value if DECL_EXTERNAL.
8767         * tree-sra.c (sra_walk_gimple_assign): Likewise.
8768         * target.h (gcc_target::binds_local_p): Clarify "module".
8769         * tree.h (TREE_PUBLIC): Clarify "module".
8770
8771 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
8772
8773         PR target/38891
8774         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8775         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8776
8777 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8778
8779         PR target/39082
8780         * c.opt (Wabi): Support C and ObjC.
8781         (Wpsabi): New.
8782
8783         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8784
8785         * config/i386/i386.c (classify_argument): Warn once about the ABI
8786         change when passing union with long double.
8787
8788         * doc/invoke.texi: Update -Wabi for warning psABI changes.
8789
8790 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
8791
8792         PR c/35447
8793         * c-parser.c (c_parser_compound_statement): Always enter and leave
8794         a scope.
8795
8796 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8797
8798         PR target/34587
8799         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8800
8801 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
8802
8803         PR tree-optimization/36922
8804         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8805         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8806         Likewise.
8807
8808 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8809
8810         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8811         to 0 for EABI64.
8812
8813 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8814
8815         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8816
8817 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8818
8819         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8820         tree sharing.
8821
8822 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
8823             Richard Sandiford  <rdsandiford@googlemail.com>
8824
8825         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8826         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8827         (loongson_biadd): ...this.
8828
8829 2009-02-17  Richard Guenther  <rguenther@suse.de>
8830
8831         PR tree-optimization/39202
8832         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8833         a var make sure to follow existing collapses.
8834
8835 2009-02-17  Richard Guenther  <rguenther@suse.de>
8836
8837         PR middle-end/39214
8838         * langhooks.c (lhd_print_error_function): Check for NULL block.
8839
8840 2009-02-17  Richard Guenther  <rguenther@suse.de>
8841
8842         PR tree-optimization/39204
8843         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8844         of the PHI arg.
8845
8846 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
8847
8848         * config/soft-fp/double.h: Update from glibc CVS.
8849
8850 2009-02-17  Richard Guenther  <rguenther@suse.de>
8851
8852         PR tree-optimization/39207
8853         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8854         strict-aliasing warnings for pointers pointing to NULL.
8855
8856 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
8857
8858         PR c/35446
8859         * c-parser.c (c_parser_braced_init): Call pop_init_level when
8860         skipping until next close brace.
8861
8862 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
8863
8864         PR target/37049
8865         * config/i386/i386.c (ix86_expand_push): Set memory alignment
8866         to function argument boundary.
8867
8868 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8869
8870         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8871         in the lea_add. Reload eventually constraints it properly.
8872         * config/picochip/constraints.md: Remove the target constraint
8873         "b", since it is not needed anymore.
8874
8875 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
8876
8877         * gthr-dce.h: Uglify function parameter and local variable names.
8878         * gthr-gnat.h: Likewise.
8879         * gthr-mipssde.h: Likewise.
8880         * gthr-nks.h: Likewise.
8881         * gthr-posix95.h: Likewise.
8882         * gthr-posix.h: Likewise.
8883         * gthr-rtems.h: Likewise.
8884         * gthr-single.h: Likewise.
8885         * gthr-solaris.h: Likewise.
8886         * gthr-tpf.h: Likewise.
8887         * gthr-vxworks.h: Likewise.
8888         * gthr-win32.h: Likewise.
8889
8890 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8891
8892         PR target/39196
8893         * config/i386/i386.md: Restrict the new peephole2 to move
8894         between MMX/SSE registers.
8895
8896 2009-02-15  Richard Guenther  <rguenther@suse.de>
8897
8898         Revert
8899         2009-02-13  Richard Guenther  <rguenther@suse.de>
8900
8901         * configure.ac: Enable LFS.
8902         * configure: Re-generate.
8903         * config.in: Likewise.
8904
8905 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8906
8907         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8908         spu_srqwbyte, spu_srqwbytebc): Define.
8909         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8910         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8911         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8912         "shrqby_<mode>"): New insn-and-split patterns.
8913         * config/spu/spu.c (expand_builtin_args): Determine and return
8914         number of operands using spu_builtin_description data.
8915         (spu_expand_builtin_1): Use it.
8916
8917 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
8918
8919         PR target/38056
8920         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8921         TARGET_CONST_GP.
8922
8923 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8924
8925         PR target/39149
8926         * config/i386/i386.c (override_options): Correct warning
8927         messages for -malign-loops, -malign-jumps and -malign-functions.
8928
8929 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8930
8931         PR target/39152
8932         * config/i386/i386.md: Restrict the new peephole2 to move
8933         between the general purpose registers.
8934
8935 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8936
8937         PR target/39162
8938         * config/i386/i386.c (type_natural_mode): Add a new argument.
8939         Return the original mode and warn ABI change if vector size is 32byte.
8940         (function_arg_advance): Updated.
8941         (function_arg): Likewise.
8942         (ix86_function_value): Likewise.
8943         (ix86_return_in_memory): Likewise.
8944         (ix86_sol10_return_in_memory): Likewise.
8945         (ix86_gimplify_va_arg): Likewise.
8946         (function_arg_32): Don't warn ABX ABI change here.
8947         (function_arg_64): Likewise.
8948
8949 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8950
8951         * loop-iv.c (implies_p): In the final case, test that operands 0
8952         of the two comparisons match.
8953
8954         * config/bfin/bfin.c (find_prev_insn_start): New function.
8955         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8956         (find_next_insn_start): Move.
8957
8958 2009-02-13  Richard Guenther  <rguenther@suse.de>
8959
8960         * configure.ac: Enable LFS.
8961         * configure: Re-generate.
8962         * config.in: Likewise.
8963
8964 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
8965
8966         PR c/35444
8967         * c-parser.c (c_parser_parms_list_declarator): Discard pending
8968         sizes on syntax error after some arguments have been parsed.
8969
8970 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8971
8972         * doc/invoke.texi (-fira): Remove.
8973
8974 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8975
8976         * caller-save.c: Replace regclass.c with reginfo.c in comments.
8977         * recog.c: Likewise.
8978         * rtl.h: Likewise.
8979
8980 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
8981
8982         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8983         (umul_ppmm): Likewise.
8984         (count_leading_zeros): Likewise.
8985         (count_trailing_zeros): Likewise.
8986         (UMUL_TIME): Likewise.
8987
8988 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8989
8990         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8991         soft-fp/t-softfp to tmake_file.
8992
8993         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
8994         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8995         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8996         IA64_BUILTIN_INFQ]: New.
8997         (ia64_init_builtins): Initialize __builtin_infq,
8998         __builtin_fabsq and __builtin_copysignq if not HPUX.
8999         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9000         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9001
9002         * config/ia64/lib1funcs.asm (__divtf3): Define only if
9003         SHARED is defined.
9004         (__fixtfti): Likewise.
9005         (__fixunstfti): Likewise.
9006         (__floattitf): Likewise.
9007
9008         * config/ia64/libgcc-glibc.ver: New.
9009         * config/ia64/t-fprules-softfp: Likewise.
9010         * config/ia64/sfp-machine.h: Likewise.
9011
9012         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9013         (LIBGCC2_TF_CEXT): Likewise.
9014         (TF_SIZE): Likewise.
9015         (TARGET_INIT_LIBFUNCS): Likewise.
9016
9017         * config/ia64/t-glibc (SHLINB_MAPFILES):
9018         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
9019
9020 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9021
9022         * config/i386/i386.c (construct_container): Rewrite processing
9023         BLKmode with X86_64_SSE_CLASS.
9024
9025 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
9026
9027         PR target/39152
9028         * config/i386/i386.md: Replace simplify_replace_rtx with
9029         replace_rtx in the new peephole2.
9030
9031 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9032
9033         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9034         loop unrolling do not happen at -O2.
9035
9036 2009-02-12  Michael Matz  <matz@suse.de>
9037
9038         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9039
9040 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9041
9042         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9043         for -g3.
9044
9045 2009-02-12  Ben Elliston  <bje@au.ibm.com>
9046
9047         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9048         patterns when updating the back chain.  Missed in the 2009-02-10
9049         change.
9050
9051 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
9052
9053         * doc/extend.texi (Decimal Floating Types): Update identifier of
9054         draft TR and list of missing support.
9055
9056 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
9057
9058         PR middle-end/39154
9059         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9060         bit to variable length decl's flags, add it also to its
9061         pointer replacement variable.
9062
9063 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
9064             Jakub Jelinek  <jakub@redhat.com>
9065
9066         PR target/39118
9067         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9068         (memory_blockage): New expander.
9069         (*memory_blockage): New insn pattern.
9070         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9071         instead of general blockage at the end of function prologue when
9072         frame pointer is used to access red zone area.  Do not emit blockage
9073         when profiling, it is emitted in generic code.
9074         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9075         function epilogue when frame pointer is used to access red zone area.
9076
9077 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
9078
9079         PR target/38824
9080         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
9081         by arithmetic with memory operands.
9082         * config/i386/predicates.md (commutative_operator): New.
9083
9084 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
9085
9086         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
9087         bulleted lists.
9088
9089 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
9090
9091         * alias.h (record_alias_subset): Declare.
9092         * alias.c (record_alias_subset): Make global.
9093
9094 2009-02-10  Nick Clifton  <nickc@redhat.com>
9095
9096         * tree-parloops.c: Change license to GPLv3.
9097         * ipa-struct-reorg.c: Change license to GPLv3.
9098         * ipa-struct-reorg.h: Change license to GPLv3.
9099
9100 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
9101
9102         PR c/39084
9103         * c-decl.c (start_struct): Return NULL on error.
9104
9105 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
9106
9107         PR middle-end/39124
9108         * cfgloopmanip.c (remove_path): Call remove_bbs after
9109         cancel_loop_tree, not before it.
9110
9111         PR target/39139
9112         * function.h (struct function): Add has_local_explicit_reg_vars bit.
9113         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
9114         VAR_DECLs were seen.
9115         * tree-ssa-live.c (remove_unused_locals): Recompute
9116         cfun->has_local_explicit_reg_vars.
9117         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
9118         copies or clearings if cfun->has_local_explicit_reg_vars.
9119
9120 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
9121
9122         PR target/39118
9123         * config/i386/i386.c (expand_prologue): Emit blockage at the end
9124         of function prologue when frame pointer is used to access
9125         red zone area.
9126
9127 2009-02-10  Richard Guenther  <rguenther@suse.de>
9128
9129         PR middle-end/39127
9130         * gimplify.c (gimple_regimplify_operands): Always look if
9131         we need to create a temporary.
9132
9133 2009-02-10  Richard Guenther  <rguenther@suse.de>
9134
9135         PR tree-optimization/39132
9136         * tree-loop-distribution.c (todo): New global var.
9137         (generate_memset_zero): Trigger TODO_rebuild_alias.
9138         (tree_loop_distribution): Return todo.
9139
9140 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
9141
9142         PR target/39119
9143         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
9144         (x86_64_reg_class_name): Removed.
9145         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
9146         first one isn't X86_64_SSE_CLASS or any other ones aren't
9147         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
9148         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
9149         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
9150         and 3 X86_64_SSEUP_CLASS.
9151         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
9152         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
9153
9154 2009-02-10  Ben Elliston  <bje@au.ibm.com>
9155
9156         * config/rs6000/rs6000.md (allocate_stack): Always use an update
9157         form instruction to update the stack back chain word, even if the
9158         user has disabled the generation of update instructions.
9159         (movdi_<mode>_update_stack): New.
9160         (movsi_update_stack): Likewise.
9161         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
9162         always use an update form instruction to update the stack back
9163         chain word.
9164
9165 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
9166
9167         PR middle-end/38953
9168         * graphite.c (if_region_set_false_region): After moving a region in
9169         the false branch of a condition, remove the empty dummy basic block.
9170         (gloog): Remove wrong fix for PR38953.
9171
9172 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9173
9174         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
9175         generation due to implicit sign extension.
9176
9177 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
9178
9179         PR middle-end/38981
9180         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
9181         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
9182
9183 2009-02-09  Richard Guenther  <rguenther@suse.de>
9184
9185         PR middle-end/35202
9186         * convert.c (convert_to_real): Disable (float)fn((double)x)
9187         to fnf(x) conversion if errno differences may occur and
9188         -fmath-errno is set.
9189
9190 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
9191
9192         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9193         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9194         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9195
9196 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
9197
9198         PR c/35434
9199         * c-common.c (handle_alias_attribute): Disallow attribute for
9200         anything not a FUNCTION_DECL or VAR_DECL.
9201
9202 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
9203
9204         PR c/39035
9205         * real.c (do_compare): Special-case compare of zero against
9206         decimal float value.
9207
9208 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
9209
9210         PR c/36432
9211         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9212         as indicating flexible array members unless the field itself is
9213         being declarared as the incomplete array.
9214
9215 2009-02-06  Jan Hubicka  <jh@suse.cz>
9216
9217         PR tree-optimization/38844
9218         * ipa-inline.c (try_inline): Stop inlining recursion when edge
9219         is already inlined.
9220
9221 2009-02-06  Richard Guenther  <rguenther@suse.de>
9222
9223         PR middle-end/38977
9224         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9225         fork because we may expand it as __gcov_fork.
9226
9227 2009-02-06  Nick Clifton  <nickc@redhat.com>
9228
9229         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
9230
9231 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
9232
9233         PR tree-optimization/35659
9234         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9235         vn_phi_eq): Shortcut if hashcode does not match.
9236         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9237         NULL operands.
9238         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9239         and avoid iterative_hash_expr.
9240         (FOR_EACH_VALUE_ID_IN_SET): New.
9241         (value_id_compare): Remove.
9242         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9243         sort expressions by value id.
9244
9245 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9246
9247         PR target/38991
9248         * config/sh/predicates.md (general_movsrc_operand): Don't check
9249         the subreg of system registers here.
9250
9251 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
9252
9253         PR c++/39106
9254         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9255         on the copied decl.
9256
9257 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
9258
9259         PR rtl-optimization/39110
9260         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9261         addresses, not aligned ones.
9262
9263 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
9264             Richard Guenther  <rguenther@suse.de>
9265
9266         PR tree-optimization/39100
9267         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9268         comment says and add edges.
9269
9270 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
9271
9272         PR c/35435
9273         * c-common.c (handle_tls_model_attribute): Ignore attribute for
9274         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9275
9276 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
9277
9278         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9279         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9280         register_bb_in_sese, new_sese, free_sese): Moved.
9281         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9282         outermost_loop_in_scop, build_scop_iteration_domain,
9283         expand_scalar_variables_ssa_name, get_vdef_before_scop,
9284         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9285         Use loop_in_sese_p instead of loop_in_scop_p.
9286         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9287         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9288         (scopdet_basic_block_info): Fix bug in scop detection.
9289         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9290         eq_loop_to_cloog_loop): Remove.
9291         (nb_loops_around_loop_in_scop, nb_loop
9292         ref_nb_loops): Moved here...
9293         * graphite.h (ref_nb_loops): ... from here.
9294         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9295         (loop_domain_dim, loop_iteration_vector_dim): Remove.
9296         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9297         * testsuite/gcc.dg/graphite/scop-19.c: New
9298
9299 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
9300             Hans-Peter Nilsson  <hp@axis.com>
9301
9302         PR rtl-optimization/37889
9303         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9304         Move offset handling from PLUS to before the switch.  Use new
9305         arguments when considering SYMBOL_REFs too.
9306         (rtx_addr_can_trap_p): Pass dummy offset and size.
9307         (enum may_trap_p_flags): Remove.
9308         (may_trap_p_1): Pass size from MEM_SIZE.
9309
9310         PR rtl-optimization/38921
9311         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9312         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9313         * rtlanal.c (may_trap_after_code_motion_p): Delete.
9314         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9315
9316 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
9317
9318         AVX Programming Reference (January, 2009)
9319         * config/i386/sse.md (*vpclmulqdq): New.
9320
9321 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
9322
9323         PR tree-optimization/38977
9324         PR gcov-profile/38292
9325         * calls.c (special_function_p): Disregard __builtin_ prefix.
9326
9327 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
9328
9329         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9330         non-indexable addresses even before reload.
9331
9332 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9333
9334         PR c/29129
9335         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9336         as having variable size.  Do not give an error for unnamed
9337         parameters with [*] declarators.  Give a warning for type names
9338         with [*] declarators and mark them as variable size.
9339         * c-parser.c (c_parser_sizeof_expression): Do not give an error
9340         for sizeof applied to [*] type names.
9341
9342 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9343
9344         PR C++/36607
9345         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9346
9347 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9348
9349         * gcc.c (process_command): Update copyright notice dates.
9350         * gcov.c (print_version): Likewise.
9351         * gcov-dump.c (print_version): Likewise.
9352         * mips-tfile.c (main): Likewise.
9353         * mips-tdump.c (main): Likewise.
9354
9355 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
9356
9357         PR c/35433
9358         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
9359         for composite type involving a zero-length array type.
9360
9361 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
9362
9363         PR target/35318
9364         * function.c (match_asm_constraints_1): Skip over
9365         initial optional % in the constraint.
9366
9367         PR inline-asm/39059
9368         * c-parser.c (c_parser_postfix_expression): If fixed point is not
9369         supported, don't accept FIXED_CSTs.
9370         * c-decl.c (finish_declspecs): Error if fixed point is not supported
9371         and _Sat is used without _Fract/_Accum.  Set specs->type to
9372         integer_type_node for cts_fract/cts_accum if fixed point is not
9373         supported.
9374
9375 2009-02-02  Catherine Moore  <clm@codesourcery.com>
9376
9377         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
9378
9379 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
9380
9381         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
9382         (ABI_HAS_64BIT_SYMBOLS): Use it.
9383         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
9384
9385 2009-02-02  Paul Brook  <paul@codesourcery.com>
9386
9387         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
9388
9389 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
9390
9391         PR inline-asm/39058
9392         * recog.h (asm_operand_ok): Add constraints argument.
9393         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
9394         recurse on matching constraint.
9395         (check_asm_operands): Pass constraints as 3rd argument to
9396         asm_operand_ok.  Don't look up matching constraint here.
9397         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
9398         to asm_operand_ok.
9399
9400 2009-02-02  Ben Elliston  <bje@au.ibm.com>
9401
9402         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
9403         TARGET_NARROW_VOLATILE_BITFIELD macro names.
9404
9405 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9406
9407         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
9408         information.  Remove some obsolete information.  Reorganize.
9409
9410         * config/pa/fptr.c: Revert license to GPL 2.
9411         * config/pa/milli64.S: Likewise.
9412
9413 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9414
9415         PR target/38904
9416         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
9417         LIBRARY name in, instead of hard-coding it.
9418         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
9419         extra target make frag to tmake_files according to EH model.
9420         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
9421         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
9422         frags that define makefile variable EH_MODEL appropriately.
9423         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
9424         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
9425         to "-sjlj" according to type of EH configured.
9426         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9427         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
9428         to "_sjlj" according to type of EH configured.
9429         (LIBGCC_SONAME):  Concatenate it to shared library base name.
9430         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
9431         (SHLIB_LINK):  Add missing semicolon to if-else construct.
9432         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9433         string value of "pe_dll" command-line option.
9434         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
9435         (SHLIB_SONAME):  Use it when overriding t-cygming default.
9436         (SHLIB_IMPLIB):  Override t-cygming default.
9437         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
9438         string value of "pe_dll" command-line option.
9439
9440 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
9441
9442         PR target/38952
9443         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
9444         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
9445
9446 2009-01-31  Richard Guenther  <rguenther@suse.de>
9447
9448         PR tree-optimization/38937
9449         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
9450         computing the transitive closure.
9451
9452 2009-01-30  Richard Guenther  <rguenther@suse.de>
9453
9454         PR tree-optimization/39041
9455         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9456         Propagate variable indices only if the types match for this stmt.
9457
9458 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
9459
9460         PR target/39013
9461         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
9462         inline but never defined.
9463
9464 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
9465
9466         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
9467         (*insv_h_di_reg_extimm): New insn.
9468         (*insv_l<mode>_reg_extimm): New insn.
9469
9470 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9471
9472         * config/picochip/picochip.c (flag_conserve_stack): set
9473         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
9474         fconserve-stack. Reduce call-overhead used by inliner.
9475
9476 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
9477
9478         PR/38157
9479         * common.opt (flag_conserve_stack): Initialised to zero.
9480
9481 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
9482
9483         PR/39002
9484         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
9485         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
9486         method.
9487
9488 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9489
9490         * ira-color.c (allocno_reload_assign): Update comments.
9491         * regmove.c (regmove_optimize): Likewise.
9492
9493         * ra.h: Removed.
9494
9495 2009-01-29  Robert Millan  <rmh@aybabtu.com>
9496
9497         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
9498         * config/i386/kopensolaris-gnu.h: New file.  Undefine
9499         `MD_UNWIND_SUPPORT'.
9500         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
9501
9502 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
9503
9504         PR tree-optimization/39007
9505         * tree-loop-distribution.c (generate_builtin): Use
9506         recompute_dominator to compute the immediate dominator of the
9507         basic block just after the loop.
9508
9509 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9510
9511         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
9512         (ASM_OUTPUT_DWARF_PCREL): Define.
9513
9514 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9515
9516         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
9517         * doc/passes.texi: Remove entries about regclass, local-alloc, and
9518         global.  Modify entries about regmove and IRA.
9519
9520         * ra-conflict.c: Remove the file.
9521
9522         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
9523
9524         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
9525         (pass_regclass_init): Rename to pass_reginfo_init.
9526
9527         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
9528
9529         * toplev.h (flag_ira): Remove.
9530
9531         * caller-save.c (setup_save_areas): Remove flag_ira.
9532
9533         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
9534
9535         * global.c: Remove the file.
9536
9537         * opts.c (decode_options): Remove flag_ira.
9538
9539         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
9540
9541         * regmove.c: Modify file description.
9542         (find_use_as_address, try_auto_increment): Define them only if
9543         AUTO_INC_DEC is defined.
9544         (replacement_quality, replace_in_call_usage, fixup_match_1,
9545         stable_and_no_regs_but_for_p): Remove.
9546         (reg_set_in_bb): Make it static.
9547         (regmove_optimize): Remove flag_ira and code which worked for
9548         !flag_ira.
9549
9550         * local-alloc.c: Remove the file.
9551
9552         * common.opt (fira): Remove.
9553
9554         * ira.c: Include except.h.
9555         (eliminable_regset): Move from global.c.
9556         (mark_elimination): Ditto.  Remove flag_ira.
9557         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9558         equiv_mem_modified, validate_equiv_mem_from_store,
9559         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9560         contains_replace_regs, memref_referenced_p, memref_used_between_p,
9561         no_equiv, recorded_label_ref): Move from local-alloc.c.
9562         (update_equiv_regs): Ditto.  Make it static.
9563         (print_insn_chain, print_insn_chains): Move it from global.c.
9564         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
9565         (build_insn_chain): Ditto.  Make it static.
9566         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
9567         Rename to init_live_subregs.
9568         (gate_ira): Remove flag_ira.
9569
9570         * regclass.c: Rename reginfo.c.  Change file description.
9571         (FORBIDDEN_INC_DEC_CLASSES): Remove.
9572         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
9573         (init_reg_sets_1): Remove code for evaluation of
9574         reg_class_superclasses and losing_caller_save_reg_set.
9575         (init_regs): Remove init_reg_autoinc.
9576         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9577         ok_for_base_p_nonstrict): Remove.
9578         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
9579         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
9580         corresponding entries.
9581         (dump_regclass, record_operand_costs, scan_one_insn,
9582         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9583         record_address_regs, auto_inc_dec_reg_p): Remove.
9584         (gt-regclass.h): Rename to gt-reginfo.h.
9585
9586         * rtl.h (dump_global_regs, retry_global_alloc,
9587         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
9588
9589         * Makefile.in (RA_H): Remove.
9590         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9591         Rename regclass.o to reginfo.o.
9592         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
9593         gt-reginfo.h.
9594         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9595         (GTFILES): Rename regclass.c to reginfo.c.
9596
9597         * passes.c (init_optimization_passes): Remove pass_local_alloc and
9598         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
9599
9600         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9601         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9602         Remove flag_ira.
9603         (finish_spills): Ditto.  Remove code for !flag_ira.
9604
9605 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
9606
9607         PR middle-end/35854
9608         * doc/invoke.texi (rtl debug options): Complete rewrite.
9609         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9610         to auto_inc_dec".
9611         * mode-switching.c (pass_mode_switching): Rename pass from
9612         "mode-sw" to "mode_sw".
9613         * except.c (pass_convert_to_eh_ranges): Rename pass from
9614         "eh-ranges" to "eh_ranges".
9615         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9616         to "subreg1".
9617
9618
9619 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
9620             Alexander Monakov  <amonakov@ispras.ru>
9621
9622         PR middle-end/38857
9623         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9624         register.
9625         (move_exprs_to_boundary): Change return type and pass through
9626         should_move from move_op.  Relax assert.  Update usage ...
9627         (schedule_expr_on_boundary): ... here.  Use should_move instead of
9628         cant_move.
9629         (move_op_orig_expr_found): Indicate that insn was disconnected from
9630         stream.
9631         (code_motion_process_successors): Do not call after_merge_succs
9632         callback if original expression was not found when traversing any of
9633         the branches.
9634         (code_motion_path_driver): Change return type.  Update prototype.
9635         (move_op): Update comment.  Add a new parameter (should_move).  Update
9636         prototype.  Set *should_move based on indication provided by
9637         move_op_orig_expr_found.
9638
9639 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9640
9641         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9642         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9643         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9644         * config/rs6000/rs6000.c (rs6000_override_options): Default
9645         avoid-indexed-addresses on for Power6, off for everything else.
9646         (avoiding_indexed_address_p): New function.
9647         (rs6000_legitimize_address): Use it.
9648         (rs6000_legitimate_address): Likewise.
9649         * config/rs6000/rs6000.md (movXX_updateX): Likewise
9650
9651 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
9652
9653         PR tree-optimization/38997
9654         * tree-loop-distribution.c (generate_memset_zero): Use
9655         POINTER_PLUS_EXPR for a pointer addition.
9656
9657 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9658
9659         * config/s390/s390.md (bswap<mode>2): New pattern added.
9660
9661 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9662
9663         * config/s390/s390.md (*tls_load_31): Added type attribute.
9664
9665 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9666
9667         * config/s390/s390.md: Fix a few comments.
9668
9669 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9670
9671         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9672         (*tm<mode>_full): Fixed z10prop attribute.
9673         (*tst<mode>_extimm): Fixed z10prop attribute.
9674         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9675         (*tstqiCCT_cconly): Fixed z10prop attribute.
9676         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9677         (*movsi_larl): Fixed z10prop attribute.
9678         (*movsi_zarch): Fixed z10prop attribute.
9679         (*movsi_eas): Fixed z10prop attribute.
9680         (*movhi): Fixed z10prop attribute.
9681         (*movqi): Fixed z10prop attribute.
9682         (*movstrictqi): Fixed z10prop attribute.
9683         (*mov<mode>): Fixed z10prop attribute.
9684         (*movcc): Fixed z10prop attribute.
9685         (*sethighpartdi_64): Fixed z10prop attribute.
9686         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9687         (*negdi2_sign_cc): Fixed z10prop attribute.
9688         (*negdi2_sign): Fixed z10prop attribute.
9689         (*absdi2_sign_cc): Fixed z10prop attribute.
9690         (*absdi2_sign): Fixed z10prop attribute.
9691         (*negabsdi2_sign_cc): Fixed z10prop attribute.
9692         (*negabsdi2_sign): Fixed z10prop attribute.
9693         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9694         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9695         (doloop_si64): Fixed z10prop attribute.
9696         (doloop_si31): Fixed z10prop attribute.
9697         (doloop_long): Fixed z10prop attribute.
9698         (indirect_jump): Fixed z10prop attribute.
9699         (nop): Fixed z10prop attribute.
9700         (main_base_64): Fixed z10prop attribute.
9701         (reload_base_64): Fixed z10prop attribute.
9702
9703 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9704
9705         PR rtl-optimization/38740
9706         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9707         if !optimize.
9708         * config/mips/mips.c (mips_reorg): Likewise.
9709
9710 2009-01-28  Richard Guenther  <rguenther@suse.de>
9711
9712         PR tree-optimization/38926
9713         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9714         with the correct value id to a value.
9715         (do_regular_insertion): Use the value number of edoubleprime
9716         for the value number of the expr.
9717
9718         Revert
9719         2008-08-21  Richard Guenther  <rguenther@suse.de>
9720
9721         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9722         a PHI ask VN if it is already available.
9723         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9724         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9725
9726 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9727
9728         PR middle-end/38934
9729         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9730         set to varying whenever max has TREE_OVERFLOW set, similarly
9731         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9732
9733 2009-01-28  Richard Guenther  <rguenther@suse.de>
9734
9735         PR middle-end/38908
9736         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9737         uninitialized aggregate uses in call arguments.
9738
9739 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
9740
9741         PR tree-optimization/38984
9742         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9743         the nothing_id variable if -fno-delete-null-pointer-checks.
9744
9745 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
9746
9747         PR target/38988
9748         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9749         (set_got_offset_rex64): Ditto.
9750
9751 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9752
9753         PR target/38941
9754         * doc/extend.texi: Improve local variable with asm reg.
9755
9756 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
9757
9758         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9759         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9760         was not supplied then set warn_packed_bitfield_compat to the
9761         default value of 1.
9762         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9763         against 1.
9764
9765 2009-01-27  Richard Guenther  <rguenther@suse.de>
9766
9767         PR tree-optimization/38503
9768         * cfgexpand.c (expand_gimple_basic_block): Ignore
9769         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9770         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9771         variables that cannot have TBAA applied.
9772         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9773         statements.
9774
9775 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
9776
9777         PR middle-end/38969
9778         * calls.c (initialize_argument_information): Do not wrap complex
9779         arguments in SAVE_EXPR.
9780
9781 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
9782
9783         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
9784         (INSTALL_LIBGCC): Revert typo commit.
9785
9786 2009-01-26  Richard Guenther  <rguenther@suse.de>
9787
9788         PR tree-optimization/38745
9789         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9790         from special handling.
9791
9792 2009-01-26  Richard Guenther  <rguenther@suse.de>
9793
9794         PR tree-optimization/38745
9795         * tree-ssa.c (execute_update_addresses_taken): Do not include
9796         variables that cannot possibly be a register in not_reg_needs.
9797         Do not clear TREE_ADDRESSABLE on vars that may not become
9798         registers.
9799         * tree-ssa.c (update_alias_info_1): Include those in the set
9800         of addressable vars.
9801
9802 2009-01-26  Richard Guenther  <rguenther@suse.de>
9803
9804         PR middle-end/38851
9805         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9806         * tree-ssa-dse.c: Include langhooks.h
9807         (execute_simple_dse): Remove stores with zero size.
9808
9809 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
9810
9811         PR c/38957
9812         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9813         as PLUS_EXPR.
9814
9815 2009-01-24  Julian Brown  <julian@codesourcery.com>
9816
9817         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9818         config/arm/linux-atomic.c.
9819         * config/arm/linux-atomic.c: New.
9820
9821 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9822
9823         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9824         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9825         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9826
9827 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9828
9829         PR c/38938
9830         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
9831         properly.
9832
9833 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
9834
9835         PR tree-optimization/38953
9836         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9837         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9838         (gloog): Split the exit of the scop when the scop exit is a loop exit.
9839         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9840         changed the CFG.
9841
9842 2009-01-24  Paul Brook  <paul@codesourcery.com>
9843
9844         * config/arm/neon.md (neon_type): Move to arm.md.
9845         (neon_mov<VSTRUCT>): Add neon_type attribute.
9846         * config/arm/arm.md (neon_type): Move to here.
9847         (conds): Add "unconditioal" and use as default for NEON insns.
9848
9849 2009-01-24  Ben Elliston  <bje@au.ibm.com>
9850
9851         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9852         void *' warning from -Wc++-compat.
9853         * Makefile.in (dominance.o-warn): Remove.
9854
9855 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
9856
9857         PR tree-optimization/38932
9858         * fold-const.c (fold_unary_ignore_overflow): New.
9859         * tree.h (fold_unary_ignore_overflow): Declare.
9860         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9861         * tree-ssa-sccvn.c (visit_reference_op_load,
9862         simplify_unary_expression): Likewise.
9863
9864 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
9865
9866         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9867         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
9868         regardless of their type.
9869         * c-common.c (handle_packed_attribute): Don't ignore packed on
9870         bitfields.
9871         * c.opt (Wpacked-bitfield-compat): New warning option.
9872         * stor-layout.c (place_field): Warn if offset of a field changed.
9873         * doc/extend.texi (packed): Mention the ABI change.
9874         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9875         (Warning Options): Add it to the list.
9876
9877 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9878
9879         * c-opts.c (c_common_post_options): Fix a typo in comments.
9880
9881 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
9882
9883         PR middle-end/38615
9884         * gimplify.c (gimplify_init_constructor): Fix promotion of const
9885         variables to static.
9886         * doc/invoke.texi (-fmerge-all-constants): Update description.
9887
9888 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
9889
9890         PR target/38931
9891         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9892         (*movdi_1_rex64): Use type "mmx" for alternative 5.
9893
9894 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
9895
9896         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9897         a word boundary.
9898         (LOCAL_ALIGNMENT): Similarly.
9899
9900 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9901             Joseph Myers  <joseph@codesourcery.com>
9902
9903         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9904         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9905         * config/arm/arm-tune.md: Regenerate.
9906         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9907         -march=iwmmxt2.
9908
9909 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9910
9911         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9912         version number to five.
9913
9914 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
9915
9916         PR c++/38930
9917         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
9918         * c-common.c (set_underlying_type): Likewise.
9919         (is_typedef_decl ): Likewise
9920         * tree.h: Likewise
9921         (set_underlying_type): Likewise.
9922         (is_typedef_type): Likewise.
9923
9924 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9925
9926         PR middle-end/38587
9927         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9928         crossing setjmps.
9929
9930 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9931
9932         PR bootstrap/37660
9933         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
9934         (LIBGCC_SPEC):  Don't define.
9935         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
9936
9937 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
9938
9939         PR rtl-optimization/38879
9940         * alias.c (base_alias_check): Unaligned access via AND address can
9941         alias all surrounding object types except those with sizes equal
9942         or wider than the size of unaligned access.
9943
9944 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
9945
9946         PR c++/26693
9947         * c-decl.c (clone_underlying_type): Move this ...
9948         * c-common.c (set_underlying_type): ... here.
9949         Also, make sure the function properly sets TYPE_STUB_DECL() on
9950         the newly created typedef variant type.
9951         (is_typedef_decl ): New entry point.
9952         * tree.h: Added a new member member_types_needing_access_check to
9953         struct tree_decl_non_common.
9954         (set_underlying_type): New entry point.
9955         (is_typedef_type): Likewise.
9956
9957 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
9958
9959         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9960         Check whether two instructions have memory references that
9961         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
9962         are helper functions for traversing.
9963         * alias.h (insn_alias_sets_confilict_p): New prototypes.
9964         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9965         not to draw dependency edge for instructions with non-conflicting
9966         alias sets.
9967
9968 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
9969
9970         PR other/38758
9971         * longlong.h: Update copyright years.  Use soft-fp license notice.
9972         Sync __clz_tab declaration with glibc.
9973
9974 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
9975
9976         PR target/30687
9977         * doc/extend.texi (syscall_linkage): New.
9978         (version_id): Modify.
9979
9980 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9981             Richard Guenther  <rguenther@suse.de>
9982
9983         PR tree-optimization/38747
9984         PR tree-optimization/38748
9985         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9986         conversion if the base address is an indirect reference and the
9987         aliasing sets could cause issues.
9988
9989 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9990
9991         * common.opt (fgraphite, fgraphite-identity): Add comment for
9992         explaining why these options are not documented.
9993
9994 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9995
9996         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9997         gimple_call_lhs is NULL.
9998
9999 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
10000
10001         PR target/38868
10002         * emit-rtl.c (adjust_address_1): Make sure memref is never
10003         overwritten.
10004
10005 2009-01-20  Ben Elliston  <bje@au.ibm.com>
10006
10007         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10008         const qualifier from arg parameter. Remove unnecessary cast to char *.
10009         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10010         const qualifier from arg 2.
10011
10012 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
10013
10014         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
10015
10016 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
10017
10018         PR c/38869
10019         * rtl.h (reinit_regs): New prototype.
10020         * regclass.c: Include ira.h.
10021         (reinit_regs): New.
10022         * Makefile.in (regclass.o): Add ira.h.
10023         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10024
10025 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
10026
10027         PR target/38736
10028         * c-common.c (handle_aligned_attribute): Use
10029         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10030         default alignment value.
10031
10032         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10033
10034         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10035         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10036
10037         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
10038         __BIGGEST_ALIGNMENT__.
10039
10040         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10041
10042 2009-01-18  Richard Guenther  <rguenther@suse.de>
10043
10044         PR tree-optimization/38819
10045         * tree-flow.h (operation_could_trap_helper_p): Declare.
10046         * tree-eh.c (operation_could_trap_helper_p): Export.
10047         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10048         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10049         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10050         are about to insert a possibly trapping instruction and fail
10051         in this case.
10052
10053 2009-01-18  Andreas Schwab  <schwab@suse.de>
10054
10055         * doc/install.texi (Configuration): Remove obsolete paragraph
10056         about use of --with-gnu-ld with --with-gnu-as.
10057
10058 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
10059
10060         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10061         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10062         Follow spelling conventions.
10063
10064 2009-01-18  Ben Elliston  <bje@au.ibm.com>
10065
10066         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10067         C++ warning about implicit conversion from void * to struct
10068         bitmap_head_def *.
10069         (bitmap_obstack_free): Likewise for bitmap_element *.
10070         * Makefile.in (bitmap.o-warn): Remove.
10071
10072 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
10073
10074         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
10075
10076 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
10077             Tobias Grosser  <tobi.grosser@amd.com>
10078
10079         * graphite.c (graphite_trans_scop_block): Do not block single
10080         nested loops.
10081
10082 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
10083
10084         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
10085         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
10086         test with assertion.
10087
10088 2009-01-16  Richard Guenther  <rguenther@suse.de>
10089
10090         PR tree-optimization/38835
10091         PR middle-end/36227
10092         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
10093         and INT + PTR -> (INT)(PTR p+ INT) folding.
10094         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
10095
10096 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
10097
10098         PR target/38554
10099         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
10100         the subreg from a lowpart subreg if it is also casting the value.
10101
10102 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10103             Tobias Grosser  <tobi.grosser@amd.com>
10104
10105         * graphite.c (compare_prefix_loops): New.
10106         (build_scop_canonical_schedules): Rewritten.
10107         (graphite_transform_loops): Move build_scop_canonical_schedules
10108         after build_scop_iteration_domain.
10109
10110 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10111             Tobias Grosser  <tobi.grosser@amd.com>
10112
10113         * graphite.c (add_conditions_to_domain): Add the loops to
10114         the dimension of the iteration domain.  Do copy the domain
10115         only when it exists.
10116         (build_scop_conditions_1): Do not call add_conditions_to_domain.
10117         (add_conditions_to_constraints): New.
10118         (can_generate_code_stmt, can_generate_code): Removed.
10119         (gloog): Do not call can_generate_code.
10120         (graphite_transform_loops): Call add_conditions_to_constraints
10121         after building the iteration domain.
10122
10123 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
10124
10125         PR tree-optimization/38789
10126         * tree-ssa-threadedge.c
10127         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10128         __builtin_constant_p.
10129
10130 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
10131
10132         * dce.c (delete_unmarked_insns): Reversed the order that insns are
10133         examined before deleting them.
10134
10135 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
10136
10137         * function.c (aggregate_value_p): Correctly extract the function
10138         type from CALL_EXPR_FN lookup.
10139
10140 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
10141
10142         * config/picochip/picochip.c (picochip_override_options): Revert
10143         CFI asm flag disable commited previously.
10144
10145 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10146             Tobias Grosser  <tobi.grosser@amd.com>
10147             Jan Sjodin  <jan.sjodin@amd.com>
10148
10149         * graphite.c (scan_tree_for_params): On substractions negate
10150         all the coefficients of the term.
10151         (clast_to_gcc_expression_red): New.  Handle reduction expressions
10152         of more than two operands.
10153         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
10154         (get_vdef_before_scop): Handle also the case of default definitions.
10155
10156 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
10157
10158         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
10159         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
10160         Also use them when walking CALL_INSN_FUNCTION_USAGE.
10161
10162 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
10163             Joey Ye  <joey.ye@intel.com>
10164
10165         PR middle-end/37843
10166         * cfgexpand.c (expand_stack_alignment): Don't update stack
10167         boundary nor check incoming stack boundary here.
10168         (gimple_expand_cfg): Update stack boundary and check incoming
10169         stack boundary here.
10170
10171 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
10172
10173         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
10174
10175 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
10176
10177         PR rtl-optimization/38245
10178         * calls.c (expand_call): Add stack arguments to
10179         CALL_INSN_FUNCTION_USAGE even for pure calls (when
10180         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
10181         in regs and partially in memory or BLKmode arguments.
10182         (emit_library_call_value_1): Add stack arguments to
10183         CALL_INSN_FUNCTION_USAGE even for pure calls (when
10184         ACCUMULATE_OUTGOING_ARGS).
10185         * dce.c: Include tm_p.h.
10186         (find_call_stack_args): New function.
10187         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
10188         argument.
10189         (mark_insn): Call find_call_stack_args for CALL_Ps.
10190         (prescan_insns_for_dce): Walk insns backwards in bb rather than
10191         forwards.  Allocate and free arg_stores bitmap if needed, pass it
10192         down to deletable_insn_p, don't mark stores set in arg_stores
10193         bitmap, clear the bitmap at the beginning of each bb.
10194         * Makefile.in (dce.o): Depend on $(TM_P_H).
10195
10196 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
10197
10198         PR target/22599
10199         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10200         to make sure the insn is a conditional test (bug 22599).  Reformat a
10201         few long lines.
10202
10203 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
10204
10205         PR middle-end/38431
10206         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10207         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10208         (gloog): Do not call cleanup_tree_cfg.
10209         (graphite_transform_loops): Call cleanup_tree_cfg after all
10210         scops have been code generated.
10211
10212 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
10213         * doc/gty.texi (Invoking the garbage collector): Added new node
10214         and section documenting ggc_collect.
10215
10216 2009-01-14  Richard Guenther  <rguenther@suse.de>
10217
10218         PR tree-optimization/38826
10219         PR middle-end/38477
10220         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10221         initialization notes only if we actually emitted a warning.
10222         (intra_create_variable_infos): Add constraints for a result decl
10223         that is passed by hidden reference.
10224         (build_pred_graph): Mark all related variables non-direct on
10225         address-taking.
10226
10227 2009-01-14  Nick Clifton  <nickc@redhat.com>
10228
10229         * ira-conflicts.c: Include addresses.h for the definition of
10230         base_reg_class.
10231         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10232         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
10233
10234 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
10235
10236         PR target/38811
10237         * Makefile.in (ira-lives.o): Add except.h.
10238
10239         * ira-lives.c: Include except.h.
10240         (process_bb_node_lives): Process can_throw_internal.
10241
10242 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
10243
10244         PR rtl-optimization/38774
10245         * combine.c (simplify_set): When undoing cc_use change, don't do
10246         PUT_CODE on the newly created comparison, but instead put back the
10247         old comparison.
10248
10249 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
10250
10251         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10252         values.  Remove duplicate arm8 entry.
10253
10254 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
10255
10256         PR tree-optimization/38786
10257         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10258         the SSA_NAME case of expand_scalar_variables_expr.
10259         Set the type of an expression to the type of its assign statement.
10260         (expand_scalar_variables_expr): Also gather the scalar computation
10261         used to index the memory access.  Do not pass loop_p.
10262         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
10263         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
10264         the gimple_stmt_iterator where it inserts new code.
10265         Do not pass loop_p.
10266         (copy_bb_and_scalar_dependences): Do not pass loop_p.
10267         (translate_clast): Update call to copy_bb_and_scalar_dependences.
10268
10269 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
10270
10271         * graphite.h (debug_value): Removed.
10272         * graphite.c (debug_value): Removed.
10273
10274 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
10275
10276         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10277         ldrd/strd with two 32-bit instructions.
10278
10279 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
10280
10281         * config/arm/arm.c (struct processors): Pass for speed down into
10282         cost helper functions.
10283         (const_ok_for_op): Handle COMPARE and inequality nodes.
10284         (arm_rtx_costs_1): Rewrite.
10285         (arm_size_rtx_costs): Update prototype.
10286         (arm_rtx_costs): Pass speed down to helper functions.
10287         (arm_slowmul_rtx_costs): Rework cost calculations.
10288         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10289         (arm_9e_rtx_costs): Likewise.
10290
10291 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
10292
10293         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
10294         relocations of local symbols wider than UNITS_PER_WORD are not valid.
10295         (alpha_legitimize_address): Do not split local symbols wider than
10296         UNITS_PER_WORD into HIGH/LO_SUM parts.
10297
10298 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
10299
10300         PR bootstrap/38580
10301         * gcc.c (process_command): Replace call to execvp with calls
10302         to pex_one and exit.
10303
10304 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
10305
10306         PR target/29141
10307         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10308         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10309         variant for devices with 3-byte PC.
10310         (__tablejump_elpm__): New.
10311
10312 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10313
10314         PR c/32041
10315         * c-parser.c (c_parser_postfix_expression): Allow `->' in
10316         offsetof member-designator, handle it as `[0].'.
10317
10318 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10319
10320         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10321         function when not using named sections on targets with named sections
10322         if branch distance is less than 262132.
10323
10324 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
10325
10326         * combine.c (combine_instructions):  Recompute
10327         optimize_this_for_speed_p  for each BB in the main combine loop.
10328
10329 2009-01-12  Tomas Bily  <tbily@suse.cz>
10330
10331         PR middlend/38385
10332         * tree-loop-distribution.c (prop_phis): New function.
10333         (generate_builtin): Call prop_phis.
10334         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
10335
10336 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
10337
10338         PR tree-optimization/38807
10339         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10340         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10341
10342 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
10343
10344         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10345         subreg of op0 to the original op0.
10346
10347 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
10348
10349         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
10350
10351 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
10352
10353         PR debug/7055
10354         * mips-tfile.c (parse_def): Fix parsing of def strings
10355         starting with digits.
10356
10357 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
10358
10359         PR target/38695
10360         * config/arm/arm.c (arm_is_long_call_p): Don't call
10361         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
10362
10363 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
10364
10365         * regrename.c (regrename_optimize): Fix dumping.
10366         (find_oldest_value_reg): Preserve REG_POINTER.
10367         (copy_hardreg_forward_1): Likewise.
10368
10369 2009-01-09  Diego Novillo  <dnovillo@google.com>
10370
10371         * gimple.h (struct gimple_statement_base) <uid>: Document
10372         the restrictions on its use.
10373         (gimple_uid): Tidy.
10374         (gimple_set_uid): Tidy.
10375
10376 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10377
10378         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
10379         zero guard even if align_bytes != 0 and count is smaller than
10380         size_needed.
10381
10382 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
10383
10384         PR rtl-optimization/38495
10385         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
10386         (add_range_and_copies_from_move_list): Print all added ranges.
10387         Add ranges to memory optimized destination.
10388
10389 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10390
10391         PR target/38686
10392         PR target/38708
10393         * config/i386/i386.c (override_options): Reject
10394         -mstringop-strategy=rep_8byte with -m32.
10395         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
10396         to 1.  Do count comparison against epilogue_size_needed at compile
10397         time even when count_exp was constant forced into register.  For
10398         size_needed don't jump to epilogue, instead just avoid aligning
10399         and invoke the body algorithm.  If need_zero_guard, add zero guard
10400         even if count is non-zero, but smaller than size_needed + number of
10401         bytes that could be stored for alignment.
10402         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
10403         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
10404         but smaller than size_needed + number of bytes that could be stored
10405         for alignment.  Compare size_needed with epilogue_size_needed instead
10406         of desired_align - align, don't adjust size_needed, pass
10407         epilogue_size_needed to the epilogue expanders.
10408
10409         PR c/35742
10410         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
10411
10412 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10413
10414         * pa.c (last_address): Change to unsigned.
10415         (update_total_code_bytes): Change argument to unsigned.  Don't
10416         check if insn addresses are set.
10417         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
10418         addresses are not set.
10419         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
10420
10421 2009-01-09  Nick Clifton  <nickc@redhat.com>
10422
10423         * config/sh/symbian.c: Replace uses of DECL_INLINE with
10424         DECL_DECLARED_INLINE_P.
10425
10426 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
10427
10428         PR middle-end/38347
10429         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
10430         GET_MODE (op0) in operand_subword_force calls.
10431
10432         PR middle-end/38771
10433         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
10434         fold_convert arg0 operands to TREE_TYPE (op0) first.
10435
10436 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
10437
10438         * params.def (ira-max-conflict-table-size): Decrease default value
10439         to 1000.
10440
10441 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
10442
10443         PR tree-optimization/37031
10444         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
10445         on parameter_set.
10446         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
10447         allocate it using gc instead of heap, use VEC_quick_push instead of
10448         VEC_safe_push.
10449         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
10450         instead of heap, use VEC_quick_push instead of VEC_safe_push.
10451         * tree-data-ref.h (struct access_matrix): Change matrix to gc
10452         allocated vector from heap allocated.
10453         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
10454         * tree-loop-linear.c (linear_transform_loops): Allocate nest
10455         vector only after perfect_loop_nest_depth call.
10456
10457 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
10458             Jan Sjodin  <jan.sjodin@amd.com>
10459
10460         PR tree-optimization/38559
10461         * graphite.c (debug_value, copy_constraint,
10462         swap_constraint_variables, scale_constraint_variable, ): New.
10463         (get_lower_bound, get_upper_bound): Removed.
10464         (graphite_trans_bb_strip_mine): Clean up this code that works
10465         only for constant number of iterations.  Fully copy upper and
10466         lower bound constraints, not only the constant part of them.
10467         * graphite.h (debug_value): Declared.
10468
10469 2009-01-08  Ira Rosen  <irar@il.ibm.com>
10470
10471         PR tree-optimization/37194
10472         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
10473         Don't add the cost of cost model guard in prologue to scalar
10474         outside cost in case of known number of iterations.
10475
10476 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10477             Alan Modra  <amodra@bigpond.net.au>
10478
10479         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
10480         non-word-aligned REG+CONST addressing.
10481
10482 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10483
10484         PR target/38706
10485         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
10486         free_after_compilation when outputting a thunk.
10487         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
10488         Do not call free_after_compilation here.
10489
10490 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
10491
10492         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
10493         (ix86_valid_target_attribute_inner_p): Ditto.
10494
10495 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
10496
10497         PR tree-optimization/38492
10498         PR tree-optimization/38498
10499         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
10500         * tree-chrec.h (scev_is_linear_expression): Declared.
10501         * graphite.c (graphite_cannot_represent_loop_niter): New.
10502         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
10503         (graphite_loop_normal_form): Use gcc_assert.
10504         (scan_tree_for_params): Use CASE_CONVERT.
10505         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
10506         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
10507         Use gcc_assert.  Discard scops that contain unhandled cases.
10508         (build_scop_conditions): Return a boolean status for unhandled cases.
10509         (strip_mine_profitable_p): Print the loop number, not its depth.
10510         (is_interchange_valid): Pass the depth of the loop nest, don't
10511         recompute it wrongly.
10512         (graphite_trans_bb_block): Same.
10513         (graphite_trans_bb_block): Print tentative of loop blocking.
10514         (graphite_trans_scop_block): Do not print that the loop has been
10515         blocked.
10516         (graphite_transform_loops): Do not handle scops that contain condition
10517         scalar phi nodes.
10518
10519 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10520
10521         AVX Programming Reference (December, 2008)
10522         * config/i386/avxintrin.h (_mm256_stream_si256): New.
10523         (_mm256_stream_pd): Likewise.
10524         (_mm256_stream_ps): Likewise.
10525
10526         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
10527         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
10528         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
10529         (bdesc_special_args): Add __builtin_ia32_movntdq256,
10530         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
10531         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
10532         (ix86_expand_special_args_builtin): Likewise.
10533
10534         * config/i386/sse.md (AVXMODEDI): New.
10535         (avx_movnt<mode>): Likewise.
10536         (avx_movnt<mode>): Likewise.
10537         (<sse>_movnt<mode>): Remove AVX support.
10538         (sse2_movntv2di): Likewise.
10539
10540 2009-01-07  Richard Guenther  <rguenther@suse.de>
10541
10542         PR middle-end/38751
10543         * fold-const.c (extract_muldiv): Remove obsolete comment.
10544         (fold_plusminus_mult_expr): Undo MINUS_EXPR
10545         to PLUS_EXPR canonicalization for the canonicalization.
10546
10547 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
10548
10549         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
10550         hosted cross-compilers generating less efficient code.
10551
10552 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10553
10554         * function.h (rtl_data): Add a dbr_scheduled_p field.
10555         * reorg.c (dbr_schedule): Set it.
10556         (gate_handle_delay_slots): Check it.
10557         * config/mips/mips.c (mips_base_delayed_branch): Delete.
10558         (mips_reorg): Check flag_delayed_branch instead of
10559         mips_base_delayed_branch.
10560         (mips_override_options): Don't set mips_base_delayed_branch
10561         or flag_delayed_branch.
10562
10563 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10564
10565         PR rtl-optimization/38426.
10566         * ira.c (ira): Set current_function_is_leaf earlier.
10567
10568 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
10569
10570         PR rtl-optimization/38722
10571         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10572         too early, only set a flag and modify after last possible
10573         undo_all point.
10574
10575 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
10576
10577         PR c/34252
10578         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10579         * real.c (decimal_single_format): Correct values of emin and emax.
10580         (decimal_double_format): Ditto.
10581         (decimal_quad_format): Ditto.
10582         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10583         computation of DECnn_MIN and DECnn_MAX for corrected values of
10584         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
10585         __DECnn_MIN__, and adjust its computation for the corrected value
10586         of emin.
10587
10588 2009-01-06  Jan Hubicka  <jh@suse.cz>
10589
10590         PR target/38744
10591         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
10592
10593 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10594
10595         * doc/contrib.texi (Contributors): Slightly adjust the end note.
10596         Add Robert Clark to the list of testers.
10597
10598 2009-01-06  Jan Hubicka  <jh@suse.cz>
10599             Kai Tietz  <kai.tietz@onevision.com>
10600
10601         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10602         * config/i386/i386.c (ix86_expand_call): Add clobbers.
10603
10604 2009-01-06  Jan Hubicka  <jh@suse.cz>
10605             Kai Tietz  <kai.tietz@onevision.com>
10606
10607         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10608         for w64 ABI.
10609         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
10610         (ix86_nsaved_regs): Count only general purpose regs.
10611         (ix86_nsaved_sseregs): New.
10612         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10613         to 16 for w64; compute padding and size of sse reg save area.
10614         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10615         general purpose regs.
10616         (ix86_emit_save_sse_regs_using_mov): New.
10617         (ix86_expand_prologue): Save SSE regs if needed.
10618         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10619         (ix86_emit_restore_sse_regs_using_mov): New.
10620         (ix86_expand_epilogue): Save SSE regs if needed.
10621
10622 2009-01-06  Jan Hubicka  <jh@suse.cz>
10623             Kai Tietz  <kai.tietz@onevision.com>
10624
10625         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10626         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10627         functions when accumulate outgoing args is off.
10628
10629 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10630
10631         PR bootstrap/38742
10632         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10633         before using pseudos_have_intersected_live_ranges_p.
10634
10635         * ira-int.h (ira_assert): Always define.
10636
10637 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10638
10639         AVX Programming Reference (December, 2008)
10640         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10641         (_mm256_permute2_pd): Likewise.
10642         (_mm_permute2_ps): Likewise.
10643         (_mm256_permute2_ps): Likewise.
10644         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10645         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10646
10647         * config/i386/i386.c (ix86_builtins): Remove
10648         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10649         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10650         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10651         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10652         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10653         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10654         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10655         __builtin_ia32_vpermil2ps256.
10656         (ix86_init_mmx_sse_builtins): Updated.
10657         (ix86_expand_args_builtin): Likewise.
10658
10659 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10660
10661         * pa.c (output_call): Relocate non-jump insns in the delay slot of
10662         long absolute calls when generating PA 2.0 code.
10663
10664 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
10665
10666         PR rtl-optimization/38583
10667         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10668
10669         * params.def (ira-max-conflict-table-size): New.
10670
10671         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
10672
10673         * ira.h (ira_conflicts_p): New external definition.
10674
10675         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10676         table.  Report this.  Return result of building.
10677         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
10678         building conflict table.
10679
10680         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
10681         (ira_color): Use ira_conflicts_p.
10682
10683         * global.c: Include ira.h.
10684         (pseudo_for_reload_consideration_p, build_insn_chain): Use
10685         ira_conflicts_p.
10686
10687         * Makefile.in (global.o): Add ira.h.
10688
10689         * ira-build.c (mark_all_loops_for_removal,
10690         propagate_some_info_from_allocno): New.
10691         (remove_unnecessary_allocnos): Call
10692         propagate_some_info_from_allocno.
10693         (remove_low_level_allocnos): New.
10694         (remove_unnecessary_regions): Add parameter.  Call
10695         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
10696         parameter to remove_unnecessary_regions.
10697         (ira_build): Remove all regions but root if the conflict table was
10698         not built.  Update conflict hard regs for allocnos crossing calls.
10699
10700         * ira.c (ira_conflicts_p): New global.
10701         (ira): Define and use ira_conflicts_p.
10702
10703         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10704         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
10705         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
10706
10707 2009-01-06  Ben Elliston  <bje@au.ibm.com>
10708
10709         * gengtype-lex.l (YY_NO_INPUT): Define.
10710
10711 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10712
10713         PR c/34911
10714         * c-common.c (handle_vector_size_attribute): Also reject
10715         BOOLEAN_TYPE types.
10716
10717 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
10718
10719         PR tree-optimization/38492
10720         * graphite.c (rename_map_elt, debug_rename_elt,
10721         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10722         rename_map_elt_info, eq_rename_map_elts,
10723         get_new_name_from_old_name, bb_in_sese_p): Moved around.
10724         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10725         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10726         (sese_build_livein_liveouts): New.
10727         (new_sese, free_sese): New.
10728         (new_scop): Call new_sese.
10729         (free_scop): Call free_sese.
10730         (rename_variables_from_edge, rename_phis_end_scop): Removed.
10731         (register_old_new_names): Renamed register_old_and_new_names.
10732         (register_scop_liveout_renames, add_loop_exit_phis,
10733         insert_loop_close_phis, struct igp,
10734         default_liveout_before_guard, add_guard_exit_phis,
10735         insert_guard_phis, copy_renames): New.
10736         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10737         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10738         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10739         (scop_adjust_phis_for_liveouts): New.
10740         (gloog): Call scop_adjust_phis_for_liveouts.
10741
10742         * graphite.h (struct sese): Documented.  Added fields liveout,
10743         num_ver and livein.
10744         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10745         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10746         (struct scop): Added field liveout_renames.
10747         (SCOP_LIVEOUT_RENAMES): New.
10748
10749 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10750
10751         PR tree-optimization/38510
10752         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10753         (translate_clast): Call recompute_all_dominators before
10754         graphite_verify.
10755         (gloog): Call recompute_all_dominators before graphite_verify.
10756
10757 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10758             Jan Sjodin  <jan.sjodin@amd.com>
10759
10760         PR tree-optimization/38500
10761         * graphite.c (create_sese_edges): Call fix_loop_structure after
10762         splitting blocks.
10763
10764 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10765
10766         * config.gcc: Add m32r*-*-rtems*.
10767         * config/m32r/rtems.h: New file.
10768
10769 2009-01-05  Ben Elliston  <bje@au.ibm.com>
10770
10771         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10772         (.po.pox): Likewise.
10773         (po/gcc.pot): Likewise.
10774
10775 2009-01-04  David S. Miller  <davem@davemloft.net>
10776
10777         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10778         (STARTING_FRAME_OFFSET): Always set to zero.
10779
10780 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10781
10782         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10783         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10784         fixed-point types, and vectors of the same.
10785
10786 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10787
10788         * config/mips/sync.md (*mb_barrier): Rename to...
10789         (*memory_barrier): ...this.
10790
10791 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10792
10793         * doc/extend.texi (Function Attributes): Move @cindex after @item
10794         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
10795         and put in alphabetical order. Fix 'target' name and put in order.
10796         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10797         typos.
10798
10799 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
10800
10801         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10802         (memory_barrier): Expand as unspec instead of unspec_volatile.
10803         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10804         (*memory_barrier): Define as unspec instead of unspec_volatile.
10805         Use (match_dup 0) as input operand.
10806
10807         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10808         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10809         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
10810         scratch register.  Remove operand 1.
10811         (*stbar): Define as unspec instead of unspec_volatile.
10812         Use (match_dup 0) as input operand, remove (const_int 8).
10813         (*membar): Define as unspec instead of unspec_volatile.
10814         Use (match_dup 0) as input operand, remove input operand 2.
10815
10816         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10817         (memory_barrier): Expand as unspec instead of unspec_volatile.
10818         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10819         (*memory_barrier): Define as unspec instead of unspec_volatile.
10820         Use (match_dup 0) as input operand.
10821
10822         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10823         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10824         Set volatile flag on operand 0.
10825         (*memory_barrier): New insn pattern.
10826
10827         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10828         insn operands.
10829         (*memory_barrier): Use (match_dup 0) as input operand.
10830
10831         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10832         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10833         Set volatile flag on operand 0.
10834         (*mb_internal): New insn pattern.
10835
10836         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10837
10838 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10839
10840         PR middle-end/38586
10841         * function.c (struct temp_slot): Move to the section of the file
10842         that deals with temp slots.  Remove field 'address'.
10843         (temp_slot_address_table): New hash table of address -> temp slot.
10844         (struct temp_slot_address_entry): New struct, items for the table.
10845         (temp_slot_address_compute_hash, temp_slot_address_hash,
10846         temp_slot_address_eq, insert_temp_slot_address): Support functions
10847         for the new table.
10848         (find_temp_slot_from_address): Rewrite to use the new hash table.
10849         (remove_unused_temp_slot_addresses): Remove addresses of temp
10850         slots that have been made available.
10851         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10852         worker function for remove_unused_temp_slot_addresses.
10853         (assign_stack_temp_for_type): Don't clear the temp slot address list.
10854         Add the temp slot address to the address -> temp slot map.
10855         (update_temp_slot_address): Update via insert_temp_slot_address.
10856         (free_temp_slots): Call remove_unused_temp_slot_addresses.
10857         (pop_temp_slots): Likewise.
10858         (init_temp_slots): Allocate the address -> temp slot map, or empty
10859         the map if it is already allocated.
10860         (prepare_function_start): Initialize temp slot processing.
10861
10862 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10863
10864         PR middle-end/38584
10865         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10866         Calculate the size of all stack vars assuming no packing of stack
10867         vars will happen, replacing a quadratic algorithm with a linear one.
10868
10869 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10870
10871         PR target/38707
10872         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10873         can't be used.
10874
10875 2009-01-03  Diego Novillo  <dnovillo@google.com>
10876
10877         * doc/contrib.texi: Update contributions.
10878
10879 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10880
10881         PR c++/38705
10882         * builtins.c (fold_builtin_memory_op): Give up if either operand
10883         is volatile.  Set srctype or desttype to non-qualified version
10884         of the other type.
10885
10886         PR c/38700
10887         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10888         and FUNCTION_DECLs.
10889
10890 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
10891
10892         PR rtl-optimization/35805
10893         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10894         problem if fast dce is able to remove any instructions.
10895         * dce.c (dce_process_block): Fix dump message.
10896
10897 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
10898
10899         PR 33649
10900         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10901
10902 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
10903
10904         PR middle-end/38690
10905         * tree-flow.h (op_code_prio, op_prio): New prototypes.
10906         * tree-pretty-print.c (op_code_prio): New function.
10907         (op_prio): No longer static.  Use op_code_prio.
10908         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10909         Use op_prio and op_code_prio to determine if () should be
10910         printed around operand(s) or not.
10911
10912         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10913         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10914         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10915         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10916         pp_character instead of pp_string for single letter printing.
10917
10918 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10919
10920         * doc/extend.texi: Fix '#pragma GCC option' typo.
10921
10922 2009-01-02  Richard Guenther  <rguenther@suse.de>
10923
10924         * doc/install.texi (--enable-checking): Mention different
10925         default for stage1.
10926         (--enable-stage1-checking): Document.
10927
10928 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
10929
10930         PR middle-end/30142
10931         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
10932         case to be an error.
10933
10934 2009-01-02  Ben Elliston  <bje@au.ibm.com>
10935
10936         * config/fp-bit.h (pack_d): Constify argument.
10937         * config/fp-bit.c (makenan): Constify return type. Remove casts.
10938         (isnan): Constify argument.
10939         (isinf): Likewise.
10940         (iszero): Likewise.
10941         (pack_d): Likewise.
10942         (_fpadd_parts): Constify return type.
10943         (_fpmul_parts): Likewise.
10944         (_fpdiv_parts): Likewise.
10945
10946 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
10947
10948         PR c/36489
10949         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
10950         warn about overwriting initializer with side-effects or
10951         -Woverride-init if !IMPLICIT.
10952         (output_init_element): Likewise.  Pass IMPLICIT down to
10953         add_pending_init.
10954         (process_init_element): Add IMPLICIT argument.  Pass it down
10955         to output_init_element.
10956         (push_init_element, pop_init_level, set_designator): Adjust
10957         process_init_element callers.
10958         (set_nonincremental_init, set_nonincremental_init_from_string):
10959         Adjust add_pending_init callers.
10960         (output_pending_init_elements): Adjust output_init_element callers.
10961         * c-tree.h (process_init_element): Adjust prototype.
10962         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10963         process_init_element callers.
10964
10965 \f
10966 Copyright (C) 2009 Free Software Foundation, Inc.
10967
10968 Copying and distribution of this file, with or without modification,
10969 are permitted in any medium without royalty provided the copyright
10970 notice and this notice are preserved.