OSDN Git Service

2009-06-15 Rafael Avila de Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
2
3         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
4         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
5         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
6         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
7         * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
8         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
9         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
10         * langhooks.c (lhd_comdat_group): Remove.
11         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
12         * tree.h (DECL_COMDAT_GROUP): New.
13         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
14         (tree_decl_with_vis): Add comdat_group. Remove one_only.
15         (make_decl_one_only): Change signature.
16         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
17         make_decl_one_only.
18         (make_decl_one_only): Change signature.
19         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
20
21 2009-06-15  Richard Guenther  <rguenther@suse.de>
22
23         PR middle-end/40439
24         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
25
26 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27
28         * tree-ssa-math-opts.c: Remove extra divide.
29
30 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31
32         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
33
34 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35
36         * passes.c: Add bswap pass.
37         * tree-pass.h: Add pass_optimize_bswap declaration.
38         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
39         Include rtl.h, expr.h and optabs.h for optab_handler check.
40         (struct symbolic_number, pass_optimize_bswap): New definition.
41         (do_shift_rotate, verify_symbolic_number_p): New functions.
42         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
43         (gate_optimize_bswap): New function.
44         * tree.c (widest_int_cst_value): New function.
45         * tree.h (widest_int_cst_value): Prototype added.
46
47 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
48
49         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
50         REG_EQUAL/REG_EQUIV notes.
51
52 2009-06-14  Richard Guenther  <rguenther@suse.de>
53
54         PR middle-end/40389
55         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
56         has its address taken if NRV was applied and it is addressable.
57         * tree-ssa-structalias.c (get_constraint_for_address_of): New
58         function split out from ...
59         (get_constraint_for_1): ... here.
60         (handle_rhs_call): Use it to mark the return slot escaped if
61         it is addressable and NRV was applied.
62
63 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
64
65         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
66         Change first argument type to location_t.
67         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
68         Do not set input_location.
69         Use loc instead of input_location throughout.
70
71 2009-06-13  Richard Guenther  <rguenther@suse.de>
72
73         PR tree-optimization/40421
74         * tree-predcom.c (should_unroll_loop_p): Remove.
75         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
76
77 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
78
79         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
80         Add location argument.
81
82 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
83
84         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
85         build_decl.
86         * config/s390/s390.c (s390_build_builtin_va_list): Same.
87         (s390_gimplify_va_arg): Pass location to create_artificial_label.
88         * config/spu/spu-protos.h: Add location to
89         spu_resolve_overloaded_builtin.
90         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
91         spu_build_builtin_va_list.
92         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
93         argument.  Pass location to build_function_call_vec.
94         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
95         build_decl.
96         (emit_fpu_switch): Same.
97         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
98         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
99         to build_decl and create_artificial_label.
100         (xtensa_gimplify_va_arg_expr): Same.
101         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
102         (xstormy16_gimplify_va_arg_expr): Same.
103         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
104         * config/arm/arm.c (arm_build_builtin_va_list): Same.
105         * config/mips/mips.c (mips_build_builtin_va_list): Same.
106         (mips16_build_function_stub): Same.
107         (mips16_build_call_stub): Same.
108
109 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
110
111         PR target/40327
112         * arm/constraints.md (Pa, Pb): New constraints.
113         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
114         split pattern to deal with them.
115
116 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
117
118         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
119         fix index entry for -Xpreprocessor.
120
121 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
122
123         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
124         Add location argument to build_decl call.
125         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
126         (rs6000_init_builtins): Same.
127         (spe_init_builtins): Same.
128         (rs6000_gimplify_va_arg): Add location argument to
129         create_artificial_label call.
130
131 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
132
133         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
134         * combine-stack-adj.c (pass_stack_adjustments): Use it.
135         * Makefile.in: Fix GGC dependency for gcse.o.
136
137 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
138
139         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
140         * gimple-pretty-print.c (dump_gimple_stmt): Same.
141         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
142         created.
143         * c-parser.c (c_parser_binary_expression): Use current column while
144         building binary operations.
145         * common.opt (fshow-column): Enable by default.
146         * tree-vrp.c (check_array_ref): Use warning_at.
147         (check_array_bounds): Use location from call back if expr has no
148         location.
149         * tree.h: Add location argument to maybe_fold_*.
150         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
151         (maybe_fold_offset_to_array_ref): Add location argument and use it.
152         (maybe_fold_offset_to_component_ref): Same.
153         (maybe_fold_offset_to_reference): Same.
154         (maybe_fold_offset_to_address): Same.
155         (maybe_fold_stmt_indirect): Same.
156         (maybe_fold_stmt_addition): Same.
157         (fold_stmt_r): Pass location to maybe_fold_*.
158         (fold_gimple_assign): Same.
159         * c-tree.h: Add location argument to finish_decl,
160         default_function_array_conversion, store_init_value.
161         * c-decl.c (define_label): Use error_at.
162         (c_make_fname_decl): Pass location to finish_decl.
163         (finish_decl): New location argument.
164         (build_compound_literal): Pass location to store_init_value.
165         (grokdeclarator): Pass location to finish_decl.
166         (grokfield): Same.
167         * c-typeck.c (array_to_pointer_conversion): New location argument.
168         (function_to_pointer_conversion): Same.
169         (default_function_array_conversion): Same.
170         (parser_build_unary_op): Pass location to overflow_warning.
171         (parser_build_binary_op): Same.  Use warning_at.
172         (build_unary_op): Pass location to array_to_pointer_conversion.
173         (build_c_cast): Pass location to digest_init.
174         (build_modify_expr): New location argument.
175         (convert_for_assignment): Same.
176         (store_init_value): Same.
177         (digest_init): Same.
178         (output_init_element): Pass location to digest_init and
179         array_to_pointer_conversion.
180         (c_finish_return): Pass location to convert_for_assignment.
181         * gimplify.c (gimplify_conversion): Pass location to
182         maybe_fold_offset_to_address.
183         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
184         to maybe_fold_stmt_addition.
185         * c-omp.c (c_finish_omp_atomic): Pass new location to
186         build_modify_expr.
187         (c_finish_omp_for): Same.
188         * c-common.c (overflow_warning): New argument.
189         * c-common.h: New argument to build_modify_expr, overflow_warning.
190         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
191         finish_decl.
192         (c_parser_initializer): Pass location to
193         default_function_array_conversion.
194         (c_parser_initelt): Same.
195         (c_parser_initval): Same.
196         (c_parser_asm_operands): Same.
197         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
198         (c_parser_conditional_expression): Same.
199         (c_parser_binary_expression): Add location info to stack.  Use it.
200         (c_parser_unary_expression): Pass location to
201         default_function_array_conversion, parser_build_unary_op,
202         build_indirect_ref, c_parser_postfix_expression_after_primary.
203         (c_parser_postfix_expression_after_primary): New location argument.
204         Use it.
205         (c_parser_expression_conv): Pass location to
206         default_function_array_conversion.
207         (c_parser_expr_list): Same.
208         (c_parser_omp_atomic): Same.
209         (c_parser_omp_for_loop): Same.
210         * c-tree.h: (struct c_declarator): Add comment to id_loc.
211         (build_array_declarator): New argument.
212         * c-decl.c (build_array_declarator): Add location argument.
213         (grokdeclarator): Set id_loc for cdk_array.
214         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
215         build_array_declarator.
216         * tree.c (build_omp_clause): Add location argument.
217         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
218         (OMP_CLAUSE_LOCATION): New macro.
219         (struct tree_omp_clause): Add location field.
220         (build_omp_clause): Add argument.
221         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
222         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
223         build_omp_clause.
224         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
225         (cp_parser_omp_clause_collapse): Same.
226         (cp_parser_omp_clause_default): Same.
227         (cp_parser_omp_clause_if): Same.
228         (cp_parser_omp_clause_nowait): Same.
229         (cp_parser_omp_clause_num_threads): Same.
230         (cp_parser_omp_clause_ordered): Same.
231         (cp_parser_omp_clause_schedule): Same.
232         (cp_parser_omp_clause_untied): Same.
233         (cp_parser_omp_for_loop): Same.
234         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
235         * c-tree.h (c_start_case): Add location argument.
236         (c_process_expr_stmt): Same.
237         (c_finish_goto_*): Same.
238         * tree-parloops.c (initialize_reductions): Pass location to
239         build_omp_clause.
240         (create_parallel_loop): Same.
241         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
242         (gfc_trans_omp_reduction_list): Same.
243         (gfc_trans_omp_clauses): Same.
244         (gfc_trans_omp_do): Same.
245         * c-typeck.c (c_finish_goto_label): Same.
246         (c_finish_goto_ptr): New location argument.
247         (c_start_case): Same.
248         (emit_side_effect_warnings): Same.
249         (c_process_expr_stmt): Same.
250         (c_finish_stmt_expr): Same.
251         (c_finish_omp_clauses): Use error_at instead of error.
252         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
253         build_omp_clause.
254         * c-omp.c (c_split_parallel_clauses): New location argument.
255         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
256         to build_omp_clause.
257         (convert_local_reference_stmt): Same.
258         (convert_gimple_call): Same.
259         * c-common.h (c_split_parallel_clauses): New argument.
260         * c-parser.c (c_parser_statement_after_labels): Pass location to
261         c_finish_goto_label.
262         (c_parser_switch_statement): Pass location to c_start_case.
263         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
264         and c_process_expr_stmt.
265         (c_parser_omp_variable_list): Add location argument.
266         (c_parser_omp_clause_collapse): Pass location to
267         build_omp_clause.
268         (c_parser_omp_clause_default): Same.
269         (c_parser_omp_clause_if): Same.
270         (c_parser_omp_clause_num_threads): Same.
271         (-c_parser_omp_clause_ordered): Same.
272         (c_parser_omp_clause_reduction): Pass location to
273         c_parser_omp_variable_list.
274         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
275         (c_parser_omp_clause_untied): Same.
276         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
277         (c_parser_omp_parallel): Pass location to
278         c_split_parallel_clauses.
279
280         * c-tree.h (check_for_loop_decls, undeclared_variable,
281         build_component_ref, build_array_ref, build_external_ref,
282         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
283         build_conditional_expr, build_compound_expr, c_cast_expr,
284         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
285         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
286         argument.
287         * c-semantics.c (build_stmt): Same.
288         (build_case_label): Same.
289         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
290         (undeclared_variable): New argument.
291         (make_label): Same.
292         (lookup_label): Pass location on down.
293         (define_label): Same.
294         (finish_decl): Same.
295         (build_compound_literal): Same.
296         (finish_struct): Same.
297         (finish_function): Do not set location here.
298         (check_for_loop_decls): New argument.
299         * tree.c (save_expr): Set location.
300         (build_empty_stmt): New argument.
301         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
302         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
303         * builtins.c (gimplify_va_arg_expr): Use locations.
304         (expand_builtin_sync_operation): Same.
305         * c-typeck.c (build_component_ref): New argument.
306         (build_array_ref): Same.
307         (build_external_ref): Same.
308         (c_expr_sizeof_expr): Same.
309         (c_expr_sizeof_type): Same.
310         (parser_build_unary_op): Same.
311         (build_conditional_expr): Same.
312         (build_compound_expr): Pass location on down.
313         (build_compound_expr): New argument.
314         (build_c_cast): Same.
315         (c_cast_expr): Same.
316         (build_asm_expr): Same.
317         (c_finish_return): Same.
318         (c_process_expr_stmt): Pass location on down.
319         (c_finish_stmt_expr): New argument.
320         (push_clenaup): Same.
321         (c_finish_omp_parallel): Same.
322         (c_finish_omp_task): Same.
323         * gimplify.c (gimplify_call_expr): Pass location on down.
324         * c-omp.c (c_finish_omp_master): New argument.
325         (c_finish_omp_critical): Same.
326         (c_finish_omp_ordered): Same.
327         (c_finish_omp_barrier): Same.
328         (-c_finish_omp_taskwait): Same.
329         (c_finish_omp_atomic): Same.
330         (c_finish_omp_flush): Same.
331         * tree-inline.c (copy_tree_body_r): Pass location on down.
332         (inline_forbidden_p): Remove use of input_location.
333         * c-gimplify.c (c_build_bind_expr): New argument.
334         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
335         (c_sizeof_or_alignof_type): New argument.
336         (c_alignof_expr): Same.
337         (build_va_arg): Same.
338         (c_add_case_label): Same.
339         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
340         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
341         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
342         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
343         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
344         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
345         New argument.
346         * stub-objc.c (objc_build_selector_expr): Same.
347         (objc_build_throw_stmt): Same.
348         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
349         (c_parser_initelt): Same.
350         (c_parser_compound_statement): Same.
351         (c_parser_compound_statement_nostart): Same.
352         (c_parser_label): Same.
353         (c_parser_statement_after_labels): Same.
354         (c_parser_if_body): Same.
355         (c_parser_else_body): Same.
356         (c_parser_if_statement): Same.
357         (c_parser_switch_statement): Same.
358         (c_parser_while_statement): Same.
359         (c_parser_do_statement): Same.
360         (c_parser_for_statement): Same.
361         (c_parser_asm_statement): Same.
362         (c_parser_conditional_expression): Same.
363         (c_parser_binary_expression): Same.
364         (c_parser_cast_expression): Same.
365         (c_parser_unary_expression): Same.
366         (c_parser_sizeof_expression): Same.
367         (c_parser_alignof_expression): Same.
368         (c_parser_postfix_expression): Same.
369         (c_parser_expression): Same.
370         (c_parser_objc_receiver): Same.
371         (c_parser_omp_variable_list): Same.
372         (c_parser_omp_structured_block): Same.
373         (c_parser_omp_atomic): New argument.
374         (c_parser_omp_barrier): Same.
375         (c_parser_omp_critical): Same.
376         (c_parser_omp_flush): Pass location on down.
377         (c_parser_omp_for_loop): New argument.
378         (c_parser_omp_for): Same.
379         (c_parser_omp_master): Same.
380         (c_parser_omp_ordered): Same.
381         (c_parser_omp_sections_scope): Same.
382         (c_parser_omp_sections): Same.
383         (c_parser_omp_parallel): Same.
384         (c_parser_omp_single): Same.
385         (c_parser_omp_task): Same.
386         (c_parser_omp_taskwait): Pass location on down.
387         (c_parser_omp_construct): Same.
388         (c_parser_omp_threadprivate): Same.
389         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
390         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
391         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
392         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
393         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
394         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
395         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
396         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
397         config/i386/i386.c, stmt.c:
398         Add location argument to the following function definitions and/or
399         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
400         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
401         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
402         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
403         do_case, c_finish_bc_stmt, build_compound_literal,
404         build_function_call.
405         * c-decl.c (build_compound_literal): Add location argument.
406         Make all diagnostic calls use location.
407         (start_struct): Same.
408         (finish_struct): Same.
409         (start_enum): Same.
410         (build_enumerator): Same.
411         (start_function): Same.
412         (grokdeclarator): Make all diagnostic calls use location.
413         (store_parm_decls_oldstyle): Same.
414         * c-typeck.c (build_function_call): Add location argument.
415         Make all diagnostic calls use location.
416         (do_case): Same.
417         (c_finish_bc_stmt): Same.
418         * tree-nested.c (get_trampoline_type): Add argument.
419         Pass location to build_decl.
420         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
421         * rtl.h (RTL_LOCATION): New.
422         * c-common.c (c_add_case_label): Add location argument.
423         Make all diagnostic calls use location.
424         * c-common.h: Add location argument to make_fname_decl, do_case,
425         c_add_case_label, build_function_call, resolve_overloaded_builtin.
426         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
427         Set it appropriately for every case.  Pass enum_loc to start_enum
428         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
429         parser_xref_tag.
430         (c_parser_struct_or_union_specifier): Save location.  Use it for
431         start_struct, finish_struct, and parser_xref_tag.
432
433 2009-06-12  Ian Lance Taylor  <iant@google.com>
434
435         * fold-const.c (fold_unary): Rename local variable and to
436         and_expr.
437
438         * c-opts.c (c_common_handle_option): For -Wc++-compat set
439         cpp_opts->warn_cxx_operator_names.
440
441 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
442
443         PR tree-opt/38865
444         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
445         is returns NULL and OP is a VCE, look through the VCE.
446
447 2009-06-12  Ian Lance Taylor  <iant@google.com>
448
449         PR bootstrap/40430
450         * collect2.c (main): Use CONST_CAST2 in code inside #if
451         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
452
453 2009-06-12  Joey Ye  <joey.ye@intel.com>
454
455         PR middle-end/39146
456         * cfgexpand.c (get_decl_align_unit): Update
457         max_used_stack_slot_alignment with align instead of
458         stack_alignment_needed.
459
460         * function.c (assign_stack_local_1): Update
461         max_used_stack_slot_alignment with alignment_in_bits instead
462         of stack_alignment_needed.
463         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
464         here.
465
466 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
467
468         * dwarf2out.c (last_var_location_insn): New variable.
469         (dwarf2out_end_epilogue): Clear last_var_location_insn.
470         (dwarf2out_var_location): Don't record anything after last real
471         insn.  Only change labels if there were any real instructions
472         in between last note and this one, or if changed sections.
473
474 2009-06-11  Richard Henderson  <rth@redhat.com>
475
476         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
477         note when storing the frame pointer in a register.
478         (FRP): Don't redefine to nothing for epilogue.
479         (alpha_expand_epilogue): Mark register and sp restores.
480         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
481
482         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
483         when gen_lowpart is needed.
484
485 2009-06-11  Richard Henderson  <rth@redhat.com>
486
487         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
488
489         * dwarf2out.c (need_data_align_sf_opcode): New.
490         (div_data_align): Move earlier.
491         (def_cfa_1, reg_save): Use it.
492
493 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
494
495         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
496         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
497         (ix86_handle_option): Handle OPT_mcrc32.
498         (ix86_target_string): Add -mcrc32.
499         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
500
501         * config/i386/i386.h (TARGET_CRC32): New.
502
503         * config/i386/i386.md (sse4_2_crc32<mode>): Also check
504         TARGET_CRC32.
505         (sse4_2_crc32di): Likewise.
506
507         * config/i386/i386.opt (mcrc32: New.
508
509         * doc/invoke.texi: Document -mcrc32.
510
511 2009-06-11  Richard Henderson  <rth@redhat.com>
512
513         * common.opt (gdwarf-): Accept a version number.
514         * doc/invoke.texi (gdwarf-): Update docs.
515         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
516         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
517         version level, and record it.
518
519         * dwarf2.h (DW_CIE_VERSION): Remove.
520         * dwarf2out.c (DWARF_VERSION): Remove.
521         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
522         (output_call_frame_info): Use CIE version 3 for dwarf3,
523         or if the return register column is out of range for version 1.
524         (dwarf_stack_op_name): Add all dwarf3 values.
525         (DEBUG_PUBTYPES_SECTION): New.
526         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
527         encoding change for dwarf3.
528         (output_die) [dw_val_class_die_ref]: Likewise.
529         (output_compilation_unit_header): Emit correct version for dwarf3.
530         (output_line_info): Likewise.
531         (output_pubnames): Update for DWARF_VERSION removal.
532         (output_aranges): Likewise.
533         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
534         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
535         (dwarf2out_finish): Likewise.
536
537 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
538
539         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
540         in r148403.
541
542 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
543
544         PR c/39252
545         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
546         * builtins.c (expand_builtin_unreachable): New function.
547         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
548         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
549         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
550         successors.
551         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
552         searching for missing barriers.
553
554 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
555
556         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
557         when -fprofile-generate* was passed.
558         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
559
560 2009-06-11  Anthony Green  <green@moxielogic.com>
561
562         * config/moxie/moxie.md: Define length attribute for all
563         instructions.
564         (rCC): Define.
565         (*b<cond:code>): Support limited branch ranges for new PC-relative
566         branch instructions.
567         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
568
569 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
570
571         * config/i386/i386.c (min_insn_size): Use get_attr_length
572         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
573         For __asm return 0.
574
575         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
576         instead of emit_insn_before.
577
578 2009-06-10  Ian Lance Taylor  <iant@google.com>
579
580         PR bootstrap/40408
581         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
582         GIMPLE_SWITCH.
583
584 2009-06-10  Revital Eres  <eres@il.ibm.com>
585
586         * passes.c (init_optimization_passes): Reschedule
587         predictive-commoning pass before complete unroll pass.
588
589 2009-06-10  Martin Jambor  <mjambor@suse.cz>
590
591         * cgraph.c (cgraph_node_can_be_local_p): New function.
592         (cgraph_make_node_local): New function.
593         * cgraph.h (cgraph_node_can_be_local_p): Declare.
594         (cgraph_make_node_local): Declare.
595
596 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
597
598         * tree.h (tree_base): Add packed_flag and user_align fields.
599         Decrease size of spare field.
600         (TYPE_USER_ALIGN): Use user_align from tree_base.
601         (DECL_USER_ALIGN): Likewise.
602         (TYPE_PACKED): Use packed_flag from tree_base.
603         (DECL_PACKED): Likewise.
604         (tree_type): Delete packed_flag and user_align fields.  Widen
605         precision field.  Widen mode field and shuffle fields to align
606         mode on an 8-bit boundary.
607         (tree_decl_common): Delete decl_flag_1 and user_align fields.
608         Renumber decl_flag_* fields.  Fix comments.  Widen
609         decl_common_unused field.
610         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
611         fields.
612         (DECL_EXTERNAL): Likewise.
613         (DECL_BIT_FIELD): Likewise.
614         (DECL_NONADDRESSABLE_P): Likewise.
615         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
616         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
617
618 2009-06-10  Ian Lance Taylor  <iant@google.com>
619
620         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
621         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
622         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
623         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
624         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
625         DEF_VEC_ALLOC_FUNC_P.
626         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
627         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
628         DEF_VEC_ALLOC_FUNC_O.
629         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
630         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
631         DEF_VEC_ALLOC_FUNC_I.
632         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
633         (vec_stack_p_reserve_exact_1): Declare.
634         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
635         (vec_stack_free): Declare.
636         (VEC_stack_alloc): Define.
637         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
638         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
639         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
640         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
641         for void_p.
642         (stack_vecs): New static variable.
643         (vec_stack_p_reserve_exact_1): New function.
644         (vec_stack_o_reserve_1): New static function.
645         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
646         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
647         (vec_stack_free): New function.
648         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
649         (VEC_df_ref_stack_alloc): Define.
650         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
651         DEF_VEC_ALLOC_P_STACK.
652         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
653         (struct df_collection_rec): Change _vec fields to VEC.  Remove
654         _use fields.
655         (df_free_collection_rec): Adjust for new fields.
656         (df_insn_rescan): Use new df_collection_rec fields.
657         (df_notes_rescan, df_canonize_collection_rec): Likewise.
658         (df_ref_create_structure, df_ref_record): Likewise.
659         (df_get_conditional_uses, df_get_call_refs): Likewise.
660         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
661         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
662         (df_record_exit_block_uses, df_bb_verify): Likewise.
663         (df_swap_refs): Change ref_vec parameter to VEC.  Change all
664         callers.
665         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
666         Remove count parameter.  Change return type to void.  Change all
667         callers.
668         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
669         Remove count parameter.  Change return type to void.  Change all
670         callers.
671         (df_install_refs): Change old_vec parameter to VEC.  Remove count
672         parameter.  Change all callers.
673         (df_install_mws): Change old_vec parameter to VEC.  Remove count
674         parameter.  Change all callers.
675         (df_refs_verify): Change new_rec parameter to VEC.  Change call
676         callers.
677         (df_mws_verify): Likewise.
678
679 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
680
681         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
682
683 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
684
685         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
686
687 2009-06-10  Anthony Green  <green@moxielogic.com>
688
689         * config/moxie/crti.asm: New file.
690         * config/moxie/crtn.asm: New file.
691         * config/moxie/moxie.c: New file.
692         * config/moxie/moxie.h: New file.
693         * config/moxie/sfp-machine.h: New file.
694         * config/moxie/moxie-protos.h: New file.
695         * config/moxie/t-moxie: Created.
696         * config/moxie/t-moxie-softfp: Created.
697         * config/moxie/moxie.md: Created.
698         * config/moxie/constraints.md: Created.
699         * config.gcc: Add moxie support.
700         * doc/md.texi (Machine Constraints): Add moxie constraints.
701         * doc/contrib.texi (Contributors): Mention moxie port.
702         * doc/install.texi (Specific): Mention the moxie port.
703
704 2009-06-09  Ian Lance Taylor  <iant@google.com>
705
706         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
707         compiling with C++.
708         * optabs.c (optab_table): Only use designated initializers if
709         HAVE_DESIGNATED_INITIALIZERS is defined.
710         (convert_optab_table): Likewise.
711         (init_optabs): Always call init_insn_codes if
712         HAVE_DESIGNATED_INITIALIZERS is not defined.
713
714 2009-06-09  Ian Lance Taylor  <iant@google.com>
715
716         * targhooks.c (default_builtin_vectorized_function): Change fn
717         parameter to unsigned int.
718         (default_builtin_vectorized_conversion): Change code parameter to
719         unsigned int.
720         (default_builtin_reciprocal): Change fn parameter to unsigned int.
721         * targhooks.h: Update declarations.
722         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
723         parameter to unsigned int.
724
725         * c-typeck.c (comptypes_check_enum_int): New static function.
726         (comptypes_internal): Add enum_and_int_p parameter.  Change all
727         callers.
728         (comp_target_types): Add location parameter.  Change all callers.
729         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
730         Change all callers.
731         (function_types_compatible_p, type_lists_compatible_p): Likewise.
732         (build_conditional_expr): Add colon_loc parameter.  Change all
733         callers.
734         (convert_for_assignment): Add location parameter.  Change all
735         callers.
736         * c-parser.c (c_parser_conditional_expression): Pass location of
737         colon to build_conditional_expr.
738         * c-tree.h (build_conditional_expr): Update declaration.
739
740 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
741
742         * graphite.c: Revert previous patch.
743
744 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
745
746         PR bootstrap/40103
747         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
748
749 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
750
751         * tree-ssa-loop-prefetch.c
752         (loop_prefetch_arrays): Fixed a portability problem in printf format
753         string.
754
755 2009-06-09  Martin Jambor  <mjambor@suse.cz>
756
757         PR tree-optimization/40351
758         * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
759         to a potential artifical subaccess can be constructed.
760
761 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
762
763         * config/sh/sh-protos.h (sh_optimization_options): Declare.
764         (sh_override_options): Likewise.
765         * config/sh/sh.c: Include params.h.
766         (sh_optimization_options): New.
767         (sh_override_options): Likewise.
768         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
769         (OVERRIDE_OPTIONS): Use sh_override_options.
770
771 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
772
773         * dwarf2out.c (emit_cfa_remember): New variable.
774         (add_fde_cfi): If emit_cfa_remember, recurse to add
775         DW_CFA_remember_state first.
776         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
777         instead just set emit_cfa_remember.
778
779 2009-06-08  Jan Hubicka  <jh@suse.cz>
780
781         PR debug/40126
782         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
783
784 2009-06-08  Jan Hubicka  <jh@suse.cz>
785
786         PR middle-end/39834
787         * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
788         for saved inline bodies.
789         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
790         for given function.
791
792 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
793
794         * jump.c (returnjump_p): Handle delayed branches.  Add missing
795         function comment.
796
797 2009-06-08  Jan Hubicka  <jh@suse.cz>
798
799         PR middle-end/40102
800         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
801         original node might've been modified.
802         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
803
804 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
805
806         * tree-object-size.c (addr_object_size): Add OSI argument.
807         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
808         (compute_builtin_object_size, expr_object_size): Adjust callers.
809         (plus_stmt_object_size): Call addr_object_size instead of
810         compute_builtin_object_size.
811
812 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
813             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
814         
815         * tree-ssa-loop-prefetch.c 
816         (gather_memory_references): Introduced a counter for the number of 
817         memory references.
818         (anything_to_prefetch_p): Introduced a counter for the number of 
819         prefetches.
820         (is_loop_prefetching_profitable): New function with a cost model 
821         for prefetching.
822         (loop_prefetch_arrays): Use the new cost model to determine if 
823         prefetching is profitable.
824         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
825         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
826         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
827         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
828         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
829         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
830         
831 2009-06-08  Michael Matz  <matz@suse.de>
832
833         PR debug/40012
834         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
835         partitions use the same.
836         (expand_one_var): Deal with DECL_RTL sometimes begin set also
837         for basevars of SSA_NAMEs.
838         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
839         to not expand them twice.
840         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
841         multiple places.
842
843 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
844
845         * common.opt (fcompare-debug=, fcompare-debug-second): New.
846         (fdump-final-insns=, gtoggle): New.
847         * doc/invoke.texi: Document them.
848         * final.c (rest_of_clean_state): Dump final insn stream.
849         * gcc.c (invoke_as): Hook in -fcompare-debug.
850         (static_spec_functions): Add compare-debug-dump-opt,
851         compare-debug-self-opt and compare-debug-auxbase-opt.
852         (compare_debug, compare_debug_second, compare_debug_opt): New.
853         (switches_debug_check, n_switches_debug_check): New.
854         (debug_auxbase_opt, debug_check_temp_file): New.
855         (process_command): Handle -fno-compare-debug, -fcompare-debug and
856         -fcompare-debug=*.
857         (do_self_spec): Handle arguments after switches.
858         (do_spec_1): Add .gk extension to temp file basenames for compare.
859         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
860         (cc1_options): Use it instead of normal auxbase computation for
861         the second compare-debug compilation.
862         (compare_files): New.
863         (main): Set up and implement compare debug mode.
864         (compare_debug_dump_opt_spec_function): New.
865         (compare_debug_self_opt_spec_function): New.
866         (compare_debug_auxbase_opt_spec_function): New.
867         * toplev.c (process_options): Handle flag_gtoggle,
868         flag_dump_final_insns.
869         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
870         during -fcompare-debug-second compilation.
871
872 2009-06-07  Ian Lance Taylor  <iant@google.com>
873
874         * dwarf2.h (enum dwarf_location_atom): Add
875         INTERNAL_DW_OP_tls_addr.
876         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
877
878         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
879         with no default node.  Change warning with %H to warning_at.
880         Don't clear warn_switch around case checking.
881         * doc/invoke.texi (Warning Options): Clarify distinction between
882         -Wswitch and -Wswitch-enum.
883
884 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
885
886         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
887
888 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
889
890         * gbl-ctors.h: Add header guard.
891
892 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
893
894         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
895         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
896         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
897         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
898         prototypes for removed functions.
899         (expressions_equal_p): Move to ...
900         * tree-ssa-sccvn.h: ... here and ...
901         * matrix-reorg.c: ... adjust includes.
902
903 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
904
905         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
906
907 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
908
909         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
910         (finish_function): Remove erroneous whitespace.
911
912 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
913
914         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
915         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
916
917 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
918
919         * errors.c (internal_error): Commentary typo fix.
920         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
921         * tree-ssa-pre.c: Ditto.
922
923 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
924
925         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
926         them is supposed to hold actual statements.
927
928 2009-06-06  Ian Lance Taylor  <iant@google.com>
929
930         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
931         empty statements can now have attributes.
932
933 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
934
935         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
936         * config/mips/mips.md: Ditto.
937
938 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
939
940         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
941         _RELOCATABLE.
942         (__eabi_uconvert): Likewise.
943
944 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
945
946         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
947         CFI_* definitions with IN_GCC.
948
949 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
950
951         * xcoffout.h (xcoffout_source_line): Update prototype.
952
953 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
954
955         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
956         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
957
958 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
959
960         PR middle-end/40340
961         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
962         inlined_function_outer_scope_p blocks for artificial inlines
963         even at -g0/-g1.
964         * tree.c (tree_nonartificial_location): Rewrite using
965         block_nonartificial_location.
966
967 2009-06-05  Revital Eres  <eres@il.ibm.com>
968             Leehod Baruch  <leehod@il.ibm.com>
969
970         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
971         (expand_expr_real_1): Remove comment.
972         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
973         Vectorize misaligned access when the target supports it.
974         (vect_supportable_dr_alignment): Check for unaligned access
975         support.
976         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
977         and remove asset.
978
979 2009-06-05  Julian Brown  <julian@codesourcery.com>
980
981         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
982         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
983
984 2009-06-05  Richard Guenther  <rguenther@suse.de>
985
986         PR bootstrap/40350
987         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
988         as possibly unused.
989
990 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
991
992         * config/s390/s390.c (global_not_special_regno_p): New static inline.
993         (save_gprs): Don't tell unwinder when a global register is saved.
994         (s390_emit_epilogue): Emit needed epilogue unwind info.
995
996 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
997
998         * dwarf2out.c (deferred_asm_name): New.
999         (add_name_and_src_coords_attributes): Defer creation of
1000         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1001         computed yet.
1002         (move_linkage_attr): New.
1003         (dwarf2out_finish): Revisit deferrals and emit attributes at the
1004         right place.
1005
1006 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1007
1008         * tree-nested.c (finalize_nesting_tree_1): Declare the
1009         frame_decl in the binding tree.
1010
1011 2009-06-04  Cary Coutant  <ccoutant@google.com>
1012
1013         * basic-block.h (struct basic_block_def): Add discriminator field.
1014         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
1015         callers.
1016         * debug.c (do_nothing_debug_hooks): Add additional entry.
1017         (debug_nothing_int_charstar_int): New function.
1018         * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1019         hook.
1020         (debug_nothing_int_charstar_int): New declaration.
1021         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
1022         discriminator value in .loc directive.
1023         * final.c (last_discriminator): New variable.
1024         (discriminator): New variable.
1025         (final_start_function): Initialize above variables, pass current
1026         discriminator to debug hook.
1027         (notice_source_line): Check for discriminator change.
1028         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1029         * sdbout.c (sdbout_source_line): New parameter.
1030         * tree-cfg.c (struct locus_discrim_map): New structure type.
1031         (discriminator_per_locus): New hash table.
1032         (build_gimple_cfg): Allocate and free discriminator hash table.
1033         (make_edges): Call assign_discriminator.
1034         (locus_map_hash): New function.
1035         (locus_map_eq): New function.
1036         (next_discriminator_for_locus): New function.
1037         (same_line_p): New function.
1038         (assign_discriminator): New function.
1039         (make_cond_expr_edges): Call assign_discriminator.
1040         (make_gimple_switch_edges): Likewise.
1041         (first_non_label_stmt): New function.
1042         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
1043         all callers.
1044         * xcoffout.c (xcoffout_source_line): Add new parameter.
1045
1046         * configure.ac (gcc_cv_as_discriminator): New configury check for
1047         gas support for discriminator.
1048         * configure: Regenerate.
1049         * config.in: Regenerate.
1050
1051 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1052
1053         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1054         val after checking for integers.
1055
1056 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
1057
1058         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1059         X64_REGPARM_MAX.
1060         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1061         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1062         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1063         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1064         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
1065         X64_SSE_REGPARM_MAX.
1066         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1067         X64_SSE_REGPARM_MAX.
1068
1069 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1070
1071         * gcc.c (report_times_to_file): New.
1072         (execute): Implement it.
1073         (process_command): Support -time=.
1074         * doc/invoke.texi: Document it.
1075
1076 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1077
1078         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1079         that have value exprs.
1080
1081 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1082
1083         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1084         declarations for constants until...
1085         (dw2_output_indirect_constant_1): ... this point.
1086
1087 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
1088
1089         PR target/10242
1090         * arm.md (arm_addsi3): Don't try to split an add with an
1091         eliminable register until after reload has completed.
1092
1093 2009-06-03  Ian Lance Taylor  <iant@google.com>
1094
1095         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1096         * genattrtab.c (write_length_unit_log): Likewise.
1097         * genchecksum.c (dosum): Likewise.
1098         * gengtype.c (write_rtx_next): Likewise.
1099         (finish_root_table, write_roots): Likewise.
1100         * gimple.c (gimple_ops_offset_): Likewise.
1101         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1102         * config/arc/arc.c (arc_attribute_table): Likewise.
1103         * config/arm/arm.c (arm_attribute_table): Likewise.
1104         * config/avr/avr.c (avr_attribute_table): Likewise.
1105         * config/crx/crx.c (crx_attribute_table): Likewise.
1106         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1107         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1108         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1109         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1110         * config/sh/sh.c (sh_attribute_table): Likewise.
1111         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1112         * config/spu/spu.c (spu_attribute_table): Likewise.
1113         * config/v850/v850.c (v850_attribute_table): Likewise.
1114
1115         * config/alpha/alpha.c (vms_attribute_table): Make static.
1116         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1117         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1118         * config/mips/mips.c (mips_attribute_table): Likewise.
1119
1120         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1121         $(SYSTEM_H).
1122         (cc1-checksum.o): Likewise.
1123
1124 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
1125
1126         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1127
1128 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
1129
1130         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1131         insn if it is changing sp.  Use gen_add3_insn instead of
1132         conditionally gen_addsi3 and gen_adddi3.
1133         (offset_below_red_zone_p): New static inline function.
1134         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1135         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1136         * config/rs6000/ppc-asm.h: Include auto-host.h.
1137         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1138         CFI_RESTORE): Define.
1139         * config/rs6000/crtresxgpr.asm: Add unwind info.
1140         * config/rs6000/crtresxfpr.asm: Likewise.
1141         * config/rs6000/crtresgpr.asm: Likewise.
1142         * config/rs6000/crtresfpr.asm: Likewise.
1143         * config/rs6000/crtsavgpr.asm: Likewise.
1144         * config/rs6000/crtsavfpr.asm: Likewise.
1145
1146         * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1147         0 to second argument of DWARF2_FRAME_REG_OUT macros.
1148
1149 2009-06-03  Julian Brown  <julian@codesourcery.com>
1150
1151         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1152         words or less (including TImode) in core registers.
1153
1154 2009-06-03  Richard Guenther  <rguenther@suse.de>
1155
1156         PR middle-end/40328
1157         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1158
1159 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
1160
1161         * statistics.c (statistics_counter_event): Do not record event 
1162         in pass dump if its number == -1.
1163         (curr_statistics_hash): Add assert that we never get passes 
1164         with static number == -1.
1165
1166 2009-06-03  Richard Guenther  <rguenther@suse.de>
1167             Andrey Belevantsev  <abel@ispras.ru>
1168
1169         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
1170         non-BLKmode arrays addressable.
1171
1172 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1173
1174         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1175         * config/m68k/m68k.h: ... here.
1176         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1177         m68k and fido.
1178
1179 2009-06-03  Martin Jambor  <mjambor@suse.cz>
1180
1181         PR tree-optimization/40323
1182         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1183         assignment.
1184
1185 2009-06-03  Richard Guenther  <rguenther@suse.de>
1186
1187         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1188         consistently.
1189
1190 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
1191
1192         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1193         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1194         JUMP_TABLE_DATA_P where applicable.
1195         * config/sh/sh.c: Ditto.
1196         * config/sh/sh.h: Ditto.
1197         * config/sh/sh.md: Ditto.
1198         * config/sh/symbian.c: Ditto.
1199
1200 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
1201
1202         * config/i386/driver-i386.c (describe_cache): Optimize
1203         concatenation of strings.  Use snprintf instead of sprintf.
1204         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
1205         target when not compiling with GCC.
1206
1207 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1208
1209         * config/sh/sh.c: Revert last change.
1210         (sh_expand_epilogue): Emit a blockage insn before the frame
1211         pointer adjustment unconditionally.
1212
1213 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1214
1215         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1216         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1217         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1218         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1219         to COLLECT_GCC_OPTIONS.
1220
1221 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1222
1223         * collect2.c (target_system_root): New variable.
1224         (main): Handle --sysroot=.
1225         (ignore_library): Strip the sysroot from the library path.
1226
1227 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1228
1229         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1230         (collect2.o): Depend on collect2-aix.h.
1231         (collect2-aix.o): New rule.
1232         * collect2-aix.h: New file.
1233         * collect2-aix.c: Likewise.
1234         * collect2.c: Include collect2-aix.h.  Don't undefine
1235         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1236         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1237         Use TARGET_AIX_VERSION instead of _AIX51.
1238         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1239         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1240         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1241         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1242         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1243
1244 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1245
1246         * collect2.c (ignore_library): Avoid premature post-increment
1247         and null deference.
1248
1249 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1250
1251         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1252         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1253         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1254         CROSS_DIRECTORY_STRUCTURE too.
1255         (LINK_LIBG_SPEC): Likewise.
1256         (LIB_SPEC): Add %R to sysroot paths.
1257         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1258         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1259         * config/rs6000/aix51.h: As for aix43.h.
1260         * config/rs6000/aix52.h: Likewise.
1261         * config/rs6000/aix53.h: Likewise.
1262         * config/rs6000/aix61.h: Likewise.
1263         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1264         to the beginning of sysroot paths.
1265
1266 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1267
1268         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1269         INSN_LISTs that are out of the REG_NOTE range.
1270
1271 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1272
1273         * loop-unroll.c (struct iv_to_split): Add pointer to next.
1274         (struct var_to_expand): Likewise.
1275         (struct opt_info): Add head and tail for linked lists of the above.
1276         (analyze_insn_to_expand_var): Initialize next.
1277         (analyze_iv_to_split_insn): Likewise.
1278         (analyze_insns_in_loop): Create linked lists.
1279         (allocate_basic_variable): Simplify for use without hash table.
1280         (insert_var_expansion_initialization): Likewise, make it type-safer.
1281         (combine_var_copies_in_loop_exit): Likewise.
1282         (apply_opt_in_copies): Walk lists rather than hash tables.
1283         (release_var_copies): Simplified and inlined by hand into...
1284         (free_opt_info): ... this function.
1285
1286 2009-06-02  Richard Guenther  <rguenther@suse.de>
1287
1288         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1289         for field decls.
1290
1291 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1292
1293         * cfgexpand.c (gimple_expand_cfg): Discard the source location
1294         only for builtins that are not overridden.
1295
1296 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1297
1298         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1299         label string.
1300
1301 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1302
1303         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1304
1305 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1306
1307         * combine.c (move_deaths): Compare LUIDs within the same BB only.
1308
1309 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1310
1311         * common.opt (fdump-unnumbered-links): New.
1312         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1313         * print-rtl.c (flag_dump_unnumbered_links): New.
1314         (print_rtx): Test it.
1315
1316 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
1317
1318         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1319         push/pop multiple to 8-byte alignment.
1320
1321 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
1322
1323         * config/i386/i386.c (queued_cfa_restores): New static variable.
1324         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1325         functions.
1326         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1327         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1328         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1329         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1330         note unconditionally.
1331         (ix86_emit_restore_regs_using_mov): Likewise.
1332         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1333         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1334         it through to ix86_emit_restore_reg_using_pop.
1335         (ix86_emit_leave): Add RED_OFFSET argument.  Call
1336         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
1337         instead of adding REG_CFA_OFFSET note unconditionally.
1338         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1339         the above functions.  Call ix86_add_queued_cfa_restore_notes when
1340         needed.
1341
1342         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1343         force output of the label even for dwarf2out_do_cfi_asm.
1344         (add_fde_cfi): If -g2 and above and cfi might change CFA,
1345         force creation of CFI label and chain DW_CFA_set_loc jumping to it
1346         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
1347         caller.
1348         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1349         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1350         dwarf2out_cfi_label callers.
1351         * tree.h (dwarf2out_cfi_label): Adjust prototype.
1352         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1353         Adjust dwarf2out_cfi_label callers.
1354         * config/vax/vax.c (vax_output_function_prologue): Likewise.
1355
1356         * config/i386/i386.h (struct machine_cfa_state,
1357         struct machine_function): Guard with ifndef USED_FOR_TARGET
1358         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1359
1360         PR other/40024
1361         * emutls.c (__emutls_get_address): Change arr->size to mean number
1362         of allocated arr->data entries instead of # of slots + 1.
1363
1364         PR middle-end/40316
1365         * recog.c (peep2_reinit_state): New function.
1366         (peephole2_init_state): Use it at the end of a basic block and also
1367         when seeing a RTX_FRAME_RELATED_P insn.
1368
1369 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
1370
1371         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1372         fixuns_truncrfdi2): New.
1373         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1374         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1375         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1376         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1377         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1378         *recip_approx): Remove.
1379         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1380         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1381         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1382         move to div.md.
1383         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1384         setf_exp_rf): New.
1385
1386 2009-06-01  Ian Lance Taylor  <iant@google.com>
1387
1388         * attribs.c (register_attribute): Use CONST_CAST.
1389         * collect2.c (main): Use CONST_CAST2.
1390         (scan_prog_file): Likewise.
1391         * gcc.c (process_command, main): Likewise.
1392         * toplev.c (toplev_main): Likewise.
1393
1394         * c-typeck.c (handle_warn_cast_qual): New static function,
1395         partially broken out of build_c_cast.
1396         (build_c_cast): Call handle_warn_cast_qual.
1397         * doc/invoke.texi (Warning Options): Document new effect of
1398         -Wcast-qual.
1399
1400 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
1401
1402         * diagnostic.c (diagnostic_build_prefix): Always print columns.
1403         (diagnostic_report_current_module): Print columns.
1404         * common.opt (flag_show_column): Enable by default.
1405
1406 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
1407
1408         * alias.c (find_base_term): Check for NULL term before returning.
1409
1410 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1411
1412         Revert due to PR40320:
1413         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1414         * calls.c (emit_library_call_value_1): Don't force_operand for move
1415         and push insns.
1416
1417 2009-06-01  Olivier Hainque  <hainque@adacore.com>
1418             Eric Botcazou  <ebotcazou@adacore.com>
1419
1420         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1421         to be processed as a bitfield for constructor output purposes.
1422         * output.h (initializer_constant_valid_for_bitfield_p): Declare
1423         new function.
1424         * varasm.c (oc_local_state): New type, output_constructor
1425         local state to support communication with helpers.
1426         (oc_outer_state): New type, output_constructor outer state of
1427         relevance in recursive calls.
1428         (output_constructor_array_range): New output_constructor helper,
1429         extracted code for an array range element.
1430         (output_constructor_regular_field): New output_constructor helper,
1431         extracted code for an element that is not a bitfield.
1432         (output_constructor_bitfield): New output_constructor helper,
1433         extracted code for a bitfield element.  Accept an OUTER state
1434         argument for recursive processing.  Recurse on record or array
1435         CONSTRUCTOR values, possibly past noop conversions.
1436         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
1437         VALUE is a valid constant-valued expression for use in a static
1438         bit-field initializer.
1439         (output_constructor): Rework to use helpers.  Accept and honor an
1440         OUTER state argument for recursive calls.  Return total size.  Be
1441         prepared for nested constructors initializing bitfields.
1442         (output_constant): Feed OUTER in calls to output_constructor.
1443
1444 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1445
1446         * calls.c (emit_library_call_value_1): Don't force_operand for move
1447         and push insns.
1448
1449 2009-06-01  Nick Clifton  <nickc@redhat.com>
1450
1451         * doc/invoke.texi (IA-64 Options): Fix typo.
1452
1453 2009-06-01  Ira Rosen  <irar@il.ibm.com>
1454
1455         PR tree-optimization/39129
1456         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
1457         printed message.
1458         (vect_do_peeling_for_loop_bound): Use 
1459         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1460         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1461         (vect_loop_versioning): Likewise.
1462         (vect_create_cond_for_alias_checks): Fix indentation.
1463         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
1464         macros.
1465         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1466         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1467         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
1468         "control flow in loop".
1469         (vect_estimate_min_profitable_iters): Use 
1470         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1471         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1472         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1473         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1474         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
1475         statement belongs to a group of strided accesses with the exact code 
1476         check.
1477         (vectorizable_load): Likewise.
1478         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1479         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1480
1481 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
1482
1483         * config/freebsd-stdint.h: New file.
1484         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1485         Add freebsd-stdint.h to tm_file.
1486
1487 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
1488
1489         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1490         (thumb2_extendhidi2): Likewise.
1491
1492 2009-05-31  Ian Lance Taylor  <iant@google.com>
1493
1494         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
1495
1496 2009-05-31  Ian Lance Taylor  <iant@google.com>
1497
1498         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
1499         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1500         (ipa-reference.o): Depend upon gt-ipa-reference.h.
1501
1502 2009-05-31  Jason Merrill  <jason@redhat.com>
1503
1504         * tree-pretty-print.c (print_call_name): Take the callee, not the
1505         call itself.  Make non-static.  Use dump_function_name for functions.
1506         (dump_generic_node): Adjust.
1507         * diagnostic.h: Declare print_call_name.
1508         * gimple-pretty-print.c (dump_gimple_call): Use it.
1509
1510 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1511
1512         * config/sh/sh.md (ashldi3_std): New define_expand.
1513         (ashldi3): Use it.
1514
1515 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1516
1517         PR target/40313
1518         * config/sh/sh.c: Include debug.h.
1519         (sh_expand_epilogue): Emit a blockage insn before the frame
1520         pointer adjustment also when dwarf2out_do_frame returns true.
1521
1522 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
1523
1524         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1525         (thumb2_extendqidi2): New pattern.
1526
1527 2009-05-31  Ira Rosen  <irar@il.ibm.com>
1528
1529         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1530         mark phis for renaming.
1531         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1532         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1533         Call mark_sym_for_renaming.
1534         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
1535         * tree-vect-loop.c (vect_transform_loop): Remove
1536         vect_memsyms_to_rename initialization and a call to
1537         mark_set_for_renaming.
1538
1539 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
1540
1541         PR middle-end/40304
1542         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1543         frame related even if !set_cfa && style < 0.
1544
1545 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
1546
1547         * config/i386/mingw-tls.c: New file.
1548         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1549         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1550         defining _WIN32 but not __CYGWIN__.
1551
1552 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1553
1554         * configure.ac: Add MPC support.
1555         
1556         * config.in, configure: Regenerate.     
1557
1558 2009-05-29  Richard Henderson  <rth@redhat.com>
1559
1560         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1561         NOTE_INSN_BASIC_BLOCK.
1562         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1563         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1564         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1565         to be deleted.
1566         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1567         add in_use field.
1568         (add_cfi): Disable check redefining cfa away from drap.
1569         (lookup_cfa_1): Add remember argument; handle remember/restore.
1570         (lookup_cfa): Pass remember argument.
1571         (cfa_remember): New.
1572         (compute_barrier_args_size_1): Remove sibcall check.
1573         (dwarf2out_frame_debug_def_cfa): New.
1574         (dwarf2out_frame_debug_adjust_cfa): New.
1575         (dwarf2out_frame_debug_cfa_offset): New.
1576         (dwarf2out_frame_debug_cfa_register): New.
1577         (dwarf2out_frame_debug_cfa_restore): New.
1578         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1579         (dwarf2out_begin_epilogue): New.
1580         (dwarf2out_frame_debug_restore_state): New.
1581         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1582         DW_CFA_restore_state.
1583         (output_cfi_directive): Likewise.
1584         (convert_cfa_to_fb_loc_list): Likewise.
1585         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1586         * dwarf2out.h: Update.
1587         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1588         (copy_insn_1): Early out for null.
1589         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1590         and dwarf2out_frame_debug_restore_state.
1591         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1592         (prologue_insn_hash, epilogue_insn_hash): New.
1593         (free_after_compilation): Adjust freeing accordingly.
1594         (record_insns): Create hash table if needed; push insns into
1595         hash instead of array.
1596         (maybe_copy_epilogue_insn): New.
1597         (contains): Search hash table instead of array.
1598         (sibcall_epilogue_contains): Remove.
1599         (thread_prologue_and_epilogue_insns): Split eh_return insns
1600         and mark them as epilogues.
1601         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1602         scanning in terms of basic blocks.
1603         * insn-notes.def (CFA_RESTORE_STATE): New.
1604         * jump.c (returnjump_p_1): Accept EH_RETURN.
1605         (eh_returnjump_p_1, eh_returnjump_p): New.
1606         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1607         CFA_REGISTER, CFA_RESTORE): New.
1608         * rtl.def (EH_RETURN): New.
1609         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1610
1611         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1612         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1613
1614         * config/i386/i386.c (gen_push): Update cfa state.
1615         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
1616         add a CFA_ADJUST_CFA note.
1617         (ix86_dwarf_handle_frame_unspec): Remove.
1618         (ix86_expand_prologue): Update cfa state.
1619         (ix86_emit_restore_reg_using_pop): New.
1620         (ix86_emit_restore_regs_using_pop): New.
1621         (ix86_emit_leave): New.
1622         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1623         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1624         * config/i386/i386.h (struct machine_cfa_state): New.
1625         (ix86_cfa_state): New.
1626         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1627         (eh_return_internal): Merge from eh_return_<mode>,
1628         use eh_return rtx, split w/ epilogue.
1629
1630 2009-05-29  Ian Lance Taylor  <iant@google.com>
1631
1632         * builtins.c (validate_gimple_arglist): Don't use va_arg with
1633         enum type.
1634         * calls.c (emit_library_call_value_1): Likewise.
1635
1636         * c-typeck.c (c_build_va_arg): New function.
1637         * c-tree.h (c_build_va_arg): Declare.
1638         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1639         instead of build_va_arg.
1640
1641 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1642
1643         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1644         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1645         (ptr_difference_cost): Use affine combinations to compute it.
1646         (difference_cost): Likewise.
1647         (get_computation_cost_at): Compute more accurate cost for addresses
1648         if the ratio is a multiplier allowed in addresses.
1649         For non-addresses, consider that an additional offset or symbol is
1650         added only once.
1651
1652 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
1653
1654         * config/i386/i386.c (ix86_decompose_address): Avoid useless
1655         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
1656
1657         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1658         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1659         (prefix_rex): For UNIT_MMX don't imply the prefix by default
1660         if MODE_DI.
1661         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1662         to 1 for TYPE_SSE{IADD1,CVT1}.
1663         (prefix_vex_imm8): Removed.
1664         (length_vex): Only pass 1 as second argument to
1665         ix86_attr_length_vex_default if prefix_extra is 0.
1666         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1667         (length): For prefix vex computation use length_immediate
1668         attribute instead of prefix_vex_imm8.
1669         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1670         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1671         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1672         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1673         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1674         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1675         a space in between the operands.
1676         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
1677         if one operand is 0xff and the other one si, di, bp or sp.
1678         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1679         other one si, di, bp or sp.
1680         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1681         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1682         type and mode attributes.
1683         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1684         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1685         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1686         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1687         prefix_data16 attribute iff MODE_DF.
1688         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1689         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1690         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1691         constm128_operand in length_immediate computation.
1692         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
1693         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1694         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1695         length_immediate attribute to 1.
1696         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1697         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1698         for certain alternatives.
1699         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1700         prefix_data16 attribute if MODE_V1DF.
1701         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1702         length_immediate to 1.
1703         (set_got_rex64, set_rip_rex64): Remove length attribute, set
1704         length_address to 4, set mode attribute to MODE_DI.
1705         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
1706         (fxam<mode>2_i387): Set length attribute to 4.
1707         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1708         *prefetch_3dnow_rex): Override length_address attribute.
1709         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1710         attributes.
1711         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1712         (constm128_operand): Removed.
1713         * config/i386/i386.c (memory_address_length): For
1714         disp && !index && !base in 64-bit mode account for SIB byte if
1715         print_operand_address can't optimize disp32 into disp32(%rip)
1716         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
1717         for fs: or gs: segment.
1718         (ix86_attr_length_immediate_default): When checking if shortform
1719         is possible, truncate immediate to the length of the non-shortened
1720         immediate.
1721         (ix86_attr_length_address_default): Ignore MEM_P operands
1722         with X constraint.
1723         (ix86_attr_length_vex_default): Only check for DImode on
1724         GENERAL_REG_P operands.
1725         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1726         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1727         (sse_cvttps2pi): Clear prefix_rep attribute.
1728         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1729         attribute.
1730         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1731         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1732         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1733         iff operand 2 is const_int_operand.
1734         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1735         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1736         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
1737         instead of vex.
1738         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1739         prefix_data16.
1740         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1741         prefix_data16 attribute for movlpd and movhpd instructions.
1742         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
1743         length_immediate for shufpd instruction.
1744         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1745         (avx_cmpp<avxmodesuffixf2c><mode>3,
1746         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1747         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1748         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
1749         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
1750         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1751         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1752         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1753         prefix_data16 attribute for the first alternative to 1.
1754         (*avx_loadlps): Override length_immediate for the first alternative.
1755         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1756         attributes for second alternative.
1757         (*vec_concatv2sf_sse4_1): Override length_immediate and
1758         prefix_data16 attributes for second alternative.
1759         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1760         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1761         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1762         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1763         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1764         prefix_data16 and length_immediate to 1.
1765         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1766         to 1.
1767         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
1768         prefix_extra attribute for variants that don't have 0f prefix alone.
1769         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
1770         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1771         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1772         *sse4_1_pextrd): Set length_immediate to 1.
1773         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
1774         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1775         to 1.
1776         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1777         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1778         length_immediate to 1 for second alternative.
1779         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1780         prefix_extra and length_immediate attributes for the first
1781         alternative.
1782         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1783         first alternative.
1784         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
1785         to 1 for the first and third alternative.
1786         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1787         alternative.
1788         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1789         attribute.
1790         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1791         attribute to 0.
1792         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1793         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1794         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1795         *avx_psign<mode>3): Set prefix_extra attribute to 1.
1796         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1797         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1798         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1799         ssse3_psign<mode>3): Override prefix_rex attribute.
1800         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
1801         (ssse3_palignrti): Override length_immediate to 1.
1802         (ssse3_palignrdi): Override length_immediate to 1, override
1803         prefix_rex attribute.
1804         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
1805         (sse4a_extrqi): Override length_immediate to 2.
1806         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
1807         (sse4a_insertq): Override prefix_data16 to 0.
1808         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1809         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1810         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1811         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1812         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1813         and length_immediate to 1.
1814         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1815         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1816         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1817         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1818         and length_immediate to 1.
1819         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1820         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1821         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1822         avx_ptest256): Override prefix_extra to 1.
1823         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1824         Override prefix_data16 and length_immediate to 1.
1825         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1826         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1827         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1828         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1829         prefix_data16 to 0 and prefix_extra to 2.
1830         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1831         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1832         attribute.
1833         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1834         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1835         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1836         and prefix_extra to 2.
1837         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1838         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1839         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1840         avx_vpermilvar<mode>3,
1841         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1842         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1843         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1844         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1845         Override prefix_extra to 1.
1846         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1847         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1848         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1849         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1850         prefix_extra and length_immediate to 1.
1851         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1852         modrm to 0.
1853         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1854         to 1 for the first alternative.
1855         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1856         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1857         cases.
1858         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1859         *movv2sf_internal_avx, *movv2sf_internal): Override
1860         prefix_rep attribute for certain alternatives.
1861         (*mov<mode>_internal): Override prefix_rep or prefix_data16
1862         attributes for certain alternatives.
1863         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1864         attributes for certain alternatives.
1865         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1866         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1867         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1868         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1869         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1870         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1871         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1872         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1873         length_immediate to 1 if operand 2 is const_int_operand.
1874         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
1875         *vec_extractv2si_1): Set length_immediate attribute to 1.
1876         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1877         using old 3DNOW insn rather than SSE/3DNOW_A.
1878         (mmx_emms, mmx_femms): Clear modrm attribute.
1879
1880 2009-05-29  Martin Jambor  <mjambor@suse.cz>
1881
1882         * tree-sra.c:  New implementation of SRA.
1883
1884         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1885         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1886         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1887         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1888         (SRA_MAX_STRUCTURE_COUNT): Removed.
1889         (SRA_FIELD_STRUCTURE_RATIO): Removed.
1890         * doc/invoke.texi (sra-max-structure-size): Removed.
1891         (sra-field-structure-ratio): Removed.
1892
1893 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
1894
1895         PR middle-end/40291
1896         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1897         before expansion.
1898
1899 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
1900
1901         PR rtl-optimization/40101
1902         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1903         seqno.  Adjust comment.
1904         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
1905         inserting bookkeeping before a jump, the jump is not scheduled.
1906         When no positive seqno found, provide a value.  Add comment.
1907
1908 2009-05-29  Richard Guenther  <rguenther@suse.de>
1909
1910         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1911         short-cutting on the first component.
1912
1913 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
1914
1915         PR middle-end/39958
1916         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1917         for trees other than decls/types.
1918
1919 2009-05-29  Richard Guenther  <rguenther@suse.de>
1920
1921         * tree-ssa-operands.c (get_expr_operands): Do not handle
1922         INDIRECT_REFs in the handled-component case.  Remove
1923         unused get_ref_base_and_extent case.
1924         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1925         tree_low_cst and host_integerp where possible.
1926         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1927         codes for equivalence.
1928         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1929
1930 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
1931
1932         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1933         to tmake_file for i[34567]86-*-cygwin*. 
1934
1935 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
1936
1937         PR target/40017
1938         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1939         (altivec_categorize_keyword, init_vector_keywords,
1940         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1941         similar to bool.
1942
1943 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
1944
1945         * tree.c (handle_dll_attribute): Check if node is
1946         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1947
1948 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
1949
1950         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1951         component.
1952         (thumb2_zero_extendqidi2): Likewise.
1953
1954 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1955
1956         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1957         instead of gen_movrt.
1958         * config/sh/sh.md (movrt): Remove.
1959
1960 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
1961
1962         * doc/invoke.texi (IA-64 Options):
1963         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
1964         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1965         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1966         -msched-prefer-non-control-spec-insns,
1967         -msched-stop-bits-after-every-cycle,
1968         -msched-count-spec-in-critical-path,
1969         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
1970         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
1971         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1972         and -msched-spec-verbose.
1973
1974 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
1975
1976         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
1977         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1978         error if used.
1979         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1980
1981 2009-05-28  Richard Guenther  <rguenther@suse.de>
1982
1983         * tree-ssa-alias.c (ao_ref_init): New function.
1984         (ao_ref_base): Likewise.
1985         (ao_ref_base_alias_set): Likewise.
1986         (ao_ref_alias_set): Likewise.
1987         (refs_may_alias_p_1): Change signature.
1988         (refs_may_alias_p): Adjust.
1989         (refs_anti_dependent_p): Likewise.
1990         (refs_output_dependent_p): Likewise.
1991         (call_may_clobber_ref_p_1): Change signature.
1992         (call_may_clobber_ref_p): Adjust.
1993         (stmt_may_clobber_ref_p_1): New function split out from ...
1994         (stmt_may_clobber_ref_p): ... here.
1995         (maybe_skip_until): Adjust signature.
1996         (get_continuation_for_phi): Likewise.
1997         (walk_non_aliased_vuses): Likewise.
1998         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1999         (ao_ref_init): Declare.
2000         (ao_ref_base): Likewise.
2001         (ao_ref_alias_set): Likewise.
2002         (stmt_may_clobber_ref_p_1): Likewise.
2003         (walk_non_aliased_vuses): Adjust.
2004         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2005         (get_ref_from_reference_ops): remove.
2006         (vn_reference_lookup_2): Adjust signature.
2007         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
2008         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2009         (vn_reference_lookup): Adjust.
2010         (vn_reference_insert): Likewise.
2011         (vn_reference_insert_pieces): Adjust signature.
2012         (visit_reference_op_call): Adjust.
2013         * tree-ssa-pre.c (get_expr_type): Simplify.
2014         (phi_translate_1): Adjust.
2015         (compute_avail): Likewise.
2016         (translate_vuse_through_block): Do not re-build trees.
2017         (value_dies_in_block_x): Likewise.
2018         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2019         fields.
2020         (vn_reference_lookup_pieces): Adjust declaration.
2021         (vn_reference_insert_pieces): Likewise.
2022
2023 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
2024
2025         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2026         with checking disabled.
2027
2028 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
2029
2030         PR target/37216
2031
2032         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
2033         macro definition for support of three-operand format aligned
2034         .comm directive in assembler on cygwin/pe/mingw target OS.
2035         * configure:  Regenerate.
2036         * config.h:  Regenerate.
2037
2038         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
2039         aligned form of .comm directive if -mpe-aligned-commons is in effect.
2040         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
2041
2042         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
2043         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
2044
2045 2009-05-28  Ira Rosen  <irar@il.ibm.com>
2046
2047         PR tree-optimization/40254
2048         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2049         in analysis of basic blocks.
2050
2051 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
2052
2053         PR middle-end/33699
2054         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
2055         * target-def.h (TARGET_CONST_ANCHOR): New macro.
2056         (TARGET_INITIALIZER): Use it.
2057         * cse.c (CHEAPER): Move it up to the other macros.
2058         (insert): Rename this ...
2059         (insert_with_costs): ... to this.  Add cost parameters.  Update
2060         function comment.
2061         (insert): New function.  Call insert_with_costs.
2062         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2063         find_reg_offset_for_const, try_const_anchors): New functions.
2064         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
2065         when using a const-anchor.  Call insert_const_anchors.
2066         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2067         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2068
2069 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2070
2071         * tree-inline.c (remap_decls): Enable nonlocalized variables
2072         when not optimizing.
2073
2074 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2075
2076         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2077         Simplify other tests involving optimize.
2078
2079 2009-05-27  Tom Tromey  <tromey@redhat.com>
2080
2081         * unwind-dw2.c (_Unwind_DebugHook): New function.
2082         (uw_install_context): Call _Unwind_DebugHook.
2083
2084 2009-05-27  Tom Tromey  <tromey@redhat.com>
2085
2086         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2087
2088 2009-05-27  Ian Lance Taylor  <iant@google.com>
2089
2090         * Makefile.in (LINKER, LINKER_FLAGS): Define.
2091         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2092         (ALL_LINKERFLAGS): Define.
2093         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2094         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2095         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2096         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2097         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2098         $(LINKER_FOR_BUILD).
2099         (build/gcov-iov$(build_exeext)): Likewise.
2100
2101 2009-05-27  Julian Brown  <julian@codesourcery.com>
2102
2103         * gcse.c (target.h): Include.
2104         (can_assign_to_reg_without_clobbers_p): Check that the target allows
2105         copy of argument to a pseudo register.
2106
2107 2009-05-27  Diego Novillo  <dnovillo@google.com>
2108
2109         * tree-ssa-live.c (dump_scope_block): Document arguments.
2110         (dump_scope_blocks): Document.
2111         (debug_scope_blocks): New.
2112         * tree-flow.h (debug_scope_blocks): Declare.
2113
2114 2009-05-21  Denis Chertykov  <denisc@overta.ru>
2115
2116         * doc/contrib.texi (Contributors): Add myself to the list.
2117
2118 2009-05-27  Olivier Hainque  <hainque@adacore.com>
2119
2120         * expr.c (target_align): New function.  Alignment the TARGET of an
2121         assignment may be assume to have.
2122         (highest_pow2_factor_for_target): Use it instead of relying on
2123         immediate tree attributes of TARGET, not necessarily honored when
2124         intermediate bitfields are involved.
2125         
2126 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2127
2128         PR target/40266
2129         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2130         AVX, SSE4, AES, PCLMUL and POPCNT.
2131
2132 2009-05-27  Diego Novillo  <dnovillo@google.com>
2133
2134         * tree-pretty-print.c (dump_location): New.
2135         (dump_generic_node): Call it.
2136         Factor code to handle BLOCK nodes ...
2137         (dump_block_node): ... here.
2138
2139 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2140
2141         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2142         with it.
2143         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2144         included.
2145         * gcc-plugin.h: Include config.h and system.h.
2146         (IN_GCC): Define if not defined.
2147
2148 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
2149
2150         PR middle-end/40249
2151         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2152         with -fno-inline.
2153
2154 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
2155
2156         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2157         applicable.
2158         * config/m32r/m32r.h: Ditto.
2159         * config/m32r/m32r.md: Ditto.
2160         * config/m32r/predicates.md: Ditto.
2161
2162 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
2163
2164         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2165
2166 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
2167
2168         * doc/plugins.texi
2169         (Loading plugins): typo.
2170         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2171         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2172         (Interacting with the GCC Garbage Collector): Added new section.
2173         (Giving information about a plugin): Added new section for
2174         PLUGIN_INFO.
2175         * ggc.h (ggc_register_root_tab): Added declaration.
2176         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2177         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2178         (register_callback): Improved comment in declaration.
2179         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2180         (extra_root_vec) Added static variable for dynamic roots registration.
2181         (ggc_register_root_tab) Added new routine.
2182         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2183         PLUGIN_GGC_MARKING event.
2184         * ggc-zone.c: Include plugin.h.
2185         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2186         * ggc-page.c: Include plugin.h.
2187         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2188         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2189         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2190         (register_callback): check lack of callbacks for
2191         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2192         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2193         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2194         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2195         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2196         dependency on plugin.h.
2197         (plugin.o): Added dependency on ggc.h...
2198
2199 2009-05-26  Richard Guenther  <rguenther@suse.de>
2200
2201         PR middle-end/40248
2202         Revert
2203         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2204         with mismatched comparison modes.
2205
2206         * expr.c (expand_expr_real_1): Expand the operand of a
2207         VIEW_CONVERT_EXPR in its natural mode.
2208
2209 2009-05-26  Ian Lance Taylor  <iant@google.com>
2210
2211         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2212         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2213         (ALL_COMPILERFLAGS): Define.
2214         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2215         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2216         (collect2$(exeext), collect2.o): Likewise.
2217         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2218         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2219         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2220         (libbackend.o, intl.o, cppdefault.o): Likewise.
2221         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2222         (build/%.o): Use $(COMPILER_FOR_BUILD).
2223         (build/gen%$(build_exeext)): Likewise.
2224         (build/gcov-iov$(build_exeext)): LIkewise.
2225         * config/t-darwin (darwin.o): Use $(COMPILER).
2226         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2227         * config/t-sol2 (sol2-c.o): Likewise.
2228         (sol2.o): Likewise.
2229         * config/t-vxworks (vxworks.o): Likewise.
2230         * config/x-darwin (host-darwin.o): Likewise.
2231         * config/x-hpux (host-hpux.o): Likewise.
2232         * config/x-linux (host-linux.o): Likewise.
2233         * config/x-solaris (host-solaris.o): Likewise.
2234         * config/alpha/x-alpha (driver-alpha.o): Likewise.
2235         * config/arm/t-arm (arm-c.o): Likewise.
2236         * config/arm/t-pe (pe.o): Likewise.
2237         * config/arm/t-wince-pe (pe.o): Likewise.
2238         * config/i386/t-cygming (winnt.o): Likewise.
2239         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2240         * config/i386/t-cygwin (cygwin1.o): Likewise.
2241         (cygwin2.o): Likewise.
2242         * config/i386/t-i386 (i386-c.o): Likewise.
2243         * config/i386/t-interix (winnt.o): Likewise.
2244         * config/i386/t-netware (netware.o): Likewise.
2245         * config/i386/t-nwld (nwld.o): Likewise.
2246         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2247         * config/i386/x-i386 (driver-i386.o): Likewise.
2248         * config/i386/x-cygwin (host-cygwin.o): Likewise.
2249         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2250         * config/ia64/t-ia64 (ia64-c.o): Likewise.
2251         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2252         * config/mips/x-native (driver-native.o): Likewise.
2253         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2254         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2255         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2256         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2257         * config/score/t-score-elf (score7.o): Likewise.
2258         (score3.o): Likewise.
2259         * config/sh/t-sh (sh-c.o): Likewise.
2260         * config/sh/t-symbian (sh-c.o): Likewise.
2261         (symbian.o): Likewise.
2262         * config/spu/t-spu-elf (spu-c.o): Likewise.
2263         * config/v850/t-v850 (v850-c.o): Likewise.
2264         * config/v850/t-v850e (v850-c.o): Likewise.
2265
2266 2009-05-26  Richard Guenther  <rguenther@suse.de>
2267
2268         PR tree-optimization/40122
2269         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2270         VECTOR_CSTs if possible.
2271         (fold_gimple_assign): Likewise.
2272
2273 2009-05-26  Richard Guenther  <rguenther@suse.de>
2274
2275         PR middle-end/40252
2276         * fold-const.c (fold_binary): Use the correct types for building
2277         rotates.
2278
2279 2009-05-26  Richard Guenther  <rguenther@suse.de>
2280
2281         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2282         redundant calls to merge_alias_info.
2283         (bump_vector_ptr): Likewise.
2284         * tree-ssa-copy.c (merge_alias_info): Remove.
2285         (replace_exp_1): Remove call to merge_alias_info.
2286         (propagate_tree_value): Likewise.
2287         (fini_copy_prop): Propagate points-to info.
2288         * tree-flow.h (merge_alias_info): Remove.
2289
2290 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
2291
2292         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2293
2294 2009-05-25  Jan Hubicka  <jh@suse.cz>
2295
2296         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2297         * cgraph.h (struct inline_summary): New filed self_wize,
2298         size_inlining_benefit, self_time and time_inlining_benefit.
2299         (struct cgraph_global_info): Replace insns by time ans size fields.
2300         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2301         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2302         (ipcp_update_callgraph): Do not touch function bodies.
2303         * ipa-inline.c: Include except.h
2304         (MAX_TIME): New constant.
2305         (overall_insns): Remove.
2306         (leaf_node_p): New.
2307         (overall_size, max_benefit): New static variables.
2308         (cgraph_estimate_time_after_inlining): New function.
2309         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2310         (cgraph_clone_inlined_nodes): Update size.
2311         (cgraph_mark_inline_edge): Update size.
2312         (cgraph_estimate_growth): Use size info.
2313         (cgraph_check_inline_limits): Check size.
2314         (cgraph_default_inline_p): Likewise.
2315         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2316         (cgraph_decide_recursive_inlining): Check size.
2317         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2318         and times.
2319         (cgraph_decide_inlining): Likewise.
2320         (cgraph_decide_inlining_incrementally): Likewise; honor
2321         PARAM_EARLY_INLINING_INSNS.
2322         (likely_eliminated_by_inlining_p): New predicate.
2323         (estimate_function_body_sizes): New function.
2324         (compute_inline_parameters): Use it.
2325         * except.c (must_not_throw_labels): New function.
2326         * except.h (must_not_throw_labels): Declare.
2327         * tree-inline.c (init_inline_once): Kill inlining_weigths
2328         * tree-ssa-structalias.c: Avoid uninitialized warning.
2329         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2330         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2331         (PARAM_INLINE_CALL_COST): Remove.
2332         (PARAM_EARLY_INLINING_INSNS): New.
2333
2334 2009-05-25  Richard Guenther  <rguenther@suse.de>
2335
2336         PR tree-optimization/36327
2337         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
2338         callback for reference translation or lookup at the point of may-defs.
2339         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2340         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2341         for union COMPONENT_REFs.
2342         (vn_reference_lookup_3): New callback.  Lookup from memset
2343         and CONSTRUCTOR assignment, translate through struct copies.
2344         (vn_reference_lookup_pieces): Make sure to not free the
2345         passed operands array.  Adjust walk_non_aliased_vuses call.
2346         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2347         make sure we do not leak memory.
2348
2349 2009-05-25  Richard Guenther  <rguenther@suse.de>
2350
2351         * tree-ssa-alias.h (dump_points_to_solution): Declare.
2352         * tree-inline.c (expand_call_inline): Reset the escaped and
2353         callused solutions.
2354         * tree-ssa-structalias.c (pass_build_ealias): New.
2355         * tree-pass.h (pass_build_ealias): Declare.
2356         * passes.c (init_optimization_passes): Add PTA during 
2357         early optimizations.
2358         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2359         and CALLUSED solutions.
2360         (dump_points_to_solution): New function, split out from ...
2361         (dump_points_to_info_for): ... here.
2362         * tree-parloops.c (parallelize_loops): Reset the escaped and
2363         callused solutions.
2364
2365 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2366
2367         PR bootstrap/40027
2368         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2369         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2370
2371 2009-05-25  Ira Rosen  <irar@il.ibm.com>
2372
2373         PR tree-optimization/40238
2374         * tree-vect-stmts.c (vect_init_vector): Insert initialization
2375         statements after basic block's labels.
2376         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
2377         to free the allocated memory.
2378
2379 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2380
2381         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2382         return address with a USE.
2383
2384 2009-05-24  Richard Guenther  <rguenther@suse.de>
2385
2386         PR middle-end/40233
2387         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2388         array type from the main variant of the inner type.
2389
2390 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2391
2392         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2393         definition to bool (from int) to un-break build.
2394         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2395
2396 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
2397
2398         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2399         discard_stmt_changes): Delete.
2400         * tree-ssa-operands.c (scb_stack): Delete.
2401         (init_ssa_operands): Do not initialize it.
2402         (fini_ssa_operands): Do not free it.
2403         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2404
2405         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
2406         update_stmt, remove the others.  Fix comments.
2407         * tree-dfa.c (optimize_stack_restore): Likewise.
2408         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2409         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2410         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2411         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2412         Likewise.
2413         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2414         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
2415         (dom_opt_finalize_block): Likewise, adjusting access to
2416         stmts_to_rescan.
2417         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2418         (stmts_to_rescan): Change item type to gimple.
2419         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2420
2421 2009-05-24  Ira Rosen  <irar@il.ibm.com>
2422
2423         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2424         * tree-pass.h (pass_slp_vectorize): New pass.
2425         * params.h (SLP_MAX_INSNS_IN_BB): Define.
2426         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2427         * tree-vectorizer.c (timevar.h): Include.
2428         (user_vect_verbosity_level): Declare.
2429         (vect_location): Fix comment.
2430         (vect_set_verbosity_level): Update user_vect_verbosity_level
2431         instead of vect_verbosity_level.
2432         (vect_set_dump_settings): Add an argument. Ignore user defined
2433         verbosity if dump flags require higher level of verbosity. Print to
2434         stderr only for loop vectorization.
2435         (vectorize_loops): Update call to vect_set_dump_settings.
2436         (execute_vect_slp): New function.
2437         (gate_vect_slp): Likewise.
2438         (struct gimple_opt_pass pass_slp_vectorize): New.
2439         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2440         access its members.
2441         (vec_info_for_bb): New function.
2442         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2443         (VECTORIZATION_ENABLED): New macro.
2444         (SLP_ENABLED, SLP_DISABLED): Likewise.
2445         (vect_is_simple_use): Add bb_vec_info argument.
2446         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2447         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2448         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2449         vect_schedule_slp, vect_analyze_slp): Likewise.
2450         (vect_analyze_stmt): Add slp_tree argument.
2451         (find_bb_location): Declare.
2452         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2453         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2454         (vect_analyze_loop_operations, vect_analyze_loop,
2455         get_initial_def_for_induction, vect_create_epilog_for_reduction,
2456         vect_finalize_reduction, vectorizable_reduction,
2457         vectorizable_live_operation, vect_transform_loop): Likewise.
2458         * tree-data-ref.c (dr_analyze_innermost): Update comment,
2459         skip evolution analysis if analyzing a basic block.
2460         (dr_analyze_indices): Likewise.
2461         (initialize_data_dependence_relation): Skip the test whether the
2462         object is invariant for basic blocks.
2463         (compute_all_dependences): Skip dependence analysis for data
2464         references in basic blocks.
2465         (find_data_references_in_stmt): Don't fail in case of invariant
2466         access in basic block.
2467         (find_data_references_in_bb): New function.
2468         (find_data_references_in_loop): Move code to
2469         find_data_references_in_bb and add a call to it.
2470         (compute_data_dependences_for_bb): New function.
2471         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2472         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2473         that STEP is 0.
2474         (vect_analyze_data_ref_dependence): Check for interleaving in case of
2475         unknown dependence in basic block and fail in case of dependence in
2476         basic block.
2477         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2478         dependence instances from either loop or basic block vectorization
2479         info.
2480         (vect_compute_data_ref_alignment): Check if it is loop vectorization
2481         before calling nested_in_vect_loop_p.
2482         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2483         dependence instances from either loop or basic block vectorization
2484         info.
2485         (vect_verify_datarefs_alignment): Likewise.
2486         (vect_enhance_data_refs_alignment): Adjust function calls.
2487         (vect_analyze_data_refs_alignment): Likewise.
2488         (vect_analyze_group_access): Fix printing. Skip different checks if
2489         DR_STEP is 0. Keep strided stores either in loop or basic block
2490         vectorization data structure. Fix indentation.
2491         (vect_analyze_data_ref_access): Fix comments, allow zero step in
2492         basic blocks.
2493         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2494         dependence instances from either loop or basic block vectorization
2495         info.
2496         (vect_analyze_data_refs): Update comment. Call
2497         compute_data_dependences_for_bb to analyze basic blocks.
2498         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2499         case of loop vectorization. In case of basic block vectorization use
2500         data-ref itself as a base.
2501         (vect_create_data_ref_ptr): In case of basic block vectorization:
2502         don't advance the pointer, add new statements before the current
2503         statement.  Adjust function calls.
2504         (vect_supportable_dr_alignment): Support only aligned accesses in
2505         basic block vectorization.
2506         * common.opt (ftree-slp-vectorize): New flag.
2507         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2508         (vect_pattern_recog_1): Likewise.
2509         * tree-vect-stmts.c (process_use): Likewise.
2510         (vect_init_vector): Add new statements in the beginning of the basic
2511         block in case of basic block SLP.
2512         (vect_get_vec_def_for_operand): Adjust function calls.
2513         (vect_finish_stmt_generation): Likewise.
2514         (vectorizable_call): Add assert that it is loop vectorization, adjust
2515         function calls.
2516         (vectorizable_conversion, vectorizable_assignment): Likewise.
2517         (vectorizable_operation): In case of basic block SLP, take
2518         vectorization factor from statement's type and skip the relevance
2519         check. Adjust function calls.
2520         (vectorizable_type_demotion): Add assert that it is loop
2521         vectorization, adjust function calls.
2522         (vectorizable_type_promotion): Likewise.
2523         (vectorizable_store): Check for outer loop only in case of loop
2524         vectorization. Adjust function calls. For basic blocks, skip the
2525         relevance check and don't advance pointers.
2526         (vectorizable_load): Likewise.
2527         (vectorizable_condition): Add assert that it is loop vectorization,
2528         adjust function calls.
2529         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2530         that it is not reduction, get vector type, call only supported
2531         functions, skip loop specific parts.
2532         (vect_transform_stmt): Check for outer loop only in case of loop
2533         vectorization.
2534         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2535         (vect_is_simple_use): Fix comment, add new argument, fix conditions
2536         for external definition.
2537         * passes.c (pass_slp_vectorize): New pass.
2538         * tree-vect-slp.c (find_bb_location): New function.
2539         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2540         check for patterns only in loops.
2541         (vect_build_slp_tree): Add argument, adjust function calls, fail in
2542         case of multiple types in basic block SLP.
2543         (vect_mark_slp_stmts_relevant): New function.
2544         (vect_supported_load_permutation_p): Fix comment.
2545         (vect_analyze_slp_instance): Add argument. In case of basic block
2546         SLP, take vectorization factor from statement's type, check that
2547         unrolling factor is 1. Adjust function call. Save SLP instance in
2548         either loop or basic block vectorization structure. Return FALSE,
2549         if SLP failed.
2550         (vect_analyze_slp): Add argument. Get strided stores groups from
2551         either loop or basic block vectorization structure. Return FALSE
2552         if basic block SLP failed.
2553         (new_bb_vec_info): New function.
2554         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2555         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2556         (vect_schedule_slp): Add argument. Get SLP instances from either
2557         loop or basic block vectorization structure. Set vectorization factor
2558         to be 1 for basic block SLP.
2559         (vect_slp_transform_bb): New function.
2560         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2561
2562 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
2563
2564         * final.c (shorten_branches): Do not align labels for jump tables.
2565         (final_scan_insn): Use JUMP_TABLE_DATA_P.
2566
2567 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2568
2569         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2570         Remove outdated reference to flow.c and fix nits.
2571         * doc/gccint.texi: Tweak RTL description.
2572         * doc/rtl.texi: Likewise.
2573
2574 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
2575
2576         * config/avr/avr.c: Change my email address.
2577         * config/avr/avr.h: Likewise.
2578         * config/avr/avr.md: Likewise.
2579         * config/avr/avr-protos.h: Likewise.
2580         * config/avr/libgcc.S: Likewise.
2581
2582 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2583
2584         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2585         (spu_split_load, spu_split_store): Change return type to int.
2586         (spu_split_convert): Declare.
2587         * config/spu/predicates.md (spu_mem_operand): Remove.
2588         (spu_mov_operand): Update.
2589         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2590         * config/spu/spu.c (regno_aligned_for_load): Remove.
2591         (reg_aligned_for_addr, spu_expand_load): Define.
2592         (spu_expand_extv): Reimplement and handle MEM.
2593         (spu_expand_insv): Handle MEM.
2594         (spu_sched_reorder): Handle insn's with length 0.
2595         (spu_legitimate_address_p): Reimplement.
2596         (store_with_one_insn_p): Return TRUE for any mode with size
2597         larger than 16 bytes.
2598         (address_needs_split): Define.
2599         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2600         operands.
2601         (spu_convert_move): Define.
2602         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
2603         (spu_split_store): Change all MEM's to TImode.
2604         (spu_init_expanders): Preallocate registers that correspond to
2605         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2606         mark_reg_pointer.
2607         (spu_split_convert): Define.
2608         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2609         (_move<mode>, _movdi, _movti): Update predicate and condition.
2610         (load, store): Change to define_split.
2611         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2612         extend<mode>ti2.
2613         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2614         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2615         define_insn_and_split of lshr<mode>3.
2616         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2617         (<v>ashr<mode>3_imm): Define.
2618         (extv, extzv, insv): Allow MEM operands.
2619         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2620         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2621         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2622         (_spu_convert2): Change to define_insn_and_split and remove the
2623         corresponding define_peephole2.
2624         (stack_protect_set, stack_protect_test, stack_protect_test_si):
2625         Change predicates to memory_operand.
2626
2627 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
2628
2629         * config/arm/thumb2.md: Add 16-bit multiply instructions.
2630
2631 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2632
2633         PR tree-optimization/40219
2634         * tree.c (iterative_hash_expr): Make sure the builtin function is
2635         a normal builtin function and not a front end or back end builtin
2636         before indexing into the built_in_decls array.
2637
2638 2009-05-22  Richard Guenther  <rguenther@suse.de>
2639
2640         PR middle-end/38964
2641         * alias.c (write_dependence_p): Do not use TBAA for answering
2642         anti-dependence or output-dependence.
2643         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2644         (emit_pointer_definition): Remove.
2645         (emit_alias_warning): Likewise.
2646         (find_what_var_points_to): Remove TBAA pruning code.
2647         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
2648         violations.
2649         (compute_points_to_sets): Remove code computing the set of
2650         dereferenced pointers.
2651         * tree-data-ref.c (dr_may_alias_p): Properly use the split
2652         oracle for querying anti and output dependencies.
2653         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2654         if TBAA may be applied.
2655         (refs_anti_dependent_p): New function.
2656         (refs_output_dependent_p): Likewise.
2657         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2658         (refs_output_dependent_p): Likewise.
2659         * doc/tree-ssa.texi (Memory model): New section.
2660         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2661         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2662         * cfgexpand.c (expand_gimple_basic_block): Do not handle
2663         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2664         * expr.c (expand_expr_real_1): Likewise.
2665         * gimple-low.c (lower_stmt): Likewise.
2666         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2667         (dump_gimple_cdt): Remove.
2668         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2669         (gimple_size): Likewise.
2670         (walk_gimple_op): Likewise.
2671         (is_gimple_stmt): Likewise.
2672         (walk_stmt_load_store_addr_ops): Likewise.
2673         (gimple_build_cdt): Remove.
2674         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2675         * gimple.h (gimple_cdt_new_type): Remove.
2676         (gimple_cdt_new_type_ptr): Likewise.
2677         (gimple_cdt_set_new_type): Likewise.
2678         (gimple_cdt_location): Likewise.
2679         (gimple_cdt_location_ptr): Likewise.
2680         (gimple_cdt_set_location): Likewise.
2681         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2682         * tree-cfg.c (remove_useless_stmts_1): Do not handle
2683         GIMPLE_CHANGE_DYNAMIC_TYPE.
2684         (verify_types_in_gimple_stmt): Likewise.
2685         * tree-inline.c (estimate_num_insns): Likewise.
2686         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2687         (copy_decl_to_var): Likewise.
2688         (copy_result_decl_to_var): Likewise.
2689         * tree-pretty-print.c (dump_generic_node): Do not handle
2690         CHANGE_DYNAMIC_TYPE_EXPR.
2691         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2692         * tree-ssa-operands.c (get_expr_operands): Likewise.
2693         * tree-ssa-structalias.c (struct variable_info): Remove
2694         no_tbaa_pruning member.
2695         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2696         (unify_nodes): Do not copy it.
2697         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2698         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2699         (set_uids_in_ptset): Do not check it.
2700         (find_what_var_points_to): Likewise.
2701         (compute_tbaa_pruning): Remove.
2702         (compute_points_to_sets): Do not call it.
2703         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2704         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2705         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2706         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2707         (DECL_NO_TBAA_P): Likewise.
2708         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2709         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2710         (expand_omp_atomic_pipeline): Do not set it.
2711         * print-tree.c (print_node): Do not dump it.
2712         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2713         redundant check.
2714
2715 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2716
2717         PR target/39856
2718         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2719         for clobber.
2720
2721 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
2722
2723         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2724         non-external.
2725
2726 2009-05-22  Ben Elliston  <bje@au.ibm.com>
2727
2728         * Makefile.in (bversion.h, s-bversion): New targets.
2729         (TOPLEV_H): Add bversion.h.
2730         * toplev.h: Include "bversion.h".
2731         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2732         the __format__ attribute only if compiling with the same version
2733         of GCC as the sources (the "build version").
2734
2735 2009-05-22  Ben Elliston  <bje@au.ibm.com>
2736
2737         * c-format.c (handle_format_attribute): Fix comment typo.
2738
2739 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
2740
2741         PR target/37846
2742         * config/ia64/ia64.opt (mfused-madd): New.
2743         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2744         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2745         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2746         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2747         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2748         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2749         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2750         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
2751         instruction if !TARGET_FUSED_MADD.
2752         (fpma, fpms): Remove colon from name.
2753
2754 2009-05-22  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2757         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
2758         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2759         TARGET_MEM_REF.
2760         (create_expression_by_pieces): Only convert if necessary.
2761         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2762         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2763
2764 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
2765
2766         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2767         regular pattern from a template and rename it ...
2768         (*extzv_truncsi_exts): ... to this.
2769
2770 2009-05-21  Richard Guenther  <rguenther@suse.de>
2771
2772         * cgraph.h (struct cgraph_node): Remove inline_decl member.
2773         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2774         (cgraph_default_inline_p): Likewise.
2775         (cgraph_decide_inlining_incrementally): Likewise.
2776
2777 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2778             Uros Bizjak  <ubizjak@gmail.com>
2779
2780         * config/i386/cpuid.h (bit_MOVBE): New.
2781
2782         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2783
2784         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2785         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2786         (ix86_handle_option): Handle OPT_mmovbe.
2787         (ix86_target_string): Add -mmovbe.
2788         (pta_flags): Add PTA_MOVBE.
2789         (processor_alias_table): Add PTA_MOVBE to "atom".
2790         (override_options): Handle PTA_MOVBE.
2791
2792         * config/i386/i386.h (TARGET_MOVBE): New.
2793
2794         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2795         (*bswapsi_movbe): New.
2796         (*bswapdi_movbe): Likewise.
2797         (bswapdi2): Renamed to ...
2798         (*bswapdi_1): This.
2799         (bswapdi2): New expander.
2800
2801         * config/i386/i386.opt (mmovbe): New.
2802
2803         * doc/invoke.texi: Document -mmovbe.
2804
2805 2009-05-21  Taras Glek  <tglek@mozilla.com>
2806
2807         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2808         * gcc-plugin.h (plugin_init): Updated signature.
2809         * gcc-plugin.h (plugin_name_args): Moved to this header.
2810         * doc/plugins.texi (plugin_init): Updated documention to reflect
2811         API change.
2812         * doc/plugins.texi (plugin_name_args): Added to documention.
2813
2814 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
2815
2816         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2817         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2818
2819 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
2820
2821         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2822         JUMP_TABLE_DATA_P predicates where applicable.
2823         * config/i386/predicates.md: Ditto.
2824         * config/i386/sse.md: Ditto.
2825
2826 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
2827
2828         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2829         operand2 -128 override length_immediate attribute to 1.
2830         * config/i386/predicates.md (constm128_operand): New predicate.
2831
2832         * config/i386/i386.c (memory_address_length): Handle %r12
2833         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
2834         also check REGNO.
2835         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2836         mode look through optional ZERO_EXTEND and SUBREG.
2837         * config/i386/i386.md (R12_REG): New define_constant.
2838         (prefix_data16): For sse unit set also for MODE_TI insns.
2839         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
2840         insns set if operand 1 is ext_QIreg_operand.
2841         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
2842         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2843         immediate.
2844         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2845         mode from MODE_DI to MODE_SI.
2846         (movdi_1_rex64): Override modrm and length_immediate attributes
2847         only for movabs (TYPE_IMOV, alternative 2).
2848         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2849         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2850         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2851         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2852         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2853         prefix_rex attribute if DImode.
2854         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2855         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2856         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2857         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2858         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2859         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2860         Likewise.  For TYPE_IMOV clear length_immediate attribute.
2861         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2862         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2863         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2864         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2865         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2866         or one operand TYPE_ISHIFT.
2867         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2868         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2869         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2870         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2871         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2872         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2873         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2874         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2875         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2876         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2877         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2878         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2879         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2880         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2881         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2882         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2883         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2884         set mode attribute, don't override length attribute.
2885         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2886         to 1.
2887         (return_internal_long): Set length attribute to 2 instead of 1.
2888         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2889         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2890         prefix_rex attribute.
2891         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2892         New predicates.
2893         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2894
2895 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2896
2897         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2898
2899 2009-05-20  Ian Lance Taylor  <iant@google.com>
2900
2901         * tree.c (build_tree_list_vec_stat): New function.
2902         (ctor_to_vec): New function.
2903         (build_nt_call_vec): New function.
2904         (build_call_array): Change args to be a const pointer.
2905         (build_call_vec): New function.
2906         * tree.h (build_nt_call_vec): Declare.
2907         (build_tree_list_vec_stat): Declare.
2908         (build_tree_list_vec): Define.
2909         (build_call_array): Update declaration.
2910         (build_call_vec): Declare.
2911         (ctor_to_vec): Declare.
2912         * c-common.c (tree_vector_cache): New static variable.
2913         (make_tree_vector): New function.
2914         (release_tree_vector): New function.
2915         (make_tree_vector_single): New function.
2916         (make_tree_vector_copy): New function.
2917         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2918         (make_tree_vector_single, make_tree_vector_copy): Declare.
2919         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2920         (c_parser_expr_list): Don't manage cache here, instead call
2921         make_tree_vector.
2922         (c_parser_release_expr_list): Remove static function.
2923         (c_parser_vec_to_tree_list): Remove static function.
2924         (c_parser_attributes): Call build_tree_list_vec instead of
2925         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
2926         c_parser_release_expr_list.
2927         (c_parser_postfix_expression_after_primary): Likewise.
2928         (c_parser_objc_keywordexpr): Likewise.
2929
2930 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2931
2932         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2933         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2934         TARGET_CONVERT_TO_TYPE.
2935         * hooks.c (hook_tree_const_tree_null): Define.
2936         * hooks.h (hook_tree_const_tree_null): Declare.
2937         * target.h (struct gcc_target):  Add invalid_parameter_type,
2938         invalid_return_type, promoted_type, and convert_to_type fields.
2939         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2940         (TARGET_INVALID_RETURN_TYPE): Define.
2941         (TARGET_PROMOTED_TYPE): Define.
2942         (TARGET_CONVERT_TO_TYPE): Define.
2943         (TARGET_INITIALIZER): Update for new fields.
2944         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2945         (grokparms): Check targetm.invalid_parameter_type.
2946         * c-typeck.c (default_conversion): Check targetm.promoted_type.
2947         * c-convert.c (convert): Check targetm.convert_to_type.
2948
2949 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
2950
2951         * config/mips/mips.md (*extenddi_truncate<mode>,
2952         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
2953         defintions.
2954         (*extendhi_truncateqi): New define_insn_and_sptit.
2955
2956 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
2957
2958         PR middle-end/40204
2959         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2960         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
2961
2962 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
2963
2964         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2965         the operand of VIEW_CONVERT_EXPR.
2966
2967 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2968
2969         * config/i386/driver-i386.c (host_detect_local_cpu): Check
2970         extended family and model for Intel processors.  Support Intel Atom.
2971
2972 2009-05-20  Olivier Hainque  <hainque@adacore.com>
2973
2974         * gstab.h (stab_code_type): Define, to be used instead of the
2975         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
2976         notice.
2977         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2978         occurrences by stab_code_type.
2979         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2980
2981 2009-05-20  Martin Jambor  <mjambor@suse.cz>
2982
2983         * tree-flow.h (insert_edge_copies_seq): Undeclare.
2984         (sra_insert_before): Likewise.
2985         (sra_insert_after): Likewise.
2986         (sra_init_cache): Likewise.
2987         (sra_type_can_be_decomposed_p): Likewise.
2988         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2989         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2990         (sra_insert_before): Likewise.
2991         (sra_insert_after): Likewise.
2992         (sra_init_cache): Likewise.
2993         (insert_edge_copies_seq): Made static and moved upwards.
2994
2995         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2996         case.
2997
2998         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2999
3000         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3001         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3002         simple copies.
3003
3004 2009-05-20  Richard Guenther  <rguenther@suse.de>
3005
3006         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3007         with mismatched comparison modes.
3008
3009 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3010
3011         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
3012         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3013         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3014         with shifts for Thumb2.
3015         (orsi_notsi): New for orn.
3016         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3017         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3018         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3019         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3020         Don't invert remainder for IOR.
3021         
3022 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
3023
3024         PR tree-optimization/40087
3025         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3026         number_of_iterations_ne): Rename never_infinite argument.
3027         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3028         number_of_iterations_le): Handle pointer-type ivs when
3029         exit_must_be_taken is false.
3030         (number_of_iterations_cond):  Do not always assume that
3031         exit_must_be_taken if the control variable is a pointer.
3032
3033 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3034
3035         * c-typeck.c (build_binary_op): Allow % on integal vectors.
3036         * doc/extend.texi (Vector Extension): Document that % is allowed too.
3037
3038 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3039
3040         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3041         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3042
3043 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3044
3045         PR c/40172
3046         * c.opt (Wlogical-op): Disabled by default.
3047         * c-opt (c_common_post_options): Do not enable Wlogical-op with
3048         Wextra.
3049         * doc/invoke.texi (Wlogical-op): Likewise.
3050         
3051 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3052
3053         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3054         into CASE_CONVERT.
3055         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3056         Propagate the type of the first operand.
3057         <ASSERT_EXPR>: Simplify.
3058         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3059         Rewrite using the RHS code as discriminant.
3060         <NOP_EXPR>: Turn into CASE_CONVERT.
3061         <PLUS_EXPR>: Propagate the type of the first operand.
3062
3063 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
3064
3065         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3066         (ia64_dconst_0_375): New.
3067         * config/ia64/ia64.c (ia64_override_options): Remove
3068         -minline-sqrt-min-latency warning.
3069         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3070         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3071         * config/ia64/ia64.md (*sqrt_approx): Remove.
3072         (sqrtsf2): Remove #if 0.
3073         (sqrtsf2_internal_thr): Rewrite and move to div.md.
3074         (sqrtdf): Remove assert.
3075         (sqrtdf2_internal_thr): Rewrite and move to div.md.
3076         (sqrtxf2): Remove #if 0.
3077         (sqrtxf2_internal_thr): Rewrite and move to div.md.
3078         * div.md (sqrt_approx_rf): New.
3079         (sqrtsf2_internal_thr): New implementation.
3080         (sqrtsf2_internal_lat): New.
3081         (sqrtdf2_internal_thr: New implementation.
3082         (sqrtxf2_internal): New implementation.
3083
3084 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
3085             Hans-Peter Nilsson  <hp@axis.com>
3086
3087         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3088         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3089         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3090         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3091         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3092         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3093         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3094         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3095         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3096         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3097         * c-common.c: ...from here.
3098
3099 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3100
3101         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
3102
3103 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3104
3105         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3106
3107 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3108
3109         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3110         assignments with memcpy calls.
3111         (add_fdes): Likewise.
3112         (binary_search_unencoded_fdes): Likewise.
3113         (linear_search_fdes): Eliminate type puns.
3114         
3115 2009-05-19  Richard Guenther  <rguenther@suse.de>
3116
3117         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3118         not falsely claim to have propagated into all uses.
3119
3120 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3121
3122         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3123         version to v3.0.
3124
3125 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3126
3127         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3128         * config/sh/sh.c (sh_legitimate_address_p): Make static.
3129         (TARGET_LEGITIMATE_ADDRESS_P): New.
3130         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3131         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3132         
3133 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
3134
3135         PR debug/40109
3136         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3137         child of the containing namespace's DIE.
3138
3139 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
3140
3141         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3142         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
3143         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3144         extend patterns.
3145
3146 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
3147
3148         PR target/39942
3149         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3150         gen_align with gen_pad.
3151         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3152         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3153
3154         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3155         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3156
3157         * config/i386/i386.md (align): Renamed to ...
3158         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3159         ASM_OUTPUT_MAX_SKIP_PAD.
3160
3161 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
3162
3163         * config.gcc: Fix variable syntax.
3164
3165         PR target/39531
3166         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3167         before calling exact_log2.
3168         (output_iorsi3): Likewise.
3169         (output_xorsi3): Likewise.
3170
3171 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3172
3173         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3174         for the none zero constant operand except for EQ and NE
3175         comprisons even when the first operand is R0.
3176
3177 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3178
3179         * config/s390/2064.md: Remove trailing whitespaces.
3180         * config/s390/2084.md: Likewise.
3181         * config/s390/constraints.md: Likewise.
3182         * config/s390/fixdfdi.h: Likewise.
3183         * config/s390/libgcc-glibc.ver: Likewise.
3184         * config/s390/s390-modes.def: Likewise.
3185         * config/s390/s390-protos.h: Likewise.
3186         * config/s390/s390.c: Likewise.
3187         * config/s390/s390.h: Likewise.
3188         * config/s390/s390.md: Likewise.
3189         * config/s390/tpf-unwind.h: Likewise.
3190
3191 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3192
3193         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3194
3195 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3196
3197         M68K TLS support.
3198         * configure.ac (m68k-*-*): Check if binutils support TLS.
3199         * configure: Regenerate.
3200         * config/m68k/predicates.md (symbolic_operand): Extend comment.
3201         * config/m68k/constraints.md (Cu): New constraint.
3202         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3203         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3204         (movsi): Handle TLS symbols.
3205         (addsi3_5200): Handle XTLS symbols, indent.
3206         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3207         (m68k_tls_reference_p): Declare.
3208         (m68k_legitimize_address): Declare.
3209         (m68k_unwrap_symbol): Declare.
3210         * config/m68k/m68k.opt (mxtls): New option.
3211         * config/m68k/m68k.c (ggc.h): Include.
3212         (m68k_output_dwarf_dtprel): Implement hook.
3213         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3214         (m68k_expand_prologue): Load GOT pointer when function needs it.
3215         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3216         (m68k_legitimate_constant_address_p): Same.
3217         (m68k_decompose_address): Handle TLS references.
3218         (m68k_get_gp): New static function.
3219         (enum m68k_reloc): New contants.
3220         (TLS_RELOC_P): New macro.
3221         (m68k_wrap_symbol): New static function.
3222         (m68k_unwrap_symbol): New function.
3223         (m68k_final_prescan_insn_1): New static function.
3224         (m68k_final_prescan_insn): New function.
3225         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3226         functions.
3227         (legitimize_pic_address): Handle TLS references..
3228         (m68k_tls_get_addr, m68k_get_tls_get_addr)
3229         (m68k_libcall_value_in_a0_p)
3230         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3231         (m68k_call_m68k_read_tp): Helper variables and functions for ...
3232         (m68k_legitimize_tls_address): Handle TLS references.
3233         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3234         New functions.
3235         (m68k_legitimize_address): Handle TLS symbols.
3236         (m68k_get_reloc_decoration): New static function.
3237         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3238         UNSPEC_RELOC32.
3239         (m68k_output_dwarf_dtprel): Implement hook.
3240         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3241         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3242         m68k_call_* routines.
3243         (sched_attr_op_type): Handle TLS symbols.
3244         (gt-m68k.h): Include.
3245         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3246         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3247
3248 2009-05-18  Martin Jambor  <mjambor@suse.cz>
3249
3250         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3251         (visit_store_addr_for_mod_analysis): New function.
3252         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3253         (determine_cst_member_ptr): Use gimple_assign_single_p.
3254         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3255         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3256         operands.  Don't check number of operands of a NOP_EXPR.
3257
3258 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
3259
3260         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3261
3262 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3263
3264         PR c/40172
3265         * c-common.c (warn_logical_operator): Don't warn if one of
3266         expression isn't always true or false.
3267
3268 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
3269
3270         * config/i386/biarch32.h: New file.
3271         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
3272
3273 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
3274
3275         * config/mips/mips.md (*zero_extend<mode>_trunchi,
3276         *zero_extend<mode>_truncqi): Merge these into ...
3277         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3278         Name the pattern following this as *zero_extendhi_truncqi.
3279
3280 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
3281
3282         PR middle-end/39301
3283         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3284         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3285         (output_info): Make field HOST_WIDEST_INT.
3286         (print_statistics): Use HOST_WIDEST_INT_PRINT.
3287         (dump_bitmat_statistics): Same.
3288
3289 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
3290
3291         * config.gcc (use_gcc_stdint):  Set to wrap.
3292         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3293         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3294         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3295         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3296         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3297         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3298         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3299         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3300
3301 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
3302
3303         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3304         tune_64.
3305         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3306         Move definitions earlier.
3307         (OPT_ARCH64, OPT_ARCH32): Define.
3308         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3309         and tune_64.
3310
3311 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
3312
3313         PR target/40153
3314         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3315         implies.
3316
3317 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
3318
3319         * arm.md (movdi2): Copy non-reg values to DImode registers.
3320
3321 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
3322
3323         PR target/39942
3324         * final.c (label_to_max_skip): New function.
3325         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3326         CODE_LABEL_NUMBER <= max_labelno.
3327         * output.h (label_to_max_skip): New prototype.
3328         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3329         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
3330         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
3331         Handle CODE_LABELs with >= 16 byte alignment or with
3332         max_skip == (1 << align) - 1.
3333         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3334         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3335
3336         PR target/39942
3337         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3338         .p2align 3 if MAX_SKIP is smaller than 7.
3339         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3340
3341 2009-05-15  Ian Lance Taylor  <iant@google.com>
3342
3343         * alias.c (struct alias_set_entry_d): Rename from struct
3344         alias_set_entry.  Change all uses.
3345         * except.c (struct call_site_record_d): Rename from struct
3346         call_site_record.  Change all uses.
3347         * except.h (struct eh_region_d): Rename from struct eh_region.
3348         Change all uses.
3349         * gcse.c (struct hash_table_d): Rename from struct hash_table.
3350         Change all uses.
3351         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3352         ivtype_map_elt.  Change all uses.
3353         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3354         Change all uses.
3355         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
3356         * graphite.h (struct name_tree_d): Rename from struct name_tree.
3357         Change all uses.
3358         (struct sese_d): Rename from struct sese.  Change all uses.
3359         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
3360         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
3361         * optabs.h (struct optab_d): Rename from struct optab.  Change all
3362         uses.
3363         (struct convert_optab_d): Rename from struct convert_optab.
3364         Change all uses.
3365         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3366         ipa_opt_pass.  Change all uses.
3367         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
3368         all uses.
3369
3370         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3371         defined as a typedef.
3372         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3373         defined as a tag.
3374
3375 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3376
3377         PR 16302
3378         * fold-const.c (make_range,build_range_check,merge_ranges): Move
3379         declaration to...
3380         (merge_ranges): Returns bool. 
3381         * tree.h (make_range): .. to here.
3382         (build_range_check): Likewise.
3383         (merge_ranges): Likewise. Renamed from merge_ranges.
3384         * c-typeck.c (parser_build_binary_op): Update calls to
3385         warn_logical_operator.
3386         * c-common.c (warn_logical_operator): Add new warning.
3387         * c-common.h (warn_logical_operator): Update declaration.
3388         
3389 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3390
3391         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
3392         
3393 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3394
3395         * doc/install.texi: Document MPC requirements, flags etc.
3396
3397         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3398         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3399         Evaluate constant arguments.
3400         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3401         (fold_builtin_1): Likewise, also evaluate constant arguments.
3402         Remove superfluous break.
3403         (do_mpc_ckconv): New.
3404         * real.h: Include mpc.h.
3405         * toplev.c (print_version): Output MPC version info if available.
3406
3407 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3408
3409         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
3410
3411 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3412
3413         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3414         only once.
3415
3416 2009-05-15  Jan Hubicka  <jh@suse.cz>
3417
3418         * doc/invoke.texi (max-early-inliner-iterations): New flag.
3419         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3420         (try_inline): Fix return value.
3421         (cgraph_decide_inlining_incrementally): Honor new value.
3422         (cgraph_early_inlining): Handle indirect inlining.
3423         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3424
3425 2009-05-15  Jan Hubicka  <jh@suse.cz>
3426
3427         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3428         * cgraphunit.c (cgraph_finalize_function): Set it.
3429         (cgraph_expand_function): Use it.
3430
3431 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3432
3433         * real.c (encode_ieee_half): Define.
3434         (decode_ieee_half): Define.
3435         (ieee_half_format): Define.
3436         (arm_half_format): Define.
3437         * real.h (ieee_half_format): Declare.
3438         (arm_half_format): Declare.
3439
3440 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3441
3442         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
3443         swapped, and reversed optabs exist before trying to use them.
3444
3445 2009-05-15  Paul Brook  <paul@codesourcery.com>
3446             Sandra Loosemore  <sandra@codesourcery.com>
3447
3448         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3449         loads.  Allow PRE_DEC.
3450         (output_move_neon): Handle PRE_DEC.
3451         (arm_print_operand): Add 'A' for neon structure loads.
3452         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3453         * config/arm/neon.md (neon_mov): Update comment.
3454         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3455         calls.
3456         (Um): New constraint.
3457
3458 2009-05-15  Jan Hubicka  <jh@suse.cz>
3459
3460         Revert the following patch until testsuite fallout is fixed:
3461         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3462         * cgraph.h (struct inline_summary): New filed self_wize,
3463         size_inlining_benefit, self_time and time_inlining_benefit.
3464         (struct cgraph_global_info): Replace insns by time ans size fields.
3465         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3466         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3467         (ipcp_update_callgraph): Do not touch function bodies.
3468         * ipa-inline.c: Include except.h
3469         (MAX_TIME): New constant.
3470         (overall_insns): Remove
3471         (overall_size, max_benefit): New static variables.
3472         (cgraph_estimate_time_after_inlining): New function.
3473         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3474         (cgraph_clone_inlined_nodes): Update size.
3475         (cgraph_mark_inline_edge): Update size.
3476         (cgraph_estimate_growth): Use size info.
3477         (cgraph_check_inline_limits): Check size.
3478         (cgraph_default_inline_p): Likewise.
3479         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3480         (cgraph_decide_recursive_inlining): Check size.
3481         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3482         and times.
3483         (cgraph_decide_inlining): Likewise.
3484         (cgraph_decide_inlining_incrementally): Likewise; honor
3485         PARAM_EARLY_INLINING_INSNS.
3486         (likely_eliminated_by_inlining_p): New predicate.
3487         (estimate_function_body_sizes): New function.
3488         (compute_inline_parameters): Use it.
3489         * except.c (must_not_throw_labels): New function.
3490         * except.h (must_not_throw_labels): Declare.
3491         * tree-inline.c (init_inline_once): Kill inlining_weigths
3492         * tree-ssa-structalias.c: Avoid uninitialized warning.
3493         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3494         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3495         (PARAM_INLINE_CALL_COST): Remove.
3496         (PARAM_EARLY_INLINING_INSNS): New.
3497
3498 2009-05-15  Richard Guenther  <rguenther@suse.de>
3499
3500         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3501         not TODO_update_ssa.
3502
3503 2009-05-15  Richard Guenther  <rguenther@suse.de>
3504
3505         PR tree-optimization/39999
3506         * gimple.h (gimple_expr_type): Use the expression type looking
3507         through useless conversions.
3508         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3509         (vn_nary_op_insert_stmt): Likewise.
3510         (simplify_binary_expression): Likewise.
3511
3512 2009-05-15  Richard Guenther  <rguenther@suse.de>
3513
3514         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3515         New options, enabled by default.
3516         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3517         Document.
3518         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3519         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3520         * tree-ssa-structalias.c (gate_tree_pta): New function.
3521         (pass_build_alias): Use it.
3522
3523 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
3524
3525         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3526         recurse on an invariant address if a conversion from a pointer
3527         type to a wider integer type is involved.
3528
3529 2009-05-15  Jan Hubicka  <jh@suse.cz>
3530
3531         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3532         * cgraph.h (struct inline_summary): New filed self_wize,
3533         size_inlining_benefit, self_time and time_inlining_benefit.
3534         (struct cgraph_global_info): Replace insns by time ans size fields.
3535         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3536         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3537         (ipcp_update_callgraph): Do not touch function bodies.
3538         * ipa-inline.c: Include except.h
3539         (MAX_TIME): New constant.
3540         (overall_insns): Remove
3541         (overall_size, max_benefit): New static variables.
3542         (cgraph_estimate_time_after_inlining): New function.
3543         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3544         (cgraph_clone_inlined_nodes): Update size.
3545         (cgraph_mark_inline_edge): Update size.
3546         (cgraph_estimate_growth): Use size info.
3547         (cgraph_check_inline_limits): Check size.
3548         (cgraph_default_inline_p): Likewise.
3549         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3550         (cgraph_decide_recursive_inlining): Check size.
3551         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3552         and times.
3553         (cgraph_decide_inlining): Likewise.
3554         (cgraph_decide_inlining_incrementally): Likewise; honor
3555         PARAM_EARLY_INLINING_INSNS.
3556         (likely_eliminated_by_inlining_p): New predicate.
3557         (estimate_function_body_sizes): New function.
3558         (compute_inline_parameters): Use it.
3559         * except.c (must_not_throw_labels): New function.
3560         * except.h (must_not_throw_labels): Declare.
3561         * tree-inline.c (init_inline_once): Kill inlining_weigths
3562         * tree-ssa-structalias.c: Avoid uninitialized warning.
3563         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3564         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3565         (PARAM_INLINE_CALL_COST): Remove.
3566         (PARAM_EARLY_INLINING_INSNS): New.
3567         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3568         (inline-call-cost): Remove.
3569         (early-inlining-insns): New.
3570
3571 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
3572
3573         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
3574         for bounds.
3575         (print_int_cst_bounds_in_octal_p): Likewise.
3576         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
3577         with subtypes.
3578         * dwarf2out.c (base_type_die): Likewise.
3579         (is_subrange_type): Delete.
3580         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
3581         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
3582         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3583         if the destination type is boolean.
3584         (build_range_check): Do not special-case subtypes.
3585         (fold_sign_changed_comparison): Likewise.
3586         (fold_unary): Likewise.
3587         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3588         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3589         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
3590         * tree.c (subrange_type_for_debug_p): New predicate based on the
3591         former is_subrange_type.
3592         * tree.h (subrange_type_for_debug_p): Declare.
3593         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3594         (convert_affine_scev): Remove call to above function.
3595         (chrec_convert_aggressive): Likewise.
3596         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3597         false for conversions involving subtypes.
3598         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3599         (vrp_val_min): Likewise.
3600         (needs_overflow_infinity): Likewise.
3601         (extract_range_from_unary_expr): Likewise.
3602
3603 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
3604
3605         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3606         * config/frv/frv.c: Likewise.
3607         * config/s390/s390.c: Likewise.
3608         * config/sparc/sparc.h: Likewise.
3609         * config/i386/i386.h: Likewise.
3610         * config/i386/i386.c: Likewise.
3611         * config/crx/crx.c: Likewise.
3612         * config/m68hc11/m68hc11.h: Likewise.
3613         * config/iq2000/iq2000.c: Likewise.
3614         * config/mn10300/mn10300.h: Likewise.
3615         * config/mn10300/mn10300.c: Likewise.
3616         * config/m68k/m68k.c: Likewise.
3617         * config/rs6000/rs6000.c: Likewise.
3618         * config/rs6000/xcoff.h: Likewise.
3619         * config/rs6000/linux64.h: Likewise.
3620         * config/rs6000/sysv4.h: Likewise.
3621         * config/score/score3.c: Likewise.
3622         * config/score/score7.c: Likewise.
3623         * config/score/score.c: Likewise.
3624         * config/arm/arm.md: Likewise.
3625         * config/mips/mips.c: Likewise.
3626         * config/mips/mips.md: Likewise.
3627         * config/bfin/bfin.h: Likewise.
3628         * config/pa/pa.c: Likewise.
3629         * config/pa/constraints.md: Likewise.
3630
3631         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3632         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3633         * config/pdp11/pdp11.h: Use memory_address_p instead.
3634
3635 2009-05-14  Ian Lance Taylor  <iant@google.com>
3636
3637         * passes.c (finish_optimization_passes): Change i to int.
3638         * plugin.c (plugins_active_p): Change event to int.
3639         (dump_active_plugins): Likewise.
3640         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3641         Add cast.
3642         * tree.c (tree_range_check_failed): Change c to unsigned int.
3643         (omp_clause_range_check_failed): Likewise.
3644         (build_common_builtin_nodes): Change mode to int.  Add cast.
3645         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3646         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3647
3648         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3649         ++ or -- with a variable of enum type.
3650
3651 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3652
3653         PR driver/40144
3654         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3655
3656 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3657
3658         * store-motion.c: Do not include params.h
3659         * Makefile.in: Fix dependencies for various files.
3660
3661 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3662
3663         * auto-inc-dec.c: Fix pass description, remove apparent
3664         accidental duplication.
3665
3666 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3667
3668         PR middle-end/40147
3669         * ipa-utils.h (memory_identifier_string): Moved to ...
3670         * tree.h (memory_identifier_string): Here.  Add GTY(()).
3671
3672 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
3673
3674         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3675         in the former documentation of...
3676         (GO_IF_LEGITIMATE_ADDRESS): ... this.
3677         * ira-conflicts.c (get_dup_num): Use address_operand.
3678         * targhooks.c (default_legitimate_address_p): New.
3679         * targhooks.h (default_legitimate_address_p): New.
3680         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3681         Call hook.
3682         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3683         * target.h (struct target): Add legitimate_address_p.
3684         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3685         (TARGET_INITIALIZER): Include it.
3686
3687         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3688         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3689         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3690         (TARGET_LEGITIMATE_ADDRESS_P): New.
3691
3692         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3693         (REG_OK_STRICT_P): Delete.
3694         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3695         (frv_legitimate_address_p_1): ... this.
3696         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3697         (frv_legitimate_address_p_1): ... the renamed old
3698         frv_legitimate_address_p.
3699         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3700         (TARGET_LEGITIMATE_ADDRESS_P): New.
3701
3702         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3703         * config/s390/s390-protos.h (legitimate_address_p): Remove.
3704         * config/s390/s390.c (legitimate_address_p): Rename to...
3705         (s390_legitimate_address_p): ... this, make static.
3706         (legitimize_address): Adjust call.
3707         (TARGET_LEGITIMATE_ADDRESS_P): New.
3708         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3709
3710         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3711         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3712         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3713         (TARGET_LEGITIMATE_ADDRESS_P): New.
3714
3715         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3716         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3717         * config/spu/spu.c (spu_legitimate_address): Rename to...
3718         (spu_legitimate_address_p): ... this, make static.
3719         (TARGET_LEGITIMATE_ADDRESS_P): New.
3720
3721         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3722         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3723         * config/sparc/sparc.c (legitimate_address_p): Rename to...
3724         (sparc_legitimate_address_p): ... this, make static and return bool.
3725         (legitimize_address): Adjust call.
3726         (TARGET_LEGITIMATE_ADDRESS_P): New.
3727
3728         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3729         * config/i386/i386-protos.h (legitimate_address_p): Remove.
3730         * config/i386/i386.c (legitimate_address_p): Rename to...
3731         (ix86_legitimate_address_p): ... this, make static.
3732         (constant_address_p): Move after it, adjust call.
3733         (TARGET_LEGITIMATE_ADDRESS_P): New.
3734
3735         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3736         * config/avr/avr-protos.h (legitimate_address_p): Remove.
3737         * config/avr/avr.c (legitimate_address_p): Rename to...
3738         (avr_legitimate_address_p): ... this, make static.
3739         (legitimize_address): Adjust call.
3740         (TARGET_LEGITIMATE_ADDRESS_P): New.
3741
3742         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3743         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3744         * config/crx/crx.c (crx_legitimate_address_p): Make static.
3745         (TARGET_LEGITIMATE_ADDRESS_P): New.
3746
3747         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3748         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3749         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3750         (TARGET_LEGITIMATE_ADDRESS_P): New.
3751
3752         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3753         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3754         Remove.
3755         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3756         Make static.
3757         (TARGET_LEGITIMATE_ADDRESS_P): New.
3758
3759         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3760         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3761         Remove.
3762         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3763         Rename to...
3764         (m68hc11_legitimate_address_p): ... this, make static.
3765         (go_if_legitimate_address_internal): Rename to...
3766         (m68hc11_legitimate_address_p_1): ... this.
3767         (legitimize_address): Adjust call.
3768         (TARGET_LEGITIMATE_ADDRESS_P): New.
3769
3770         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3771         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3772         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
3773         (TARGET_LEGITIMATE_ADDRESS_P): New.
3774
3775         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3776         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3777         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3778         (mn10300_legitimate_address_p): ... this, make static.
3779         (TARGET_LEGITIMATE_ADDRESS_P): New.
3780
3781         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3782         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3783         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3784         (TARGET_LEGITIMATE_ADDRESS_P): New.
3785
3786         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3787         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3788         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3789         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3790         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3791         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3792         (rs6000_legitimate_address_p): ... this, make static.
3793         (TARGET_LEGITIMATE_ADDRESS_P): New.
3794         (REG_MODE_OK_FOR_BASE_P): Delete.
3795         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3796
3797         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3798         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3799         Delete.
3800         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3801         static, adjust types.
3802         (TARGET_LEGITIMATE_ADDRESS_P): New.
3803
3804         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3805         * config/score/score.c (score_address_p): Rename to...
3806         (score_legitimate_address_p): ... this.
3807         (TARGET_LEGITIMATE_ADDRESS_P): New.
3808         * config/score/score3.c (score3_address_p): Rename to...
3809         (score3_legitimate_address_p): ... this.
3810         * config/score/score7.c (score7_address_p): Rename to...
3811         (score7_legitimate_address_p): ... this.
3812
3813         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3814         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3815         GO_IF_LEGITIMATE_ADDRESS): Delete.
3816         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3817         thumb2_legitimate_address_p): Delete.
3818         (arm_legitimate_address_p): Rename to...
3819         (arm_legitimate_address_outer_p): ... this.
3820         * config/arm/constraints.md ("Uq"): Adjust call.
3821         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
3822         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3823         to...
3824         (arm_legitimate_address_outer_p): ... this.
3825         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3826         static.
3827         (TARGET_LEGITIMATE_ADDRESS_P): New.
3828
3829         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3830         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3831         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3832         (TARGET_LEGITIMATE_ADDRESS_P): New.
3833
3834         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3835         * config/vax/vax-protos.h (legitimate_address_p): Remove.
3836         * config/vax/vax.c (legitimate_address_p): Rename to...
3837         (vax_legitimate_address_p): ... this, make static.
3838         (TARGET_LEGITIMATE_ADDRESS_P): New.
3839
3840         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3841         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3842         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3843         (TARGET_LEGITIMATE_ADDRESS_P): New.
3844
3845         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3846         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3847         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3848         (mmix_legitimate_address_p): ... this, make static.
3849         (TARGET_LEGITIMATE_ADDRESS_P): New.
3850
3851         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3852         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3853         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3854         (TARGET_LEGITIMATE_ADDRESS_P): New.
3855
3856 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
3857
3858         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3859         of MODE_COMPLEX_INT.
3860
3861 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3862
3863         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3864         LCT_NORMAL in function call.
3865         * mips-tdump.c (print_file_desc): Add cast to enum type.
3866         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3867         (mark_stabs): Add casts to enum types.
3868         (parse_stabs_common): Add casts to enum types.
3869
3870 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
3871
3872         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3873         Check for invalid values of LETTER.
3874
3875 2009-05-13  Taras Glek  <tglek@mozilla.com>
3876
3877         * attribs.c (register_attribute): moved out attribute registration
3878         into register_attribute.
3879         * doc/plugins.texi: Documented register_attribute and
3880         PLUGIN_ATTRIBUTES.
3881         * gcc-plugin.h: Added forward decl for register_attribute.
3882         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3883         * plugin.c (register_callback, invoke_plugin_callbacks): Added
3884         PLUGIN_ATTRIBUTES boilerplate.
3885
3886 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
3887
3888         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
3889         values even in sentinel and empty entries.
3890         (ms_printf_flag_specs):  Likewise.
3891         (ms_scanf_flag_specs):  Likewise.
3892         (ms_strftime_flag_specs):  Likewise.
3893         (ms_print_char_table):  Likewise.
3894         (ms_scan_char_table):  Likewise.
3895         (ms_time_char_table):  Likewise.
3896
3897 2009-05-13  Doug Kwan  <dougkwan@google.com>
3898
3899         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3900
3901 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
3902
3903         * config/mips/mips.md (store): Add attributes for QI and HI.
3904         Update comment.
3905         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3906         (truncdi<mode>2): ... this new pattern.
3907
3908 2009-05-13  Brad Hards  <bradh@kde.org>
3909
3910         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3911
3912 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
3913             Ben Elliston <bje@au.ibm.com>
3914
3915         PR middle-end/40035
3916         * dse.c (check_mem_read_rtx): Guard against width == -1.
3917
3918 2009-05-13  Michael Matz  <matz@suse.de>
3919
3920         PR middle-end/39976
3921         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3922         (trivially_conflicts_p): New function.
3923         (insert_backedge_copies): Use it.
3924
3925 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
3926
3927         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3928         (handle_stdc_pragma): Use new enum constant names.
3929         (handle_pragma_float_const_decimal64): Ditto.
3930
3931 2009-05-13  Ian Lance Taylor  <iant@google.com>
3932
3933         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3934         tree.def.
3935
3936 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
3937
3938         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3939         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3940         multilibs.
3941         * config/m68k/m68k.h (FL_UCLINUX): Define.
3942
3943 2009-05-13  Jan Hubicka  <jh@suse.cz>
3944
3945         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3946
3947 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3948
3949         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3950         unless -fschedule-insns is specified.
3951
3952 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3953
3954         PR target/39561
3955         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3956         TARGET_EXPAND_CBRANCHDI4.
3957         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3958         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3959         (cmpeqdi): Fix comment.
3960
3961 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3962
3963         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3964         (sh_legitimate_address_p): Likewise.
3965         * config/sh/sh.c (sh_legitimate_index_p): New.
3966         (sh_legitimate_address_p): Likewise.
3967         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3968         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3969         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3970         (MAYBE_BASE_REGISTER_RTX_P): New macro.
3971         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3972         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3973         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3974         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3975         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3976
3977 2009-05-12  Jan Hubicka  <jh@suse.cz>
3978
3979         * tree-inline.c (estimate_operator_cost): Add operands;
3980         when division happens by constant, it is cheap.
3981         (estimate_num_insns): Loads and stores are not having cost of 0;
3982         EH magic stuff is cheap; when computing runtime cost of switch,
3983         use log2 base of amount of its cases; builtin_expect has cost of 0;
3984         compute cost for moving return value of call.
3985         (init_inline_once): Initialize time_based flags.
3986         * tree-inline.h (eni_weights_d): Add time_based flag.
3987
3988 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3989
3990         * df-core.c: Update head documentation.
3991
3992 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3993
3994         PR bootstrap/40118
3995         * rs6000.c (rs6000_generate_compare): Use op1b instead of
3996         shadowing exisiting variable op1.
3997
3998 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
3999
4000         PR target/37179
4001         * config/i386/driver-i386.c (processor_signatures): New enum.
4002         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4003         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4004         processor signature to detect geode processor.
4005
4006 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4007
4008         Revert:
4009
4010         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4011
4012         * optabs.c (prepare_cmp_insn): Temporarily disable test that
4013         causes spurious differences between trunk and cond-optab branch.
4014
4015 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4016
4017         * dojump.c (compare_from_rtx): Delete.
4018         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
4019         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
4020         if the comparison does not satisfy the predicate; test predicates for
4021         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
4022         further if one existing pattern fails.
4023         * expr.h (compare_from_rtx): Delete.
4024         (prepare_operand): Declare it.
4025         * optabs.c: Change "lib call" to "libcall" throughout.
4026         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
4027         HAVE_conditional_trap, emit_cmp_insn): Delete.
4028         (can_compare_p): Delete cmp_optab case.
4029         (prepare_float_lib_cmp): Return an rtx and a machine mode.
4030         Accept other parameters by value.
4031         (prepare_operand): Make non-static.
4032         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
4033         other parameters by value.  Try to widen operands here based on
4034         an optab_methods argument and looking at cbranch_optab.
4035         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4036         loop.  Use cbranch_optab directly.
4037         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
4038         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4039         assertion.
4040         (emit_conditional_move, emit_conditional_add): Inline what's needed
4041         of compare_from_rtx, using new prepare_cmp_insn for the rest.
4042         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4043         with COMPARE.  Move cmov_optab and cstore_optab above
4044         with cbranch_optab, move cmp_optab down with ucmp_optab,
4045         remove tst_otpab.  Do not initialize trap_rtx.
4046         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
4047         for trap code.  Do not check HAVE_conditional_trap.  Use
4048         prepare_cmp_insn.  Accept no predicate for operand 3.
4049         * optabs.h (OTI_cmp): Mark as used only for libcalls.
4050         (OTI_ctrap, ctrap_optab): New.
4051         (tst_optab): Delete.
4052         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4053         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4054         with lookup of ctrap_optab.
4055         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4056         Delete.
4057         (ctrap_optab): New.
4058
4059         * combine.c (combine_simplify_rtx, simplify_set): Do not
4060         special case comparing against zero for cc0 machines.
4061         * simplify-rtx.c (simplify_binary_operation_1): Never remove
4062         COMPARE on cc0 machines.
4063         (simplify_relational_operation): Return a new expression when
4064         a COMPARE could be removed.
4065         * final.c (final_scan_insn): Compare cc_status values
4066         against LHS of a (compare FOO (const_int 0)) cc0 source.
4067         Also check if cc_status.value is the full compare.
4068
4069         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4070         (cstoreMM4): Document.
4071         (conditional_trap): Document ctrapMM4 instead.
4072         (sync_compare_and_swapMM): Refer to cbranchcc4.
4073         (Dependent Patterns): Eliminate obsolete information referring to
4074         the old jump optimization phase.
4075         (Canonicalization): Include cbranchcc4 case, omit canonicalization
4076         of compares with 0 on cc0 machines.
4077         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4078         avoiding references to cc0.  Remove text about storing operands
4079         in cmpMM.
4080         * doc/tm.texi (Condition Codes): Include blurb on different
4081         condition code representations, separate into subsections for
4082         CC0, MODE_CC and conditional execution.
4083
4084         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4085         alpha_emit_setcc): Accept operands and a machine mode.
4086         * config/alpha/alpha.c (alpha_emit_conditional_branch):
4087         Get code/op0/op1 from operands, use machine mode argument
4088         instead of alpha_compare.fp_p.  Emit the branch here.
4089         (alpha_emit_setcc): Likewise, and return boolean.
4090         (alpha_emit_conditional_move): Likewise.  Assert that
4091         cmp_op_mode == cmp_mode, and simplify accordingly.
4092         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4093         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4094         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4095         Delete.
4096         (stack probe test): Use cbranchdi4.
4097         * config/alpha/predicates.md (alpha_cbranch_operator): New.
4098
4099         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
4100         * config/arc/arc.h (movsicc, movsfcc): Use it.
4101         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4102         (cbranchsi4, cstoresi4): New.
4103         (cmpsi, bCC and sCC expanders): Remove. 
4104
4105         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4106         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4107         * config/arm/predicates.md (arm_comparison_operator): Only include
4108         floating-point operators if there is a hardware floating-point unit.
4109         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4110         deferring to cbranch_cc and cstore_cc respectively.
4111         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4112         cbranch_cc, cstore_cc): New.
4113         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
4114         arm_compare_op1.
4115         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4116
4117         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4118         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4119         as an argument.
4120         (adjust_insn_length): Adjust calls.
4121         (avr_reorg): Handle (compare (foo) (const_int 0)).
4122         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4123         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4124         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4125         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4126         (bCC): Remove.
4127         (cbranchqi4, cbranchhi4, cbranchsi4): New.
4128         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4129
4130         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4131         (cbranchsi4, cstorebi4, cstoresi4): New.
4132         (movbisi): This insn is duplicate, split it to zero_extend.
4133         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4134         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
4135         (bfin_optimize_loop): Use cbranch expander.
4136         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4137         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4138         (bfin_bimode_comparison_operator): ... this.
4139         (bfin_direct_comparison_operator): New.
4140  
4141         * config/cris/cris.c (cris_normal_notice_update_cc): Look
4142         inside (compare FOO (const_int 0)).
4143         (cris_rtx_costs): Handle ZERO_EXTRACT.
4144         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4145         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4146         (*tstdi_v32): Delete.
4147         (*cmpdi_non_v32): Add M alternative for operand 1.
4148         (cmpsi, cmp<mode>): Make private.
4149         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4150         with COMPARE.
4151         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4152
4153         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4154         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4155         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
4156         (cc_reg_operand): New.
4157         (any_cond): Delete.
4158         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4159         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4160         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4161         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4162         crx_expand_scond): Delete.
4163
4164         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4165         (cbranchsi4): New.
4166         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4167         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4168
4169         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4170         cstoresi4, cstoresf4, cstoredf4): New.
4171         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4172         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4173         Receive the entire operands array.
4174         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4175         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4176         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4177         Get test/op0/op1 from the operands array.
4178         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4179
4180         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4181         (h8300_expand_store): New.
4182         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4183         (const_int 0)).
4184         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
4185         (h8300_expand_store): New.
4186         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4187         or do not try to produce (set (cc0) REG).
4188         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
4189         change a compare into a move to a scratch register.  Disable some
4190         peepholes when comparing with zero.
4191         (tstsi, tsthi, tstsi, cmpqi): Make private.
4192         (cmphi): Delete.
4193         (bCC, sCC): Delete.
4194         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4195         cstoresi4): New.
4196
4197         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4198         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4199         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4200         (ix86_emit_i387_log1p): Use cbranchxf2.
4201         (ix86_expand_setcc): Return void.
4202         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4203         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4204         cmp<MODEF>, cmpcc): Remove.
4205         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4206         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4207         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
4208         (sCC and bCC expanders): Remove.
4209         (stack_protect_test): Use cbranchcc4.
4210
4211         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4212         Delete.
4213         (ia64_expand_compare): Accept three rtx by reference and return void.
4214         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4215         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
4216         from *expr.  Update *expr with the BImode comparison to do.
4217         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4218         cmptf, bCC, sCC, conditional_trap): Delete.
4219         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
4220         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4221         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4222         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4223         * config/ia64/predicates.md (ia64_cbranch_operator): New.
4224
4225         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4226         type of last argument.
4227         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4228         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4229         use machine mode argument instead of branch_type.  Remove dead
4230         code for floating-point comparisons.
4231         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4232         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4233         Remove.
4234         (cbranchsi4, cstoresi4): New.
4235         * config/iq2000/predicates.md (reg_or_const_operand): New.
4236
4237         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4238         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4239         (b<code>_op): Rewrite to...
4240         (bcc_op): ... this, using match_operator.
4241         (s<code>_op): Rewrite to...
4242         (scc_op): ... this, using match_operator.
4243         (s<code>_24_op): Rewrite to...
4244         (scc_op_24): ... this, using match_operator.
4245         (s<code>_<mode>): Rewrite to...
4246         (cstore<mode>4): ... this, using match_operator.
4247         (s<code>_<mode>_24): Rewrite to...
4248         (cstore<mode>4_24): ... this, using match_operator.
4249         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4250         m32c_unpend_compare, m32c_expand_scc): Delete.
4251         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4252         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4253         (m32c_expand_movcc): Change NE to EQ if necessary.
4254         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4255
4256         * config/m32r/m32r-protos.h (gen_cond_store): New.
4257         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4258         (gen_cond_store): New, from sCC patterns.
4259         (m32r_expand_block_move): Use cbranchsi4.
4260         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4261         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4262         (cbranchsi4, cstoresi4): New.
4263         
4264         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4265         Delete.
4266         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
4267         (m68hc11_notice_update_cc): Look into a compare with 0.
4268         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4269         Delete.
4270         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4271         cmphi, cmpqi, bCC): Delete.
4272         (cbranchsi4, cbranchhi4, cbranchqi4): New.
4273         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4274         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4275         sets with COMPARE.
4276
4277         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4278         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4279         * config/m68k/constraints.md (H): New.
4280         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4281         the define_insn below.
4282         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4283         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4284         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4285         patterns): Wrap RHS with COMPARE.
4286         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4287         (*cmpdi_internal): Name this pattern.
4288         (cmpdi): Change to define_insn.
4289         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4290         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4291         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4292         predicate.
4293         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4294         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4295         (conditional_trap): Change to...
4296         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4297         (*conditional_trap): Use the ordered_comparison_operator and
4298         const1_operand predicates.
4299         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4300         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4301         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4302         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4303
4304         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4305         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4306         (mcore_gen_compare): New. 
4307         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4308         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4309         (mcore_gen_compare): ... this.
4310         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4311         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4312         (stack probe pattern): Use cbranchsi4.
4313
4314         * config/mips/predicates.md (mips_cstore_operator): New.
4315         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4316         * config/mips/mips.md (any_cond): Delete.
4317         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
4318         always succeed.
4319         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4320         fixuns_truncsfdi2): Use cbranch patterns.
4321         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
4322         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4323         Adjust call to mips_expand_conditional_branch.
4324         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4325         cstore<GPR:mode>4.
4326         * config/mips/mips-protos.h (mips_expand_conditional_branch,
4327         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4328         * config/mips/mips.c (cmp_operands): Delete.
4329         (mips_emit_compare): Get comparison operands from *op0/*op1.
4330         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
4331         that it succeeds.  Use op0/op1 instead of cmp_operands.
4332         (mips_expand_conditional_branch, mips_expand_conditional_move,
4333         mips_expand_conditional_trap): Likewise.
4334         (mips_block_move_loop): Use cbranch patterns. 
4335         * config/mips/mips.h (cmp_operands): Delete.
4336
4337         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4338         (mmix_gen_compare_reg): Just return a register in the right CC mode.
4339         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4340         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4341         (*cmpcc_folded): Rename to...
4342         (*cmpdi_folded): this.
4343         (*cmpcc): Rename to...
4344         (*cmps): ... this.
4345         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4346         (bCC): Remove.
4347         (cbranchdi4): New.
4348         (cbranchdf4): New.  Handle invalid comparisons here.
4349         * config/mmix/predicates.md (float_comparison_operator): New.
4350
4351         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4352         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4353         * config/mn10300/mn10300.md (tst): Delete.
4354         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4355         Name these patterns and wrap RHS in a compare.
4356         (*cmpsi): Make this pattern private.  Include tst.
4357         (*cmpsf): Make this pattern private.
4358         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4359         (compare with zero peepholes): Likewise.
4360         (bCC): Remove.
4361         (cbranchsi4, cbranchsf4): New.
4362         (casesi): Use cbranchsi4.
4363
4364         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4365         hppa_branch_type): Delete.
4366         (return_addr_rtx): Use cbranchsi4.
4367         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
4368         Emit CCFPmode comparison here.
4369         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4370         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4371         hppa_branch_type): Delete.
4372         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4373         (movsicc, movdicc): Remove references to hppa_compare_op0,
4374         hppa_compare_op1 and compare_from_rtx.
4375         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4376         (casesi): Use cbranchsi4.
4377
4378         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4379         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4380         * config/pdp11/pdp11.md (register_or_const0_operand): New.
4381         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
4382         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4383         (bCC): Delete.
4384         (cbranchdf4, cbranchhi4, cbranchqi4): New.
4385         (*branch, *branch_inverted): New.
4386
4387         * config/picochip/picochip.md (cbranchhi4): Use
4388         ordered_comparison_operator.
4389         (cmphi, bCC): Remove.
4390
4391         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4392         (trap_comparison_operator): Delete.
4393         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4394         rs6000_emit_cbranch): Accept mode and operands.
4395         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4396         rs6000_compare_fp_p): Delete.   
4397         (rs6000_generate_compare): Accept mode and comparison.  Extract code
4398         and op0/op1 from there.  Replace references to rs6000_compare_op0
4399         and rs6000_compare_op1.
4400         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4401         extract result from passed operands.
4402         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4403         extract loc from passed operands.
4404         (rs6000_emit_cmove): Likewise.
4405         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4406         rs6000_compare_fp_p): Delete.
4407         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4408         (cbranch<GPR>4, cbranch<FP>4): New.
4409         (cstore<mode>4): New.  Consolidate here all choices about when to use
4410         portable or specialized sCC sequences.
4411         (stack_protect_test): Use cbranchsi4.
4412         (conditional_trap): Replace with ctrap<GPR>4.
4413         (conditional trap insn): Replace trap_comparison_operator with
4414         ordered_comparison_operator. 
4415
4416         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4417         (s390_emit_prologue): Use ctrap.
4418         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4419         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4420         New predicates replacing...
4421         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4422         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4423         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4424         (add<mode>cc): Do not use s390_compare_op0/op1.
4425         (s<code>): Change to...
4426         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4427         (seq): Change to...
4428         (cstorecc4): ... this.  Handle EQ or NE equally.
4429         (*sne): Un-privatize for use in cstorecc4.
4430         (b<code>): Change to...
4431         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4432         (conditional_trap): Replace with...
4433         (ctrap<GPR>4, ctrap<FP>4): ... these.
4434         (stack_protect): Use cbranchcc4.
4435
4436         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4437         * config/score/score-protos.h (score_gen_cmp): Delete.
4438         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4439         (score_block_move-loop): Use cbranchsi4.
4440         * config/score/score.md (cbranchsi4): New.
4441         (cmpsi, bCC): Delete.
4442         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4443         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4444         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4445         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4446         * config/score/score3.h (score3_gen_cmp): Delete.
4447         * config/score/score7.h (score7_gen_cmp): Delete.
4448
4449         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4450         (sh_emit_scc_to_t): ... this.  Return void.
4451         (from_compare): Rename to...
4452         (sh_emit_compare_and_branch): ... this.
4453         (sh_emit_compare_and_set): New.
4454         (sh_expand_t_scc): Accept operands.
4455         * config/sh/predicates.md (sh_float_comparison_operator): New.
4456         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4457         (prepare_scc_operands): Rename to...
4458         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
4459         arguments.
4460         (sh_emit_cheap_store_flag): New.
4461         (sh_emit_set_t_insn): New.
4462         (from_compare): Rename to...
4463         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
4464         handling of TARGET_SH2E floating point to avoid recursive call.
4465         Generate branch here.
4466         (sh_emit_compare_and_set): New.
4467         (sh_expand_t_scc): Get op0/op1 from arguments.
4468         (sh_emit_cheap_store_flag): New.
4469         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4470         cases.
4471         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
4472         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4473         (movsicc, movdicc): Do nothing when it recreated operands from
4474         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
4475         prepare_scc_operands (now sh_emit_scc_to_t).
4476         (udivdi3): Use cstoresi4.
4477         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4478         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4479         (cbranchint4_media, cbranchfp4_media): New.
4480         (casesi): Use cbranchdi4.
4481         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4482         Delete.
4483         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4484         (movnegt): Remove second operand.
4485         (cbranchsf4, cbranchdf4): New.
4486         (stack_protect): Use cbranchdi4/cbranchsi4.
4487
4488         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4489         (gen_compare_reg): Accept comparison, extract part of it to...
4490         (gen_compare_reg_1): ... this. 
4491         (gen_compare_operator): Delete.
4492         (gen_v9_scc): Accept separate destination, comparison code and arms.
4493         Do not use sparc_compare_op0/sparc_compare_op1.
4494         (emit_scc_insn, emit_conditional_branch_insn): New.
4495         (emit_v9_brxx): Make static.  Remove useless assertion.
4496         (sparc_emit_float_lib_cmp): Return RTL instead of calling
4497         emit_cmp_insn.
4498         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4499         * config/sparc/sparc-protos.h (gen_compare_reg,
4500         sparc_emit_float_lib_cmp): Adjust prototype.
4501         (emit_scc_insn, emit_conditional_branch_insn): New.
4502         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
4503         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4504         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4505         iterators to the top.
4506         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4507         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
4508         snedi_special_trunc): Delete.
4509         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
4510         and snedi_special_trunc.
4511         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4512         cbranchdi4, cbranch<F:mode>4): New.
4513         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4514         here.  Use gen_compare_reg instead of gen_compare_operator.
4515         (conditional_trap): Replace with...
4516         (ctrapsi4, ctrapdi4): ... this.
4517         (stack_protect_test): Use cbranchcc4.
4518
4519         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4520         argument to rtx.
4521         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
4522         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4523         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
4524         from operands[0] or operands[3] depending on is_set.
4525         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4526         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4527         cmpdf, bCC), sCC: Remove.
4528         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
4529         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4530         cstoredf4): New.
4531         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4532         spu_emit_branch_or_set.
4533
4534         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4535         Add two arguments.
4536         * config/stormy16/stormy16.h (xstormy16_compare_op0,
4537         xstormy16_compare_op1): Delete.
4538         * config/stormy16/stormy16.c (xstormy16_compare_op0,
4539         xstormy16_compare_op1): Delete. 
4540         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4541         Adjust calls.
4542         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4543         (cmphi, cmpsi, bCC): Remove.
4544
4545         * config/v850/v850.md (tstsi, cmpsi): Fold into...
4546         (*cmpsi): ... this one.
4547         (cbranchsi4, cstoresi4): New.
4548         (bCC expanders): Delete.
4549         (sCC insns): Fold into...
4550         (*setcc): ... this one.
4551         (casesi): Do not use gen_cmpsi and gen_bgtu. 
4552         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4553         (movsicc): Simplify.
4554         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4555
4556         * config/vax/vax-protos.h (cond_name): New.
4557         (vax_output_conditional_branch): Remove.
4558         * config/vax/vax.c (cond_name): New.
4559         (vax_output_conditional_branch): Remove.
4560         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4561         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4562         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
4563         (bit<VAXint>): Wrap source with (compare).
4564         (b<code> and following unnamed pattern): Rename to *branch and
4565         *branch_reversed.  Change macroization to match_operator.
4566         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4567
4568         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4569         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4570         Change last argument to machine_mode.
4571         (xtensa_expand_scc): Add machine_mode argument.
4572         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4573         (gen_conditional_move, xtensa_expand_conditional_branch,
4574         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4575         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4576         Adjust operand numbers.
4577         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4578         Delete.
4579         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4580         (cmpsi, cmpsf, b<code>, s<code>): Delete.
4581         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
4582
4583 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4584
4585         * optabs.c (prepare_cmp_insn): Temporarily disable test that
4586         causes spurious differences between trunk and cond-optab branch.
4587
4588 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
4589
4590         PR target/37137
4591         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4592
4593 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
4594
4595         * tree.c (iterative_hash_pointer): Delete.
4596         (iterative_hash_expr): Short-circuit handling of NULL pointer.
4597         Hash UIDs and versions of SSA names.  Don't special-case built-in
4598         function declarations.
4599
4600 2009-05-11  Ian Lance Taylor  <iant@google.com>
4601
4602         PR bootstrap/40103
4603         * graphite.c: Force -Wc++-compat to only be a warning before
4604         #including "cloog/cloog.h".
4605
4606 2009-05-11  Martin Jambor  <mjambor@suse.cz>
4607
4608         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4609         
4610 2009-05-11  Jan Hubicka  <jh@suse.cz>
4611
4612         * tree-ssa-loop-ivcanon.c: Include target.h
4613         (struct loop_size): new structure.
4614         (constant_after_peeling): New predicate.
4615         (tree_estimate_loop_size): New function.
4616         (estimated_unrolled_size): Rewrite for new estimates.
4617         (try_unroll_loop_completely): Use new estimates.
4618         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4619
4620 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4621
4622         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4623         libcpp interface change.
4624         (spu_macro_to_expand): Likewise.
4625
4626 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
4627
4628         PR tree-optimization/40026
4629         * gimplify.c (gimplify_init_constructor): Change initial conditional
4630         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
4631         optimize_compound_literals_in_ctor.
4632
4633 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
4634
4635         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4636         New devices.
4637         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4638
4639 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
4640
4641         * tree-vect-data-refs.c (vect_analyze_group_access): Use
4642         HOST_WIDE_INT for gap.
4643
4644 2009-05-11  Ira Rosen  <irar@il.ibm.com>
4645
4646         PR tree-optimization/40074
4647         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4648         account in group size and step comparison.
4649
4650 2009-05-11  Richard Guenther  <rguenther@suse.de>
4651
4652         * passes.c (init_optimization_passes): Strip now incorrect comment.
4653         (execute_function_todo): Do not set PROP_alias.
4654         * tree-pass.h (PROP_alias): Remove.
4655         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4656         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4657         * tree-nrv.c (pass_return_slot): Likewise.
4658         * tree-object-size.c (pass_object_sizes): Likewise.
4659         * tree-ssa-dom.c (pass_dominator): Likewise.
4660         (pass_phi_only_cprop): Likewise.
4661         * tree-ssa-dse.c (pass_dse): Likewise.
4662         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4663         (pass_cselim): Likewise.
4664         * tree-ssa-pre.c (pass_pre): Likewise.
4665         (pass_fre): Likewise.
4666         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4667         * tree-ssa-sink.c (pass_sink_code): Likewise.
4668         * tree-stdarg.c (pass_stdarg): Likewise.
4669         * tree-tailcall.c (pass_tail_calls): Likewise.
4670         * tree-vrp.c (pass_vrp): Likewise.
4671
4672 2009-05-10  Ian Lance Taylor  <iant@google.com>
4673
4674         * basic-block.h (enum profile_status): Break out of struct
4675         control_flow_graph.
4676         * cgraph.h (struct inline_summary): Break out of struct
4677         cgraph_local_info.
4678         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4679         of struct cgraph_order_sort.
4680         * combine.c (enum undo_kind): New enum, broken out of struct undo.
4681         * cse.c (struct branch_path): Break out of struct
4682         cse_basic_block_data.
4683         * except.h (enum eh_region_type): Break out of struct eh_region.
4684         * gcc.c (enum add_del): Break out of struct modify_target.
4685         * genrecog.c (enum decision_type): Break out of struct decision_test.
4686         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4687         ggc_pch_data.
4688         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4689         * regmove.c (enum match_use): New enum, broken out of struct match.
4690         * sched-int.h (enum post_call_group): New enum, broken out of
4691         struct deps.
4692         (struct deps_reg): Break out of struct deps.
4693         * target.h (struct asm_int_op): Break out of struct gcc_target.
4694         * tree-eh.c (struct goto_queue_node): Break out of struct
4695         leh_tf_state.
4696         * tree-inline.h (enum copy_body_cge_which): Break out of
4697         copy_body_data.
4698         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4699
4700         * c-decl.c (in_struct, struct_types): New static variables.
4701         (pushtag): Add loc parameter.  Change all callers.
4702         (lookup_tag): Add ploc parameter.  Change all callers.
4703         (check_compound_literal_type): New function.
4704         (parser_xref_tag): Add loc parameter.  Change all callers.  If
4705         -Wc++-compat, warn about struct/union/enum types defined within a
4706         struct or union.
4707         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4708         and loc parameters.  Change all callers.  Change error calls to
4709         error_at, using loc.  For a redefinition, if the location of the
4710         original definition is known, report it.  Set in_struct and
4711         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
4712         (finish_struct): Add new parameters enclosing_in_struct and
4713         enclosing_struct_types.  Change all callers.  Set
4714         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4715         in the struct.  If in a struct, add this struct to struct_types.
4716         (start_enum): Add loc parameter.  Change all callers.  Use
4717         error_at for errors, using loc.  For a redefinition, if the
4718         location of the original definition is known, report it.  If in a
4719         struct, add this enum type to struct_types.  If -Wc++-compat warn
4720         if in sizeof, typeof, or alignof.
4721         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4722         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
4723         (c_parser_enum_specifier): Get enum location for start_enum.
4724         (c_parser_struct_or_union_specifier): Get struct location for
4725         start_struct.  Save in_struct and struct_types status between
4726         start_struct and finish_struct.
4727         (c_parser_cast_expression): Get location of cast.
4728         (c_parser_alignof_expression): Get location of type.
4729         (c_parser_postfix_expression): Likewise.
4730         (c_parser_postfix_expression_after_paren_type): Add type_loc
4731         parameter.  Change all callers.  Call check_compound_literal_type.
4732         Use type_loc for error about variable size type.
4733         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4734         of an enum constant from an enum type defined in a struct or union.
4735         (c_cast_expr): Add loc parameter.  Change all callers.  If
4736         -Wc++-compat, warn about defining a type in a cast.
4737         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4738         (start_enum, start_struct, finish_struct): Update declarations.
4739         (parser_xref_tag, c_cast_expr): Update declarations.
4740         (check_compound_literal_type): Declare.
4741
4742 2009-05-11  Ben Elliston  <bje@au.ibm.com>
4743
4744         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4745         for recent libcpp interface change.
4746         (rs6000_macro_to_expand): Likewise.
4747
4748 2009-05-10  Michael Matz  <matz@suse.de>
4749
4750         PR target/40031
4751         * config/arm/arm.c (require_pic_register): Emit on entry edge,
4752         not at entry of function.
4753
4754 2009-05-10  Richard Guenther  <rguenther@suse.de>
4755
4756         PR tree-optimization/40081
4757         Revert
4758         * tree-sra.c (instantiate_element): Instantiate scalar replacements
4759         using the main variant of the element type.  Do not fiddle with
4760         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4761
4762         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4763         structs with volatile fields.
4764
4765 2009-05-10  Jan Hubicka  <jh@suse.cz>
4766
4767         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
4768         (estimate_move_cost): Assert that it does not get called for
4769         VOID_TYPE_P.
4770         (estimate_num_insns): Skip VOID types in argument handling.
4771         (optimize_inline_calls): Delete unreachable blocks and verify that
4772         callgraph is valid.
4773
4774 2009-05-10  Jan Hubicka  <jh@suse.cz>
4775
4776         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4777         * cgraph.c (cgraph_mark_address_taken_node): New function.
4778         (dump_cgraph_node): Dump new flag.
4779         * cgraph.h (struct cgraph_node): Add address_taken.
4780         (cgraph_mark_address_taken_node): New function.
4781         * ipa.c (cgraph_postorder): Prioritize functions with address taken
4782         since new direct calls can be born.
4783
4784 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
4785
4786         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4787         tok->val.node.node.
4788
4789 2009-05-10  Jan Hubicka  <jh@suse.cz>
4790
4791         PR middle-end/40084
4792         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4793         argument; rewrite.
4794         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4795         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4796         * tree-inline.c (copy_bb): Set frequency correctly.
4797         (fold_marked_statements): Update call to
4798         cgraph_update_edges_for_call_stmt.
4799
4800 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
4801
4802         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4803         identifiers in diagnostics.
4804         * config/arm/arm.c (arm_handle_fndecl_attribute,
4805         arm_handle_isr_attribute): Likewise.
4806         * config/avr/avr.c (avr_handle_progmem_attribute,
4807         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
4808         * config/bfin/bfin.c (handle_int_attribute,
4809         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4810         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4811         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4812         Likewise.
4813         * config/darwin.c (darwin_handle_kext_attribute,
4814         darwin_handle_weak_import_attribute): Likewise.
4815         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4816         h8300_handle_eightbit_data_attribute,
4817         h8300_handle_tiny_data_attribute): Likewise.
4818         * config/i386/i386.c (ix86_handle_cconv_attribute,
4819         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
4820         * config/i386/winnt.c (ix86_handle_shared_attribute,
4821         ix86_handle_selectany_attribute): Likewise.
4822         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4823         * config/m32c/m32c.c (function_vector_handler): Likewise.
4824         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4825         m68hc11_handle_fntype_attribute): Likewise.
4826         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4827         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4828         * config/mips/mips.c (mips_insert_attributes,
4829         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4830         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4831         rs6000_handle_struct_attribute): Likewise.
4832         * config/sh/sh.c (sh_insert_attributes,
4833         sh_handle_resbank_handler_attribute,
4834         sh_handle_interrupt_handler_attribute,
4835         sh2a_handle_function_vector_handler_attribute,
4836         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4837         Likewise.
4838         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4839         * config/spu/spu.c (spu_handle_fndecl_attribute,
4840         spu_handle_vector_attribute): Likewise.
4841         * config/stormy16/stormy16.c
4842         (xstormy16_handle_interrupt_attribute): Likewise.
4843         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4844         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4845
4846 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
4847
4848         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
4849         (pp_translate_identifiers): New.
4850         (pp_identifier): Only conditionally translate identifier to locale
4851         character set.
4852         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4853         (pp_base_tree_identifier): Only conditionally translate identifier
4854         to locale character set.
4855         * c-pretty-print.c (M_): Define.
4856         (pp_c_type_specifier, pp_c_primary_expression): Mark English
4857         fragments for conditional translation with M_.
4858         * tree-pretty-print.c (maybe_init_pretty_print): Disable
4859         identifier translation.
4860
4861 2009-05-10  Richard Guenther  <rguenther@suse.de>
4862
4863         PR tree-optimization/40081
4864         * tree-sra.c (instantiate_element): Instantiate scalar replacements
4865         using the main variant of the element type.  Do not fiddle with
4866         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4867
4868 2009-05-09  Jan Hubicka  <jh@suse.cz>
4869
4870         PR middle-end/40080
4871         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4872         indirect calls; verify cgraph afterwards.
4873
4874 2009-05-09  Jan Hubicka  <jh@suse.cz>
4875
4876         PR bootstrap/40082
4877         * ipa.c (update_inlined_to_pointer): New function.
4878         (cgraph_remove_unreachable_nodes): Use it.
4879
4880 2009-05-09  Jan Hubicka  <jh@suse.cz>
4881
4882         * tree-eh.c (struct leh_state): Remove prev_try.
4883         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4884         not track prev_try.
4885         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
4886         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4887         remove_eh_handler_and_replace, foreach_reachable_handler,
4888         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4889         * except.h (struct eh_region): Remove eh_region_u_cleanup.
4890         (gen_eh_region_cleanup): Update prototype.
4891
4892 2009-05-09  Jan Hubicka  <jh@suse.cz>
4893
4894         PR middle-end/40043
4895         * except.c (copy_eh_region): Always set prev_try.
4896         (redirect_eh_edge_to_label): Find outer try.
4897         (foreach_reachable_handler): When looking for prev try
4898         handle case where previous try is not going to be taken.
4899
4900 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
4901
4902         PR tree-optimization/40049
4903         * tree-vect-stmts.c (vectorizable_operation): If the machine has
4904         only vector/vector shifts, convert the type of the constant to the
4905         appropriate type to avoid building incorrect trees, which
4906         eventually have problems with garbage collection.
4907
4908 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
4909
4910         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4911         -1 for complex floating-point types if honoring signed zeros.
4912
4913 2009-05-08  Jan Hubicka  <jh@suse.cz>
4914
4915         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4916         argument; handle correctly when profile is absent.
4917         (build_cgraph_edges): Update.
4918         (rebuild_cgraph_edges): Update.
4919         * cgraph.c: Do not include varray.h.
4920         (cgraph_set_call_stmt_including_clones): New function.
4921         (cgraph_create_edge_including_clones): Likewise
4922         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
4923         (cgraph_update_edges_for_call_stmt): Handle clones.
4924         (cgraph_remove_node): Handle clone tree.
4925         (cgraph_remove_node_and_inline_clones): New function.
4926         (dump_cgraph_node): Dump clone tree.
4927         (cgraph_clone_node): Handle clone tree.
4928         (clone_function_name): Bring here from tree-inline.c.
4929         (cgraph_create_virtual_clone): New function.
4930         * cgraph.h (ipa_replace_map): Move here from ipa.h.
4931         (cgraph_clone_info): New function.
4932         (strut cgraph_node): Add clone_info and new clone tree pointers.
4933         (cgraph_remove_node_and_inline_clones,
4934         cgraph_set_call_stmt_including_clones,
4935         cgraph_create_edge_including_clones,
4936         cgraph_create_virtual_clone): Declare.
4937         (cgraph_function_versioning): Use VEC argument.
4938         (compute_call_stmt_bb_frequency): Update prototype.
4939         (cgraph_materialize_all_clones): New function.
4940         * ipa-cp.c (ipcp_update_cloned_node): Remove.
4941         (ipcp_create_replace_map): Update to VECtors.
4942         (ipcp_update_callgraph): Use virtual clones.
4943         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4944         (ipcp_update_profiling): Do not update local profiling.
4945         (ipcp_insert_stage): Use VECtors and virtual clones.
4946         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4947         (clone_of_p): New function.
4948         (cgraph_preserve_function_body_p): Use clone tree.
4949         (cgraph_optimize): Materialize clones.
4950         (cgraph_function_versioning): Update for VECtors.
4951         (save_inline_function_body): Use clone tree.
4952         (cgraph_materialize_clone): New function.
4953         (cgraph_materialize_all_clones): Likewise.
4954         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4955         * ipa.c: Include gimple.h.
4956         (cgraph_remove_unreachable_nodes): Use clone tree.
4957         * ipa-prop.c (ipa_note_param_call): Update call to
4958         compute_call_stmt_bb_frequencycall.
4959         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
4960         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
4961         (copy_bb): Handle updating of clone tree; add new edge when new call
4962         appears.
4963         (expand_call_inline): Be strict about every call having edge.
4964         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4965         (delete_unreachable_blocks_update_callgraph): New function.
4966         (tree_function_versioning): Use VECtors; always remove unreachable
4967         blocks and fold conditionals.
4968         * tree-inline.h: Do not include varray.h.
4969         (tree_function_versioning): Remove.
4970         * Makefile.in (GTFILES): Remove tree-inline.c
4971         * passes.c (do_per_function): Do only functions having body.
4972         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4973         tree.
4974
4975 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
4976             Andrew Morrow  <acm@google.com>
4977
4978         PR c/36892
4979         * c-common.c (c_common_attribute_table): Permit deprecated
4980         attribute to take an optional argument.
4981         (handle_deprecated_attribute): If the optional argument to
4982         __attribute__((deprecated)) is not a string ignore the attribute
4983         and emit a warning.
4984
4985         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4986         * c-typeck.c (build_component_ref): Likewise.
4987         (build_external_ref): Likewise.
4988
4989         * toplev.c (warn_deprecated_use): Add an attribute argument.
4990         Emit the message associated with __attribute__((deprecated)).
4991
4992         * toplev.h (warn_deprecated_use): Updated.
4993
4994         * doc/extend.texi: Document new optional parameter to
4995         __attribute__((deprecated))
4996
4997 2009-05-08  Michael Eager <eager@eagercon.com>
4998
4999         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5000         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5001
5002 2009-05-08  Richard Guenther  <rguenther@suse.de>
5003
5004         PR tree-optimization/40062
5005         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5006         Avoid exponential behavior.
5007
5008 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5009
5010         PR rtl-optimization/33928
5011         PR 26854
5012         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5013         process_uses, build_single_def_use_links): New.
5014         (update_df): Update use_def_ref.
5015         (forward_propagate_into): Use get_def_for_use instead of use-def
5016         chains.
5017         (fwprop_init): Call build_single_def_use_links and let it initialize
5018         dataflow.
5019         (fwprop_done): Free use_def_ref.
5020         (fwprop_addr): Eliminate duplicate call to df_set_flags.
5021         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
5022         df_rd_simulate_one_insn): New.
5023         (df_rd_bb_local_compute_process_def): Update head comment.
5024         (df_chain_create_bb): Use the new RD simulation functions.
5025         * df.h (df_rd_simulate_artificial_defs_at_top, 
5026         df_rd_simulate_one_insn): New.
5027         * opts.c (decode_options): Enable fwprop at -O1.
5028         * doc/invoke.texi (-fforward-propagate): Document this.
5029
5030 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
5031
5032         PR c/24581
5033         * c-typeck.c (build_binary_op): Handle arithmetic between one real
5034         and one complex operand specially.
5035         * tree-complex.c (some_nonzerop): Do not identify a real value as
5036         zero if flag_signed_zeros.
5037
5038 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5039
5040         PR rtl-optimization/33928
5041         * loop-invariant.c (record_use): Fix && vs. || mishap.
5042
5043 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5044
5045         PR rtl-optimization/33928
5046         * loop-invariant.c (struct use): Add addr_use_p.
5047         (struct def): Add n_addr_uses.
5048         (struct invariant): Add cheap_address.
5049         (create_new_invariant): Set cheap_address.
5050         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
5051         (record_uses): Pass df_ref to record_use.
5052         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5053         used only as such.
5054
5055 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5056
5057         * config/sh/sh.c: Do not include c-pragma.h.
5058
5059 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5060
5061         * config/spu/spu.c: Remove include of c-common.h.
5062
5063 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
5064
5065         PR c/39037
5066         * c-common.h (mark_valid_location_for_stdc_pragma,
5067         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5068         clear_float_const_decimal64, float_const_decimal64_p): New.
5069         * c.opt (Wunsuffixed-float-constants): New.
5070         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5071         unsuffixed float constant, handle new warning.
5072         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5073         * c-decl.c (c_scope): New flag float_const_decimal64.
5074         (set_float_const_decimal64, clear_float_const_decimal64,
5075         float_const_decimal64_p): New.
5076         (push_scope): Set new flag.
5077         * c-parser.c (c_parser_translation_unit): Mark when it's valid
5078         to use STDC pragmas.
5079         (c_parser_external_declaration): Ditto.
5080         (c_parser_compound_statement_nostart): Ditto.
5081         * c-pragma.c (valid_location_for_stdc_pragma,
5082         mark_valid_location_for_stdc_pragma,
5083         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5084         handle_pragma_float_const_decimal64): New.
5085         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5086         * cp/semantics.c (valid_location_for_stdc_pragma_p,
5087         set_float_const_decimal64, clear_float_const_decimal64,
5088         float_const_decimal64_p): New dummy functions.
5089         * doc/extend.texi (Decimal Float): Remove statement that the
5090         pragma, and suffix for double constants, are not supported.
5091         * doc/invoke.texi (Warning Options): List new option.
5092         (-Wunsuffixed-float-constants): New.
5093
5094 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
5095
5096         * config/i386/i386.c: Do not include c-common.h.
5097
5098 2009-05-07  Mark Heffernan  <meheff@google.com>
5099
5100         * doc/invoke.texi (Debugging Options): Document change of debugging
5101         dump location.
5102         * opts.c (decode_options): Make dump_base_name relative to
5103         aux_base_name directory.
5104
5105 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5106
5107         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5108         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5109
5110 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
5111
5112         * Makefile.in (install-plugin): Simplify a bit.
5113
5114 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
5115
5116         * Makefile.in (OBJS-common): Add regcprop.o.
5117         (regcprop.o): New.
5118         * timevar.def (TV_CPROP_REGISTERS): New.
5119         * regrename.c (regrename_optimize): Return 0.
5120         (rest_of_handle_regrename): Delete.
5121         (pass_rename_registers): Point to regrename_optimize.
5122         (struct value_data_entry, struct value_data, 
5123         kill_value_one_regno, kill_value_regno, kill_value,
5124         set_value_regno, init_value_data, kill_clobbered_value,
5125         kill_set_value, kill_autoinc_value, copy_value,
5126         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5127         replace_oldest_value_reg, replace_oldest_value_addr,
5128         replace_oldest_value_mem, copyprop_hardreg_forward_1,
5129         debug_value_data, validate_value_data): Move...
5130         * regcprop.c: ... here.
5131         (rest_of_handle_cprop): Delete.
5132         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5133
5134 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
5135
5136         PR middle-end/40057
5137         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5138         GEN_INT for 1 << bitnum.
5139         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5140         build_int_cst_type.
5141
5142 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
5143
5144         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
5145         Remove wrong description of "nand" operation.
5146
5147 2009-05-06  Richard Guenther  <rguenther@suse.de>
5148             Adam Nemet  <anemet@caviumnetworks.com>
5149
5150         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5151         comment.  Add that if LHS is not a gimple register, then RHS1 has
5152         to be a single object (GIMPLE_SINGLE_RHS).
5153
5154 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
5155
5156         * expr.c (get_def_for_expr): Move it up in the file.
5157         (store_field): When expanding a bit-field store, look at the
5158         defining gimple stmt for the masking conversion.
5159
5160 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
5161
5162         PR middle-end/39986
5163         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5164         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5165         32-bit memcpy into long.
5166
5167 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
5168
5169         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5170         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5171         new_reg_loc_descr.
5172         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5173         instead of appending DW_OP_deref*.
5174
5175 2009-05-06  Michael Matz  <matz@suse.de>
5176
5177         PR middle-end/40021
5178         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5179         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5180
5181 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
5182
5183         * Makefile.in (install-plugin): Fix srcdir handling.
5184
5185 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
5186
5187         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5188         when processing for not_regs_needed bitmap.
5189         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5190         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
5191         handling it for rhs. 
5192
5193 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5194
5195         * config/i386/i386.md (unnamed inc/dec peephole): Use
5196         optimize_insn_for_size_p instead of optimize_size.
5197         * config/i386/predicates.md (incdec_operand): Likewise.
5198         (aligned_operand): Likewise.
5199         * config/i386/sse.md (divv8sf3): Likewise.
5200         (sqrtv8sf2): Likewise.
5201
5202 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5203
5204         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5205
5206         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5207
5208 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5209
5210         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5211         ssemodesuffixf2c with avxmodesuffixf2c.
5212
5213 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
5214
5215         PR c/40032
5216         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
5217
5218 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
5219
5220         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5221         (struct tree_base): Adjust spacing for 8 bit boundaries.
5222         (struct tree_decl_common): Add decl_by_reference_flag bit.
5223         (DECL_BY_REFERENCE): Adjust.
5224         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5225         print DECL_BY_REFERENCE bit.
5226         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5227         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5228         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5229         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
5230         unconditionally.
5231
5232         PR middle-end/39666
5233         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5234         range of the type, but default label is missing, add it with one
5235         of the existing labels instead of adding a new label for it.
5236
5237 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
5238
5239         * dwarf.h: Remove.
5240
5241 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
5242
5243         * Makefile.in (enable_plugin, plugin_includedir): New.
5244         (install): Depend on install-plugin.
5245         (PLUGIN_HEADERS): New.
5246         (install-plugin): New.
5247         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5248
5249 2009-05-05  Richard Guenther  <rguenther@suse.de>
5250
5251         PR tree-optimization/40022
5252         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5253         the only vuse.
5254         (phivn_valid_p): Fix tuplification error, simplify.
5255         (phiprop_insert_phi): Add dumps.
5256         (propagate_with_phi): Simplify.
5257
5258 2009-05-05  Richard Guenther  <rguenther@suse.de>
5259
5260         PR middle-end/40023
5261         * builtins.c (gimplify_va_arg_expr): Properly build the address.
5262
5263 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
5264
5265         * tree.h (strip_float_extensions): Remove duplicate declaration.
5266         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5267         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5268         block_ultimate_origin): Rearrange the declarations line to match the
5269         comment that indicates the .c file which the functions are defined.
5270         (dwarf2out_*, set_decl_rtl): Add comment.
5271         (get_base_address): Adjust comment.
5272         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5273         declarations line and add comment.
5274         (is_builtin_name): Add blank after function name, for clarity.
5275
5276 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5277
5278         * attribs.c (decl_attributes): Use %qE for identifiers in
5279         diagnostics.
5280         * cgraphunit.c (verify_cgraph_node): Translate function names to
5281         locale character set in diagnostics.
5282         * coverage.c (get_coverage_counts): Use %qE for identifiers in
5283         diagnostics.
5284         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5285         Document that functions are named in UTF-8.
5286         * expr.c (expand_expr_real_1): Translate function names to locale
5287         character set in diagnostics.
5288         * gimplify.c (omp_notice_variable, omp_is_private,
5289         gimplify_scan_omp_clauses): Use %qE for identifiers in
5290         diagnostics.
5291         * langhooks.c (lhd_print_error_function): Translate function names
5292         to locale character set.
5293         * langhooks.h (decl_printable_name): Document that return value is
5294         in internal character set.
5295         * stmt.c: Include pretty-print.h
5296         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5297         diagnostics.
5298         (resolve_operand_name_1): Translate named operand name to locale
5299         character set.
5300         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5301         diagnostics.
5302         * toplev.c (announce_function): Translate function names to locale
5303         character set.
5304         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5305         (default_tree_printer): Use pp_identifier or translate identifiers
5306         to locale character set.  Mark "<anonymous>" for translation.
5307         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5308         for identifiers in diagnostics.
5309         * tree.c (handle_dll_attribute): Use %qE for identifiers in
5310         diagnostics.
5311         * varasm.c (output_constructor): Use %qE for identifiers in
5312         diagnostics.
5313
5314 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
5315
5316         * configure.ac: use ` ` instead of $()
5317         * configure: Regenerate.
5318
5319 2009-05-05  Ben Elliston  <bje@au.ibm.com>
5320
5321         * config/pa/linux-atomic.c: Eliminate conditional include of
5322         errno.h on non-LP64 systems to simplify build requirements.
5323
5324 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5325
5326         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5327         diagnostics.
5328         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5329         and pass value to identifier_to_locale.
5330         (warn_variable_length_array): Make name a tree.
5331         (grokdeclarator): Separate diagnostic texts for named and unnamed
5332         declarators.  Use %qE for named declarators.
5333         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5334         diagnostics.
5335         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5336         identifiers in diagnostics.
5337         * c-typeck.c (push_member_name, start_init): Pass identifiers to
5338         identifier_to_locale.  Mark "anonymous" strings for translation.
5339
5340 2009-05-04  Michael Eager <eager@eagercon.com>
5341
5342         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
5343         address for DImode/DFmode only if double-precision FP regs.
5344
5345 2009-05-04  Michael Eager <eager@eagercon.com>
5346
5347         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5348         TARGET_SINGLE_FLOAT check.
5349
5350 2009-05-04  Michael Eager <eager@eagercon.com>
5351
5352         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5353
5354 2009-05-04  Michael Eager <eager@eagercon.com>
5355
5356         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5357         * config/rs6000/t-xilinx: New
5358
5359 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
5360
5361         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
5362         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5363         * gcc/explow.c (memory_address): Use target hook.
5364         * gcc/targhooks.c (default_legitimize_address): New.
5365         * gcc/targhooks.h (default_legitimize_address): New.
5366         * gcc/target.h (legitimize_address): New.
5367         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5368         (TARGET_INITIALIZER): Include it.
5369         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5370
5371         * config/bfin/bfin-protos.h (legitimize_address): Remove.
5372         * config/bfin/bfin.c (legitimize_address): Remove.
5373         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
5374         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5375         Remove.
5376         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5377         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5378
5379         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5380         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5381         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5382         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5383         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5384         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5385         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5386         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5387         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5388         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5389         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5390         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5391         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5392         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5393         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5394         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5395         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5396         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5397         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5398         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5399         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5400         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5401         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5402
5403         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5404         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5405         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5406         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5407         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5408         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5409         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5410         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5411         (thumb_legitimize_address): Delete.
5412         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5413         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5414         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5415         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5416         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
5417         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5418         Delete.
5419         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5420         Delete.
5421
5422         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5423         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5424         * config/m32r/m32r.c (m32r_legitimize_address): New.
5425         * config/m68k/m68k.c (m68k_legitimize_address): New.
5426         * config/score/score.c (score_legitimize_address): Standardize.
5427         * config/score/score3.c (score3_legitimize_address): Standardize.
5428         * config/score/score3.h (score3_legitimize_address): Adjust.
5429         * config/score/score7.c (score7_legitimize_address): Standardize.
5430         * config/score/score7.h (score7_legitimize_address): Adjust.
5431         * config/sh/sh.c (sh_legitimize_address): New.
5432         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5433
5434         * gcc/config/s390/s390.c (legitimize_address): Rename to...
5435         (s390_legitimize_address): ... this.
5436         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5437         (sparc_legitimize_address): ... this.
5438         * gcc/config/i386/i386.c (legitimize_address): Rename to...
5439         (ix86_legitimize_address): ... this.
5440         * gcc/config/avr/avr.c (legitimize_address): Rename to...
5441         (avr_legitimize_address): ... this.
5442         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5443         (mn10300_legitimize_address): ... this.
5444         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5445         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5446         (alpha_expand_mov): Adjust call.
5447
5448         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5449         * config/spu/spu.c (spu_legitimize_address): Likewise.
5450         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5451         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5452
5453 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5454
5455         * intl.c (locale_encoding, locale_utf8): New.
5456         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5457         * intl.h (locale_encoding, locale_utf8): Declare.
5458         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
5459         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5460         New.
5461         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5462         argument.
5463         (pp_tree_identifier): Define to call pp_base_tree_identifier.
5464         (pp_base_tree_identifier): Declare as function.
5465         (identifier_to_locale): Declare.
5466         * Makefile.in (pretty-print.o): Update dependencies.
5467         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
5468
5469 2009-05-04  Richard Guenther  <rguenther@suse.de>
5470
5471         PR middle-end/40015
5472         * builtins.c (fold_builtin_memory_op): Do not decay to element
5473         type if the size matches the whole array.
5474
5475 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
5476
5477         * expmed.c (synth_mult): When trying out a shift, pass the result
5478         of a signed shift.
5479
5480 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
5481
5482         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5483         (shiftsub1_cost): New.
5484         (init_expmed): Compute shiftsub1_cost.
5485         (synth_mult): Optimize multiplications by constants of the form
5486         -(2^^m-1) for some constant positive integer m.
5487
5488 2009-05-03  Richard Guenther  <rguenther@suse.de>
5489
5490         PR c/39983
5491         * c-typeck.c (array_to_pointer_conversion): Do not built
5492         ADDR_EXPRs of arrays of pointer-to-element type.
5493         * c-gimplify.c (c_gimplify_expr): Revert change fixing
5494         up wrong ADDR_EXPRs after-the-fact.
5495         * c-common.c (strict_aliasing_warning): Strip pointer
5496         conversions for obtaining the original type.
5497         * builtins.c (fold_builtin_memset): Handle array types.
5498         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5499         and array types
5500
5501 2009-05-03  Richard Guenther  <rguenther@suse.de>
5502
5503         PR middle-end/23329
5504         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5505         Do not lose casts from array types with unknown extent to array
5506         types with known extent.
5507         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5508         alias set compatibility.
5509
5510 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5511
5512         * flags.h (extra_warnings): Delete.
5513         * toplev.c (process_options): Handle Wuninitialized here.
5514         * opts.c (extra_warnings): Delete.
5515         (set_Wextra): Delete.
5516         (common_handle_option): -Wextra can be handled automatically.
5517         * c-opts.c (c_common_handle_option): Delete obsolete code.
5518         (c_common_post_options): Simplify comment.
5519         * common.opt (W): Add Var.
5520         (Wextra): Add Var.
5521         (Wuninitialized): Initialize to -1.
5522
5523 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
5524             Richard Guenther  <rguenther@suse.de>
5525
5526         * expr.c (get_def_for_expr): New function.
5527         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5528         SSA rather than trees.
5529         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
5530         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5531         
5532 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
5533
5534         * c-common.c (reswords): Add _Imaginary.
5535         * c-common.c (enum rid): Add RID_IMAGINARY.
5536
5537 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
5538
5539         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5540         Patch by Richard Guenther.
5541
5542 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
5543
5544         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5545         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5546         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5547         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5548         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5549         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5550         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5551         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5552         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5553         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5554         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5555         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5556         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5557         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5558         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5559         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5560         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5561         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5562
5563 2009-05-02  Richard Guenther  <rguenther@suse.de>
5564
5565         PR tree-optimization/39940
5566         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5567         doing so.
5568
5569 2009-05-02  Richard Guenther  <rguenther@suse.de>
5570
5571         PR middle-end/40001
5572         * tree-ssa.c (execute_update_addresses_taken): Properly check
5573         if we can mark a variable DECL_GIMPLE_REG_P.
5574         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5575         back to the end of the function.
5576         (is_gimple_reg_type): Remove complex type special casing.
5577         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5578         if not optimizing.
5579
5580 2009-05-02  Ben Elliston  <bje@au.ibm.com>
5581
5582         * doc/collect2.texi (Collect2): Document search path behaviour
5583         when configured with --with-ld.
5584
5585 2009-05-02  Jan Hubicka  <jh@suse.cz>
5586
5587         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5588         parameter; update callers.
5589         (coalesce_cost_edge): EH edges are costier because they needs
5590         splitting even if not critical and even more costier when there are
5591         multiple EH predecestors.
5592
5593 2009-05-02  Jan Hubicka  <jh@suse.cz>
5594
5595         * except.c (remove_eh_handler_and_replace): Handle updating after
5596         removing TRY blocks.
5597
5598 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
5599
5600         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5601
5602 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
5603
5604         * varasm.c: Do not include c-pragma.h.
5605         * attribs.c: Do not incude c-common.h.
5606
5607 2009-05-01  Michael Matz  <matz@suse.de>
5608
5609         * calls.c (initialize_argument_information): Handle SSA names like
5610         decls with a non MEM_P DECL_RTL.
5611
5612 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
5613
5614         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5615         * ipa-utils.c: Likewise.
5616         * ipa-type-escape.c: Likewise.
5617         * cgraphunit.c Do not include c-common.h.
5618         * ipa-pure-const.c: Likewise.
5619         * tree-if-conv.c: Likewise.
5620         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5621         * ipa-struct-reorg.c: Likewise.
5622         * tree-nomudflap.c: Likewise.
5623         * tree-ssa-structalias.c: Likewise.
5624
5625 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
5626
5627         * store-motion.c: Many cleanups to make this pass a first-class
5628         citizen instead of an appendix to gcse load motion.  Add TODO list
5629         to make this pass faster/cleaner/better.
5630
5631         (struct ls_expr): Post gcse.c-split cleanups.
5632         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
5633         "stores" field to "avail_stores".
5634         (pre_ldst_mems): Rename to store_motion_mems.
5635         (pre_ldst_table): Rename to store_motion_mems_table.
5636         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5637         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5638         (ldst_entry): Rename to st_expr_entry, update users.
5639         (free_ldst_entry): Rename to free_st_expr_entry, update users.
5640         (free_ldst_mems): Rename to free_store_motion_mems, update users.
5641         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5642         update caller.
5643         (first_ls_expr): Rename to first_st_expr, update users.
5644         (next_ls_expr): Rename to next_st_expr, update users.
5645         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
5646         fields properly for store motion instead of names inherited from load
5647         motion in gcse.c.
5648         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5649         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
5650         are done with it.
5651
5652         (ae_kill): Rename to st_kill, update users.
5653         (ae_gen): Rename to st_avloc, update users.
5654         (transp): Rename to st_transp, update users.
5655         (pre_insert_map): Rename to st_insert_map, update users.
5656         (pre_delete_map): Rename to st_delete_map, update users.
5657         (insert_store, build_store_vectors, free_store_memory,
5658         one_store_motion_pass): Update for abovementioned changes.
5659
5660         (gcse_subst_count, gcse_create_count): Remove.
5661         (one_store_motion_pass): New statistics counters "n_stores_deleted"
5662         and "n_stores_created", local variables.
5663
5664         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5665         use for_each_rtx.
5666
5667         (regvec, compute_store_table_current_insn): Remove.
5668         (reg_set_info, reg_clear_last_set): Remove.
5669         (compute_store_table): Use DF caches instead of local dataflow
5670         solvers.
5671
5672 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
5673
5674         * c-objc-common.c (c_tree_printer): Print identifiers with
5675         pp_identifier, not pp_string.  Mark "({anonymous})" for
5676         translation.
5677         * c-pretty-print.c (pp_c_ws_string): New.
5678         (pp_c_cv_qualifier, pp_c_type_specifier,
5679         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5680         pp_c_storage_class_specifier, pp_c_function_specifier,
5681         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5682         pp_c_primary_expression, pp_c_postfix_expression,
5683         pp_c_unary_expression, pp_c_shift_expression,
5684         pp_c_relational_expression, pp_c_equality_expression,
5685         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5686         use pp_string and pp_c_ws_string in place of pp_identifier and
5687         pp_c_identifier for non-identifiers.  Mark English strings for
5688         translation.
5689         * c-pretty-print.h (pp_c_ws_string): Declare.
5690
5691 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
5692             Roland McGrath <roland@redhat.com>
5693
5694         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
5695         (ENABLE_LD_BUILDID): New configuration option.
5696         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5697         (LINK_BUILDID_SPEC): New macro.
5698         (init_spec): If defined, prepend it between LINK_EH_SPEC and
5699         link_spec.
5700         * doc/install.texi: Document --enable-linker-build-id option.
5701         * configure: Rebuild.
5702         * config.in: Rebuild.
5703
5704 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
5705
5706         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5707         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5708         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
5709         MIPS_GP_SAVE_AREA_SIZE.
5710         * config/mips/mips.c (struct mips_frame_info): Update comment
5711         before arg_pointer_offset and hard_frame_pointer_offset.
5712         (mips_compute_frame_info): Update diagram before function: to
5713         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5714         indicate the position of frame_pointer_rtx with -fstack-protector and
5715         to show args_size.  Don't allocate cprestore area for leaf functions
5716         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
5717         cprestore_size.
5718         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5719
5720 2009-04-30  Michael Matz  <matz@suse.de>
5721
5722         PR tree-optimization/39955
5723         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
5724
5725 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
5726
5727         * ira.c (setup_cover_and_important_classes):  Use safe macro
5728         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5729         directly.
5730         * genpreds.c (write_tm_preds_h):  Output suitable definition of
5731         REG_CLASS_FOR_CONSTRAINT.
5732
5733 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
5734
5735         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5736         instead of an int.
5737         * bitmap.c (bitmap_descriptor): Likewise.
5738         * ggc-common.c (loc_descriptor): Likewise.
5739         * varray.c (varray_descriptor): Likewise.
5740         * vec.c (vec_descriptor): Likewise.
5741
5742 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5743
5744         * Makefile.in (dce.o): Add $(EXCEPT_H).
5745         * dce.c: Include except.h and delete redundant vector definitions.
5746         (deletable_insn_p): Return false for non-call insns that can throw
5747         if DF is running.
5748
5749 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
5750
5751         * gcse.c (ae_gen): Remove.
5752         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5753         and make non-static function to make it available in store-motion.c.
5754         Update call sites with search-and-replace.
5755         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5756         extract_mentioned_regs, extract_mentioned_regs_helper,
5757         find_moveable_store, compute_store_table, load_kills_store, find_loads,
5758         store_killed_in_insn, store_killed_after, store_killed_before,
5759         build_store_vectors, insert_insn_start_basic_block, insert-store,
5760         remove_reachable_equiv_notes, replace_store_insn, delete_store,
5761         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5762         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5763         * store-motion.c: ...new file.  Also copy data structures from gcse.c
5764         and clean up to remove parts not used by store motion.
5765         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5766         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5767
5768 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5769
5770         PR target/38571
5771         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5772         when optimizing for size.
5773
5774 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
5775
5776         * gcse.c (gcse_constant_p): Fix typo in last change.
5777
5778 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
5779
5780         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5781
5782 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
5783
5784         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5785
5786 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
5787
5788         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5789         CONST_HIGH_PART result.
5790
5791 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
5792
5793         * config/avr/avr.c (initial_elimination_offset): Rename to
5794         avr_initial_elimination_offset.
5795         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5796         change return type to bool.
5797         (avr_can_eliminate): New function.
5798         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5799         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5800         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
5801         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
5802         avr_initial_elimination_offset.
5803         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5804         (avr_initial_elimination_offset): Define.
5805
5806 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
5807             Steven Bosscher  <steven@gcc.gnu.org>
5808
5809         PR rtl-optimization/39938
5810         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5811         * cfgrtl.c: Include insn-attr.h.
5812         (rest_of_pass_free_cfg): New function.
5813         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5814         * resource.c (init_resource_info): Remove call to df_analyze.
5815
5816 2009-04-29  Richard Guenther  <rguenther@suse.de>
5817
5818         PR target/39943
5819         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5820         allow conversion to signed integers.
5821
5822 2009-04-29  Richard Guenther  <rguenther@suse.de>
5823
5824         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5825         shifts of floating point vectors if the shift amount is
5826         a constant multiple of the element size.
5827
5828 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5829             Michael Matz  <matz@suse.de>
5830
5831         PR middle-end/39927
5832         PR bootstrap/39929
5833         * tree-outof-ssa.c (emit_partition_copy): New function.
5834         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5835         insert_part_to_rtx_on_edge): Perform the partition base var
5836         copy using emit_partition_copy.
5837         (insert_value_copy_on_edge): Convert constants to the right mode.
5838         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5839         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5840
5841 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
5842
5843         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5844         scan backwards to try to find a constant to initialize it.
5845
5846         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5847         insn before the loop_end instruction, don't look past labels.
5848
5849 2009-04-29  Richard Guenther  <rguenther@suse.de>
5850
5851         PR middle-end/39937
5852         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5853         loose type conversions.
5854         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
5855         stmts only if there are no uses of its definition.
5856
5857 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
5858
5859         * config/bfin/bfin.h (splitting_loops): Declare.
5860         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5861         Reorder bit definitions to be ascending.
5862         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5863         * config/bfin/bfin.c (splitting_loops): New variable.
5864         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5865         (struct loop_info): Remove members INIT and LOOP_INIT.
5866         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
5867         the LSETUP sequence.  Allow LC to be loaded from any register, but
5868         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
5869         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5870         set to 1.
5871         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5872         of reload_completed.
5873
5874         From Jie Zhang:
5875         * config/bfin/bfin.md (movsi_insn): Refine constraints.
5876
5877 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
5878
5879         * Makefile.in (PLUGIN_VERSION_H): New.
5880         (OBJS-common): Remove plugin-version.o.
5881         (plugin.o): Depend on (PLUGIN_VERSION_H).
5882         (plugin-version.o): Remove.
5883         * configure: Regenerate
5884         * configure.ac: Create plugin-version.h.
5885         * gcc-plugin.h (plugin_gcc_version): Remove.
5886         (plugin_default_version_check): Change signature.
5887         * plugin-version.c: Remove.
5888         * plugin.c: Include plugin-version.h.
5889         (str_plugin_gcc_version_name): Remove.
5890         (try_init_one_plugin): Pass gcc version to plugin_init.
5891         (plugin_default_version_check): Both gcc and plugin versions are now
5892         arguments.
5893
5894 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
5895         
5896         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5897         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
5898         Remove special case testing for last insn of inner loops. Don't fail
5899         if the loop ends with a jump, emit an extra nop instead.
5900
5901         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5902         DREGS rather than comparing directly.  Remove code that tries to
5903         account for latencies.
5904
5905 2009-04-29  Richard Guenther  <rguenther@suse.de>
5906
5907         PR tree-optimization/39941
5908         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5909         eliminating an indirect call.
5910
5911 2009-04-29  Richard Guenther  <rguenther@suse.de>
5912
5913         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5914         parameter.  Allow invariants as base if !require_lvalue.
5915         (verify_gimple_assign_single): Adjust.
5916
5917 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
5918
5919         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5920         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
5921         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5922         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
5923         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5924         a VEC_SELECT.
5925         * config/bfin/bfin.c (bfin_expand_builtin,
5926         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
5927
5928 2009-04-28  Richard Guenther  <rguenther@suse.de>
5929
5930         * tree-vect-loop.c (get_initial_def_for_induction): Use
5931         correct types for pointer increment.
5932
5933 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5934
5935         * toplev.c (print_version): Update GMP version string calculation.
5936
5937 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5938
5939         PR rtl-optimization/39938
5940         * resource.c (init_resource_info): Add call to df_analyze.
5941
5942 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
5943
5944         * config/alpha/alpha.md (usegp): Cast the result of
5945         alpha_find_lo_sum_using_gp to enum attr_usegp.
5946         * config/alpha/alpha.c (override_options): Remove end-of-structure
5947         marker element from cpu_table.  Use array size of cpu_table to handle
5948         -mcpu and -mtune options.
5949         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5950
5951 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
5952
5953         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5954         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
5955         tune_32 and tune_64.
5956         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5957         support on PowerPC.
5958         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5959         * config/rs6000/option-defaults.h: ... here.  New file.
5960         (OPT_64, OPT_32): Define.
5961         (MASK_64BIT): Define to 0 if not already defined.
5962         (OPT_ARCH64, OPT_ARCH32): Define.
5963         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5964         and tune_64.
5965
5966 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5967
5968         * config/arm/arm.c (arm_override_options): Emit error on using
5969         fpa with AAPCS.
5970
5971 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
5972
5973         PR rtl-optimization/39914
5974         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5975         registers for allocnos created from user-defined variables only
5976         when not optimizing.
5977
5978 2009-04-28  Richard Guenther  <rguenther@suse.de>
5979
5980         PR middle-end/39937
5981         * fold-const.c (fold_binary): Use distribute_real_division only
5982         on float types.
5983
5984 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
5985
5986         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5987         add hpux-stdint.h to tm_file.
5988         (hppa[12]*-*-hpux11*): Ditto.
5989         (ia64*-*-hpux*): Ditto.
5990         * config/hpux-stdint.h: New.
5991         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
5992         __STDC_EXT__ for all compiles.
5993         * config/pa/pa-hpux.h: Ditto.
5994         * config/pa/pa-hpux10.h: Ditto.
5995         * config/pa/pa-hpux11.h: Ditto.
5996
5997 2009-04-28  Catherine Moore  <clm@codesourcery.com>
5998
5999         * debug.h (set_name): Add comment.
6000
6001 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
6002
6003         PR target/39929
6004         * config/darwin.c (machopic_gen_offset): Check
6005         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6006         * config/arm/arm.c (require_pic_register): Likewise.
6007
6008 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
6009
6010         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6011         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6012         m32c_promote_prototypes): Delete.
6013
6014 2009-04-28  Michael Matz  <matz@suse.de>
6015
6016         PR middle-end/39922
6017         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6018         constants.
6019
6020 2009-04-28  Richard Guenther  <rguenther@suse.de>
6021
6022         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
6023
6024 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6025
6026         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6027         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6028         * config/arm/arm-tune.md: Regenerate.
6029
6030 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
6031
6032         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6033         block if there are complex incoming edges.
6034         (sel_merge_blocks): Remove useless assert.
6035         (sel_redirect_edge_and_branch): Check that edge was redirected.
6036         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6037         (sel_find_rgns): Delete declaration.
6038         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6039         the region when it is not a preheader.
6040
6041 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6042
6043         PR c/39323
6044         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6045
6046 2009-04-28  Richard Guenther  <rguenther@suse.de>
6047
6048         * tree.h (SSA_NAME_VALUE): Remove.
6049         (struct tree_ssa_name): Remove value_handle member.
6050         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6051         array for jump threading.
6052         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6053         SSA_NAME_VALUEs.
6054         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6055         * tree-flow.h (threadedge_initialize_values): Declare.
6056         (threadedge_finalize_values): Likewise.
6057         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6058         (SSA_NAME_VALUE): Define.
6059         (threadedge_initialize_values): New function.
6060         (threadedge_finalize_values): Likewise.
6061         * tree-ssa-dom.c (ssa_name_values): New global variable.
6062         (SSA_NAME_VALUE): Define.
6063         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
6064
6065 2009-04-28  Ira Rosen  <irar@il.ibm.com>
6066
6067         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6068         Use REPORT_VECTORIZED_LOCATIONS instead 
6069         REPORT_VECTORIZED_LOOPS.
6070         * tree-vectorizer.c (vect_verbosity_level): Make static.
6071         (vect_loop_location): Rename to vect_location.
6072         (vect_set_verbosity_level): Update comment.
6073         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6074         and vect_location.
6075         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6076         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6077         instead REPORT_UNVECTORIZED_LOOPS.
6078         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6079         and vect_loop_def to vect_external_def and vect_internal_def.
6080         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
6081         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
6082         REPORT_UNVECTORIZED_LOCATIONS.
6083         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6084         and vect_used_in_loop and to vect_unused_in_scope and 
6085         vect_used_in_scope.
6086         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6087         (vect_verbosity_level): Remove declaration.
6088         (vect_analyze_operations): Likewise.
6089         (vect_analyze_stmt): Declare.
6090         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6091         REPORT_UNVECTORIZED_LOCATIONS.
6092         (vect_get_loop_niters): Fix indentation.
6093         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6094         (vect_analyze_loop_operations): New function.
6095         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6096         vect_analyze_operations.
6097         (vect_is_simple_reduction): Use new names.
6098         (vectorizable_live_operation, vect_transform_loop): Likewise.
6099         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6100         to specify whether the data references can be a part of interleaving
6101         chain.
6102         (vect_analyze_data_ref_dependence): Use new names.
6103         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6104         (vect_create_addr_base_for_vector_ref): Remove redundant code.
6105         * tree-vect-patterns.c (widened_name_p): Use new names.
6106         (vect_recog_dot_prod_pattern): Likewise.
6107         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6108         (process_use, vect_mark_stmts_to_be_vectorized, 
6109         vect_model_simple_cost, vect_model_store_cost,
6110         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6111         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6112         vectorizable_operation, vectorizable_type_demotion,
6113         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6114         vectorizable_condition): Likewise.
6115         (vect_analyze_operations): Split into vect_analyze_loop_operations
6116         and ...
6117         (vect_analyze_stmt): ... new function.
6118         (new_stmt_vec_info): Use new names.
6119         (vect_is_simple_use): Use new names and fix comment.
6120         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6121         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6122
6123 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6124
6125         PR target/39911
6126         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6127         and integer modes for x87 operands.  Do not ICE for unsupported size,
6128         generate error instead.  Generate error for unsupported operand types.
6129         ['z']: Do not handle HImode memory operands specially.  Warning
6130         for floating-point operands.  Fallthru to 'Z' for unsupported operand
6131         types.  Do not ICE for unsupported size, generate error instead.
6132         (output_387_binary_op): Use %Z to output operands.
6133         (output_fp_compare): Ditto.
6134         (output_387_reg_move): Ditto.
6135
6136 2009-04-28  Ben Elliston  <bje@au.ibm.com>
6137
6138         PR c++/35652
6139         Revert:
6140
6141         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6142
6143         * builtins.c (c_strlen): Do not warn here.
6144         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6145         * c-common.c (pointer_int_sum): Take an explicit location.
6146         Warn about offsets out of bounds.
6147         * c-common.h (pointer_int_sum): Adjust declaration.
6148
6149 2009-04-27  Ian Lance Taylor  <iant@google.com>
6150
6151         * collect2.c (is_ctor_dtor): Change type of ret field in struct
6152         names to symkind.
6153         * dce.c (run_fast_df_dce): Change type of old_flags to int.
6154         * df-core.c (df_set_flags): Change return type to int.  Change
6155         type of old_flags to int.
6156         (df_clear_flags): Likewise.
6157         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6158         (df_get_conditional_uses): Likewise.
6159         * df.h (df_set_flags, df_clear_flags): Update declarations.
6160         * dwarf2out.c (struct indirect_string_node): Change type of form
6161         field to enum dwarf_form.
6162         (AT_string_form): Change return type to enum dwarf_form.
6163         * fixed-value.c (fixed_compare): Add cast to enum type.
6164         * fwprop.c (update_df): Change 0 to VOIDmode.
6165         * gensupport.c: Change 0 to UNKNOWN.
6166         * gimple.h (gimple_cond_code): Add cast to enum type.
6167         * haifa-sched.c (reemit_notes): Add cast to enum type.
6168         * hooks.c (hook_int_void_no_regs): Remove function.
6169         * hooks.h (hook_int_void_no_regs): Remove declaration.
6170         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
6171         * predict.c (combine_predictions_for_insn): Add casts to enum type.
6172         * real.c (real_arithmetic): Add cast to enum type.
6173         (real_compare): Likewise.
6174         * target.h (struct gcc_target): Change return type of
6175         branch_target_register_class to enum reg_class.
6176         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6177         default_branch_target_register_class.
6178         * targhooks.c (default_branch_target_register_class): New function.
6179         * targhooks.h (default_branch_target_register_class): Declare.
6180         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
6181         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6182         cast to int.
6183         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6184         ERROR_MARK.
6185         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6186         vect_uninitialized_def.  Change 0 to ERROR_MARK.
6187         * tree-vect-stmts.c (supportable_widening_operation): Don't
6188         initialize icode1 and icode2.
6189         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
6190         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6191         and to STD_C89.
6192         (cmn_err_flag_specs): Change 0 to STD_C89.
6193         (cmn_err_char_table): Likewise.
6194         * config/arm/arm.c (get_arm_condition_code): Change type of code
6195         to enum arm_cond_code.
6196         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6197         (IWMMXT_BUILTIN2): Likewise.
6198         (neon_builtin_type_bits): Don't define typedef.
6199         (neon_builtin_datum): Change type of bits field to int.
6200         (arm_expand_neon_args): Add cast to enum type.
6201         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6202         TLS_MODEL_NONE.
6203         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
6204         casts to enum type.
6205         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6206         MIPS_FP_COND_f.
6207         * config/mips/mips.md (jal_macro): Return enum constant.
6208         (single_insn): Likewise.
6209         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6210         CODE_FOR_nothing.
6211         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6212         casts to enum type.
6213         * config/s390/s390.c (s390_tune_flags): Change type to int.
6214         (s390_arch_flags): Likewise.
6215         (s390_handle_arch_option): Change flags field of struct pta to int.
6216         * config/s390/s390.h (s390_tune_flags): Update declaration.
6217         (s390_arch_flags): Likewise.
6218         * config/sh/sh.c (prepare_move_operands): Compare
6219         tls_symbolic_operand result with enum constant.
6220         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6221         (sh_expand_prologue): Add cast to enum type.
6222         (sh_expand_epilogue): Likewise.
6223         (tls_symbolic_operand): Change return type to enum tls_model.
6224         (fpscr_set_from_mem): Add cast to enum type.
6225         (legitimize_pic_address): Compare tls_symbolic_operand result with
6226         enum constant.
6227         (sh_target_reg_class): Change return type to enum reg_class.
6228         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6229         PROCESSOR_xxx.
6230         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6231         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
6232         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6233         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6234         (delayed_branch, tls_call_delay): Likewise.
6235         (eligible_for_sibcall_delay): Likewise.
6236         (eligible_for_return_delay): Likewise. 
6237         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6238         (spu_expand_builtin_1): Likewise.
6239
6240         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6241         for all types of conversions.
6242         (output_init_element): Issue -Wc++-compat warning if needed when
6243         initializing a bitfield with enum type.
6244         * c-parser.c (c_parser_expression): Set original_type to
6245         original_type of right hand operand of comman operator.
6246
6247 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6248
6249         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6250         grammar nits.
6251         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
6252         * doc/cpp.texi (Standard Predefined Macros)
6253         (Implementation-defined behavior): Likewise.
6254         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
6255         * doc/gimple.texi (GIMPLE Exception Handling)
6256         (@code{GIMPLE_ASSIGN}): Likewise.
6257         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
6258         * doc/invoke.texi (Warning Options, Optimize Options)
6259         (AVR Options, Darwin Options): Likewise.
6260         (Optimize Options): Reformulate -fwhole-program description.
6261         * doc/loop.texi (Lambda): Likewise.
6262         * doc/md.texi (Output Template, Define Constraints)
6263         (Standard Names, Insn Splitting): Likewise.
6264         * doc/options.texi (Option properties): Likewise.
6265         * doc/passes.texi (Tree-SSA passes): Likewise.
6266         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6267         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6268         (File Names and DBX): Likewise.
6269         * doc/trouble.texi (Incompatibilities): Likewise.
6270
6271 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6272
6273         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6274         instruction is correct.
6275
6276 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6277
6278         Allow non-constant arguments to conversion intrinsics.
6279         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6280         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6281         * spu.c (print_operand): Handle 'v' and 'w'.
6282         (exp2_immediate_p, spu_gen_exp2): Define.
6283         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6284         spu_convtf_1): Update parameter descriptions.
6285         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
6286         * constraints.md ('v', 'w'): New.
6287         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6288         Remove.
6289         (i2f, I2F): New define_mode_attr.
6290         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6291         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6292         fixuns_truncv4sfv4si2):  Update to use mode attribute.
6293         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6294         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6295         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6296         patterns for combine.
6297
6298 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
6299
6300         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6301         (cprop, hoist, pre, store_motion): New debug counters.
6302         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6303         is not an RTL pass anymore.
6304         (pass_profiling): Remove extern decl for pass removed in 2005.
6305         (pass_gcse, pass_jump_bypass): Remove.
6306         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6307         to 0 for clean state.
6308         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6309         * cse.c (gate_handle_cse_after_global_opts,
6310         rest_of_handle_cse_after_global_opts): New functions.
6311         (pass_cse_after_global_opts): New pass, does local CSE.
6312         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6313         (TV_CPROP): New timevar.
6314         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6315         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6316         (gcse_main, recompute_all_luids): Remove.
6317         (compute_hash_table_work): Call max_reg_num instead of reading
6318         max_gcse_regno.
6319         (cprop_jump): Don't set run_jump_opt_after_gcse.
6320         (constprop_register): Always allow to alter jumps.
6321         (cprop_insn): Likewise.
6322         (do_local_cprop): Likewise.
6323         (local_cprop_pass): Likewise.  Return non-zero if something changed.
6324         (cprop): Remove function, fold interesting bits into one_cprop_pass.
6325         (find_implicit_sets): Add note about missed optimization opportunity.
6326         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6327         pass_rtl_cprop execute function.
6328         Don't bother tracking the pass number, each pass gets its own dumpfile
6329         now anyway.
6330         Always allow to alter jumpsand bypass jumps.
6331         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6332         will just find no suitable set.
6333         (pre_edge_insert): Fix dumping, this function is for PRE only.
6334         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6335         pass_rtl_pre execute function.
6336         (hoist_code): Return non-zero if something changed.  Keep track of
6337         substitutions and insertions for statistics gathering similar to PRE.
6338         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6339         called from the pass_rtl_hoist execute function.  Show pass statistics.
6340         (compute_store_table): Use max_reg_num directly instead of using the
6341         formerly global max_gcse_regno.
6342         (build_store_vectors): Likewise.
6343         (replace_store_insn): Fix dumping.
6344         (store_motion): Rename to ...
6345         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
6346         pass, called from the pass_rtl_store_motion execute function.  Keep
6347         track of substitutions and insertions for statistics gathering similar
6348         to PRE.
6349         (bypass_jumps): Remove, fold interesting bits into ...
6350         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
6351         from the pass_rtl_cprop execute function.
6352         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6353         pass_jump_bypass): Remove.
6354         (gate_handle_gcse, rest_of_handle_gcse): Remove.
6355         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6356         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6357         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6358         (gate_rtl_store_motion, execute_rtl_store_motion,
6359         pass_rtl_store_motion): New.
6360         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6361         make it clear that -fcse-skip-blocks is a no-op for backward compat.
6362         * passes.c (init_optimization_passes): Remove pass_gcse and
6363         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
6364         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
6365         instead of pass_jump_bypass.
6366
6367 2009-04-27  Richard Guenther  <rguenther@suse.de>
6368
6369         PR middle-end/39928
6370         * gimplify.c (gimplify_expr): If we are required to create
6371         a temporary make sure it ends up as register.
6372
6373 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
6374
6375         PR target/39903
6376         * config/i386/i386.c (construct_container): Don't call
6377         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6378         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6379
6380 2009-04-27  Michael Matz  <matz@suse.de>
6381
6382         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6383         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6384         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6385         (dump_replaceable_exprs): Take a bitmap.
6386         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6387         array.
6388         (expand_gimple_basic_block): Likewise.
6389         * tree-ssa-ter.c (struct temp_expr_table_d): Make
6390         replaceable_expressions member a bitmap.
6391         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6392         (mark_replaceable): Likewise.
6393         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6394         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6395
6396 2009-04-27  Richard Guenther  <rguenther@suse.de>
6397
6398         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6399         (verify_stmts): Dispatch to gimple/type verification code.
6400         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6401         issue with call argument types.
6402
6403 2009-04-27  Michael Matz  <matz@suse.de>
6404
6405         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6406         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6407         to above.
6408
6409 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
6410             Eric Botcazou  <ebotcazou@adacore.com>
6411
6412         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6413         a label's basic block.
6414         (mark_target_live_regs): Tidy and rework obsolete comments.
6415         Change back DF problem to LIVE.  If a label starts a basic block,
6416         assume that all registers that used to be live then still are.
6417         (init_resource_info): If a label starts a basic block, set its
6418         BLOCK_FOR_INSN accordingly.
6419         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6420
6421 2009-04-27  Richard Guenther  <rguenther@suse.de>
6422
6423         * tree-flow-inline.h (function_ann): Remove.
6424         (get_function_ann): Likewise.
6425         * tree-dfa.c (create_function_ann): Remove.
6426         * tree-flow.h (struct static_var_ann_d): Remove.
6427         (struct function_ann_d): Likewise.
6428         (union tree_ann_d): Remove fdecl member.
6429         (function_ann_t): Remove.
6430         (function_ann, get_function_ann, create_function_ann): Remove
6431         declarations.
6432
6433 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
6434
6435         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6436
6437 2009-04-27  Jan Hubicka  <jh@suse.cz>
6438
6439         * ipa-pure-const.c (struct funct_state_d): New fields
6440         state_previously_known, looping_previously_known; remove
6441         state_set_in_source.
6442         (analyze_function): Use new fields.
6443         (propagate): Avoid assumption that state_set_in_source imply
6444         nonlooping.
6445
6446         * tree-ssa-loop-niter.c (finite_loop_p): New function.
6447         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6448         * cfgloop.h (finite_loop_p): Declare.
6449
6450 2009-04-26  Michael Matz  <matz@suse.de>
6451
6452         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
6453
6454 2009-04-26  Michael Matz  <matz@suse.de>
6455
6456         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6457         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6458         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6459         pass_mark_used_blocks): Remove.
6460         * tree-optimize.c (pass_free_datastructures,
6461         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6462         * passes.c (init_optimization_passes): Don't call
6463         pass_mark_used_blocks, remove dead code.
6464
6465 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
6466
6467         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6468         * tree-ssa-live.h (register_ssa_partition): Likewise.
6469
6470 2009-04-26  Michael Matz  <matz@suse.de>
6471
6472         Expand from SSA.
6473         * builtins.c (fold_builtin_next_arg): Handle SSA names.
6474         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6475         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6476         SSA names. 
6477         (compare_pairs): Swap cost comparison.
6478         (coalesce_ssa_name): Don't use change_partition_var.
6479         * tree-nrv.c (struct nrv_data): Add modified member.
6480         (finalize_nrv_r): Set it.
6481         (tree_nrv): Use it to update statements.
6482         (pass_nrv): Require PROP_ssa.
6483         * tree-mudflap.c (mf_decl_cache_locals,
6484         mf_build_check_statement_for): Use make_rename_temp.
6485         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6486         * alias.c (find_base_decl): Handle SSA names.
6487         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6488         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6489         * rtl.h (set_reg_attrs_for_parm): Declare.
6490         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6491         to "optimized", remove unused locals at finish.
6492         (execute_free_datastructures): Make global, call
6493         delete_tree_cfg_annotations.
6494         (execute_free_cfg_annotations): Don't call
6495         delete_tree_cfg_annotations.
6496
6497         * ssaexpand.h: New file.
6498         * expr.c (toplevel): Include ssaexpand.h.
6499         (expand_assignment): Handle SSA names the same as register variables.
6500         (expand_expr_real_1): Expand SSA names.
6501         * cfgexpand.c (toplevel): Include ssaexpand.h.
6502         (SA): New global variable.
6503         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6504         (SSAVAR): New macro.
6505         (set_rtl): New helper function.
6506         (add_stack_var): Deal with SSA names, use set_rtl.
6507         (expand_one_stack_var_at): Likewise.
6508         (expand_one_stack_var): Deal with SSA names.
6509         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6510         before unique numbers.
6511         (expand_stack_vars): Use set_rtl.
6512         (expand_one_var): Accept SSA names, add asserts for them, feed them
6513         to above subroutines.
6514         (expand_used_vars): Expand all partitions (without default defs),
6515         then only the local decls (ignoring those expanded already).
6516         (expand_gimple_cond): Remove edges when jumpif() expands an
6517         unconditional jump.
6518         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6519         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
6520         SSA name.
6521         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6522         members of SA; deal with PARM_DECL partitions here; expand
6523         all PHI nodes, free tree datastructures and SA.  Commit instructions
6524         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6525         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6526         info and statements at start, collect garbage at finish.
6527         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6528         (VAR_ANN_PARTITION) Remove.
6529         (change_partition_var): Don't declare.
6530         (partition_to_var): Always return SSA names.
6531         (var_to_partition): Only accept SSA names.
6532         (register_ssa_partition): Only check argument.
6533         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6534         member.
6535         (delete_var_map): Don't free it.
6536         (var_union): Only accept SSA names, simplify.
6537         (partition_view_init): Mark only useful SSA names as used.
6538         (partition_view_fini): Only deal with SSA names.
6539         (change_partition_var): Remove.
6540         (dump_var_map): Use ssa_name instead of partition_to_var member.
6541         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6542         basic blocks.
6543         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6544         (struct _elim_graph): New member const_dests; nodes member vector of
6545         ints.
6546         (set_location_for_edge): New static helper.
6547         (create_temp): Remove.
6548         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
6549         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
6550         (new_elim_graph): Allocate const_dests member.
6551         (clean_elim_graph): Truncate const_dests member.
6552         (delete_elim_graph): Free const_dests member.
6553         (elim_graph_size): Adapt to new type of nodes member.
6554         (elim_graph_add_node): Likewise.
6555         (eliminate_name): Likewise.
6556         (eliminate_build): Don't take basic block argument, deal only with
6557         partition numbers, not variables.
6558         (get_temp_reg): New static helper.
6559         (elim_create): Use it, deal with RTL temporaries instead of trees.
6560         (eliminate_phi): Adjust all calls to new signature.
6561         (assign_vars, replace_use_variable, replace_def_variable): Remove.
6562         (rewrite_trees): Only do checking.
6563         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6564         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6565         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6566         contains_tree_r, MAX_STMTS_IN_LATCH,
6567         process_single_block_loop_latch, analyze_edges_for_bb,
6568         perform_edge_inserts): Remove.
6569         (expand_phi_nodes): New global function.
6570         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
6571         functions, initialize new parameter, remember partitions having a
6572         default def.
6573         (finish_out_of_ssa): New global function.
6574         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
6575         don't reset in_ssa_p here, don't disable TER when mudflap.
6576         (pass_del_ssa): Remove.
6577         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6578         partition members.
6579         (execute_free_datastructures): Declare.
6580         * Makefile.in (SSAEXPAND_H): New variable.
6581         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6582         * basic-block.h (commit_one_edge_insertion): Declare.
6583         * passes.c (init_optimization_passes): Move pass_nrv and
6584         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6585         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6586         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6587         (redirect_branch_edge): Deal with super block when expanding, split
6588         out jump patching itself into ...
6589         (patch_jump_insn): ... here, new static helper.
6590
6591 2009-04-26  Michael Matz  <matz@suse.de>
6592
6593         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6594         beyond num_ssa_names.
6595         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6596         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6597
6598 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
6599
6600         PR inline-asm/39543
6601         * fwprop.c (forward_propagate_asm): New function.
6602         (forward_propagate_and_simplify): Propagate also into __asm, if it
6603         doesn't increase the number of referenced registers.
6604
6605         PR c/39889
6606         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6607
6608 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
6609
6610         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6611         note_nonlocal_vla_type for nonlocal VLAs.
6612         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6613         contains_remapped_vars, remap_vla_decls): New functions.
6614         (convert_nonlocal_reference_stmt): If not optimizing, call
6615         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6616         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6617         if it wasn't found in var_map.
6618         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
6619         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6620         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6621         declare_vars.
6622         * gimplify.c (nonlocal_vlas): New variable.
6623         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6624         referenced VLAs.
6625         (gimplify_body): Create and destroy nonlocal_vlas.
6626
6627         * dwarf2out.c (loc_descr_plus_const): New function.
6628         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6629         mem_loc_descriptor, loc_descriptor_from_tree_1,
6630         descr_info_loc, gen_variable_die): Use it.
6631
6632         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6633         !TREE_STATIC VAR_DECLs.
6634         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6635         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6636         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
6637         DECL_BY_REFERENCE is valid.
6638         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6639         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6640         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6641         Copy DECL_BY_REFERENCE.
6642         (struct nesting_copy_body_data): New type.
6643         (nesting_copy_decl): New function.
6644         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6645         if they have variable length.
6646
6647 2009-04-26  Michael Matz  <matz@suse.de>
6648
6649         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6650         mark new temporaries for renaming.
6651
6652 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
6653
6654         PR c/39581
6655         * c-decl.c (global_bindings_p): Return negative value.
6656         (c_variable_size): New.  Based on variable_size from
6657         stor-layout.c.
6658         (grokdeclarator): Call c_variable_size not variable_size.
6659
6660 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
6661
6662         * config/i386/i386.c (print_operand) ['z']: Fix typo.
6663
6664 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
6665
6666         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6667         Redefine it to just use mingw/include.
6668         (ASM_SPEC): Rules for -m32 and -m64.
6669         (LINK_SPEC): Use Likewise.
6670         (SPEC_32): New define.
6671         (SPEC_64): Likewise.
6672         (SUB_LINK_SPEC): Likewise.
6673         (MULTILIB_DEFAULTS): New define.
6674         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6675         Add multilib options.
6676         (MULTILIB_DIRNAMES): Likewise.
6677         (MULTILIB_OSDIRNAMES): Likewise.
6678         (LIBGCC): Likewise.
6679         (INSTALL_LIBGCC): Likewise.
6680
6681 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
6682
6683         PR c/39556
6684         * c-tree.h (enum c_inline_static_type): New.
6685         (record_inline_static): Declare.
6686         * c-decl.c (struct c_inline_static, c_inline_statics,
6687         record_inline_static, check_inline_statics): New.
6688         (pop_file_scope): Call check_inline_statics.
6689         (start_decl): Call record_inline_static instead of pedwarning
6690         directly for static in inline function.
6691         * c-typeck.c (build_external_ref): Call record_inline_static
6692         instead of pedwarning directly for static referenced in inline
6693         function.
6694
6695 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
6696
6697         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6698         not new but only being rescanned.
6699         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6700         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6701         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6702         record_set_info, compute_set, grealloc): Remove.
6703         (recompute_all_luids): New function.
6704         (gcse_main): Don't compute sets, and don't do related memory
6705         allocations/free-ing.  If something changed before the end of the
6706         pass, update LUIDs using recompute_all_luids.
6707         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
6708         (free_gcse_mem): Don't free it either.
6709         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6710         Use the df insn LUIDs.
6711         (load_killed_in_block): Likewise.
6712         (compute_hash_table_work): Don't compute reg_set_in_block.
6713         (compute_transp): Use DF_REG_DEF_CHAINs.
6714         (local_cprop_pass): Don't use compute_sets and related functions.
6715         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6716         Use get_max_uid() instead of max_cuid.
6717         (insert_insn_end_basic_block, pre_insert_copy_insn,
6718         update_ld_motion_stores): Don't try to
6719         keep reg_set tables up to date.
6720         (pre_insert_copies): Use df insn LUIDs.
6721         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6722         (reg_set_info): Don't use extra bitmap argument.
6723         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
6724         information to compute regs_set_in_block.
6725         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6726         (bypass_jumps): Don't use compute_sets and friends.
6727
6728 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6729
6730         PR testsuite/39710
6731         * opts.c (undocumented_msg): Do not leave blank even with
6732         ENABLE_CHECKING.
6733
6734 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
6735
6736         * c-decl.c (build_enumerator): Allow values folding to integer
6737         constants but not integer constant expressions with a pedwarn if
6738         pedantic.
6739
6740 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
6741
6742         PR c/39582
6743         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6744         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6745         type is an integer constant.
6746
6747 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
6748
6749         PR target/39897
6750         * config/i386/i386.c (print_operand) ['z']: Revert handling of
6751         HImode operands.
6752
6753 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
6754
6755         PR c/39564
6756         * c-decl.c (grokdeclarator): Diagnose declarations of functions
6757         with variably modified return type and no storage class
6758         specifiers, except for the case of nested functions.  Distinguish
6759         extern declarations of functions with variably modified return
6760         types from those of objects with variably modified types.
6761
6762 2009-04-25  Jan Hubicka  <jh@suse.cz>
6763
6764         * tree.c (list_equal_p): New function.
6765         * tree.h (list_equal_p): Declare.
6766         * coretypes.h (edge_def, edge, const_edge, basic_block_def
6767         basic_block_def, basic_block, const_basic_block): New.
6768         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6769         (redirect_eh_edge): New function.
6770         (make_eh_edge_update_phi): EH edges are not abnormal.
6771         * except.c: Include tree-flow.h.
6772         (list_match): New function.
6773         (eh_region_replaceable_by_p): New function.
6774         (replace_region): New function.
6775         (hash_type_list): New function.
6776         (hash_eh_region): New function.
6777         (eh_regions_equal_p): New function.
6778         (merge_peers): New function.
6779         (remove_unreachable_regions): Verify EH tree when checking;
6780         merge peers.
6781         (copy_eh_region_1): New function.
6782         (copy_eh_region): New function.
6783         (push_reachable_handler): New function.
6784         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6785         regions without label but with live RESX.
6786         * except.h (redirect_eh_edge_to_label): New.
6787         * tree-flow.h (redirect_eh_edge): New.
6788         * coretypes.h (edge_def, edge, const_edge, basic_block_def
6789         basic_block_def, basic_block, const_basic_block): Remove.
6790         * Makefile.in (except.o): Add dependency on tree-flow.h
6791         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6792         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6793         Remove.
6794
6795 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
6796
6797         PR bootstrap/39645
6798         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6799         on the destination of memcpy.
6800
6801 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
6802
6803         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6804         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6805         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6806
6807 2009-04-25  Jan Hubicka  <jh@suse.cz>
6808
6809         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6810         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6811         to be reached by different label than left.
6812         (update_eh_edges): Update comment; remove edge_to_remove if possible
6813         and return true if suceeded.
6814         (cleanup_empty_eh): Accept sharing map; handle shared regions.
6815         (cleanup_eh): Compute sharing map.
6816         * except.c (remove_eh_handler_and_replace): Add argument if we should
6817         update regions.
6818         (remove_unreachable_regions): Update for label sharing.
6819         (label_to_region_map): Likewise.
6820         (get_next_region_sharing_label): New function.
6821         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6822         prev_try pointers.
6823         (remove_eh_handler): Update.
6824         (remove_eh_region_and_replace_by_outer_of): New function.
6825         * except.h (struct eh_region): Add next_region_sharing_label.
6826         (remove_eh_region_and_replace_by_outer_of,
6827         get_next_region_sharing_label): Declare.
6828         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6829
6830 2009-04-25  Jan Hubicka  <jh@suse.cz>
6831
6832         * tree-cfg.c (split_critical_edges): Split also edges where we can't
6833         insert code even if they are not critical.
6834
6835 2009-04-25  Jan Hubicka  <jh@suse.cz>
6836
6837         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6838         (gimple_can_remove_branch_p): EH edges won't remove branch by
6839         redirection.
6840         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6841         updating of non-abnormal EH edges.
6842         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6843         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6844         (split_critical_edges): Split also edges where emitting code on them
6845         will lead to splitting later.
6846
6847 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
6848             H.J. Lu  <hongjiu.lu@intel.com>
6849
6850         PR target/39590
6851         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6852         the configured assembler supports fildq and fistpq mnemonics.
6853         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6854         * configure: Regenerated.
6855         * config.in: Ditto.
6856
6857         * config/i386/i386.c (print_operand): Handle 'Z'.
6858         ['z']: Remove handling of special fild/fist suffixes.
6859         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6860         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6861         suffix of fild insn.
6862         (*floatsi<mode>2_vector_mixed): Ditto.
6863         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6864         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6865         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6866         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6867         * config/i386/gas.h (GAS_MNEMONICS): Remove.
6868
6869 2009-04-25  Ben Elliston  <bje@au.ibm.com>
6870  
6871         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6872         the source of a set operation.
6873
6874 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
6875
6876         * target.h (struct gcc_target): Add case_values_threshold field.
6877         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6878         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6879         * targhooks.c (default_case_values_threshold): New function.
6880         * targhooks.h (default_case_values_threshold): Declare function.
6881         * stmt.c (expand_case): Use case_values_threshold target hook.
6882         * expr.h (case_values_threshold): Remove declartation.
6883         * expr.c (case_values_threshold): Remove function.
6884         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6885
6886         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6887         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6888         (avr_case_values_threshold): Declare as static.
6889         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6890
6891         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6892         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6893         (mn10300_case_values_threshold): New function.
6894
6895 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
6896
6897         * ira.c (setup_cover_and_important_classes): Add enum cast.
6898
6899 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6900
6901         * genpreds.c (write_enum_constraint_num): Output definition of
6902         CONSTRAINT_NUM_DEFINED_P macro.
6903         * ira.c (setup_cover_and_important_classes): Use
6904         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6905         
6906 2009-04-24  DJ Delorie  <dj@redhat.com>
6907
6908         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6909         __SH2A_SINGLE_ONLY__ also.
6910
6911 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
6912
6913         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6914         (movdf_internal): Ditto.
6915         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6916         SFmode and DFmode constants.
6917         (ia64_print_operand): Add 'G' format for printing
6918         floating point constants.
6919
6920 2009-04-24  Richard Guenther  <rguenther@suse.de>
6921
6922         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6923         from unsigned additions.
6924
6925 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
6926
6927         * c-typeck.c (set_init_index): Allow array designators that are
6928         not integer constant expressions with a pedwarn if pedantic.
6929
6930 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
6931
6932         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6933         zero if no overlap in nonzero bits between the operands.
6934
6935 2009-04-24  Ian Lance Taylor  <iant@google.com>
6936
6937         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6938         (record_dead_and_set_regs): Likewise.
6939         * df.h (struct df_mw_hardreg): Change flags field to int.
6940         (struct df_base_ref): Likewise.
6941         (struct df): Change changeable_flags field to int.
6942         * df-scan.c (df_defs_record): Change clobber_flags to int.
6943         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6944         constants rather than #define macros.
6945         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6946         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6947         (enum dwarf_calling_convention): Likewise.
6948         (enum dwarf_line_number_x_ops): Likewise.
6949         (enum dwarf_call_frame_info): Likewise.
6950         (enum dwarf_source_language): Likewise.
6951         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6952         (add_calling_convention_attribute): Likewise.
6953         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6954         (combine_comparisons): Change compcode to int.  Add cast to enum type.
6955         * genrecog.c (maybe_both_true_2): Change c to int.
6956         (write_switch): Likewise.  Add cast to enum type.
6957         * gimplify.c (gimplify_omp_for): Handle return values from
6958         gimplify_expr using MIN rather than bitwise or.
6959         (gimplify_expr): Add cast to enum type.
6960         * ipa-prop.c (update_jump_functions_after_inlining): Change
6961         IPA_BOTTOM to IPA_JF_UNKNOWN.
6962         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6963         Add casts to enum type.
6964         (setup_cover_and_important_classes): Change cl to int.  Add casts
6965         to enum type.
6966         (setup_class_translate): Change cl and mode to int.
6967         (ira_init_once): Change mode to int.
6968         (free_register_move_costs): Likewise.
6969         (setup_prohibited_mode_move_regs): Add casts to enum type.
6970         * langhooks.c (add_builtin_function_common): Rework assertion that
6971         value fits bitfield.
6972         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6973         * omega.c (omega_do_elimination): Avoid math on enum types.
6974         * optabs.c (expand_vec_shift_expr): Remove casts to int.
6975         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
6976         int local to handle integral_argment value.
6977         * regmove.c (try_auto_increment): Change PUT_MODE to
6978         PUT_REG_NOTE_KIND.
6979         * reload.c (push_secondary_reload): Add casts to enum type.
6980         (secondary_reload_class, find_valid_class): Likewise.
6981         * reload1.c (emit_input_reload_insns): Likewise.
6982         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6983         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6984         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6985         constant.
6986         * tree.c (build_common_builtin_nodes): Add casts to enum type.
6987         * tree-complex.c (complex_lattice_t): Typedef to int rather than
6988         enum type.
6989         (expand_complex_libcall): Add casts to enum type.
6990         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6991         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6992         with ERROR_MARK, not NUM_TREE_CODES.
6993         (vect_create_epilog_for_reduction): Likewise.
6994         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6995         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
6996         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6997         enum machine_mode.
6998         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6999         vect_unused_in_loop.  Change 0 to loop_vect.
7000         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
7001         * var-tracking.c (get_init_value): Change return type to enum
7002         var_init_status.
7003         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7004         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7005         arm_fp_model.
7006         (arm_override_options): Add casts to enum type.
7007         (arm_emit_tls_decoration): Likewise.
7008         * config/i386/i386.c (ix86_function_specific_restore): Add casts
7009         to enum type.
7010         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7011         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7012         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7013         enum type.
7014         * config/s390/s390.c (code_for_builtin_64): Change to array of
7015         enum insn_code.
7016         (code_for_builtin_31): Likewise.
7017         (s390_expand_builtin): Change code_for_builtin to enum insn_code
7018         const *.
7019         * config/sparc/sparc.c (sparc_override_options): Change value
7020         field in struct code_model to enum cmodel.  In initializer change
7021         0 to NULL and add cast to enum type.
7022
7023         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7024         Change all callers.  Issue a -Wc++-compat warning using
7025         lhs_origtype if necessary.
7026         (convert_for_assignment): Issue -Wc++-compat warnings about
7027         invalid conversions to enum type on assignment.
7028         * c-common.h (build_modify_expr): Update declaration.
7029
7030 2009-04-24  Nick Clifton  <nickc@redhat.com>
7031
7032         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7033         (function_arg_advance): Likewise.
7034         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7035         5th alternative.
7036
7037 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7038
7039         * config/s390/constraints.md ('I', 'J'): Fix condition.
7040
7041 2009-04-24  Diego Novillo  <dnovillo@google.com>
7042
7043         * gengtype-parse.c (parse_error): Add newline after message.
7044
7045 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
7046
7047         * config/i386/sse.md (avxmodesuffixs): Removed.
7048         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7049         (*avx_pinsr<ssevecsize>): This.
7050
7051 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7052
7053         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7054         follow chains of regs with a single definition, and allow expressions
7055         that are function_invariant_p.
7056         (simple_rhs_p): Allow expressions that are function_invariant_p.
7057
7058 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
7059
7060         PR middle-end/39867
7061         * fold-const.c (fold_cond_expr_with_comparison): When folding
7062         > and >= to MAX, make sure the MAX uses the same type as the
7063         comparison's operands.
7064
7065 2009-04-24  Nick Clifton  <nickc@redhat.com>
7066
7067         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7068         addressing for DImode accesses.
7069         (frv_print_operand_address): Handle PLUS case.
7070         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
7071
7072 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
7073
7074         PR rtl-optimization/39794
7075         * alias.c (canon_true_dependence): Add x_addr argument.
7076         * rtl.h (canon_true_dependence): Adjust prototype.
7077         * cse.c (check_dependence): Adjust canon_true_dependence callers.
7078         * cselib.c (cselib_invalidate_mem): Likewise.
7079         * gcse.c (compute_transp): Likewise.
7080         * dse.c (scan_reads_nospill): Likewise.
7081         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
7082         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7083         canon_base_addr of the group, plus optional offset.
7084         (struct group_info): Rename canon_base_mem to
7085         canon_base_addr.
7086         (get_group_info): Set canon_base_addr to canon_rtx of base, not
7087         canon_rtx of base_mem.
7088
7089 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
7090
7091         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7092         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7093
7094 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7095
7096         * config/spu/spu-builtins.h: Delete file.
7097
7098         * config/spu/spu.h (enum spu_builtin_type): Move here from
7099         spu-builtins.h.
7100         (struct spu_builtin_description): Likewise.  Add GTY marker.
7101         Do not use enum spu_function_code or enum insn_code.
7102         (spu_builtins): Add extern declaration.
7103
7104         * config/spu/spu.c: Do not include "spu-builtins.h".
7105         (enum spu_function_code, enum spu_builtin_type_index,
7106         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7107         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7108         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7109         unsigned_V2DI_type_node): Move here from spu-builtins.h.
7110         (spu_builtin_types): Make static.  Add GTY marker.
7111         (spu_builtins): Add extern declaration with GTY marker.
7112         Include "gt-spu.h".
7113
7114         * config/spu/spu-c.c: Do not include "spu-builtins.h".
7115         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7116         Check programmatically whether all parameters are scalar.
7117
7118         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7119
7120 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7121
7122         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7123         assignment from the constructor either if the target is volatile.
7124
7125 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
7126
7127         * config/arm/arm.md (insv): Do not share operands[0].
7128
7129 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
7130
7131         * config/vxlib-tls.c (active_tls_threads): Delete.
7132         (delete_hook_installed): New.
7133         (tls_delete_hook): Don't delete the delete hook.
7134         (tls_destructor): Delete it here.
7135         (__gthread_set_specific): Adjust installing the delete hook.
7136         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7137         __gthread_leave_tsd_dtor_context.
7138
7139 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
7140
7141         * c-format.c (gcc_tdiag_char_table): Add support for %E.
7142
7143 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
7144
7145         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7146         enum type.
7147         (alpha_rtx_costs): Ditto.
7148         (emit_unlikely_jump): Use add_reg_note.
7149         (emit_frame_store_1): Ditto.
7150         (alpha_expand_prologue): Ditto.
7151         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7152         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7153
7154 2009-04-23  Nick Clifton  <nickc@redhat.com>
7155
7156         * config/v850/v850.md (epilogue): Remove suppressed code.
7157         (return): Rename to return_simple and remove test of frame size.
7158         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7159         to gen_return_simple.
7160
7161 2009-04-22  Jing Yu  <jingyu@google.com>
7162
7163         PR testsuite/39781
7164         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7165
7166 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7167
7168         PR C/31499
7169         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7170         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
7171         value is a VECTOR_CST, the element type is the element type of the
7172         vector.
7173
7174 2009-04-22  DJ Delorie  <dj@redhat.com>
7175
7176         * config/m32c/m32c.h: Update GTY annotations to new syntax.
7177
7178 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
7179
7180         * alias.c (find_base_term): Move around LO_SUM case, so that
7181         CONST falls through into PLUS/MINUS handling.
7182
7183         PR c/39855
7184         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7185         into 0, use omit_one_operand.
7186
7187 2009-04-23  Ben Elliston  <bje@au.ibm.com>
7188
7189         * config/rs6000/linux-unwind.h (get_regs): Remove type
7190         puns. Change the type of `pc' to an array of unsigned ints and
7191         update all users.  Constify frame24.
7192
7193 2009-04-22  DJ Delorie  <dj@redhat.com>
7194
7195         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7196         declarations before code.
7197         (current_function_special_page_vector): Likewise.
7198         (m32c_expand_insv): Silence a warning.
7199
7200 2009-04-21  Taras Glek  <tglek@mozilla.com>
7201
7202         * alias.c: Update GTY annotations to new syntax.
7203         * basic-block.h: Likewise.
7204         * bitmap.h: Likewise.
7205         * c-common.h: Likewise.
7206         * c-decl.c: Likewise.
7207         * c-parser.c: Likewise.
7208         * c-pragma.c: Likewise.
7209         * c-tree.h: Likewise.
7210         * cfgloop.h: Likewise.
7211         * cgraph.h: Likewise.
7212         * config/alpha/alpha.c: Likewise.
7213         * config/arm/arm.h: Likewise.
7214         * config/avr/avr.h: Likewise.
7215         * config/bfin/bfin.c: Likewise.
7216         * config/cris/cris.c: Likewise.
7217         * config/darwin.c: Likewise.
7218         * config/frv/frv.c: Likewise.
7219         * config/i386/i386.c: Likewise.
7220         * config/i386/i386.h: Likewise.
7221         * config/i386/winnt.c: Likewise.
7222         * config/ia64/ia64.h: Likewise.
7223         * config/iq2000/iq2000.c: Likewise.
7224         * config/mips/mips.c: Likewise.
7225         * config/mmix/mmix.h: Likewise.
7226         * config/pa/pa.c: Likewise.
7227         * config/pa/pa.h: Likewise.
7228         * config/rs6000/rs6000.c: Likewise.
7229         * config/s390/s390.c: Likewise.
7230         * config/sparc/sparc.c: Likewise.
7231         * config/xtensa/xtensa.c: Likewise.
7232         * cselib.h: Likewise.
7233         * dbxout.c: Likewise.
7234         * dwarf2out.c: Likewise.
7235         * except.c: Likewise.
7236         * except.h: Likewise.
7237         * fixed-value.h: Likewise.
7238         * function.c: Likewise.
7239         * function.h: Likewise.
7240         * gimple.h: Likewise.
7241         * integrate.c: Likewise.
7242         * optabs.c: Likewise.
7243         * output.h: Likewise.
7244         * real.h: Likewise.
7245         * rtl.h: Likewise.
7246         * stringpool.c: Likewise.
7247         * tree-data-ref.c: Likewise.
7248         * tree-flow.h: Likewise.
7249         * tree-scalar-evolution.c: Likewise.
7250         * tree-ssa-address.c: Likewise.
7251         * tree-ssa-alias.h: Likewise.
7252         * tree-ssa-operands.h: Likewise.
7253         * tree.c: Likewise.
7254         * tree.h: Likewise.
7255         * varasm.c: Likewise.
7256         * varray.h: Likewise.
7257         * vec.h: Likewise.
7258         * coretypes.h: Do not define GTY macro if it is already defined.
7259         * doc/gty.texi: Update GTY documentation to new syntax.
7260         * gengtype-lex.l: Enforce attribute-like syntax for GTY
7261         annotations on structs.
7262         * gengtype-parse.c: Likewise.
7263
7264 2009-04-22  Mark Heffernan  <meheff@google.com>
7265
7266         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
7267
7268 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
7269
7270         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7271         where appropriate.
7272
7273 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
7274
7275         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7276         the same as a PLUS without a shift.  Increase the cost of a
7277         CONST_INT in MULT.
7278
7279 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7280
7281         * Makefile.in: Update dependencies.
7282         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
7283         * errors.h: Remove bogus comment about compatibility.
7284         (warning): Update declaration.
7285         * genautomata.c: Update all calls to warning.
7286         * gimple.c: Do not include errors.h. Include toplev.h.
7287         * tree-ssa-structalias.c: Do not include errors.h.
7288         * omega.c: Likewise.
7289         * tree-ssa-reassoc.c: Likewise.
7290         * config/spu/spu-c.c: Likewise.
7291         * config/spu/t-spu-elf: Update dependencies.
7292
7293 2009-04-22  Richard Guenther  <rguenther@suse.de>
7294
7295         PR tree-optimization/39824
7296         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7297         make sure the types are compatible.
7298
7299 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7300
7301         PR c++/14875
7302         * c-common.c (c_parse_error): Take a token_flags parameter.
7303         Use token_type for the token type instead.
7304         Pass token_flags to cpp_type2name.
7305         * c-common.h (c_parse_error): Update declaration.
7306         * c-parser.c (c_parser_error): Pass 0 as token flags.
7307
7308 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
7309
7310         PR rtl-optimization/39580
7311         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
7312         
7313 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7314
7315         * function.c (expand_function_end): Do not emit a jump to the "naked"
7316         return label for fall-through returns.
7317         * except.c (sjlj_emit_function_exit): Always place the call to the
7318         unregister function at the location installed by expand_function_end.
7319
7320 2009-04-22  Richard Guenther  <rguenther@suse.de>
7321
7322         PR tree-optimization/39845
7323         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7324         (gen_inbound_check): Likewise.
7325
7326 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7327
7328         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7329         padding for PPC.
7330         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7331         * config/vxlib.c (__gthread_once): Add race guard for PPC.
7332
7333 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7334
7335         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7336         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7337         shift counts to avoid out-of-bounds array accesses.
7338
7339 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7340
7341         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7342         (Pmode): Move above.
7343
7344 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
7345
7346         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7347         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7348         GET_CODE macro.  Use IN_RANGE macro where appropriate.
7349         * config/alpha/alpha.h: Ditto.
7350         * config/alpha/alpha.md: Ditto.
7351         * config/alpha/constraints.md: Ditto.
7352         * config/alpha/predicates.md: Ditto.
7353         
7354 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7355
7356         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7357         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7358         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7359         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7360         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7361         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7362         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7363         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7364         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7365         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7366         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7367         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7368         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7369         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7370         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7371         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7372         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7373         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7374         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7375         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7376         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7377         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7378         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7379         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7380         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7381         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7382         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7383
7384 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7385
7386         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7387         references from comments.
7388         * cfgbuild.c: (count_basic_blocks): Delete.
7389         (find_basic_blocks_1): Delete.
7390         (find_basic_blocks): Delete.
7391         * except.c (finish_eh_generation): Make static.  Move comment from
7392         except.h here.  Remove find_basic_blocks references from comments.
7393         * except.h (finish_eh_generation): Delete.
7394         * basic-block.h (find_basic_blocks): Delete.
7395         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7396
7397 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
7398
7399         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
7400         (sdbout_parms):  Likewise.
7401
7402 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
7403
7404         * config/sh/sh.c (prepare_cbranch_operands): Use
7405         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7406         (expand_cbranchdi4): Likewise.
7407         (from_compare): Add cast to enum type.
7408         (expand_cbranchsi4): Use add_reg_note.
7409         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7410         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7411         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7412         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7413         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7414         instead of CODE_FOR_nothing.
7415         (cbranchdi4): Likewise.  Fix the order of arguments for
7416         gen_rtx_fmt_ee.
7417         (push_fpscr): Use add_reg_note.
7418         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7419         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7420         
7421 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
7422
7423         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7424         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7425         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7426         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7427         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7428         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7429         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7430         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7431         config/alpha/x-vms, config/arc/t-arc,
7432         config/arm/README-interworking, config/arm/arm-c.c,
7433         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7434         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7435         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7436         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7437         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7438         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7439         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7440         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7441         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7442         config/cris/t-elfmulti, config/crx/t-crx,
7443         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7444         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7445         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7446         config/h8300/t-h8300, config/i386/athlon.md,
7447         config/i386/darwin-libgcc.10.4.ver,
7448         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7449         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7450         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7451         config/i386/t-linux64, config/i386/t-nwld,
7452         config/i386/t-rtems-i386, config/i386/t-sol2-10,
7453         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7454         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7455         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7456         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7457         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7458         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7459         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7460         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7461         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7462         config/m68k/t-uclinux, config/mcore/t-mcore,
7463         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7464         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7465         config/mips/crtn.asm, config/mips/irix-crti.asm,
7466         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7467         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7468         config/mips/mips-fixed.md, config/mips/sb1.md,
7469         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7470         config/mips/t-iris6, config/mips/t-isa3264,
7471         config/mips/t-libgcc-mips16, config/mips/t-linux64,
7472         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7473         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7474         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7475         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7476         config/mn10300/t-linux, config/mn10300/t-mn10300,
7477         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7478         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7479         config/picochip/libgccExtras/clzsi2.asm,
7480         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7481         config/rs6000/darwin-libgcc.10.4.ver,
7482         config/rs6000/darwin-libgcc.10.5.ver,
7483         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7484         config/rs6000/t-aix43, config/rs6000/t-aix52,
7485         config/rs6000/t-darwin, config/rs6000/t-fprules,
7486         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7487         config/rs6000/t-lynx, config/rs6000/t-netbsd,
7488         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7489         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7490         config/rs6000/t-rtems, config/rs6000/t-spe,
7491         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7492         config/score/t-score-elf, config/sh/divcost-analysis,
7493         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7494         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7495         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7496         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7497         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7498         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7499         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7500         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7501         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7502         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7503         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7504         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7505         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7506         limitx.h, version.c, xcoff.h: Add copyright and license notices.
7507         * config/h8300/genmova.sh: Include copyright and license notices
7508         in generated output.
7509         * config/h8300/mova.md: Regenerate.
7510         * doc/install.texi2html: Include word "Copyright" in copyright
7511         notice and use name "Free Software Foundation, Inc.".
7512         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7513         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7514         ChangeLog-2007, ChangeLog-2008: Correct dates.
7515
7516 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
7517
7518         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7519         NE_EXPR operations as well.
7520         * c-parser.c (c_parser_condition): Do not set location information on
7521         the condition.
7522         (c_parser_conditional_expression): Likewise.
7523         (c_parser_binary_expression): Set location information on operators.
7524         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7525         TRUTH_NOT_EXPR has been folded.
7526         * fold-const.c (fold_truth_not_expr): Copy location information from
7527         the incoming expression to the outgoing one.
7528         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
7529         recursive calls on the LHS of the operator but pass that of the
7530         operator to recursive calls on the RHS of the operator.  Set it
7531         on the COND_EXPR.
7532         (shortcut_cond_expr): Set the locus of the operator on the second
7533         COND_EXPR and that of the expression on the first in degenerate cases.
7534         Pass the locus of the expression to calls to shortcut_cond_r.
7535         Set the locus of the 'then' block on the associated jump, if any.
7536         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
7537         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7538         expression to call to gimplify_boolean_expr.
7539
7540 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
7541
7542         * config.gcc: Add additional configuration for
7543         i686-w64-mingw* and x86_64-w64-mingw* triplet.
7544         * config/i386/mingw-w64.h: New mingw-w64 specific header.
7545         (CPP_SPEC): Redefine for allowing -municode option.
7546         (STARTFILE_SPEC): Likewise.
7547         * config/i386/t-mingw-w64: New.
7548         * config/i386/mingw-w64.opt: New.
7549         (municode): Add new target option.
7550         * doc/invoke.texi (municode): Add documentation for new option.
7551
7552 2009-04-21  Ian Lance Taylor  <iant@google.com>
7553
7554         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7555         Correct test for number of arguments.
7556         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7557
7558 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
7559
7560         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7561         argument of emit_library_call.
7562
7563 2009-04-21  Richard Guenther  <rguenther@suse.de>
7564
7565         PR middle-end/39829
7566         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7567         inside VIEW_CONVERT_EXPRs.
7568
7569 2009-04-21  Martin Jambor  <mjambor@suse.cz>
7570
7571         * tree-switch-conversion.c (build_constructors): Split a long line.
7572         (constructor_contains_same_values_p): New function.
7573         (build_one_array): Create assigns of constants if possible, do not
7574         call mark_sym_for_renaming, call update_stmt.
7575         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7576         make_rename_temp.  Do not call mark_symbols_for_renaming, call
7577         update_stmt.
7578         (gen_def_assigns): Do not call mark_symbols_for_renaming or
7579         find_new_referenced_vars, call update_stmt.
7580         (gen_inbound_check): Use create_tmp_var and create ssa names manually
7581         instead of calling make_rename_temp.  Do not call
7582         find_new_referenced_vars or mark_symbols_for_renaming, call
7583         update_stmt.
7584
7585 2009-04-21  Richard Guenther  <rguenther@suse.de>
7586
7587         PR tree-optimization/39827
7588         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
7589         (tree_ssa_phiprop): Pass the correct array size.
7590
7591 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
7592
7593         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7594
7595 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7596
7597         PR 16202
7598         * c-typeck.c (lvalue_p): Move declaration ...
7599         * c-common.h (lvalue_p): ... to here.
7600         * c-common.c (candidate_equal_p): New.
7601         (add_tlist): Use it.
7602         (merge_tlist): Use it.
7603         (warn_for_collisions_1): Likewise.
7604         (warning_candidate_p): Accept more candidates.
7605         (verify_tree): A warning candidate can be an expression. Use
7606         candidate_equal_p.
7607
7608 2009-04-21  Ben Elliston  <bje@au.ibm.com>
7609
7610         PR target/5267
7611         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7612         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7613         options.  Remove -mcall-solaris documentation.
7614
7615 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7616
7617         PR c++/13358
7618         * doc/invoke.texi (-Wlong-long): Update description.
7619         * c-lex (interpret_integer): Only warn if there was no previous
7620         overflow and -Wlong-long is enabled.
7621         * c-decl.c (declspecs_add_type): Drop redundant flags.
7622         * c.opt (Wlong-long): Init to -1.
7623         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7624         and front-end warn_long_long. Wlong-long only depends on other
7625         flags if it is uninitialized.
7626         * c-parser.c (disable_extension_diagnostics): warn_long_long is
7627         the same for CPP and FE.
7628         (restore_extension_diagnostics): Likewise.
7629
7630 2009-04-20  Ian Lance Taylor  <iant@google.com>
7631
7632         Fix enum conversions which are invalid in C++:
7633         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7634         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
7635         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7636         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
7637         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
7638         (dbxout_parms): Likewise.
7639         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
7640         (df_clear_flags): Likewise.
7641         * df-problems.c (df_rd_bb_local_compute_process_def): Change
7642         top_flag parameter to int.
7643         (df_chain_create_bb_process_use): Likewise.
7644         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7645         Remove cast.
7646         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7647         (df_ref_create_structure, df_def_record_1): Likewise.
7648         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7649         (df_notes_rescan): Change 0 to VOIDmode in function call.
7650         (df_get_call_refs, df_insn_refs_collect): Likewise.
7651         (df_bb_regs_collect): Likewise.
7652         (df_entry_block_defs_collect): Likewise.
7653         (df_exit_block_uses_collect): Likewise.
7654         * df.h: Update declarations.
7655         * double-int.c (double_int_divmod): Add cast to enum type.
7656         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7657         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7658         (based_loc_descr): Likewise.
7659         (loc_descriptor_from_tree_1): Change first_op and second_op to
7660         enum dwarf_location_atom.  Add cast to enum type.
7661         * expmed.c (init_expmed): Change 0 to SET in function call.
7662         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
7663         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7664         (do_store_flag): Likewise.
7665         * fixed-value.h (struct fixed_value): Change mode to enum
7666         machine_mode.
7667         * function.c (assign_parms): Change 0 to VOIDmode in function call.
7668         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7669         function call.
7670         (insert_insn_decl, insert_decl, insert_state): Likewise.
7671         (automata_list_finish): Likewise.
7672         * genrecog.c (process_define_predicate): Add cast to enum type.
7673         * gensupport.c (init_predicate_table): Add cast to enum type.
7674         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7675         function call.
7676         (gimple_build_call_1, gimple_build_label): Likewise.
7677         (gimple_build_goto, gimple_build_asm_1): Likewise.
7678         (gimple_build_switch_1, gimple_build_cdt): Likewise.
7679         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
7680         (enum fallback): Rename from enum fallback_t.
7681         (fallback_t): Typedef as int.
7682         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7683         GSI_SAME_STMT in function call.
7684         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7685         enum type.
7686         (setup_reg_class_relations): Likewise.
7687         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
7688         (setup_prohibited_class_mode_regs): Add cast to enum type.
7689         (setup_prohibited_mode_move_regs): Likewise.
7690         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
7691         (record_address_regs): Change i to enum reg_class.
7692         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7693         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7694         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7695         (GET_MODE_2XWIDER_MODE): Likewise.
7696         (GET_CLASS_NARROWEST_MODE): Likewise.
7697         * omp-low.c (expand_omp_for): Add cast to enum type.
7698         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7699         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7700         * postreload.c (reload_cse_simplify_operands): Change rclass local
7701         to enum reg_class.
7702         * predict.c (combine_predictions_for_insn): Change best_predictor
7703         and predictor to enum br_predictor.
7704         (combine_predictions_for_bb): Likewise.
7705         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7706         use SET_PREDICT_EXPR_OUTCOME.
7707         * real.c (real_arithmetic): Change icode to code in function call.
7708         * reginfo.c (init_move_cost): Add casts to enum type.
7709         (init_reg_sets_1, init_fake_stack_mems): Likewise.
7710         * regmove.c (regclass_compatible_p): Change class0 and class1 to
7711         enum reg_class.
7712         * reload.c (find_valid_class): Add casts to enum type.
7713         (push_reload): Change 0 to NO_REGS in function call.
7714         (find_reloads): Change this_alternative to array of enum
7715         reg_class.  Remove some now-unnecessary casts.
7716         (make_memloc): Change 0 to VOIDmode in function call.
7717         * reload1.c (reload): Change 0 to VOIDmode in function call.
7718         (eliminate_regs_1, elimination_effects): Likewise.
7719         (eliminate_regs_in_insn): Likewise.
7720         (emit_input_reload_insns): Add cast to enum type.
7721         (delete_output_reload): Change 0 to VOIDmode in function call.
7722         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7723         to enum type in function call.
7724         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7725         (SET_PREDICT_EXPR_OUTCOME): Define.
7726         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
7727         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7728         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7729         (dump_function): Likewise.
7730         * tree-dump.h: Update declarations.
7731         * tree-pass.h: Update declarations.
7732         * varasm.c (assemble_integer): Change mclass to enum mode_class.
7733         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7734         enum type.
7735         (arm_rtx_costs_1): Correct parenthesization.
7736         (arm_rtx_costs): Add casts to enum type.
7737         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7738         (vfp_emit_fstmd): Use add_rg_note.
7739         (emit_multi_reg_push, emit_sfm): Likewise.
7740         (thumb_set_frame_pointer): Likewise.
7741         (arm_expand_prologue): Likewise.
7742         (arm_regno_class): Change return type to enum reg_class.
7743         (thumb1_expand_prologue): Use add_reg_note.
7744         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7745         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7746         in function call.
7747         * config/arm/gentune.sh: Add cast to enum type.
7748         * config/arm/arm-tune.md: Rebuild.
7749         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7750         (ix86_split_fp_branch, predict_jump): Likewise.
7751         (ix86_expand_multi_arg_builtin): Change sub_code from enum
7752         insn_code to enum rtx_code.
7753         (ix86_builtin_vectorized_function): Add cast to enum type.
7754         * config/i386/i386.md (truncdfsf2): Change slot to enum
7755         ix86_stack_slot.
7756         (truncxf<mode>2, isinf<mode>2): Likewise.
7757         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7758         enum type.
7759         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7760         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7761         (insert_bundle_state): Change 1 to INSERT in function call.
7762         (ia64_add_bundle_selector_before): Likewise.
7763         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7764         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7765         (restore_stack_nonlocal): Likewise.
7766         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7767         function call.
7768         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7769         function call.
7770         (mips_rtx_costs): Likewise.
7771         (mips_override_options): Add casts to enum type.
7772         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7773         in function call.
7774         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7775         (store_reg, set_reg_plus_d): Likewise.
7776         (hppa_expand_prologue, hppa_profile_hook): Likewise.
7777         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7778         cast to enum type.
7779         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7780         function call.
7781         (emit_unlikely_jump): Use add_reg_note.
7782         (rs6000_emit_allocate_stack): Likewise.
7783         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7784         (output_toc): Change 1 to INSERT in function call.
7785         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7786         (rs6000_initialize_trampoline): Likewise.
7787         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7788         function call.
7789         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7790         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7791         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7792         (save_gprs): Use add_reg_note.
7793         (s390_emit_prologue): Likewise.
7794         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7795         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7796         (sparc_fold_builtin): Add cast to enum type.
7797         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7798         enum insn_code.
7799         (spu_expand_prologue): Use add_reg_note.
7800         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
7801
7802 2009-04-20  Ian Lance Taylor  <iant@google.com>
7803
7804         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7805         (c_parser_postfix_expression_after_primary): Get VEC for list of
7806         arguments.  Get original types of arguments.  Call
7807         build_function_call_vec.
7808         (cached_expr_list_1, cached_expr_list_2): New static variables.
7809         (c_parser_expr_list): Change return type to VEC *.  Add
7810         p_orig_types parameter.  Change all callers.
7811         (c_parser_release_expr): New static function.
7812         (c_parser_vec_to_tree_list): New static function.
7813         * c-typeck.c (build_function_call): Rewrite to build a VEC and
7814         call build_function_call_vec.
7815         (build_function_call_vec): New function, based on old
7816         build_function_call.
7817         (convert_arguments): Remove nargs and argarray parameters.  Change
7818         values to a VEC.  Add origtypes parameter.
7819         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
7820         (convert_for_assignment): Add origtype parameter.  Change all
7821         callers.  If warn_cxx_compat, check for conversion to an enum
7822         type when calling a function.
7823         (store_init_value): Add origtype parameter.  Change all callers.
7824         (digest_init): Likewise.
7825         (struct init_node): Add origtype field.
7826         (add_pending_init): Add origtype parameter.  Change all callers.
7827         (output_init_element): Likewise.
7828         (output_pending_init_elements): Pass origtype from init_node to
7829         output_init_element.
7830         (process_init_element): Pass origtype from c_expr to
7831         output_init_element.
7832         (c_finish_return): Add origtype parameter.  Change all callers.
7833         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
7834         caller.
7835         (sync_resolve_params): Likewise.
7836         (sync_resolve_return): Change params to first_param.  Change caller.
7837         (resolve_overloaded_builtins): Change params to VEC *.  Change
7838         callers.  Save first parameter around call to build_function_call_vec.
7839         * c-decl.c (finish_decl): Add origtype parameter.  Change all
7840         callers.  Call build_function_call_vec rather than
7841         build_function_call for cleanup.
7842         * c-tree.h: Update declarations.
7843         * c-common.h: Update declarations.
7844         * stub-objc.c (objc_rewrite_function_call): Change parameter from
7845         params to first_param.
7846         * target.h (struct gcc_target): Change resolve_overloaded_builtin
7847         params parameter from tree to void *.
7848         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7849         Change arglist parameter to have type void *, and to be a pointer
7850         to a VEC.
7851         * config/rs6000/rs6000-protos.h
7852         (altivec_resolve_overloaded_builtin): Update declaration.
7853         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7854         fnargs parameter to have type void *, and to be a pointer to a
7855         VEC.  Call build_function_call_vec instead of
7856         build_function_call.
7857         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
7858
7859 2009-04-20  Joey Ye  <joey.ye@intel.com>
7860             Xuepeng Guo  <xuepeng.guo@intel.com>
7861             H.J. Lu  <hongjiu.lu@intel.com>
7862
7863         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7864
7865         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7866         (IX86_LEA_PRIORITY): Likewise.
7867         (distance_non_agu_define): New function.
7868         (distance_agu_use): Likewise.
7869         (ix86_lea_for_add_ok): Likewise.
7870         (ix86_dep_by_shift_count): Likewise.
7871
7872         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7873         should split for LEA.
7874
7875         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7876         function.
7877         (ix86_dep_by_shift_count): Likewise.
7878
7879 2009-04-20  Richard Guenther  <rguenther@suse.de>
7880
7881         * expr.c (handled_component_p): Move ...
7882         * tree.h (handled_component_p): ... here.
7883         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7884         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7885         and REALPART_EXPR to be in one group.
7886
7887 2009-04-20  Richard Guenther  <rguenther@suse.de>
7888
7889         * basic-block.h (get_all_dominated_blocks): Declare.
7890         * dominance.c (get_all_dominated_blocks): New function.
7891         * tree-cfg.c (get_all_dominated_blocks): Remove.
7892         (remove_edge_and_dominated_blocks): Adjust.
7893         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7894         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
7895         instead of recursing.
7896
7897 2009-04-20  Doug Kwan  <dougkwan@google.com>
7898
7899         * cgraph.h (cgraph_node_ptr): New type for vector functions.
7900         (struct cgraph_node_set_def): New type.
7901         (cgraph_node_set) New type. Also declare vector functions.
7902         (struct cgraph_node_set_element_def): New type.
7903         (cgraph_node_set_element): Ditto.
7904         (cgraph_node_set_iterator): New iterator type.
7905         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7906         cgraph_node_set_remove, dump_cgraph_node_set,
7907         debug_cgraph_node_set): New prototypes.
7908         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7909         cgraph_node_set_size): New inlines.
7910         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7911         including cgraph.h.
7912         (struct ipa_opt_pass): Add struct cgraph_node_set_def
7913         argument to function 'write_summary'.
7914         * ipa.c: Include ggc.h.
7915         (hash_cgraph_node_set_element,
7916         eq_cgraph_node_set_element, cgraph_node_set_new,
7917         cgraph_node_set_add, cgraph_node_set_remove,
7918         cgraph_node_set_find, dump_cgraph_node_set,
7919         debug_cgraph_node_set): New functions.
7920         * Makefile.in (ipa.o): Add dependency on GGC_H.
7921
7922 2009-04-20  Ira Rosen  <irar@il.ibm.com>
7923
7924         PR tree-optimization/39675
7925         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
7926         check of the return code of vect_schedule_slp. Check that
7927         stmt_vec_info still exists for the statement, before checking its
7928         vectorization type.
7929
7930 2009-04-20  Michael Matz  <matz@suse.de>
7931
7932         * Makefile.in (generated_files): Take out $(simple_generated_c).
7933
7934 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
7935
7936         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
7937         (UINTPTR_TYPE):  Likewise.
7938
7939 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
7940
7941         PR c/37481
7942         * c-typeck.c (digest_init): Check for initializing an array with a
7943         string literal.
7944
7945 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
7946
7947         PR c/19771
7948         * c-semantics.c (pop_stmt_list): Propagate
7949         STATEMENT_LIST_HAS_LABEL to parent statement list.
7950
7951 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
7952
7953         * config/mips/mips.h (mips_tune_attr): New macro.
7954         * config/mips/mips.md (cpu): Use it.
7955
7956 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
7957
7958         PR c/38243
7959         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7960         declaring a tag.
7961
7962 2009-04-19  Diego Novillo  <dnovillo@google.com>
7963
7964         * toplev.c (compile_file): Move call to coverage_finish ...
7965         * cgraphunit.c (ipa_passes): ... here.
7966         Call cgraph_process_new_functions.
7967         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7968         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7969
7970 2009-04-19  Jan Hubicka  <jh@suse.cz>
7971
7972         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7973         cfun.
7974         (dump_cgraph_node): Dump can throw external flag.
7975         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7976
7977 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7978
7979         PR c/32061
7980         PR c++/36954
7981         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7982         * common.opt (Wlogical-op): Move from here...
7983         * c.opt (Wlogical-op): ... to here.
7984         * c-typeck.c (parser_build_binary_op): Update call to
7985         warn_logical_operator.
7986         * c-opts.c (c_common_post_options): Enable warn_logical_op with
7987         extra_warnings.
7988         * c-common.c (warn_logical_op): Update.
7989         * c-common.h (warn_logical_op): Update declaration.
7990
7991 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
7992
7993         * tree.c (protected_set_expr_location): Fix formatting.
7994
7995 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
7996
7997         PR c/27676
7998         * c-typeck.c (readonly_warning): new.
7999         (build_unary_op, build_modify_expr): Use readonly_warning for
8000         storing into something readonly but not const-qualified.
8001
8002 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8003
8004         PR c/22367
8005         * c-typeck.c (build_unary_op): Check for taking address of
8006         expression of type void.
8007
8008 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8009
8010         PR c/35210
8011         * c-typeck.c (build_function_call): Check for calling a function
8012         with qualified void return types.  Call require_complete_type when
8013         generating a trap.
8014
8015 2009-04-18  Jan Hubicka  <jh@suse.cz>
8016
8017         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8018         Set nothrow flag.
8019         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8020         can_throw_external flag.
8021         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8022         * ipa-pure-const.c (ignore_edge): New function.
8023         (propagate): Compute order for NOTHROW computation; set NOTHROWs
8024         only over can_throw_external edges.
8025         (local_pure_const): Add nothrow flag.
8026         * ipa-utils.c (searchc): Add ignore_edge callback.
8027         (ipa_utils_reduced_inorder): Add ignore_edge callback.
8028         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8029         (set_nothrow_function_flags): Update cgraph.
8030         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8031
8032 2009-04-18  Richard Guenther  <rguenther@suse.de>
8033
8034         PR middle-end/39804
8035         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8036         (fold_stmt): ... this and ...
8037         (fold_stmt_inplace): ... this.
8038         (fold_stmt_1): Fold references in calls and asms.
8039         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8040
8041 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8042
8043         * tree-vrp.c (ssa_name_nonzero_p): Remove.
8044         * tree.h: Remove the prototype for ssa_name_nonzero_p.
8045
8046 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8047
8048         * tree.c (function_args_count): Remove.
8049         * tree.h: Remove the prototype for function_args_count.
8050
8051 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8052
8053         * tree-iterator.c (expr_only): Remove.
8054         * tree.h: Remove the prototype for expr_only.
8055
8056 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8057
8058         * reginfo.c (cannot_change_mode_set_regs): Remove.
8059         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8060
8061 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
8062
8063         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8064         whether operands 0 and 1 overlaps.
8065
8066 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8067
8068         PR middle-end/36902
8069         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8070         pointer. Use warning_at instead of warning.
8071         (search_for_addr_array): Likewise.
8072         (check_array_bounds): Likewise.
8073         (check_all_array_refs): Check that the incoming edge is not in the
8074         list of edges to be removed.
8075         (check_all_array_refs): Avoid the temporal pointer.
8076         (vrp_visit_cond_stmt): Fix typo.
8077         (simplify_switch_using_ranges): Handle the case where the switch
8078         index is an integer constant.
8079
8080 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
8081
8082         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8083
8084 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8085
8086         * doc/extend.texi, doc/invoke.texi: Fix typos.
8087
8088 2009-04-17  Cary Coutant  <ccoutant@google.com>
8089
8090         * tree-flow-inline.h (get_lineno): Fix inverted test.
8091
8092 2009-04-17  Diego Novillo  <dnovillo@google.com>
8093
8094         * tree-ssa-pre.c (create_expression_by_pieces): Remove
8095         assertion for AVAIL_OUT.
8096
8097 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
8098
8099         PR target/38627
8100         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8101         * config/sh/linux-atomic.asm: Likewise.
8102
8103 2009-04-17  Diego Novillo  <dnovillo@google.com>
8104
8105         * except.c (debug_eh_tree): New.
8106         (struct eh_region, struct eh_status): Move ...
8107         * except.h: ... here.
8108         (add_type_for_runtime): Declare extern.
8109         (lookup_type_for_runtime): Likewise.
8110         (debug_eh_tree): Declare.
8111         * Makefile.in (GTFILES): List except.h before except.c
8112
8113 2009-04-17  Diego Novillo  <dnovillo@google.com>
8114
8115         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8116         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8117         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8118         (find_vars_r): ... here.
8119         * tree-flow.h (find_referenced_vars_in): Declare.
8120         * tree-ssa-pre.c (create_expression_by_pieces): Assert
8121         that AVAIL_OUT exists for BLOCK.
8122         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8123         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8124         (tree-parloops.o): Likewise.
8125
8126 2009-04-17  Simon Baldwin  <simonb@google.com>
8127
8128         * toplev.c (default_tree_printer): Add handling for %E format.
8129
8130 2009-04-17  Diego Novillo  <dnovillo@google.com>
8131
8132         * tree-pretty-print.c (dump_generic_node): Add break after
8133         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
8134         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
8135         FUNCTION_TYPE together.  Call print_struct_decl when printing
8136         structures and TDF_SLIM is not given.
8137         (print_struct_decl): Fix logic for detecting recursion.
8138
8139 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
8140
8141         PR 31567
8142         * gcc.c (create_at_file): New.
8143         (compile_input_file_p): New.
8144         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8145         * main.c (main): Update call to toplev_main.
8146         * toplev.c (toplev_main): Change signature. Call expandargv.
8147         * toplev.h (toplev_main): Change signature.
8148
8149 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8150
8151         * dwarf2out.c (field_byte_offset): Use the type size as the field size
8152         if the latter is not constant.
8153
8154 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
8155
8156         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8157
8158 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8159
8160         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8161         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8162
8163 2009-04-17  Richard Guenther  <rguenther@suse.de>
8164
8165         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8166         Handle component references view-converting an invariant address.
8167
8168 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
8169
8170         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8171         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8172         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8173         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8174         Use @deftypevr rather than @deftypevar.
8175
8176 2009-04-17  Richard Guenther  <rguenther@suse.de>
8177
8178         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8179         (get_prop_source_stmt): Likewise.
8180         (can_propagate_from): Likewise.
8181
8182 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
8183
8184         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8185         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8186         (--with-multilib-list): Add default value.
8187         * configure: Regenerate.
8188         * Makefile.in (TM_ENDIAN_CONFIG): Define.
8189         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8190         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8191         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8192         Don't add default cpu to multilib list unnecessarily, but do enable
8193         the relevant compiler option..
8194         Add support for --with-multilib-list=<blank> and
8195         --with-multilib-list=!<somelib> to supress unwanted multilibs.
8196         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8197         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8198         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8199         TM_MULTILIB_CONFIG.
8200         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8201         (MULTILIB_OSDIRNAMES): New variable.
8202         * config/sh/t-1e: Delete file.
8203         * config/sh/t-mlib-sh1: Delete file.
8204         * config/sh/t-mlib-sh2: Delete file.
8205         * config/sh/t-mlib-sh2a: Delete file.
8206         * config/sh/t-mlib-sh2a-nofpu: Delete file.
8207         * config/sh/t-mlib-sh2a-single: Delete file.
8208         * config/sh/t-mlib-sh2a-single-only: Delete file.
8209         * config/sh/t-mlib-sh2e: Delete file.
8210         * config/sh/t-mlib-sh3e: Delete file.
8211         * config/sh/t-mlib-sh4: Delete file.
8212         * config/sh/t-mlib-sh4-nofpu: Delete file.
8213         * config/sh/t-mlib-sh4-single: Delete file.
8214         * config/sh/t-mlib-sh4-single-only: Delete file.
8215         * config/sh/t-mlib-sh4a: Delete file.
8216         * config/sh/t-mlib-sh4a-nofpu: Delete file.
8217         * config/sh/t-mlib-sh4a-single: Delete file.
8218         * config/sh/t-mlib-sh4a-single-only: Delete file.
8219         * config/sh/t-mlib-sh4al: Delete file.
8220         * config/sh/t-mlib-sh5-32media: Delete file.
8221         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8222         * config/sh/t-mlib-sh5-64media: Delete file.
8223         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8224         * config/sh/t-mlib-sh5-compact: Delete file.
8225         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8226         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8227         * doc/install.texi (Options specification): Add
8228         --with-multilib-list and --with-endian.
8229
8230 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
8231
8232         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8233         REVISION_c.
8234         (OBJS-common): Add plugin-version.o.
8235         (plugin-version.o): New.
8236         * gcc-plugin.h (plugin_gcc_version): New.
8237         (plugin_default_version_check): New.
8238         (plugin_init_func, plugin_init): Add version argument.
8239         * plugin-version.c: New.
8240         * plugin.c (str_plugin_gcc_version_name): New.
8241         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8242         pass it to the init function.
8243         (plugin_default_version_check): New.
8244
8245 2009-04-17  Richard Guenther  <rguenther@suse.de>
8246
8247         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8248         for decl-vs-decl disambiguation.
8249
8250 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8251
8252         * config/s390/s390.h (s390_tune_attr): New macro definition.
8253         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8254
8255 2009-04-17  Richard Guenther  <rguenther@suse.de>
8256
8257         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8258         (fold_stmt_r): Likewise.
8259         (maybe_fold_reference): New function.
8260         (fold_gimple_assign): Handle cases fold_stmt_r did.
8261         (fold_stmt): Do not use fold_stmt_r.
8262         (fold_stmt_inplace): Likewise.
8263
8264 2009-04-17  Richard Guenther  <rguenther@suse.de>
8265
8266         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8267         (record_equivalences_from_stmt): Remove useless checks and
8268         simplifications.
8269         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8270         the type is already suitable.
8271
8272 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
8273
8274         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8275
8276 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
8277
8278         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8279         (CMPtype): Define as __gcc_CMPtype.
8280
8281 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
8282
8283         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8284         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8285
8286 2009-04-17  Richard Guenther  <rguenther@suse.de>
8287
8288         PR tree-optimization/39746
8289         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8290         special-casing for builtins and static variable use/def.
8291         (call_may_clobber_ref_p_1): Likewise.
8292
8293 2009-04-16  Ian Lance Taylor  <iant@google.com>
8294
8295         * df.h: Include "timevar.h".
8296         (struct df_problem): Change tv_id field to timevar_id_t.
8297         * tree-pass.h: Include "timevar.h".
8298         (struct opt_pass): Change tv_id field to timevar_id_t.
8299         * timevar.h (timevar_id_t): Define TV_NONE.
8300         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8301         TV_NONE rather than tv_id != 0.
8302         (execute_one_pass): Likewise.
8303         * Makefile.in (DF_H): Add $(TIMEVAR_H).
8304         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
8305         dependencies to $(TREE_PASS_H).
8306         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8307         to TV_NONE.
8308         (pass_branch_target_load_optimize2): Likewise.
8309         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8310         (pass_outof_cfg_layout_mode): Likewise.
8311         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8312         (pass_rebuild_cgraph_edges): Likewise.
8313         (pass_remove_cgraph_callee_edges): Likewise.
8314         * df-core.c (pass_df_initialize_opt): Likewise.
8315         (pass_df_initialize_no_opt): Likewise.
8316         (pass_df_finish): Likewise.
8317         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8318         * except.c (pass_set_nothrow_function_flags): Likewise.
8319         (pass_convert_to_eh_region_ranges): Likewise.
8320         * final.c (pass_compute_alignments): Likewise.
8321         * function.c (pass_instantiate_virtual_regs): Likewise.
8322         (pass_init_function): Likewise.
8323         (pass_leaf_regs): Likewise.
8324         (pass_match_asm_constraints): Likewise.
8325         * gimple-low.c (pass_lower_cf): Likewise.
8326         (pass_mark_used_blocks): Likewise.
8327         * init-regs.c (pass_initialize_regs): Likewise.
8328         * integrate.c (pass_initial_value_sets): Likewise.
8329         * ira.c (pass_ira): Likewise.
8330         * jump.c (pass_cleanup_barriers): Likewise.
8331         * omp-low.c (pass_expand_omp): Likewise.
8332         (pass_lower_omp): Likewise.
8333         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8334         * recog.c (pass_split_all_insns): Likewise.
8335         (pass_split_after_reload): Likewise.
8336         (pass_split_before_regstack): Likewise.
8337         (pass_split_before_sched2): Likewise.
8338         (pass_split_for_shorten_branches): Likewise.
8339         * reginfo.c (pass_reginfo_init): Likewise.
8340         (pass_subregs_of_mode_init): Likewise.
8341         (pass_subregs_of_mode_finish): Likewise.
8342         * passes.c (pass_postreload): Likewise.
8343         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8344         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8345         (pass_warn_function_return): Likewise.
8346         (pass_warn_function_noreturn): Likewise.
8347         * tree-complex.c (pass_lower_complex): Likewise.
8348         (pass_lower_complex_O0): Likewise.
8349         * tree-if-conv.c (pass_if_conversion): Likewise.
8350         * tree-into-ssa.c (pass_build_ssa): Likewise.
8351         * tree-mudflap.c (pass_mudflap_1): Likewise.
8352         (pass_mudflap_2): Likewise.
8353         * tree-nomudflap.c (pass_mudflap_1): Likewise.
8354         (pass_mudflap_2): Likewise.
8355         * tree-nrv.c (pass_return_slot): Likewise.
8356         * tree-object-size.c (pass_object_sizes): Likewise.
8357         * tree-optimize.c (pass_all_optimizations): Likewise.
8358         (pass_early_local_passes): Likewise.
8359         (pass_all_early_optimizations): Likewise.
8360         (pass_cleanup_cfg): Likewise.
8361         (pass_cleanup_cfg_post_optimizing): Likewise.
8362         (pass_free_datastructures): Likewise.
8363         (pass_free_cfg_annotations): Likewise.
8364         (pass_fixup_cfg): Likewise.
8365         (pass_init_datastructures): Likewise.
8366         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8367         (pass_late_warn_uninitialized): Likewise.
8368         (pass_update_address_taken): Likewise.
8369         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8370         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8371         (pass_cse_sincos): Likewise.
8372         (pass_convert_to_rsqrt): Likewise.
8373         * tree-ssa-structalias.c (pass_build_alias): Likewise.
8374         * tree-stdarg.c (pass_stdarg): Likewise.
8375         * tree-tailcall.c (pass_tail_recursion): Likewise.
8376         (pass_tail_calls): Likewise.
8377         * tree-vect-generic.c (pass_lower_vector): Likewise.
8378         (pass_lower_vector_ssa): Likewise.
8379         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8380
8381 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
8382
8383         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8384         XLR entry.
8385         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8386         Handle -march=xlr.
8387         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8388         logical and signext.
8389
8390 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
8391
8392         PR target/39767
8393         * config/sh/predicates.md (arith_operand): Check if the operand
8394         of TRUNCATE is a REG.
8395
8396 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8397
8398         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8399         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8400
8401 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8402
8403         * tree-iterator.c (tsi_split_statement_list_after,
8404         tsi_split_statement_list_before): Remove.
8405         * tree-iterator.h: Remove the prototypes for
8406         tsi_split_statement_list_after and tsi_split_statement_list_before.
8407
8408 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8409
8410         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8411         * tree-ssa-propagate.h: Remove the prototype for
8412         stmt_makes_single_load.
8413
8414 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8415
8416         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8417         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8418
8419 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8420
8421         * tree-iterator.c (EXPR_LAST_BODY): Remove.
8422
8423 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8424
8425         * except.c (eh_region_outer_p): Remove.
8426         * except.h: Remove the prototype for eh_region_outer_p.
8427
8428 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8429
8430         * function.c (current_function_assembler_name): Remove.
8431         * function.h: Remove the prototype for
8432         current_function_assembler_name.
8433
8434 2009-04-16  Ian Lance Taylor  <iant@google.com>
8435
8436         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
8437         (add_reg_note): Call alloc_reg_note.
8438         * rtl.h (alloc_reg_note): Declare.
8439         * combine.c (try_combine): Use alloc_reg_note.
8440         (recog_for_combine, move_deaths): Likewise.
8441         (distribute_notes): Use alloc_reg_note and add_reg_note.
8442         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8443         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8444         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8445
8446 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
8447
8448         PR rtl-optimization/39762
8449         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8450         ira_may_move_out_cost): Add comments about way of their usage.
8451         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
8452
8453         * ira-conflicts.c (process_regs_for_copy): Use function
8454         ira_get_register_move_cost instead of global
8455         ira_register_move_cost.
8456
8457         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8458         color_pass, move_spill_restore, update_curr_costs): Ditto.
8459
8460         * ira-lives.c (process_single_reg_class_operands): Ditto.
8461
8462         * ira-emit.c (emit_move_list): Ditto.
8463
8464         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8465         (record_reg_classes): Ditto.  Use functions
8466         ira_get_register_move_cost and ira_get_may_move_cost instead of
8467         global vars ira_register_move_cost, ira_may_move_out_cost and
8468         ira_may_move_in_cost.
8469         (record_address_regs): Don't call ira_init_register_move_cost.
8470         Use function ira_get_may_move_cost instead of global
8471         ira_may_move_in_cost.
8472         (process_bb_node_for_hard_reg_moves): Use function
8473         ira_get_register_move_cost instead of global ira_register_move_cost.
8474         (ira_costs): Don't call ira_init_register_move_cost.
8475
8476 2009-04-16  Richard Guenther  <rguenther@suse.de>
8477
8478         * tree-cfg.c (verify_gimple_assign_binary):
8479         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8480         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8481         (create_general_new_stmt): Note that this function is broken.
8482
8483 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8484
8485         * common.opt (fhelp): Add Var(help_flag).
8486         * gcc-plugin.h (plugin_info): Add help.
8487         * plugin.c (plugin_name_args): Add help.
8488         (register_plugin_info): Set plugin->help.
8489         (print_help_one_plugin): New.
8490         (print_plugins_help): New.
8491         * plugin.h (print_plugins_help): New.
8492         * toplev.c (toplev_main): Call print_plugins_help if needed.
8493
8494 2009-04-16  Richard Guenther  <rguenther@suse.de>
8495
8496         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8497         (gimple_ior_addresses_taken_1): New function.
8498         (gimple_ior_addresses_taken): Likewise.
8499         * gimple.h (struct gimple_statement_with_ops_base): Remove
8500         addresses_taken member.
8501         (gimple_ior_addresses_taken): Declare.
8502         (gimple_addresses_taken, gimple_addresses_taken_ptr,
8503         gimple_set_addresses_taken): Remove.
8504         * ipa-reference.c (mark_address): New function.
8505         (scan_stmt_for_static_refs): Use it for marking addresses taken.
8506         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8507         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
8508         (gimple_add_to_addresses_taken): Remove.
8509         (get_tmr_operands): Call mark_address_taken.
8510         (get_asm_expr_operands): Likewise.
8511         (get_expr_operands): Likewise.
8512         (build_ssa_operands): Do not clear the addresses_taken bitmap.
8513         (free_stmt_operands): Do not free it.
8514         * tree-ssa.c (delete_tree_ssa): Likewise.
8515         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8516
8517 2009-04-16  Richard Guenther  <rguenther@suse.de>
8518
8519         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8520         (walk_stmt_load_store_ops): Likewise.
8521         * gimple.c (get_base_loadstore): New function.
8522         (walk_stmt_load_store_addr_ops): Likewise.
8523         (walk_stmt_load_store_ops): Likewise.
8524         * ipa-pure-const.c (check_op): Simplify.
8525         (check_load, check_store): New functions.
8526         (check_stmt): Use walk_stmt_load_store_ops.
8527         * ipa-reference.c (mark_load): Adjust signature.
8528         (mark_store): Likewise.
8529         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8530
8531 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8532
8533         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8534         (plugin_info): New.
8535         * opts.c (common_handle_option): Don't call print_version.
8536         * plugin.c (plugin_name_args): Add version.
8537         (register_plugin_info): New.
8538         (register_callback): Handle PLUGIN_INFO.
8539         (try_init_one_plugin): New.
8540         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8541         if failed to init.
8542         (finalize_one_plugin): New.
8543         (finalize_plugins): New.
8544         (print_one_plugin): New.
8545         (print_plugins_versions): New.
8546         * plugin.h (print_plugins_versions): New.
8547         (finalize_plugins): New.
8548         * toplev.c (compile_file): Don't call initialize_plugins.
8549         (print_version): Call print_plugins_versions.
8550         (toplev_main): Call initialize_plugins. Print version if needed.
8551         Call finalize_plugins.
8552
8553 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8554
8555         * common.opt (fversion): New.
8556         * gcc.c (print_version): New.
8557         (process_command): Don't print the version. Just set print_version.
8558         (main): Print version. Call subprocesses if print_version and
8559         verbose_flag are set.
8560         * opts.c (common_handle_option): Handle OPT_fversion.
8561
8562 2009-04-16  Richard Guenther  <rguenther@suse.de>
8563             Ira Rosen  <irar@il.ibm.com>
8564
8565         PR tree-optimization/39698
8566         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8567         type of the reduction variable.  Only generate the def if
8568         it is needed.
8569
8570         * omp-low.c (expand_omp_for_generic): When converting to a pointer
8571         make sure to first convert to an integer of the same precision.
8572         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8573         the type of the evolution correctly in computing the new
8574         induction variable base.
8575
8576 2009-04-16  Richard Guenther  <rguenther@suse.de>
8577
8578         PR middle-end/39625
8579         * tree-cfg.c (make_blocks): Split statements with to-be
8580         abnormal SSA names on the lhs.
8581
8582 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
8583
8584         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8585         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8586         * c-typeck.c (really_start_incremental_init): Likewise.
8587         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8588         (TARGET_INITIALIZER): Remove it.
8589         * target.h (struct target): Remove vector_opaque_p.
8590         * tree.c (build_opaque_vector_type): New.
8591         * tree.h (TYPE_VECTOR_OPAQUE): New.
8592         (build_opaque_vector_type): Declare.
8593         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8594         * config/rs6000/rs6000.c (build_opaque_vector_type,
8595         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8596         (rs6000_init_builtins): Use build_opaque_vector_type for
8597         opaque_V4SI_type_node.
8598
8599 2009-04-15  Catherine Moore  <clm@codesourcery.com>
8600
8601         * debug.h (set_name):  Declare.
8602         * dwarf2out.c (dwarf2out_set_name): Declare.
8603         (dwarf2_debug_hooks): Add set_name.
8604         (find_AT_string): New.
8605         (add_AT_string): Call find_AT_string.
8606         (dwarf2out_set_name): New.
8607         * cp/decl.c (grokdeclarator): Call set_name.
8608         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8609         * debug.c (do_nothing_debug_hooks):  Likewise.
8610         * dbxout.c (dbx_debug_hooks): Likewise.
8611         * sdbout.c (sdb_debug_hooks): Likewise.
8612
8613 2009-04-15  Michael Eager  <eager@eagercon.com>
8614
8615         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8616         reg for single-precision FPU.
8617         * config/rs6000/rs6000.md (movsi_internal1): Only for
8618         !TARGET_SINGLE_FPU.
8619         (movsi_internal1_single): New. Add pattern to move SI values to/from
8620         single-precision FP regs.
8621
8622 2009-04-15  Richard Guenther  <rguenther@suse.de>
8623
8624         * omp-low.c (lower_rec_input_clauses): Build correct address
8625         expressions.
8626         (expand_omp_for_generic): Fix multiplication type.
8627         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
8628         (generate_memset_zero): Fix types.
8629         * tree-profile.c (prepare_instrumented_value): Correctly
8630         widen a pointer.
8631
8632 2009-04-15  Ian Lance Taylor  <iant@google.com>
8633
8634         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
8635         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8636         for -Wall and for -Wc++-compat.
8637         (c_common_post_options): For C++, set warn_enum_compare if not
8638         already set.
8639         * c-tree.h (struct c_expr): Add field original_type.
8640         (build_external_ref): Update declaration.
8641         * c-parser.c (c_parser_braced_init): Set original_type.
8642         (c_parser_initelt): Likewise.
8643         (c_parser_expr_no_commas): Likewise.
8644         (c_parser_conditional_expression): Likewise.
8645         (c_parser_cast_expression): Likewise.
8646         (c_parser_unary_expression): Likewise.  Pull setting of
8647         original_code to top of function.
8648         (c_parser_sizeof_expression): Set original_type.
8649         (c_parser_alignof_expression): Likewise.
8650         (c_parser_postfix_expression): Likewise.  Pull setting of
8651         original_code to top of function.
8652         (c_parser_postfix_expression_after_paren_type): Set original_type.
8653         (c_parser_postfix_expression_after_primary): Likewise.
8654         (c_parser_expression): Likewise.
8655         * c-typeck.c (build_external_ref): Add type parameter.  Change all
8656         callers.
8657         (c_expr_sizeof_expr): Set original_type field.
8658         (parser_build_unary_op): Likewise.
8659         (parser_build_binary_op): Likewise.  Optionally warn about
8660         comparisons of enums of different types.
8661         (digest_init): Set original_type field.
8662         (really_start_incremental_init): Likewise.
8663         (push_init_level, pop_init_level): Likewise.
8664         * doc/invoke.texi (Warning Options): -Wenum-compare now
8665         supported in C.
8666
8667 2009-04-15  Richard Guenther  <rguenther@suse.de>
8668
8669         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8670         out a necessary conversion.
8671         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8672         names we didn't value number.
8673         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8674
8675 2009-04-15  Richard Guenther  <rguenther@suse.de>
8676
8677         PR tree-optimization/39764
8678         * tree-ssa-ccp.c (get_value): Canonicalize value with
8679         canonicalize_float_value.
8680
8681 2009-04-15  Jan Hubicka  <jh@suse.cz>
8682
8683         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8684         Wrong version of patch.
8685
8686 2009-04-15  Jan Hubicka  <jh@suse.cz>
8687
8688         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8689
8690 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
8691
8692         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8693         our distinct integral and vector types.
8694
8695 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
8696
8697         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8698         * init.c (build_vtbl_address): Remove call to assemble_external.
8699
8700 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
8701
8702         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8703         output for other floating point modes.
8704
8705 2009-04-14  Diego Novillo  <dnovillo@google.com>
8706
8707         * diagnostic.c (diagnostic_report_diagnostic): Do not
8708         warn about loaded plugins for DK_ERROR and DK_WARNING.
8709         * c-decl.c (declspecs_add_type): Move call to
8710         invoke_plugin_callbacks ...
8711         * c-parser.c (c_parser_declspecs): ... here.
8712         * plugin.c (dump_active_plugins): Tidy output.
8713
8714 2009-04-14  Diego Novillo  <dnovillo@google.com>
8715             Le-Chun Wu  <lcwu@google.com>
8716
8717         * configure.ac: Add --enable-plugin support.
8718         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8719         * Makefile.in (PLUGIN_H): Define.
8720         Export ENABLE_PLUGIN and GMPINC to site.exp.
8721         Add PLUGINLIBS to link command.
8722         Add/modify dependencies for plugin.o and files including plugin.h.
8723         (plugin.o): New.
8724         * config.in: Regenerate.
8725
8726         * opts.c (common_handle_option): Handle OPT_fplugin_ and
8727         OPT_fplugin_arg_.
8728
8729 2009-04-14  Le-Chun Wu  <lcwu@google.com>
8730
8731         * tree-pass.h (register_one_dump_file): Add a prototype for
8732         register_one_dump_file.
8733         * toplev.c (compile_file): Call initialize_plugins.
8734         (do_compile): Call invoke_plugin_callbacks.
8735         (toplev_main): Call invoke_plugin_callbacks.
8736         * common.opt: Add -fplugin= and -fplugin-arg-.
8737         * gcc-plugin.h: New public header file for plugins to include.
8738         * plugin.c: New source file.
8739         * plugin.h: New internal header file.
8740         * passes.c (register_one_dump_file): Make it external.
8741
8742         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8743
8744 2009-04-14  Diego Novillo  <dnovillo@google.com>
8745
8746         * doc/plugins.texi: New.
8747         * doc/gccint.texi: Add reference to Plugins chapter.
8748         * doc/invoke.texi: Document -fplugin and -fplugin-arg
8749         * diagnostic.c (diagnostic_report_diagnostic): Warn about
8750         loaded plugins, if any.
8751         * timevar.def (TV_PLUGIN_INIT): Define.
8752         (TV_PLUGIN_RUN): Define.
8753         * plugin.c: Include timevar.h
8754         (plugins_active_p): New.
8755         (dump_active_plugins): New.
8756         (debug_active_plugins): New.
8757
8758 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
8759
8760         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8761         library paths.
8762         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8763
8764 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
8765
8766         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8767         the same as a minus without a shift.
8768
8769 2009-04-14  Nick Clifton  <nickc@redhat.com>
8770
8771         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8772         comparisons with small integers will always produce a short
8773         branch.
8774
8775 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
8776
8777         Merge:
8778         2008-12-19  Diego Novillo  <dnovillo@google.com>
8779
8780         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
8781
8782 2009-04-14  Richard Guenther  <rguenther@suse.de>
8783
8784         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8785         verification.
8786         (verify_gimple_assign_binary): Likewise.  Handle shifts and
8787         rotates correctly.
8788         (verify_gimple_phi): Print the mismatched argument position.
8789         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8790         Fix types.
8791         (vect_update_init_of_dr): Likewise.
8792         * matrix-reorg.c (transform_access_sites): Do what the
8793         comment suggests.
8794         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8795
8796 2009-04-13  Michael Eager  <eager@eagercon.com>
8797
8798         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8799         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8800         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
8801         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
8802         remove duplicate config
8803
8804 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
8805
8806         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8807         file_name:line_number type locator of the call site.
8808
8809 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
8810
8811         * genautomata.c: Put blank after comma.
8812         (automaton_decls): New.
8813         (struct unit_usage): Add comments to member next.
8814         (store_alt_unit_usage): Keep the list ordered.
8815         (unit_present_on_list_p, equal_alternatives_p): New.
8816         (check_regexp_units_distribution): Check units distribution
8817         correctness correctly.
8818         (main): Don't write automata if error is found.  Return correct
8819         exit code.
8820
8821         * config/m68k/cf.md (cfv4_ds): Remove.
8822         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8823         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8824
8825         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8826         power4-load-ext, power4-store, power4-store-update,
8827         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8828         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8829         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8830         power4-sqrt, power4-isync): Modify reservation to make correct
8831         unit distribution to automata.
8832
8833         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8834         power5-store-update, power5-two, power5-three, power5-lmul,
8835         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
8836
8837 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
8838
8839         * except.c (pass_set_nothrow_function_flags): Set name and add
8840         TODO_dump_func.
8841         (set_nothrow_function_flags): Mention in the dump file when
8842         changing a function to nothrow.
8843
8844 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
8845
8846         PR/39066
8847         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8848         instead of unsigned long.
8849
8850 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8851
8852         * config/arm/arm.c (return_used_this_function): Remove.
8853         (arm_output_function_prologue): Remove use of
8854         return_used_this_function.
8855         (output_return_instruction): Replace use of
8856         return_used_this_function
8857         by cfun->machine->return_used_this_function.
8858         (arm_output_epilogue): Likewise.
8859         (arm_output_function_epilogue): Likewise.
8860         (thumb_unexpanded_epilogue): Likewise.
8861         * config/arm/arm.h (struct machine_function):
8862         New member return_used_this_function.
8863
8864 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
8865
8866         * doc/install.texi: Correct description of default directory for
8867         --with-gxx-include-dir.
8868
8869 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8870
8871         * fold-const.c (build_range_check): Properly deal with enumeral and
8872         boolean base types.
8873
8874 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
8875
8876         * doc/invoke.texi (max_gcse_passes): Remove documentation.
8877         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8878         * params.h (MAX_GCSE_PASSES): Remove.
8879         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8880         in sequence.  Remove ability to run multiple passes.
8881         (bypass_jumps): Report run as third CPROP pass.
8882
8883 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
8884
8885         PR middle-end/39651
8886         * except.c (can_throw_external): Look at each insn in a SEQUENCE
8887         when deciding whether the whole SEQUENCE can throw.
8888
8889 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
8890
8891         PR target/39740
8892         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8893         offseted label references.
8894
8895 2009-04-11  Jan Hubicka  <jh@suse.cz>
8896
8897         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8898
8899 2009-04-11  Richard Guenther  <rguenther@suse.de>
8900
8901         PR middle-end/39732
8902         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8903         return variables as TREE_ADDRESSABLE.
8904
8905 2009-04-11  Richard Guenther  <rguenther@suse.de>
8906
8907         PR tree-optimization/39713
8908         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8909         reference trees have SSA_NAME operands.
8910
8911 2009-04-11  Richard Guenther  <rguenther@suse.de>
8912
8913         PR c/39712
8914         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8915         address expressions.
8916
8917 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
8918
8919         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
8920         match changes in Cygwin 1.7
8921         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8922         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
8923
8924 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
8925
8926         PR tree-optimization/39701
8927         * doc/invoke.texi (Optimization Options): Document change in
8928         meaning and initialization of -fdelete-null-pointer-checks.
8929
8930 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
8931
8932         PR middle-end/39701
8933         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8934
8935         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8936         here.
8937
8938         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8939
8940 2009-04-10  Chao-ying Fu  <fu@mips.com>
8941
8942         * doc/tm.texi (Instruction Output): Document
8943         TARGET_ASM_FINAL_POSTSCAN_INSN.
8944         * target.h (final_postscan_insn): New field in asm_out.
8945         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8946         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8947         * final.c (final_scan_insn): Call
8948         targetm.asm_out.final_postscan_insn after outputting
8949         an asm macro and a normal instruction.
8950
8951         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8952         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8953         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8954         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8955         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8956
8957 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
8958
8959         PR middle-end/39701
8960         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8961         variables as non-NULL even with -fdelete-null-pointer-checks.
8962
8963 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
8964
8965         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8966
8967 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
8968
8969         PR target/39678
8970         * config/i386/i386.c (classify_argument): Handle SCmode with
8971         (bit_offset % 64) != 0.
8972
8973 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
8974
8975         * doc/invoke.texi (Optimize Options): Add cross-reference to
8976         -Q --help=optimizers examples.
8977
8978 2009-04-10  Ben Elliston  <bje@au.ibm.com>
8979
8980         PR target/36800
8981         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8982         regalign for the reg == fpr and TDmode case.
8983
8984 2009-04-09  David Ayers  <ayers@fsfe.org>
8985
8986         PR objc/29200
8987         * objc/objc-act.c (warn_with_method): Remove helper function.
8988         (check_duplicates): Call warning and inform directly.
8989         (really_start_method): Likewise.
8990
8991 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
8992
8993         * expmed.c (expand_divmod): Always use a comparison for a division
8994         by a large unsigned integer.
8995
8996         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8997         for things others than variables or functions as nonzero.
8998
8999 2009-04-09  Nick Clifton  <nickc@redhat.com>
9000
9001         * unwind-compat.c: Change copyright header to refer to version
9002         3 of the GNU General Public License with version 3.1 of the
9003         GCC Runtime Library Exception and to point readers at the
9004         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
9005         * config/alpha/crtfastmath.c: Likewise.
9006         * config/alpha/linux-unwind.h: Likewise.
9007         * config/alpha/qrnnd.asm: Likewise.
9008         * config/alpha/vms-crt0-64.c: Likewise.
9009         * config/alpha/vms-crt0.c: Likewise.
9010         * config/alpha/vms-dwarf2.asm: Likewise.
9011         * config/alpha/vms-dwarf2eh.asm: Likewise.
9012         * config/alpha/vms-psxcrt0-64.c: Likewise.
9013         * config/alpha/vms-psxcrt0.c: Likewise.
9014         * config/alpha/vms_tramp.asm: Likewise.
9015         * config/arc/initfini.c: Likewise.
9016         * config/arc/lib1funcs.asm: Likewise.
9017         * config/arm/bpabi-v6m.S: Likewise.
9018         * config/arm/bpabi.S: Likewise.
9019         * config/arm/bpabi.c: Likewise.
9020         * config/arm/crti.asm: Likewise.
9021         * config/arm/crtn.asm: Likewise.
9022         * config/arm/ieee754-df.S: Likewise.
9023         * config/arm/ieee754-sf.S: Likewise.
9024         * config/arm/lib1funcs.asm: Likewise.
9025         * config/arm/libunwind.S: Likewise.
9026         * config/arm/linux-atomic.c: Likewise.
9027         * config/arm/mmintrin.h: Likewise.
9028         * config/arm/pr-support.c: Likewise.
9029         * config/arm/unaligned-funcs.c: Likewise.
9030         * config/arm/unwind-arm.c: Likewise.
9031         * config/arm/unwind-arm.h: Likewise.
9032         * config/avr/libgcc.S: Likewise.
9033         * config/bfin/crti.s: Likewise.
9034         * config/bfin/crtlibid.s: Likewise.
9035         * config/bfin/crtn.s: Likewise.
9036         * config/bfin/lib1funcs.asm: Likewise.
9037         * config/bfin/linux-unwind.h: Likewise.
9038         * config/cris/arit.c: Likewise.
9039         * config/cris/cris_abi_symbol.c: Likewise.
9040         * config/darwin-64.c: Likewise.
9041         * config/darwin-crt2.c: Likewise.
9042         * config/darwin-crt3.c: Likewise.
9043         * config/darwin.h: Likewise.
9044         * config/dbxelf.h: Likewise.
9045         * config/dfp-bit.c: Likewise.
9046         * config/dfp-bit.h: Likewise.
9047         * config/elfos.h: Likewise.
9048         * config/fixed-bit.c: Likewise.
9049         * config/fixed-bit.h: Likewise.
9050         * config/fp-bit.c: Likewise.
9051         * config/fp-bit.h: Likewise.
9052         * config/fr30/crti.asm: Likewise.
9053         * config/fr30/crtn.asm: Likewise.
9054         * config/fr30/lib1funcs.asm: Likewise.
9055         * config/freebsd-spec.h: Likewise.
9056         * config/frv/cmovd.c: Likewise.
9057         * config/frv/cmovh.c: Likewise.
9058         * config/frv/cmovw.c: Likewise.
9059         * config/frv/frvbegin.c: Likewise.
9060         * config/frv/frvend.c: Likewise.
9061         * config/frv/lib1funcs.asm: Likewise.
9062         * config/glibc-stdint.h: Likewise.
9063         * config/h8300/clzhi2.c: Likewise.
9064         * config/h8300/crti.asm: Likewise.
9065         * config/h8300/crtn.asm: Likewise.
9066         * config/h8300/ctzhi2.c: Likewise.
9067         * config/h8300/fixunssfsi.c: Likewise.
9068         * config/h8300/lib1funcs.asm: Likewise.
9069         * config/h8300/parityhi2.c: Likewise.
9070         * config/h8300/popcounthi2.c: Likewise.
9071         * config/i386/ammintrin.h: Likewise.
9072         * config/i386/att.h: Likewise.
9073         * config/i386/avxintrin.h: Likewise.
9074         * config/i386/biarch64.h: Likewise.
9075         * config/i386/bmmintrin.h: Likewise.
9076         * config/i386/cpuid.h: Likewise.
9077         * config/i386/cross-stdarg.h: Likewise.
9078         * config/i386/crtfastmath.c: Likewise.
9079         * config/i386/crtprec.c: Likewise.
9080         * config/i386/cygming-crtbegin.c: Likewise.
9081         * config/i386/cygming-crtend.c: Likewise.
9082         * config/i386/cygwin.asm: Likewise.
9083         * config/i386/emmintrin.h: Likewise.
9084         * config/i386/gmm_malloc.h: Likewise.
9085         * config/i386/gthr-win32.c: Likewise.
9086         * config/i386/i386.h: Likewise.
9087         * config/i386/immintrin.h: Likewise.
9088         * config/i386/linux-unwind.h: Likewise.
9089         * config/i386/linux64.h: Likewise.
9090         * config/i386/mm3dnow.h: Likewise.
9091         * config/i386/mmintrin-common.h: Likewise.
9092         * config/i386/mmintrin.h: Likewise.
9093         * config/i386/nmmintrin.h: Likewise.
9094         * config/i386/pmm_malloc.h: Likewise.
9095         * config/i386/pmmintrin.h: Likewise.
9096         * config/i386/smmintrin.h: Likewise.
9097         * config/i386/sol2-c1.asm: Likewise.
9098         * config/i386/sol2-ci.asm: Likewise.
9099         * config/i386/sol2-cn.asm: Likewise.
9100         * config/i386/sol2-gc1.asm: Likewise.
9101         * config/i386/tmmintrin.h: Likewise.
9102         * config/i386/unix.h: Likewise.
9103         * config/i386/w32-unwind.h: Likewise.
9104         * config/i386/wmmintrin.h: Likewise.
9105         * config/i386/x86-64.h: Likewise.
9106         * config/i386/x86intrin.h: Likewise.
9107         * config/i386/xmmintrin.h: Likewise.
9108         * config/ia64/crtbegin.asm: Likewise.
9109         * config/ia64/crtend.asm: Likewise.
9110         * config/ia64/crtfastmath.c: Likewise.
9111         * config/ia64/crti.asm: Likewise.
9112         * config/ia64/crtn.asm: Likewise.
9113         * config/ia64/fde-glibc.c: Likewise.
9114         * config/ia64/lib1funcs.asm: Likewise.
9115         * config/ia64/linux-unwind.h: Likewise.
9116         * config/ia64/quadlib.c: Likewise.
9117         * config/ia64/unwind-ia64.c: Likewise.
9118         * config/linux.h: Likewise.
9119         * config/m32c/m32c-lib1.S: Likewise.
9120         * config/m32c/m32c-lib2-trapv.c: Likewise.
9121         * config/m32c/m32c-lib2.c: Likewise.
9122         * config/m32r/initfini.c: Likewise.
9123         * config/m68hc11/larith.asm: Likewise.
9124         * config/m68hc11/m68hc11-crt0.S: Likewise.
9125         * config/m68k/cf.md: Likewise.
9126         * config/m68k/crti.s: Likewise.
9127         * config/m68k/crtn.s: Likewise.
9128         * config/m68k/lb1sf68.asm: Likewise.
9129         * config/m68k/linux-unwind.h: Likewise.
9130         * config/mcore/crti.asm: Likewise.
9131         * config/mcore/crtn.asm: Likewise.
9132         * config/mcore/lib1.asm: Likewise.
9133         * config/mips/linux-unwind.h: Likewise.
9134         * config/mips/loongson.h: Likewise.
9135         * config/mips/mips16.S: Likewise.
9136         * config/mmix/crti.asm: Likewise.
9137         * config/mmix/crtn.asm: Likewise.
9138         * config/pa/fptr.c: Likewise.
9139         * config/pa/hpux-unwind.h: Likewise.
9140         * config/pa/lib2funcs.asm: Likewise.
9141         * config/pa/linux-atomic.c: Likewise.
9142         * config/pa/linux-unwind.h: Likewise.
9143         * config/pa/milli64.S: Likewise.
9144         * config/pa/quadlib.c: Likewise.
9145         * config/pa/stublib.c: Likewise.
9146         * config/picochip/libgccExtras/adddi3.asm: Likewise.
9147         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9148         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9149         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9150         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9151         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9152         * config/picochip/libgccExtras/divmod15.asm: Likewise.
9153         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9154         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9155         * config/picochip/libgccExtras/longjmp.asm: Likewise.
9156         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9157         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9158         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9159         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9160         * config/picochip/libgccExtras/setjmp.asm: Likewise.
9161         * config/picochip/libgccExtras/subdi3.asm: Likewise.
9162         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9163         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9164         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9165         * config/rs6000/750cl.h: Likewise.
9166         * config/rs6000/altivec.h: Likewise.
9167         * config/rs6000/biarch64.h: Likewise.
9168         * config/rs6000/crtresfpr.asm: Likewise.
9169         * config/rs6000/crtresgpr.asm: Likewise.
9170         * config/rs6000/crtresxfpr.asm: Likewise.
9171         * config/rs6000/crtresxgpr.asm: Likewise.
9172         * config/rs6000/crtsavfpr.asm: Likewise.
9173         * config/rs6000/crtsavgpr.asm: Likewise.
9174         * config/rs6000/darwin-asm.h: Likewise.
9175         * config/rs6000/darwin-fallback.c: Likewise.
9176         * config/rs6000/darwin-fpsave.asm: Likewise.
9177         * config/rs6000/darwin-ldouble.c: Likewise.
9178         * config/rs6000/darwin-tramp.asm: Likewise.
9179         * config/rs6000/darwin-unwind.h: Likewise.
9180         * config/rs6000/darwin-vecsave.asm: Likewise.
9181         * config/rs6000/darwin-world.asm: Likewise.
9182         * config/rs6000/e500crtres32gpr.asm: Likewise.
9183         * config/rs6000/e500crtres64gpr.asm: Likewise.
9184         * config/rs6000/e500crtres64gprctr.asm: Likewise.
9185         * config/rs6000/e500crtrest32gpr.asm: Likewise.
9186         * config/rs6000/e500crtrest64gpr.asm: Likewise.
9187         * config/rs6000/e500crtresx32gpr.asm: Likewise.
9188         * config/rs6000/e500crtresx64gpr.asm: Likewise.
9189         * config/rs6000/e500crtsav32gpr.asm: Likewise.
9190         * config/rs6000/e500crtsav64gpr.asm: Likewise.
9191         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9192         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9193         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9194         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9195         * config/rs6000/eabi-ci.asm: Likewise.
9196         * config/rs6000/eabi-cn.asm: Likewise.
9197         * config/rs6000/eabi.asm: Likewise.
9198         * config/rs6000/linux-unwind.h: Likewise.
9199         * config/rs6000/linux64.h: Likewise.
9200         * config/rs6000/paired.h: Likewise.
9201         * config/rs6000/paired.md: Likewise.
9202         * config/rs6000/ppc64-fp.c: Likewise.
9203         * config/rs6000/ppu_intrinsics.h: Likewise.
9204         * config/rs6000/rs6000.h: Likewise.
9205         * config/rs6000/si2vmx.h: Likewise.
9206         * config/rs6000/sol-ci.asm: Likewise.
9207         * config/rs6000/sol-cn.asm: Likewise.
9208         * config/rs6000/spe.h: Likewise.
9209         * config/rs6000/spu2vmx.h: Likewise.
9210         * config/rs6000/sysv4.h: Likewise.
9211         * config/rs6000/tramp.asm: Likewise.
9212         * config/rs6000/vec_types.h: Likewise.
9213         * config/s390/linux-unwind.h: Likewise.
9214         * config/s390/tpf-unwind.h: Likewise.
9215         * config/score/crti.asm: Likewise.
9216         * config/score/crtn.asm: Likewise.
9217         * config/sh/crt1.asm: Likewise.
9218         * config/sh/crti.asm: Likewise.
9219         * config/sh/crtn.asm: Likewise.
9220         * config/sh/divtab-sh4-300.c: Likewise.
9221         * config/sh/divtab-sh4.c: Likewise.
9222         * config/sh/divtab.c: Likewise.
9223         * config/sh/lib1funcs-4-300.asm: Likewise.
9224         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9225         * config/sh/lib1funcs.asm: Likewise.
9226         * config/sh/lib1funcs.h: Likewise.
9227         * config/sh/linux-atomic.asm: Likewise.
9228         * config/sh/linux-unwind.h: Likewise.
9229         * config/sh/shmedia.h: Likewise.
9230         * config/sh/sshmedia.h: Likewise.
9231         * config/sh/ushmedia.h: Likewise.
9232         * config/sparc/crtfastmath.c: Likewise.
9233         * config/sparc/linux-unwind.h: Likewise.
9234         * config/sparc/sol2-c1.asm: Likewise.
9235         * config/sparc/sol2-ci.asm: Likewise.
9236         * config/sparc/sol2-cn.asm: Likewise.
9237         * config/spu/divmodti4.c: Likewise.
9238         * config/spu/divv2df3.c: Likewise.
9239         * config/spu/float_disf.c: Likewise.
9240         * config/spu/float_unsdidf.c: Likewise.
9241         * config/spu/float_unsdisf.c: Likewise.
9242         * config/spu/float_unssidf.c: Likewise.
9243         * config/spu/mfc_multi_tag_release.c: Likewise.
9244         * config/spu/mfc_multi_tag_reserve.c: Likewise.
9245         * config/spu/mfc_tag_release.c: Likewise.
9246         * config/spu/mfc_tag_reserve.c: Likewise.
9247         * config/spu/mfc_tag_table.c: Likewise.
9248         * config/spu/multi3.c: Likewise.
9249         * config/spu/spu_internals.h: Likewise.
9250         * config/spu/spu_intrinsics.h: Likewise.
9251         * config/spu/spu_mfcio.h: Likewise.
9252         * config/spu/vec_types.h: Likewise.
9253         * config/spu/vmx2spu.h: Likewise.
9254         * config/stormy16/stormy16-lib2.c: Likewise.
9255         * config/svr4.h: Likewise.
9256         * config/sync.c: Likewise.
9257         * config/v850/lib1funcs.asm: Likewise.
9258         * config/vxlib-tls.c: Likewise.
9259         * config/vxlib.c: Likewise.
9260         * config/vxworks-dummy.h: Likewise.
9261         * config/xtensa/crti.asm: Likewise.
9262         * config/xtensa/crtn.asm: Likewise.
9263         * config/xtensa/ieee754-df.S: Likewise.
9264         * config/xtensa/ieee754-sf.S: Likewise.
9265         * config/xtensa/lib1funcs.asm: Likewise.
9266         * config/xtensa/lib2funcs.S: Likewise.
9267         * config/xtensa/linux-unwind.h: Likewise.
9268         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9269         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9270         * coretypes.h: Likewise.
9271         * crtstuff.c: Likewise.
9272         * defaults.h: Likewise.
9273         * dwarf2.h: Likewise.
9274         * emutls.c: Likewise.
9275         * gbl-ctors.h: Likewise.
9276         * gcov-io.h: Likewise.
9277         * ginclude/float.h: Likewise.
9278         * ginclude/iso646.h: Likewise.
9279         * ginclude/stdarg.h: Likewise.
9280         * ginclude/stdbool.h: Likewise.
9281         * ginclude/stddef.h: Likewise.
9282         * ginclude/stdfix.h: Likewise.
9283         * ginclude/stdint-gcc.h: Likewise.
9284         * ginclude/tgmath.h: Likewise.
9285         * gthr-aix.h: Likewise.
9286         * gthr-dce.h: Likewise.
9287         * gthr-gnat.c: Likewise.
9288         * gthr-gnat.h: Likewise.
9289         * gthr-lynx.h: Likewise.
9290         * gthr-mipssde.h: Likewise.
9291         * gthr-nks.h: Likewise.
9292         * gthr-posix.c: Likewise.
9293         * gthr-posix.h: Likewise.
9294         * gthr-posix95.h: Likewise.
9295         * gthr-rtems.h: Likewise.
9296         * gthr-single.h: Likewise.
9297         * gthr-solaris.h: Likewise.
9298         * gthr-tpf.h: Likewise.
9299         * gthr-vxworks.h: Likewise.
9300         * gthr-win32.h: Likewise.
9301         * gthr.h: Likewise.
9302         * libgcc2.c: Likewise.
9303         * libgcc2.h: Likewise.
9304         * libgcov.c: Likewise.
9305         * tsystem.h: Likewise.
9306         * typeclass.h: Likewise.
9307         * unwind-c.c: Likewise.
9308         * unwind-compat.h: Likewise.
9309         * unwind-dw2-fde-compat.c: Likewise.
9310         * unwind-dw2-fde-darwin.c: Likewise.
9311         * unwind-dw2-fde-glibc.c: Likewise.
9312         * unwind-dw2-fde.c: Likewise.
9313         * unwind-dw2-fde.h: Likewise.
9314         * unwind-dw2.c: Likewise.
9315         * unwind-dw2.h: Likewise.
9316         * unwind-generic.h: Likewise.
9317         * unwind-pe.h: Likewise.
9318         * unwind-sjlj.c: Likewise.
9319         * unwind.inc: Likewise.
9320         * config/arm/neon-gen.ml: Change generated copyright header to
9321         refer to version 3 of the GNU General Public License with
9322         version 3.1 of the GCC Runtime Library Exception and to point
9323         readers at the COPYING3 and COPYING3.RUNTIME files and the
9324         FSF's license web page.
9325         * config/arm/arm_neon.h: Regenerate.
9326
9327 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
9328
9329         * config/cris/cris.md: Change copyright header to refer to version
9330         3 of the GNU General Public License.
9331         * doc/install.texi2html: Change copyright header to refer to version
9332         3 of the GNU General Public License and to point readers at the
9333         COPYING3 file and the FSF's license web page.
9334         * config/vax/linux.h: Likewise.
9335
9336 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
9337
9338         * config/i386/i386.md (cmpcc): New.
9339         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9340         (sync_compare_and_swap_cc*): Delete.
9341
9342         * config/s390/s390.c (s390_compare_emitted): Remove.
9343         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9344         s390_compare_emitted used to be handled.  Assert that modes match.
9345         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9346         refer to sync_compare_and_swap_ccsi.
9347         * config/s390/s390.h (s390_compare_emitted): Remove.
9348         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9349         instead of s390_compare_emitted.
9350         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9351         instead of s390_compare_emitted.
9352         * config/s390/s390.md (cmpcc): New.
9353         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9354         CC_REGNUM, do not pretend it's set.
9355         (sync_compare_and_swap_cc*): Delete.
9356         * config/s390/predicates.md (cc_reg_operand): New.
9357
9358         * expr.c (sync_compare_and_swap_cc): Delete.
9359         * optabs.h (sync_compare_and_swap_cc): Delete.
9360         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9361         is being used with can_compare_p.
9362         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9363         (find_cc_set): New.
9364         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9365         look for a MODE_CC set instead.  Use emit_store_flag.
9366         (expand_compare_and_swap_loop): Likewise, with some additional
9367         complication to avoid a force_reg when useless.  Use
9368         emit_cmp_and_jump_insns.
9369         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9370         * doc/md.texi (sync_compare_and_swap_cc): Merge with
9371         sync_compare_and_swap documentation.
9372
9373 2009-04-09  Jan Hubicka  <jh@suse.cz>
9374
9375         * except.c (find_prev_try): Break out from ....
9376         (duplicate_eh_regions): ... here; properly update prev_try pointers
9377         when duplication part of tree.
9378         (dump_eh_tree): Improve dumping.
9379         (verify_eh_region): New.
9380         (verify_eh_tree): Use it.
9381
9382 2009-04-06  Richard Guenther  <rguenther@suse.de>
9383
9384         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9385         &ARRAY addresses by adjusting their types and prepending
9386         a conversion.
9387         * tree-cfg.c (verify_gimple_assign_single): Verify that
9388         addresses are correct.
9389
9390 2009-04-09  Richard Guenther  <rguenther@suse.de>
9391
9392         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9393         indices into an array reference if possible.
9394         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9395         Fold POINTER_PLUS_EXPR statements with invariant address.
9396
9397 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
9398
9399         PR target/39634
9400         * config.gcc (powerpc64-*-linux*): Always build biarch.
9401
9402 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
9403
9404         PR c/39613
9405         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9406         it and pedwarn if this results in an INTEGER_CST.
9407
9408 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9409
9410         * doc/install.texi: Update minimum GMP version.  Remove obsolete
9411         text in MPFR section.
9412
9413 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
9414
9415         * dwarf2out.c (class_scope_p): New static inline.
9416         (class_or_namespace_scope_p): Use it.
9417         (gen_variable_die): Use DW_TAG_member tag for static data member
9418         declarations instead of DW_TAG_variable.
9419
9420         PR middle-end/39573
9421         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9422         variables.
9423
9424 2009-04-08  Richard Guenther  <rguenther@suse.de>
9425
9426         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9427         valueize random data.
9428
9429 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
9430
9431         * config.gcc (aix tm_file):  Add aix-stdint.h.
9432         (aix tm clause use_gcc_stdint):  Set to wrap.
9433         * config/rs6000/aix-stdint.h:  New file.
9434
9435 2009-04-08  Richard Guenther  <rguenther@suse.de>
9436
9437         PR middle-end/36291
9438         * tree-dfa.c (add_referenced_var): Do not recurse into
9439         global initializers.
9440         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9441         exposed variables.
9442         (fold_const_aggregate_ref): Likewise.
9443
9444 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
9445
9446         * recog.c (ordered_comparison_operator): New.
9447         * gensupport.c (std_preds): Add it.
9448         * doc/md.texi (Machine-Independent Predicates): Document it.
9449
9450 2009-04-08  Jan Hubicka  <jh@suse.cz>
9451
9452         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9453         * function.h (rtl_eh): Remove exception_handler_label_map.
9454         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9455         remove_exception_handler_label, for_each_eh_label_1): Remove.
9456         (rtl_remove_unreachable_regions): Remove.
9457         (convert_from_eh_region_ranges): Do not remove unreachable regions.
9458         (find_exception_handler_labels): Don't build the hashtable.
9459         (maybe_remove_eh_handler): Remove.
9460         (for_each_eh_label): Rewrite to walk the tree.
9461         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9462         * except.h (maybe_remove_eh_handler): Remove.
9463         * passes.c (init_optimization_passes): Schedule second EH cleanup
9464         before out-of-ssa.
9465         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9466         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9467
9468 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
9469
9470         * genoutput.c (validate_optab_operands): New.
9471         (gen_insn, gen_expand): Call it.
9472
9473         * genflags.c (gen_insn): Detect misused iterators.
9474         (main): Pass line_no to gen_insn, exit with status 1 on error.
9475
9476         * genextract.c (line_no): Make global.
9477         (VEC_safe_set_locstr): Change assertion to error message.
9478         (main): Exit with status 1 on error.
9479
9480 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
9481
9482         PR c/39614
9483         PR c/39673
9484         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9485         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9486         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9487         * c-convert.c (convert): Do not call fold on results of conversion
9488         functions when the result is a C_MAYBE_CONST_EXPR.
9489         * c-parser.c (c_parser_postfix_expression): Do not fold condition
9490         of __builtin_choose_expr.
9491         * c-typeck.c (remove_c_maybe_const_expr): New.
9492         (build_unary_op, build_conditional_expr, build_compound_expr,
9493         build_binary_op, c_objc_common_truthvalue_conversion): Call
9494         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9495         integer operands.
9496
9497 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
9498
9499         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
9500         CODE to produce a new one. Add a prototype to use fold_convert_const
9501
9502 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9503
9504         PR bootstrap/39660
9505         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9506         mix declarations and code.
9507
9508 2009-04-08  Ben Elliston  <bje@au.ibm.com>
9509
9510         * gcc.c: Replace `CC' with `GCC' throughout.
9511
9512 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9513
9514         * doc/invoke.texi: Document Atom support.
9515
9516 2009-04-07  Jason Merrill  <jason@redhat.com>
9517
9518         PR c++/25185
9519         * c-common.h, c-common.c: Add flag_pretty_templates.
9520         * c-opts.c (c_common_handle_option): Set it.
9521         * c.opt: Add -fno-pretty-templates.
9522         * doc/invoke.texi (C++ Dialect Options): Likewise.
9523
9524 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
9525
9526         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9527         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9528         (ia64_expand_builtin): Likewise.
9529
9530 2009-04-07  Martin Jambor  <mjambor@suse.cz>
9531
9532         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9533         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9534         ADDR_EXPRS are include too.
9535
9536 2009-04-07  Richard Guenther  <rguenther@suse.de>
9537
9538         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9539         decls are only used if passes as parameters or if they are
9540         local statics and the call is not to a builtin.
9541         (call_may_clobber_ref_p_1): Likewise.
9542
9543 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9544
9545         * expr.c (do_store_flag): Remove last argument.  Simplify code
9546         to avoid duplication of tests already done by can_compare_p.
9547         (expand_expr_real_1): Adjust caller.
9548
9549 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9550
9551         * optabs.c (can_compare_p): Test the predicate of a
9552         cbranch and cstore pattern.
9553
9554 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9555
9556         * expr.c (convert_move): Use emit_store_flag instead of
9557         "emulating" it.
9558
9559 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9560
9561         * config/i386/i386.c (ix86_compare_emitted): Remove.
9562         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9563         ix86_compare_op0 like ix86_compare_emitted used to be handled.
9564         * config/i386/i386.h (ix86_compare_emitted): Remove.
9565         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9566         instead of ix86_compare_emitted.
9567         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
9568
9569 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
9570
9571         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9572         Add t-sysroot-suffix to tmake_file.
9573         * config/print-sysroot-suffix.sh: New file.
9574         * config/t-sysroot-suffix: New file.
9575
9576 2009-04-07  Ben Elliston  <bje@au.ibm.com>
9577
9578         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9579         as the latter produces a warning when the target does not support
9580         infinity.
9581
9582 2009-04-07  Ben Elliston  <bje@au.ibm.com>
9583
9584         * dfp.c: Replace type punning assignments with memcpy throughout.
9585         * Makefile.in (dfp.o-warn): Remove.
9586
9587 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
9588
9589         PR target/39634
9590         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9591         Include soft-fp/t-softfp after rs6000/t-linux64.
9592
9593 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
9594
9595         * stor-layout.c (set_sizetype): Use the full precision of their
9596         machine mode for bitsize types.
9597
9598 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
9599
9600         * config/i386/i386.md: Revert 2 accidental checkins.
9601
9602 2009-04-06  Joey Ye  <joey.ye@intel.com>
9603             Xuepeng Guo  <xuepeng.guo@intel.com>
9604             H.J. Lu  <hongjiu.lu@intel.com>
9605
9606         Atom pipeline model, tuning and insn selection.
9607         * config.gcc (atom): Add atom config options and target.
9608
9609         * config/i386/atom.md: New.
9610
9611         * config/i386/i386.c (atom_cost): New cost.
9612         (m_ATOM): New macro flag.
9613         (initial_ix86_tune_features): Set m_ATOM.
9614         (x86_accumulate_outgoing_args): Likewise.
9615         (x86_arch_always_fancy_math_387): Likewise.
9616         (processor_target): Add Atom cost.
9617         (cpu_names): Add Atom cpu name.
9618         (override_options): Set Atom ISA.
9619         (ix86_issue_rate): New case PROCESSOR_ATOM.
9620         (ix86_adjust_cost): Likewise.
9621
9622         * config/i386/i386.h (TARGET_ATOM): New target macro.
9623         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9624         (TARGET_OPT_AGU): New target option.
9625         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9626         (processor_type): Add PROCESSOR_ATOM.
9627
9628         * config/i386/i386.md (cpu): Add new value "atom".
9629         (use_carry, movu): New attr.
9630         (atom.md): Include atom.md.
9631         (adddi3_carry_rex64): Set attr "use_carry".
9632         (addqi3_carry): Likewise.
9633         (addhi3_carry): Likewise.
9634         (addsi3_carry): Likewise.
9635         (*addsi3_carry_zext): Likewise.
9636         (subdi3_carry_rex64): Likewise.
9637         (subqi3_carry): Likewise.
9638         (subhi3_carry): Likewise.
9639         (subsi3_carry): Likewise.
9640         (x86_movdicc_0_m1_rex64): Likewise.
9641         (*x86_movdicc_0_m1_se): Likewise.
9642         (x86_movsicc_0_m1): Likewise.
9643         (*x86_movsicc_0_m1_se): Likewise.
9644         (*adddi_1_rex64): Emit add insn as much as possible.
9645         (*addsi_1): Likewise.
9646         (return_internal): Set atom_unit.
9647         (return_internal_long): Likewise.
9648         (return_pop_internal): Likewise.
9649         (*rcpsf2_sse): Set atom_sse_attr attr.
9650         (*qrt<mode>2_sse): Likewise.
9651         (*prefetch_sse): Likewise.
9652
9653         * config/i386/i386-c.c (ix86_target_macros_internal): New case
9654         PROCESSOR_ATOM.
9655         (ix86_target_macros_internal): Likewise.
9656
9657         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9658         (*prefetch_sse_rex): Likewise.
9659         (sse_rcpv4sf2): Likewise.
9660         (sse_vmrcpv4sf2): Likewise.
9661         (sse_sqrtv4sf2): Likewise.
9662         (<sse>_vmsqrt<mode>2): Likewise.
9663         (sse_ldmxcsr): Likewise.
9664         (sse_stmxcsr): Likewise.
9665         (*sse_sfence): Likewise.
9666         (sse2_clflush): Likewise.
9667         (*sse2_mfence): Likewise.
9668         (*sse2_lfence): Likewise.
9669         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9670         (<sse>_movup<ssemodesuffixf2c>): Likewise.
9671         (avx_movdqu<avxmodesuffix>): Likewise.
9672         (avx_lddqu<avxmodesuffix>): Likewise.
9673         (sse2_movntv2di): Change attr "type" to "ssemov".
9674         (sse2_movntsi): Likewise.
9675         (rsqrtv8sf2): Change attr "type" to "sseadd".
9676         (sse3_addsubv2df3): Set attr "atom_unit".
9677         (sse3_h<plusminus_insn>v4sf3): Likewise.
9678         (*sse2_pmaddwd): Likewise.
9679         (*vec_extractv2di_1_rex64): Likewise.
9680         (*vec_extractv2di_1_avx): Likewise.
9681         (sse2_psadbw): Likewise.
9682         (ssse3_phaddwv8hi3): Likewise.
9683         (ssse3_phaddwv4hi3): Likewise.
9684         (ssse3_phadddv4si3): Likewise.
9685         (ssse3_phadddv2si3): Likewise.
9686         (ssse3_phaddswv8hi3): Likewise.
9687         (ssse3_phaddswv4hi3): Likewise.
9688         (ssse3_phsubwv8hi3): Likewise.
9689         (ssse3_phsubwv4hi3): Likewise.
9690         (ssse3_phsubdv4si3): Likewise.
9691         (ssse3_phsubdv2si3): Likewise.
9692         (ssse3_phsubswv8hi3): Likewise.
9693         (ssse3_phsubswv4hi3): Likewise.
9694         (ssse3_pmaddubsw128): Likewise.
9695         (sse3_pmaddubsw: Likewise.
9696         (ssse3_palignrti): Likewise.
9697         (ssse3_palignrdi): Likewise.
9698
9699 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
9700
9701         * doc/install.texi (Specific): Fix two cross-references to MinGW.
9702
9703 2009-04-06  Richard Guenther  <rguenther@suse.de>
9704
9705         PR tree-optimization/28868
9706         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9707         of which PHI results we inserted.
9708         (insert_into_preds_of_block): Record inserted PHIs.
9709         (eliminate): Eliminate redundant PHI nodes.
9710         (init_pre): Init inserted_phi_names.
9711
9712 2009-04-06  Richard Guenther  <rguenther@suse.de>
9713
9714         PR tree-optimization/39643
9715         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9716         IMAGPART_EXPRs of complex constants.
9717         (execute_fold_all_builtins): If we folded a call queue
9718         TODO_update_address_taken.
9719
9720 2009-04-06  Jan Hubicka  <jh@suse.cz>
9721
9722         PR middle-end/39659
9723         * except.c (remove_unreachable_regions): Propagate may_contain_throw
9724         flag.
9725
9726 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
9727
9728         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9729         delay slot.
9730         (ic_invalidate_array): Likewise.
9731
9732 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
9733
9734         * calls.c (emit_library_call_value_1): Fix a problem with parameter
9735         alignment for library calls.
9736
9737 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
9738
9739         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
9740         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
9741         * config/i386/mingw-stdint.h:  New file.
9742
9743 2009-04-05  Richard Guenther  <rguenther@suse.de>
9744
9745         PR tree-optimization/39648
9746         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9747         our &A vs. &A[0] IL deficiencies.
9748
9749 2009-04-04  Jan Hubicka  <jh@suse.cz>
9750
9751         * except.c (sjlj_find_directly_reachable_regions): Be ready for
9752         removed toplevel regions.
9753         (sjlj_mark_call_sites): Likewise.
9754
9755 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
9756
9757         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
9758         (cygwin tm clause use_gcc_stdint):  Set to wrap.
9759         * config/i386/cygwin-stdint.h:  New file.
9760
9761 2009-04-04  Richard Guenther  <rguenther@suse.de>
9762
9763         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9764         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9765         single-argument PHIs if we are in loop-closed SSA form.
9766         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9767         for the pre-condition.
9768         (slpeel_tree_peel_loop_to_edge): Likewise.
9769         (vect_build_loop_niters): Take an optional sequence to append stmts.
9770         (vect_generate_tmps_on_preheader): Likewise.
9771         (vect_do_peeling_for_loop_bound): Take extra guards for the
9772         pre-condition.
9773         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
9774         the cost model check.
9775         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
9776         guards if we are going to peel.  Do not apply versioning in that case.
9777         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9778         (vect_do_peeling_for_loop_bound): Likewise.
9779         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9780         loop bound only record extra pre-conditions, do not apply loop
9781         versioning.
9782
9783 2009-04-04  Richard Guenther  <rguenther@suse.de>
9784
9785         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9786         renaming code.
9787
9788 2009-04-04  Jan Hubicka  <jh@suse.cz>
9789
9790         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9791         last_basic_block for size of bb->index indexed array.
9792         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9793         compute_out, link_btr_uses, build_btr_def_use_webs,
9794         build_btr_def_use_webs, migrate_btr_defs): Likewise.
9795
9796 2009-04-04  Jan Hubicka  <jh@suse.cz>
9797
9798         * except.c (remove_eh_handler_and_replace): Break out from ...
9799         (remove_eh_handler): ... here.
9800         (bring_to_root): New function.
9801         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9802         handled ones, bring others to root of tree.
9803
9804 2009-04-04  Jan Hubicka  <jh@suse.cz>
9805
9806         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9807         (all_phis_safe_to_merge): New function.
9808         (update_info): New structure.
9809         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9810         (cleanup_empty_eh): Update SSA if possible.
9811
9812 2009-04-04  Richard Guenther  <rguenther@suse.de>
9813
9814         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9815         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9816         (append_vuse): Likewise.
9817
9818 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
9819
9820         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9821         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9822         instead of REG_UNSAVED for DW_CFA_undefined.
9823         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9824         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9825         outermost frame.
9826
9827 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
9828
9829         PR target/39501
9830         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9831         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9832         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9833
9834 2009-04-04  Richard Guenther  <rguenther@suse.de>
9835
9836         PR tree-optimization/8781
9837         PR tree-optimization/37892
9838         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9839         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9840         (valueize_refs): Call it for *& valueizations.
9841         (shared_reference_ops_from_ref): Rename to ...
9842         (valueize_shared_reference_ops_from_ref): ... this and valueize.
9843         (shared_reference_ops_from_call): Rename to ...
9844         (valueize_shared_reference_ops_from_call): ... this and valueize.
9845         (vn_reference_lookup): Update.
9846         (visit_reference_op_call): Likewise.
9847         * tree-ssa-pre.c (phi_translate_1): Fold *&.
9848         (eliminate): Value-replace the call address in call statements.
9849
9850 2009-04-04  Richard Guenther  <rguenther@suse.de>
9851
9852         PR tree-optimization/39636
9853         * tree-ssa-forwprop.c
9854         (forward_propagate_addr_into_variable_array_index): Check for
9855         GIMPLE_ASSIGN before accessing the rhs code.
9856
9857 2009-04-03  Jason Merrill  <jason@redhat.com>
9858
9859         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9860
9861 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
9862
9863         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9864         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9865         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9866         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9867         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9868         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9869         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9870         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9871         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9872         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9873         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9874         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9875         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9876         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9877         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9878         Use fr_reg_or_fp01_operand instead of fr_register_operand
9879
9880         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9881         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9882         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9883
9884 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
9885
9886         PR rtl-optimization/39607
9887         PR rtl-optimization/39631
9888
9889         Revert:
9890
9891         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9892         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9893         instead of DF_LR_OUT.
9894         * ira-lives.c (process_bb_node_lives): Ditto.
9895         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9896         instead of DF_LR_{OUT,IN}.
9897         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9898         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9899
9900 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
9901
9902         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9903         (execute_lower_omp): Always run but take the short way out if -fopenmp
9904         is not given.
9905         (gate_lower_omp): Remove, forcing the pass manager to always run the
9906         pass and always set PROP_gimple_lomp.
9907         (pass_lower_omp): Remove gate function.
9908         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9909         PROP_trees.  Instead, require it.
9910         * ipa-cp.c (pass_ipa_cp): Likewise.
9911         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9912         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9913         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9914         and PROP_gimple_leh.
9915
9916 2009-04-03  Richard Guenther  <rguenther@suse.de>
9917
9918         PR middle-end/13146
9919         PR tree-optimization/23940
9920         PR tree-optimization/33237
9921         PR middle-end/33974
9922         PR middle-end/34093
9923         PR tree-optimization/36201
9924         PR tree-optimization/36230
9925         PR tree-optimization/38049
9926         PR tree-optimization/38207
9927         PR tree-optimization/38230
9928         PR tree-optimization/38301
9929         PR tree-optimization/38585
9930         PR middle-end/38895
9931         PR tree-optimization/38985
9932         PR tree-optimization/39299
9933         * tree-ssa-structalias.h: Remove.
9934         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9935         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9936         (struct vuse_element_d): Remove.
9937         (struct vuse_vec_d): Likewise.
9938         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9939         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9940         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9941         VUSE_ELEMENT_VAR): Likewise.
9942         (struct voptype_d): Likewise.
9943         (NUM_VOP_FREE_BUCKETS): Likewise.
9944         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9945         (struct stmt_operands_d): Remove.
9946         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9947         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9948         VDEF_NUM, VDEF_VECT): Likewise.
9949         (copy_virtual_operands): Remove.
9950         (operand_build_cmp): Likewise.
9951         (create_ssa_artificial_load_stmt): Likewise.
9952         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9953         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9954         vuse_index and mayuse_index members.  Pack and move done and iter_type
9955         members to the front.
9956         (SSA_OP_VMAYUSE): Remove.
9957         (SSA_OP_VIRTUAL_USES): Adjust.
9958         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9959         (unlink_stmt_vdef): Declare.
9960         (add_to_addressable_set): Remove.
9961         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9962         (vrp_visit_stmt): Likewise.
9963         * doc/tree-ssa.texi (Alias analysis): Update.
9964         * doc/invoke.texi (max-aliased-vops): Remove docs.
9965         (avg-aliased-vops): Likewise.
9966         * tree-into-ssa.c (syms_to_rename): Remove.
9967         (need_to_update_vops_p): Likewise.
9968         (need_to_initialize_update_ssa_p): Rename to ...
9969         (update_ssa_initialized_fn): ... this.  Track function we are
9970         initialized for.
9971         (symbol_marked_for_renaming): Simplify.
9972         (add_new_name_mapping): Do not set need_to_update_vops_p.
9973         (dump_currdefs): Use SYMS_TO_RENAME.
9974         (rewrite_update_stmt): Always walk all uses/defs.
9975         (dump_update_ssa): Adjust.
9976         (init_update_ssa): Take function argument.  Track what we are
9977         initialized for.
9978         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9979         (create_new_def_for): Initialize for cfun, assert we are initialized
9980         for cfun.
9981         (mark_sym_for_renaming): Simplify.
9982         (mark_set_for_renaming): Do not initialize update-ssa.
9983         (need_ssa_update_p): Simplify.  Take function argument.
9984         (name_mappings_registered_p): Assert we ask for the correct function.
9985         (name_registered_for_update_p): Likewise.
9986         (ssa_names_to_replace): Likewise.
9987         (release_ssa_name_after_update_ssa): Likewise.
9988         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
9989         (dump_decl_set): Do not print a newline.
9990         (debug_decl_set): Do it here.
9991         (dump_update_ssa): And here.
9992         * tree-ssa-loop-im.c (move_computations): Adjust.
9993         (movement_possibility): Likewise.
9994         (determine_max_movement): Likewise.
9995         (gather_mem_refs_stmt): Likewise.
9996         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9997         or NAME_MEMORY_TAG.
9998         * tree-complex.c (update_all_vops): Remove.
9999         (expand_complex_move): Adjust.
10000         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10001         Simplify test for memory referencing statement.  Exclude
10002         non-invariant ADDR_EXPRs.
10003         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10004         * tree-loop-distribution.c (generate_memset_zero): Adjust.
10005         (rdg_flag_uses): Likewise.
10006         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10007         related code.
10008         (tree_optimize_tail_calls_1): Also split the
10009         edge from the entry block if we have degenerate PHI nodes in
10010         the first basic block.
10011         * tree.c (init_ttree): Remove memory-tag related code.
10012         (tree_code_size): Likewise.
10013         (tree_node_structure): Likewise.
10014         (build7_stat): Re-write to be build6_stat.
10015         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10016         (SSA_VAR_P): Adjust.
10017         (struct tree_memory_tag): Remove.
10018         (struct tree_memory_partition_tag): Likewise.
10019         (union tree_node): Adjust.
10020         (build7): Re-write to be build6.
10021         * tree-pass.h (pass_reset_cc_flags): Remove.
10022         (TODO_update_address_taken): New flag.
10023         (pass_simple_dse): Remove.
10024         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10025         * params.h (MAX_ALIASED_VOPS): Remove.
10026         (AVG_ALIASED_VOPS): Likewise.
10027         * omp-low.c (expand_omp_taskreg): Update SSA form.
10028         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10029         aliases the lhs in a copy stmt.
10030         * tree-ssa-dse.c (struct address_walk_data): Remove.
10031         (memory_ssa_name_same): Likewise.
10032         (memory_address_same): Likewise.
10033         (get_kill_of_stmt_lhs): Likewise.
10034         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
10035         unused stores.  Look through PHI nodes into post-dominated regions.
10036         (dse_optimize_stmt): Simplify.  Properly remove stores.
10037         (tree_ssa_dse): Compute dominators.
10038         (execute_simple_dse): Remove.
10039         (pass_simple_dse): Likewise.
10040         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10041         gimple_loaded_syms and gimple_stored_syms computation.
10042         * toplev.c (dump_memory_report): Dump alias and pta stats.
10043         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10044         (vn_reference_eq): Likewise.
10045         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10046         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10047         valueize_vuses): Remove.
10048         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
10049         (get_def_ref_stmt_vuse): ... this.
10050         (vn_reference_lookup_2): New function.
10051         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10052         walking equivalent vuses.  Simplify.
10053         (vn_reference_lookup): Likewise.
10054         (vn_reference_insert): Likewise.
10055         (vn_reference_insert_pieces): Likewise.
10056         (visit_reference_op_call): Simplify.
10057         (visit_reference_op_load): Likewise.
10058         (visit_reference_op_store): Likewise.
10059         (init_scc_vn): Remove shared_lookup_vuses initialization.
10060         (free_scc_vn): Remove shared_lookup_vuses freeing.
10061         (sort_vuses, sort_vuses_heap): Remove.
10062         (get_ref_from_reference_ops): Export.
10063         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10064         vector with single vuse pointer.
10065         (vn_reference_lookup_pieces, vn_reference_lookup,
10066         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10067         (shared_vuses_from_stmt): Remove.
10068         (get_ref_from_reference_ops): Declare.
10069         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10070         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10071         memory-tag related code.
10072         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10073         (likely_value): Add comment, skip static-chain of call statements.
10074         (surely_varying_stmt_p): Adjust.
10075         (gimplify_and_update_call_from_tree): Likewise.
10076         (execute_fold_all_builtins): Do not rebuild alias info.
10077         (gimplify_and_update_call_from_tree): Properly update VOPs.
10078         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10079         (copy_ref_info): Remove memory-tag related code.
10080         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10081         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10082         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10083         computation.
10084         * tree-ssa-dom.c (gimple_p): Remove typedef.
10085         (eliminate_redundant_computations): Adjust.
10086         (record_equivalences_from_stmt): Likewise.
10087         (avail_expr_hash): Likewise.
10088         (avail_expr_eq): Likewise.
10089         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
10090         (stmt_makes_single_load): Likewise.
10091         (stmt_makes_single_store): Likewise.
10092         * tree-ssa-alias.c: Rewrite completely.
10093         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10094         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10095         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10096         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10097         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10098         Remove public functions.
10099         (pass_reset_cc_flags): Remove.
10100         (pass_build_alias): Move ...
10101         * tree-ssa-structalias.c (pass_build_alias): ... here.
10102         * tree-ssa-alias.c (may_be_aliased): Move ...
10103         * tree-flow-inline.h (may_be_aliased): ... here.
10104         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10105         count_uses_and_derefs): Move ...
10106         * gimple.c: ... here.
10107         * gimple.h (count_uses_and_derefs): Declare.
10108         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10109         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10110         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10111         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10112         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10113         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10114         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10115         New functions.
10116         * tree-dfa.c (refs_may_alias_p): Move ...
10117         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
10118         * tree-ssa-alias.h: New file.
10119         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10120         (statement_sink_location): Likewise.
10121         * opts.c (decode_options): Do not adjust max-aliased-vops or
10122         avg-aliased-vops values.
10123         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10124         (TV_CALL_CLOBBER): Likewise.
10125         (TV_FLOW_SENSITIVE): Likewise.
10126         (TV_FLOW_INSENSITIVE): Likewise.
10127         (TV_MEMORY_PARTITIONING): Likewise.
10128         (TV_ALIAS_STMT_WALK): New timevar.
10129         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10130         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10131         (get_address_description): Remove memory-tag related code.
10132         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10133         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10134         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10135         and immediate uses in statements.  Document.
10136         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10137         (dump_symbols): Remove.
10138         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10139         * alias.c (get_deref_alias_set): New function split out from ...
10140         (get_alias_set): ... here.
10141         * alias.h (get_deref_alias_set): Declare.
10142         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10143         type parameter.  Remove restrict pointer handling.  Create a
10144         ref-all pointer in case type-based alias sets do not conflict.
10145         (vect_analyze_data_refs): Remove SMT related code.
10146         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10147         (vectorizable_load): Likewise.
10148         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10149         (DR_SYMBOL_TAG, DR_VOPS): Remove.
10150         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10151         Ignore vops and SMTs.
10152         (dr_analyze_alias): Likewise..
10153         (free_data_ref): Likewise.
10154         (create_data_ref): Likewise.
10155         (analyze_all_data_dependences): Likewise.
10156         (get_references_in_stmt): Adjust.
10157         * tree-flow-inline.h (gimple_aliases_computed_p,
10158         gimple_addressable_vars, gimple_call_clobbered_vars,
10159         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10160         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10161         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10162         gimple_mem_ref_stats): Remove.
10163         (gimple_vop): New function.
10164         (op_iter_next_use): Remove vuses and mayuses cases.
10165         (op_iter_next_def): Remove vdefs case.
10166         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10167         (clear_and_done_ssa_iter): Do not set removed fields.
10168         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
10169         Assert we are not iterating over vuses or vdefs if not also
10170         iterating over uses or defs.
10171         (op_iter_init_use): Likewise.
10172         (op_iter_init_def): Likewise.
10173         (op_iter_next_vdef): Remove.
10174         (op_iter_next_mustdef): Likewise.
10175         (op_iter_init_vdef): Likewise.
10176         (compare_ssa_operands_equal): Likewise.
10177         (link_use_stmts_after): Handle vuse operand.
10178         (is_call_used): Use is_call_clobbered.
10179         (is_call_clobbered): Global variables are always call clobbered,
10180         query the call-clobbers bitmap.
10181         (mark_call_clobbered): Ignore global variables.
10182         (clear_call_clobbered): Likewise.
10183         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10184         virtual operands sanity check.
10185         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10186         Remove.
10187         (TARGET_MEM_REF): Remove TMR_TAG operand.
10188         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10189         Remove call-clobber related code.
10190         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
10191         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10192         partitions or escape reason.
10193         (get_single_def_stmt, get_single_def_stmt_from_phi,
10194         get_single_def_stmt_with_phi): Remove.
10195         (dump_referenced_vars): Tidy.
10196         (get_ref_base_and_extent): Allow bare decls.
10197         (collect_dfa_stats): Adjust.
10198         * graphite.c (rename_variables_in_stmt): Adjust.
10199         (graphite_copy_stmts_from_block): Likewise.
10200         (translate_clast): Likewise.
10201         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10202         (EXPR_DIES): New.
10203         (translate_vuse_through_block): Use the oracle.
10204         (phi_translate_1): Adjust.
10205         (value_dies_in_block_x): Use the oracle.  Cache the outcome
10206         in EXPR_DIES.
10207         (valid_in_sets): Check if the VUSE for
10208         a REFERENCE is available.
10209         (eliminate): Do not remove stmts during elimination,
10210         instead queue and remove them afterwards.
10211         (do_pre): Do not rebuild alias info.
10212         (pass_pre): Run TODO_rebuild_alias before PRE.
10213         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10214         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10215         (mark_all_v_defs_stmt): Remove.
10216         (mark_all_v_defs_seq): Adjust.
10217         (sra_replace): Likewise.
10218         (scalarize_use): Likewise.
10219         (scalarize_copy): Likewise.
10220         (scalarize_init): Likewise.
10221         (scalarize_ldst): Likewise.
10222         (todoflags): Remove.
10223         (tree_sra): Do not rebuild alias info.
10224         (tree_sra_early): Adjust.
10225         (pass_sra): Run TODO_update_address_taken before SRA.
10226         * tree-predcom.c (set_alias_info): Remove.
10227         (prepare_initializers_chain): Do not call it.
10228         (mark_virtual_ops_for_renaming): Adjust.
10229         (mark_virtual_ops_for_renaming_list): Remove.
10230         (initialize_root_vars): Adjust.
10231         (initialize_root_vars_lm): Likewise.
10232         (prepare_initializers_chain): Likewise.
10233         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10234         (may_propagate_copy_into_stmt): Likewise.
10235         (merge_alias_info): Do nothing for now.
10236         (propagate_tree_value_into_stmt): Adjust.
10237         (stmt_may_generate_copy): Likewise.
10238         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10239         not mark symbols for renaming.
10240         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10241         with the same statement, make sure to update the new pointed-to one.
10242         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10243         call statements, do not mark symbols for renaming.
10244         (mark_operand_necessary): Dump something.
10245         (ref_may_be_aliased): New function.
10246         (mark_aliased_reaching_defs_necessary_1): New helper function.
10247         (mark_aliased_reaching_defs_necessary): Likewise.
10248         (mark_all_reaching_defs_necessary_1): Likewise.
10249         (mark_all_reaching_defs_necessary): Likewise.
10250         (propagate_necessity): Do not process virtual PHIs.  For
10251         non-aliased loads mark all reaching definitions as necessary.
10252         For aliased loads and stores mark the immediate dominating
10253         aliased clobbers as necessary.
10254         (visited): New global static.
10255         (perform_tree_ssa_dce): Free visited bitmap after propagating
10256         necessity.
10257         (remove_dead_phis): Perform simple dead virtual PHI removal.
10258         (remove_dead_stmt): Properly unlink virtual operands when
10259         removing stores.
10260         (eliminate_unnecessary_stmts): Schedule PHI removal after
10261         stmt removal.
10262         * tree-ssa-ter.c (is_replaceable_p): Adjust.
10263         (process_replaceable): Likewise.
10264         (find_replaceable_in_bb): Likewise.
10265         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10266         based on the single gimple vop.
10267         (verify_flow_insensitive_alias_info): Remove.
10268         (verify_flow_sensitive_alias_info): Likewise.
10269         (verify_call_clobbering): Likewise.
10270         (verify_memory_partitions): Likewise.
10271         (verify_alias_info): Likewise.
10272         (verify_ssa): Adjust..
10273         (execute_update_addresses_taken): Export.  Update SSA
10274         manually.  Optimize only when optimizing.  Use a local bitmap.
10275         (pass_update_address_taken): Remove TODO_update_ssa, add
10276         TODO_dump_func.
10277         (pass_update_address_taken): Just use TODO_update_address_taken.
10278         (init_tree_ssa): Do not initialize addressable_vars.
10279         (verify_ssa): Verify new VUSE / VDEF properties.
10280         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10281         Do not call verify_alias_info.
10282         (delete_tree_ssa): Clear the VUSE, VDEF operands.
10283         Do not free the loaded and stored syms bitmaps.  Reset the escaped
10284         and callused solutions.  Do not free addressable_vars.
10285         Remove memory-tag related code.
10286         (warn_uninitialized_var): Aliases are always available.
10287         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10288         * lambda-code.c (can_put_in_inner_loop): Adjust.
10289         (can_put_after_inner_loop): Likewise.
10290         (perfect_nestify): Likewise.
10291         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10292         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10293         (vectorizable_conversion): Do not mark symbols for renaming.
10294         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10295         (expand_call_inline): Unlink the calls virtual operands before
10296         replacing it.
10297         (tree_function_versioning): Do not call update_ssa if we are not
10298         updating clones.  Simplify.
10299         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10300         (propagate_with_phi): Likewise..
10301         * tree-outof-ssa.c (create_temp): Remove memory tag and call
10302         clobber code.  Assert we are not aliased or global.
10303         * tree-flow.h: Include tree-ssa-alias.h
10304         (enum escape_type): Remove.
10305         (struct mem_sym_stats_d): Likewise.
10306         (struct mem_ref_stats_d): Likewise.
10307         (struct gimple_df): Add vop member.  Remove global_var,
10308         call_clobbered_vars, call_used_vars, addressable_vars,
10309         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
10310         escaped and callused members.
10311         (struct ptr_info_def): Remove all members, add points-to solution
10312         member pt.
10313         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10314         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10315         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10316         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10317         (tree-ssa-alias.o): Likewise.
10318         (toplev.o): Add tree-ssa-alias.h
10319         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10320         * gimple.c (gimple_set_bb): Fix off-by-one error.
10321         (is_gimple_reg): Do not handle memory tags.
10322         (gimple_copy): Also copy virtual operands.
10323         Delay updating the statement.  Do not reset loaded and stored syms.
10324         (gimple_set_stored_syms): Remove.
10325         (gimple_set_loaded_syms): Likewise.
10326         (gimple_call_copy_skip_args): Copy the virtual operands
10327         and mark the new statement modified.
10328         * tree-ssa-structalias.c (may_alias_p): Remove.
10329         (set_uids_in_ptset): Take the alias set to prune with as
10330         parameter.  Fold in the alias test of may_alias_p.
10331         (compute_points_to_sets): Compute whether a ptr is dereferenced
10332         in a local sbitmap.
10333         (process_constraint): Deal with &ANYTHING on the lhs, reject all
10334         other ADDRESSOF constraints on the lhs.
10335         (get_constraint_for_component_ref): Assert that we don't get
10336         ADDRESSOF constraints from the base of the reference.
10337         Properly generate UNKNOWN_OFFSET for DEREF if needed.
10338         (struct variable_info): Remove collapsed_to member.
10339         (get_varinfo_fc): Remove.
10340         (new_var_info): Do not set collapsed_to.
10341         (dump_constraint): Do not follow cycles.
10342         (dump_constraint_graph): Likewise.
10343         (build_pred_graph): Likewise.
10344         (build_succ_graph): Likewise.
10345         (rewrite_constraints): Likewise.
10346         (do_simple_structure_copy): Remove.
10347         (do_rhs_deref_structure_copy): Remove.
10348         (do_lhs_deref_structure_copy): Remove.
10349         (collapse_rest_of_var): Remove.
10350         (do_structure_copy): Re-implement.
10351         (pta_stats): New global variable.
10352         (dump_pta_stats): New function.
10353         (struct constraint_expr): Make offset signed.
10354         (UNKNOWN_OFFSET): Define special value.
10355         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10356         (solution_set_expand): New helper function split out from ...
10357         (do_sd_constraint): ... here.
10358         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
10359         (do_ds_constraint): Likewise.
10360         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
10361         and CALLUSED = *CALLUSED.
10362         (set_union_with_increment): Make inc argument signed.
10363         (type_safe): Remove.
10364         (get_constraint_for_ptr_offset): Handle unknown and negative
10365         constant offsets.
10366         (first_vi_for_offset): Handle offsets before start.  Bail
10367         out early for offsets beyond the variable extent.
10368         (first_or_preceding_vi_for_offset): New function.
10369         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10370         Together with ESCAPED = *ESCAPED this properly computes reachability.
10371         (find_what_var_points_to): New function.
10372         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10373         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10374         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10375         pt_solutions_intersect): New functions.
10376         (compute_call_used_vars): Remove.
10377         (compute_may_aliases): New main entry into PTA computation.
10378         * gimple.h (gimple_p): New typedef.
10379         (struct gimple_statement_base): Remove references_memory_p.
10380         (struct gimple_statement_with_memory_ops_base): Remove
10381         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
10382         members.
10383         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10384         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10385         gimple_set_references_memory): Remove.
10386         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10387         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10388         New functions.
10389         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10390         (verify_expr): Allow RESULT_DECL.
10391         (gimple_duplicate_bb): Do not copy virtual operands.
10392         (gimple_duplicate_sese_region): Adjust.
10393         (gimple_duplicate_sese_tail): Likewise.
10394         (mark_virtual_ops_in_region): Remove.
10395         (move_sese_region_to_fn): Do not call it.
10396         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10397         and pass_simple_dse.
10398         (execute_function_todo): Handle TODO_update_address_taken,
10399         call execute_update_addresses_taken for TODO_rebuild_alias.
10400         (execute_todo): Adjust.
10401         (execute_one_pass): Init dump files early.
10402         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10403         call-clobbered.
10404         (create_general_new_stmt): Clear vops.
10405         * tree-ssa-reassoc.c (get_rank): Adjust.
10406         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10407         symbols for renaming.
10408         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10409         (PARAM_AVG_ALIASED_VOPS): Likewise.
10410         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10411         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
10412         * tree-ssa-operands.c: Simplify for new virtual operand representation.
10413         (operand_build_cmp, copy_virtual_operands,
10414         create_ssa_artificial_load_stmt, add_to_addressable_set,
10415         gimple_add_to_addresses_taken): Remove public functions.
10416         (unlink_stmt_vdef): New function.
10417
10418 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
10419
10420         * config.gcc (powerpc-*-linux*): Merge variants.
10421
10422 2009-04-02  Chao-ying Fu  <fu@mips.com>
10423             James Grosbach  <james.grosbach@microchip.com>
10424
10425         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10426         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10427         cop0_sp_offset.
10428         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10429         keep_interrupts_masked_p, use_debug_exception_return_p.
10430         (mips_attribute_table): Add interrupt, use_shadow_register_set,
10431         keep_interrupts_masked, use_debug_exception_return.
10432         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10433         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10434         New functions.
10435         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10436         (mips_print_operand): Process COP0 registers to print $0 .. $31
10437         correctly for GAS to process.
10438         (mips_interrupt_extra_call_saved_reg_p): New function.
10439         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10440         extra registers.
10441         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10442         (mips_compute_frame_info): Add supports for interrupt context that
10443         includes doubleword accumulators and COP0 registers.
10444         (mips_for_each_saved_acc): New function.
10445         (mips_for_each_saved_gpr_and_fpr): Change the function name from
10446         mips_for_each_saved_reg.
10447         (mips_save_reg): Save accumulators.
10448         (mips_kernel_reg_p): A new for_each_rtx callback.
10449         (mips_expand_prologue): Support interrupt handlers.
10450         (mips_restore_reg): Restore accumulators.
10451         (mips_expand_epilogue): Support interrupt handlers.
10452         (mips_can_use_return_insn): Return false for interrupt handlers.
10453         (mips_epilogue_uses): New function.
10454         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10455         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10456         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10457         cop0_move): New instructions.
10458         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10459         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10460         defines.
10461         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10462         New defines.
10463         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10464         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10465         interrupt handlers, we use K0 as the temporary register.
10466         (EPILOGUE_USES): Change to a function call.
10467         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10468         handlers, we use K0 as the temporary register.
10469
10470         * doc/extend.texi (Function Attributes): Document interrupt,
10471         use_shadow_register_set, keep_interrupts_masked,
10472         use_debug_exception_return for MIPS attributes.
10473
10474 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
10475
10476         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10477         Remove a number of t-files from tmake_file.
10478         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10479         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10480         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10481         target_prototype, not TARGET_PROTOTYPE.
10482         (LINK_OS_GNU_SPEC): Define.
10483         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10484         and darwin-ldoubdle.c.
10485
10486 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10487
10488         PR driver/39293
10489         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10490         (cpp_options): Ditto.
10491         (default_compilers): Ditto.
10492         (display_help): Ditto.
10493         (process_command): Ditto.
10494         (do_spec_1): Ditto.
10495         (set_input): Use lbasename instead of duplicate code.
10496         (save_temps_prefix): New static for -save-temps=obj.
10497         (save_temps_length): Ditto.
10498
10499         * doc/invoke.texi (-save-temps=obj): Document new variant to
10500         -save-temps switch.
10501
10502 2009-04-02  Jeff Law  <law@redhat.com>
10503
10504         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10505         variable.
10506
10507 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10508
10509         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10510         * configure: Regenerated.
10511
10512 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10513
10514         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10515         share the argument list.
10516
10517 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10518
10519         Merge
10520
10521         2009-02-12  Diego Novillo  <dnovillo@google.com>
10522
10523         * varpool.c (debug_varpool): New.
10524         * cgraph.h (debug_varpool): Declare.
10525
10526 2009-04-02  Jan Hubicka  <jh@suse.cz>
10527
10528         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10529         pass.
10530
10531 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10532
10533         * config/i386/i386.c (ix86_abi): Move initialization to ...
10534         (override_options): Here.
10535
10536 2009-04-02  Christian Bruel  <christian.bruel@st.com>
10537
10538         * config/sh/sh.c (sh_dwarf_register_span): New function.
10539         (TARGET_DWARF_REGISTER_SPAN): Define.
10540         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
10541
10542 2009-04-02  Ira Rosen  <irar@il.ibm.com>
10543
10544         PR tree-optimization/39595
10545         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
10546         interleaved loads group is not  greater than the SLP group size.
10547
10548 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10549
10550         * builtins.c (is_builtin_name): New.
10551         (called_as_built_in): Use is_builtin_name.
10552         * tree.h (is_builtin_name): New.
10553         * varasm.c (incorporeal_function_p): Use is_builtin_name
10554
10555 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
10556
10557         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10558
10559 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
10560
10561         PR c++/26693
10562         * c-decl.c (clone_underlying_type): Move this ...
10563         * c-common.c (set_underlying_type): ... here.
10564         Also, make sure the function properly sets TYPE_STUB_DECL() on
10565         the newly created typedef variant type.
10566         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
10567         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10568         points.
10569
10570 2009-04-02  Richard Guenther  <rguenther@suse.de>
10571
10572         PR tree-optimization/37221
10573         * tree-flow.h (degenerate_phi_result): Declare.
10574         * tree-ssa-dom.c (degenerate_phi_result): Export.
10575         * tree-scalar-evolution.c (analyze_initial_condition): If
10576         the initial condition is defined by a degenerate PHI node
10577         use the degenerate value.
10578
10579 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
10580
10581         PR rtl-optimization/39588
10582         * combine.c (merge_outer_ops): Do not set the constant when this
10583         is not necessary.
10584         (simplify_shift_const_1): Do not modify it either in this case.
10585
10586 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
10587
10588         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10589         tuning is deprecated if -mtune value is set to an Itanium1 variant.
10590
10591 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
10592
10593         PR c/29027
10594         * c-lex.c (interpret_float): Default (no suffix) is double.
10595
10596 2009-04-1  Xinliang David Li  <davidxl@google.com>
10597
10598         * config/i386/i386.c (legitimate_constant_p): Recognize
10599         all one vector constant.
10600
10601 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10602
10603         * config/vax/vax.c: Add #includes to silence warnings.
10604         Change #include order to silence two warnings.
10605
10606 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10607
10608         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
10609         (ASM_SPEC): Pass -k to the assembler for PIC code.
10610
10611 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10612
10613         * config.gcc: Add vax-*-linux* to the switch.
10614         * config/vax/linux.h: New file. (TARGET_VERSION,
10615         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10616
10617 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10618
10619         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
10620         Use predicate macros instead of GET_CODE() == foo.
10621         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
10622         ashlsi3, rotrsi3, <unnamed>): Likewise.
10623
10624 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10625
10626         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
10627         jbbccihi, jbbccisi): Remova trailing whitespace.
10628         * config/vax/constraints.md: Likewise.
10629         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10630         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10631         * config/vax/predicates.md: Likewise.
10632         * config/vax/vax.c (print_operand_address, vax_output_int_move,
10633         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
10634         * config/vax/vax.h: Likewise.
10635         * config/vax/vax.md (nonlocal_goto): Likewise.
10636
10637 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10638
10639         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
10640         (indirectable_address_p, adjacent_operands_p): Add spaces around
10641         braces.
10642         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
10643
10644 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10645
10646         * config/vax/vax.c (legitimate_constant_address_p,
10647         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10648         index_term_p, reg_plus_index_p, legitimate_address_p,
10649         vax_mode_dependent_address_p): Update comments to match functions
10650         modified by the recent int->bool conversion.
10651
10652 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10653
10654         * config/vax/builtins.md: Update copyright message.
10655         * config/vax/constraints.md: Likewise.
10656         * config/vax/netbsd-elf.h: Likewise.
10657         * config/vax/predicates.md: Likewise.
10658         * config/vax/vax-protos.h: Likewise.
10659         * config/vax/vax.c: Likewise.
10660         * config/vax/vax.h: Likewise.
10661         * config/vax/vax.md: Likewise.
10662         * config/vax/vax.opt: Likewise.
10663
10664 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10665
10666         * config/vax/builtins.md (ffssi2, ffssi2_internal,
10667         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
10668         * config/vax/constraints.md (B, R): Likewise.
10669         * config/vax/predicates.md (external_memory_operand,
10670         nonimmediate_addsub_di_operand): Likewise.
10671         * config/vax/vax.c (vax_output_int_add): Likewise.
10672         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
10673         untyped_call): Likewise.
10674
10675 2009-04-01  Matt Thomas  <matt@3am-software.com>
10676
10677         * config/vax/predicates.md: New file.
10678         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
10679         external_const_operand, nonsymbolic_operand, external_memory_operand,
10680         indirect_memory_operand, indexed_memory_operand,
10681         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10682         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10683         predicate.
10684         * config/vax/constraints.md: New file.
10685         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10686         New constraint.
10687         * config/vax/builtins.md: New file.
10688         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10689         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10690         jbbccisi): Define.
10691         * config/vax/vax.opt (mqmath): Add option.
10692         * config/vax/vax.md (isfx): Extend with DI.
10693         (VAXintQH, VAXintQHSD): Define.
10694         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10695         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10696         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10697         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10698         (movdi): Update constraints and use vax_output_int_move().
10699         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10700         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10701         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10702         nonlocal_goto): New.
10703         (mov<mode>): Extend accepted operand types.
10704         (subdi3_old): Rename from subdi3, change update constraints and use
10705         a new implementation.
10706         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
10707         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10708         MOVE_RATIO, CLEAR_RATIO): Define.
10709         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10710         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10711         (PRINT_OPERAND): Redefine using a function instead of inlined code.
10712         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
10713         (split_quadword_operands): Make static and really allow variable
10714         splitting.
10715         (print_operand_address): Update for PIC generation.
10716         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10717         indexable_address_p, fixup_mathdi_operand,
10718         vax_expand_addsub_di_operands, adjacent_operands_p): New.
10719         (vax_float_literal, legitimate_constant_p,
10720         indirectable_constant_address_p, index_term_p,
10721         reg_plus_index_p): Return bool instead of int.
10722         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10723         where needed.
10724         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10725         generation.
10726         (vax_output_conditional_branch): Indent.
10727         (legitimate_constant_address_p, indirectable_constant_address_p,
10728         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10729         vax_mode_dependent_address_p): Return bool instead of int, update for
10730         PIC generation.
10731         * config/vax/vax-protos.h (legitimate_constant_address_p,
10732         legitimate_constant_p, legitimate_address_p,
10733         vax_mode_dependent_address_p): Change declaration to bool.
10734         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10735         vax_expand_addsub_di_operands, vax_output_int_subtract,
10736         vax_output_movmemsi): Declare.
10737         (split_quadword_operands, vax_float_literal): Delete declaration.
10738         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10739         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10740         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10741         ASM_OUTPUT_DWARF_PCREL): Define.
10742         (ASM_SPEC): Change definition to allow PIC generation.
10743
10744 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
10745
10746         * doc/sourcebuild.texi: Update front-end requirements.
10747
10748 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
10749
10750         PR target/39226
10751         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10752         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10753         (booldi3_internal3): Use boolean_or_operator instead of
10754         boolean_operator.
10755
10756 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
10757
10758         PR c/39605
10759         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10760         declarator whose size is not an integer constant expression but
10761         folds to an integer constant, then treat it as a constant
10762         subsequently.
10763
10764 2009-04-01  Richard Guenther  <rguenther@suse.de>
10765
10766         * fold-const.c (fold_plusminus_mult_expr): Do not fold
10767         i * 4 + 2 to (i * 2 + 1) * 2.
10768
10769 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
10770
10771         PR c/37772
10772         * c-parser.c (c_parser_asm_statement): Skip until close paren and
10773         return if c_parser_asm_string_literal returned NULL.
10774
10775 2009-04-01  Nick Clifton  <nickc@redhat.com>
10776
10777         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10778         already defined.
10779         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10780         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
10781         other typedefs to avoid conflicts with libgcc2.c.  Define labels
10782         to gain 16-bit bit-manipulation functions from libgcc2.c and then
10783         include it.
10784         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
10785         to gain 16-bit trapping arithmetic functions from libgcc2.c and
10786         then include it.
10787
10788 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
10789
10790         * varasm.c (default_function_rodata_section): Declare DOT as
10791         const char*.
10792
10793 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
10794             Andrey Galkin  <agalkin@hypercom.com>
10795
10796         PR/39492
10797         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10798         Make object_name unique for each process.
10799
10800 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
10801
10802         PR other/39591
10803         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10804         addressable variables in the parallel that could go out of scope while
10805         running queued tasks.
10806
10807 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
10808
10809         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10810         (CASE_VALUES_THRESHOLD): Redefine.
10811         * config/avr/avr.c (avr_override_options): Remove initialization of
10812         avr_case_values_threshold variable.
10813         (avr_case_values_threshold): Remove variable. Add new function.
10814         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10815         * config/avr/avr.opt (mno-tablejump): Remove option.
10816         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10817
10818 2009-04-01  DJ Delorie  <dj@redhat.com>
10819
10820         * varasm.c (default_function_rodata_section): Don't assume
10821         anything about where the first '.' in the section name is.
10822
10823 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
10824
10825         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10826         rs6000_emit_stack_tie.
10827
10828 2009-03-31  Ian Lance Taylor  <iant@google.com>
10829
10830         * tree-eh.c (tree_remove_unreachable_handlers): Compare
10831         gimple_code with GIMPLE_RESX, not RESX.
10832
10833 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
10834
10835         * c-common.c (c_get_ident): New.
10836         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
10837
10838 2009-04-01  Ben Elliston  <bje@au.ibm.com>
10839
10840         * config/rs6000/sysv4.opt (msdata): Improve option description.
10841
10842 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
10843
10844         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10845         (divdf3_internal_lat): Remove.
10846         (divxf3_internal_lat): Remove.
10847         (divxf3_internal_thr): Remove.
10848         (divxf): Use divxf3_internal.
10849         * config/ia64/div.md (divsf3_internal_lat): New.
10850         (divdf3_internal_lat): New.
10851         (divxf3_internal): New.
10852
10853 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
10854
10855         PR c/448
10856         * Makefile.in (USE_GCC_STDINT): Define.
10857         (stmp-int-hdrs): Install stdint.h if applicable.
10858         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10859         if known.
10860         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10861         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10862         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10863         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10864         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10865         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10866         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10867         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10868         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10869         (c_common_nodes_and_builtins): Initialize
10870         underlying_wchar_type_node.  Do not initialize
10871         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
10872         nodes for new types.
10873         (c_stddef_cpp_builtins): Define macros for new types.
10874         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10875         Remove.
10876         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10877         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10878         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10879         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10880         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10881         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10882         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10883         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10884         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10885         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10886         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10887         int16_type_node, int32_type_node, int64_type_node,
10888         uint8_type_node, uint16_type_node, c_uint32_type_node,
10889         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10890         int_least32_type_node, int_least64_type_node,
10891         uint_least8_type_node, uint_least16_type_node,
10892         uint_least32_type_node, uint_least64_type_node,
10893         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10894         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10895         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10896         uintptr_type_node): Define.
10897         * c-cppbuiltin.c (builtin_define_constants,
10898         builtin_define_type_minmax): New.
10899         (builtin_define_stdint_macros): Define more macros.
10900         (c_cpp_builtins): Define more limit macros.
10901         (type_suffix): New.
10902         (builtin_define_type_max): Define in terms of
10903         builtin_define_type_minmax.  Remove is_long parameter.  All
10904         callers changed.
10905         * config.gcc (use_gcc_stdint): Define.
10906         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10907         Add newlib-stdint.h for generic targets.
10908         * config/glibc-stdint.h, config/newlib-stdint.h,
10909         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10910         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10911         * config/score/score.h (UINTPTR_TYPE): Define.
10912         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10913         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10914         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10915         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10916         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10917         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10918         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10919         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10920         * config/spu/spu.h (STDINT_LONG32): Define.
10921         * configure.ac (use_gcc_stdint): Substitute.
10922         * configure: Regenerate.
10923         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10924         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10925         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10926         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10927         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10928         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10929         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10930         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10931         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10932         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10933         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10934         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10935         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10936         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10937         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10938         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10939         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10940         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10941         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10942         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10943         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10944         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10945         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10946         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10947         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10948         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10949         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10950         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10951         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10952
10953 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
10954
10955         * loop-iv.c (suitable_set_for_replacement): Renamed from
10956         simplify_using_assignment; changed to return bool and to accept new
10957         args DEST and SRC.  Return true iff we find a source/destination pair
10958         that can be used to make a replacement, and fill SRC and DEST if so.
10959         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
10960         changed.
10961         (simplify_using_initial_values): Deal with altered regs here and track
10962         more precisely the effect they have on the validity of our expression.
10963
10964         * loop-iv.c (simplify_using_condition): A condition of the form
10965         (EQ REG CONST) can be used to simply make a substitution.
10966         (simplify_using_initial_values): Keep track of conditions we have seen
10967         and keep using them to simplify new expressions, while applying the
10968         same substitutions to them as to the expression.
10969
10970         * simplify-rtx.c (simplify_relational_operation_1): Simplify
10971         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10972         GEU/LTU reversed.
10973
10974         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
10975         changed.  Use this when trying to improve the upper bound.
10976         Generate the comparison by using simplify_gen_relational.
10977
10978         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10979
10980         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10981         functions.
10982         (simplify_using_assignment, simplify_using_initial_values): Call
10983         replace_in_expr to make replacements.  Call replace_single_def_regs
10984         once on the initial version of the expression.
10985
10986 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10987
10988         PR target/27237
10989         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
10990
10991 2009-03-31  Richard Guenther  <rguenther@suse.de>
10992
10993         PR middle-end/31029
10994         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10995         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
10996
10997 2009-03-31  Richard Guenther  <rguenther@suse.de>
10998
10999         * tree.h (div_if_zero_remainder): Declare.
11000         * fold-const.c (div_if_zero_remainder): Export.
11001         * tree-ssa-forwprop.c
11002         (forward_propagate_addr_into_variable_array_index): Handle
11003         constant array index addition outside of the variable index.
11004
11005 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11006
11007         PR target/39592
11008         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11009         define_splits, floatunssi<mode>2): Require x87 conversions from
11010         DImode to be permitted.
11011
11012 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11013
11014         PR preprocessor/15638
11015         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11016
11017 2009-03-31  Richard Guenther  <rguenther@suse.de>
11018
11019         PR middle-end/23401
11020         PR middle-end/27810
11021         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11022         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11023         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11024         a separate statement.
11025         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11026         (lookup_tmp_var): Likewise.
11027         (is_gimple_formal_tmp_or_call_rhs): Remove.
11028         (is_gimple_reg_or_call_rhs): Rename to ...
11029         (is_gimple_reg_rhs_or_call): ... this.
11030         (is_gimple_mem_or_call_rhs): Rename to ...
11031         (is_gimple_mem_rhs_or_call): ... this.
11032         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
11033         DECL_GIMPLE_REG_P only if is_formal is true.
11034         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
11035         for non-proper post-modify expression gimplification.
11036         (gimplify_self_mod_expr): For post-modify expressions gimplify
11037         the lvalue to a minimal lvalue.
11038         (rhs_predicate_for): Remove formal temp case.
11039         (gimplify_modify_expr_rhs): Likewise.
11040         (gimplify_addr_expr): Use is_gimple_reg.
11041         (gimplify_expr): Remove formal temp cases.
11042         (gimple_regimplify_operands): Likewise.
11043         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11044         and FILTER_EXPR like constants.
11045         * gimple.c (walk_gimple_op): Fix val_only initialization, use
11046         is_gimple_reg.
11047         (is_gimple_formal_tmp_rhs): Remove.
11048         (is_gimple_reg_rhs): Remove special casing.
11049         (is_gimple_mem_rhs): Fix.
11050         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11051         (is_gimple_formal_tmp_var): Remove.
11052         (is_gimple_formal_tmp_reg): Likewise.
11053         (is_gimple_min_lval): Allow invariant component ref parts.
11054         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11055         is_gimple_formal_tmp_reg): Remove declarations.
11056         * tree-cfg.c (verify_expr): Verify that variables with address
11057         taken do not have DECL_GIMPLE_REG_P set.
11058         * tree-mudflap.c (mf_build_check_statement_for): Use
11059         force_gimple_operand instead of gimplify_expr.
11060
11061 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
11062
11063         * modulo-sched.c (sms_schedule_by_order): Pass the actual
11064         schedulable rows to compute_split_row.
11065
11066 2009-03-31  Ben Elliston  <bje@au.ibm.com>
11067
11068         PR target/31635
11069         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11070         OPT_mvrsave.
11071
11072 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11073
11074         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11075         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11076         * configure: Regenerate.
11077         * config.in: Regenerate.
11078         * config/rs6000/rs6000.opt (mtls-markers): Add.
11079         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11080         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11081         (tls_ld_aix, tls_ld_sysv): Likewise.
11082         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11083         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11084
11085 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11086
11087         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11088
11089 2009-03-30  Jan Hubicka  <jh@suse.cz>
11090
11091         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11092         out of RESX.
11093         (tree_remove_unreachable_handlers): Cleanup EH predecestor
11094         detection and label handling.
11095
11096 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11097
11098         * ira-int.h (ira_allocno): Rename left_conflicts_num to
11099         left_conflicts_size.
11100         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11101         ALLOCNO_LEFT_CONFLICTS_SIZE.
11102
11103         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11104         remove_allocno_from_bucket_and_push,
11105         allocno_spill_priority_compare, push_allocnos_to_stack,
11106         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11107         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11108         (setup_allocno_left_conflicts_num): Ditto.  Rename to
11109         setup_allocno_left_conflicts_size.
11110         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11111         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11112         setup_allocno_left_conflicts_size instead of
11113         setup_allocno_left_conflicts_num.
11114
11115         * ira-build.c (ira_create_allocno): Use
11116         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11117         ALLOCNO_LEFT_CONFLICTS_NUM.
11118
11119 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11120
11121         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11122         instead of DF_LR_OUT.
11123
11124         * ira-lives.c (process_bb_node_lives): Ditto.
11125
11126         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11127         instead of DF_LR_{OUT,IN}.
11128
11129         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11130
11131         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11132
11133 2009-03-30  Jan Hubicka  <jh@suse.cz>
11134
11135         * except.c (label_to_region_map): Fix thinko.
11136
11137 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
11138
11139         PR middle-end/38237
11140         * tree.h (tree_find_value): New declaration.
11141         * tree.c (tree_find_value): New function.
11142         * varasm.c (assemble_external): Avoid duplicate entries on lists.
11143
11144 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
11145
11146         PR debug/39563
11147         * c-decl.c (struct c_binding): Add locus field.
11148         (bind): Add locus argument, set locus field from it.
11149         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11150         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11151         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11152         implicitly_declare, undeclared_variable, lookup_label,
11153         declare_label, c_make_fname_decl, c_builtin_function,
11154         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11155         bind callers.
11156
11157 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11158
11159         PR target/38781
11160         * config/i386/i386.c (classify_argument): Check total size of
11161         structure.
11162
11163 2009-03-30  Martin Jambor  <mjambor@suse.cz>
11164
11165         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11166         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11167         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11168         respectively.
11169
11170         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11171         seen_variable_array_ref while also traversing a union.
11172
11173         * tree-inline.c (optimize_inline_calls): Do not call
11174         cgraph_node_remove_callees.
11175         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11176         (pass_remove_cgraph_callee_edges): New variable.
11177         * passes.c (init_optimization_passes): Add
11178         pass_remove_cgraph_callee_edges after early inlining and before all
11179         late intraprocedural passes.
11180
11181         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11182
11183 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11184
11185         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11186         Fix typos in names.
11187
11188 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11189
11190         * combine.c (simplify_comparison): Use have_insn_for.
11191         * dojump.c (do_jump): Likewise.
11192
11193 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11194
11195         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11196         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11197         sparc_compare_op0 like sparc_compare_emitted used to be handled.
11198         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11199         instead of sparc_compare_emitted.
11200         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11201         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11202         instead of sparc_compare_emitted.
11203
11204 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11205
11206         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11207         enter/exit cfglayout mode.
11208         (pass_partition_block): Require it.
11209         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11210         (combine_instructions): Track basic blocks instead of labels.
11211         (update_cfg_for_uncondjump): New.
11212         (try_combine): Use it.  Update jumps after rescanning.
11213         (pass_combine): Require PROP_cfglayout.
11214         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11215
11216 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11217
11218         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11219         Provide/destroy PROP_cfglayout respectively.
11220         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11221         * tree-pass.h (PROP_cfglayout): New.
11222
11223 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11224
11225         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11226         fold_convert_const_fixed_from_fixed,
11227         fold_convert_const_fixed_from_int,
11228         fold_convert_const_fixed_from_real, fold_negate_const): Do not
11229         set TREE_CONSTANT_OVERFLOW.
11230         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11231         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11232
11233 2009-03-30  Ira Rosen  <irar@il.ibm.com>
11234
11235         * tree-vect-loop-manip.c: New file.
11236         * tree-vectorizer.c: Update documentation and included files.
11237         (vect_loop_location): Make extern.
11238         (rename_use_op): Move to tree-vect-loop-manip.c
11239         (rename_variables_in_bb, rename_variables_in_loop,
11240         slpeel_update_phis_for_duplicate_loop,
11241         slpeel_update_phi_nodes_for_guard1,
11242         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11243         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11244         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
11245         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
11246         find_loop_location): Likewise.
11247         (new_stmt_vec_info): Move to tree-vect-stmts.c.
11248         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11249         get_vectype_for_scalar_type, vect_is_simple_use,
11250         supportable_widening_operation, supportable_narrowing_operation):
11251         Likewise.
11252         (bb_in_loop_p): Move to tree-vect-loop.c.
11253         (new_loop_vec_info, destroy_loop_vec_info,
11254         reduction_code_for_scalar_code, report_vect_op,
11255         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11256         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11257         (vect_supportable_dr_alignment): Likewise.
11258         * tree-vectorizer.h (tree-data-ref.h): Include.
11259         (vect_loop_location): Declare.
11260         Reorganize function declarations according to the new file structure.
11261         * tree-vect-loop.c: New file.
11262         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
11263         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11264         * tree-vect-data-refs.c: New file.
11265         * tree-vect-patterns.c (timevar.h): Don't include.
11266         * tree-vect-stmts.c: New file.
11267         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
11268         tree-vect-slp.c, tree-vect-loop.c.
11269         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11270         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
11271         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11272         (tree-vect-analyze.o): Remove.
11273         (tree-vect-transform.o): Likewise.
11274         (tree-vect-data-refs.o): Add rule.
11275         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
11276         tree-vect-slp.o): Likewise.
11277         (tree-vect-patterns.o): Remove redundant dependencies.
11278         (tree-vectorizer.o): Likewise.
11279         * tree-vect-slp.c: New file.
11280
11281 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11282
11283         * optc-gen.awk: Warn if an option flag has multiple different
11284         help strings.
11285
11286 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
11287
11288         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11289         -floop-block): Document dependences on PPL, CLooG and Graphite.
11290
11291 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
11292
11293         PR rtl-optimization/323
11294         * c-common.c (c_fully_fold, convert_and_check,
11295         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11296         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11297         * c-common.def (EXCESS_PRECISION_EXPR): New.
11298         * c-cppbuiltin.c (builtin_define_float_constants): Define
11299         constants with enough digits for long double.
11300         * c-lex.c (interpret_float): Interpret constant with excess
11301         precision where appropriate.
11302         * c-opts.c (c_common_post_options): Set
11303         flag_excess_precision_cmdline.  Give an error for
11304         -fexcess-precision=standard for C++ for processors where the
11305         option is significant.
11306         * c-parser.c (c_parser_conditional_expression): Handle excess
11307         precision in condition.
11308         * c-typeck.c (convert_arguments): Handle arguments with excess
11309         precision.
11310         (build_unary_op): Move excess precision outside operation.
11311         (build_conditional_expr): Likewise.
11312         (build_compound_expr): Likewise.
11313         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11314         (build_modify_expr): Handle excess precision in RHS.
11315         (convert_for_assignment): Handle excess precision in converted
11316         value.
11317         (digest_init, output_init_element, process_init_element): Handle
11318         excess precision in initializer.
11319         (c_finish_return): Handle excess precision in return value.
11320         (build_binary_op): Handle excess precision in operands and add
11321         excess precision as needed for operation.
11322         * common.opt (-fexcess-precision=): New option.
11323         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11324         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11325         For standard excess precision, output explicit conversion to and
11326         truncation from XFmode.
11327         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11328         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11329         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11330         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11331         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11332         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11333         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11334         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11335         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11336         define_splits, sqrt<mode>2): Disable where appropriate for
11337         standard excess precision.
11338         * convert.c (convert_to_real): Do not shorten arithmetic to type
11339         for which excess precision would be used.
11340         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11341         * doc/invoke.texi (-fexcess-precision=): Document option.
11342         (-mfpmath=): Correct index entry.
11343         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11344         flag_excess_precision): New.
11345         * langhooks.c (lhd_post_options): Set
11346         flag_excess_precision_cmdline.
11347         * opts.c (common_handle_option): Handle -fexcess-precision=.
11348         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11349         init_excess_precision): New.
11350         (lang_dependent_init_target): Call init_excess_precision.
11351         * tree.c (excess_precision_type): New.
11352         * tree.h (excess_precision_type): Declare.
11353
11354 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
11355
11356         PR c/35235
11357         * c-typeck.c (build_component_ref): Do not copy qualifiers from
11358         non-lvalue to component.
11359
11360 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
11361
11362         PR preprocessor/34695
11363         * Makefile.in (c-opts.o): Depend on c-tree.h.
11364         * c-common.c: Move down include of diagnostic.h.
11365         (done_lexing, c_cpp_error): New.
11366         * c-common.h (done_lexing): Declare.
11367         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11368         (parse_in).
11369         * c-opts.c: Include c-tree.h.
11370         (c_common_init_options): Set preprocessor error callback.
11371         (c_common_handle_option): Do not set preprocessor
11372         inhibit_warnings, warnings_are_errors, warn_system_headers,
11373         pedantic_errors or inhibit_warnings flags.
11374         (c_common_post_options): Do not check cpp_errors (parse_in).
11375         (c_common_finish): Do not output dependencies if there were
11376         errors.  Do not check return value of cpp_finish.
11377         * c-ppoutput.c (pp_file_change): Set input_location.
11378         * c-tree.h (c_cpp_error): Declare.
11379         * diagnostic.c (diagnostic_set_info_translated): Also initialize
11380         override_column.
11381         (diagnostic_build_prefix): Check override_column.
11382         * diagnostic.h (diagnostic_info): Add override_column field.
11383         (diagnostic_override_column): Define.
11384
11385 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
11386
11387         * c-common.c (c_expand_expr, c_staticp): Remove.
11388         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11389         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11390         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11391         * c-gimplify.c (gimplify_compound_literal_expr,
11392         optimize_compound_literals_in_ctor): Remove.
11393         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11394         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11395         * c-semantics.c (emit_local_var): Remove.
11396
11397         * langhooks-def.h (lhd_expand_expr): Remove.
11398         * langhooks.c (lhd_expand_expr): Remove.
11399         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11400
11401         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11402         handling from c-semantics.c; don't call into langhook.
11403         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11404         * gimplify.c (gimplify_compound_literal_expr,
11405         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11406         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11407         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11408         as was done in c-gimplify.c.
11409         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11410         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11411         Move from c-common.h.
11412         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
11413
11414         * tree.c (staticp): Do not call langhook.
11415         * langhooks.c (lhd_staticp): Delete.
11416         * langhooks-def.h (lhd_staticp): Delete prototype.
11417         (LANG_HOOKS_STATICP): Delete.
11418         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11419
11420         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11421         instead of DECL_STMTs.
11422
11423 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
11424
11425         PR c/456
11426         PR c/5675
11427         PR c/19976
11428         PR c/29116
11429         PR c/31871
11430         PR c/35198
11431         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11432         void_type_node.
11433         (fold_call_expr): Return a NOP_EXPR from folding rather than the
11434         contained expression.
11435         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
11436         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
11437         conditional expressions for C.
11438         (decl_constant_value_for_optimization): Move from
11439         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
11440         whether optimizing and that the expression is a VAR_DECL not of
11441         array type instead of doing such checks in the caller.  Do not
11442         check pedantic.  Call gcc_unreachable for C++.
11443         * c-common.def (C_MAYBE_CONST_EXPR): New.
11444         * c-common.h (c_fully_fold, c_save_expr,
11445         decl_constant_value_for_optimization): New prototypes.
11446         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11447         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11448         EXPR_INT_CONST_OPERANDS): Define.
11449         * c-convert.c (convert): Strip nops from expression.
11450         * c-decl.c (groktypename): Take extra parameters expr and
11451         expr_const_operands.  Update call to grokdeclarator.
11452         (start_decl): Update call to grokdeclarator.  Add statement for
11453         expressions used in type of decl.
11454         (grokparm): Update call to grokdeclarator.
11455         (push_parm_decl): Update call to grokdeclarator.
11456         (build_compound_literal): Add parameter non_const and build a
11457         C_MAYBE_COSNT_EXPR if applicable.
11458         (grokdeclarator): Take extra parameters expr and
11459         expr_const_operands.  Track expressions used in declaration
11460         specifiers and declarators.  Fold array sizes and track whether
11461         they are constant expressions and whether they are integer
11462         constant expressions.
11463         (parser_xref_tag): Set expr and expr_const_operands fields in
11464         return value.
11465         (grokfield): Update call to grokdeclarator.
11466         (start_function): Update call to grokdeclarator.
11467         (build_null_declspecs): Set expr and expr_const_operands fields in
11468         return value.
11469         (declspecs_add_type): Handle expressions in typeof specifiers.
11470         * c-parser.c (c_parser_declspecs): Set expr and
11471         expr_const_operands fields for declaration specifiers.
11472         (c_parser_enum_specifier): Likewise.
11473         (c_parser_struct_or_union_specifier): Likewise.
11474         (c_parser_typeof_specifier): Likewise.  Update call to
11475         groktypename.  Fold expression as needed.  Return expressions with
11476         type instead of adding statements.
11477         (c_parser_attributes): Update calls to c_parser_expr_list.
11478         (c_parser_statement_after_labels): Fold expression before passing
11479         to objc_build_throw_stmt.
11480         (c_parser_condition): Fold expression.
11481         (c_parser_asm_operands): Fold expression.
11482         (c_parser_conditional_expression): Use c_save_expr.  Update call
11483         to build_conditional_expr.
11484         (c_parser_alignof_expression): Update call to groktypename.
11485         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11486         original_code.  Fold expression argument of va_arg.  Create
11487         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11488         argument to va_arg.  Update calls to groktypename.  Fold array
11489         index for offsetof.  Verify that first argument to
11490         __builtin_choose_expr has integer type.
11491         (c_parser_postfix_expression_after_paren_type): Update calls to
11492         groktypename and build_compound_literal.  Handle expressions with
11493         side effects in type name.
11494         (c_parser_postfix_expression_after_primary): Update call to
11495         c_parser_expr_list.  Set original_code for calls to
11496         __builtin_constant_p.
11497         (c_parser_expr_list): Take extra parameter fold_p.  Fold
11498         expressions if requested.
11499         (c_parser_objc_type_name): Update call to groktypename.
11500         (c_parser_objc_synchronized_statement): Fold expression.
11501         (c_parser_objc_receiver): Fold expression.
11502         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11503         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11504         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11505         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11506         (struct c_typespec): Add elements expr and expr_const_operands.
11507         (struct c_declspecs): Add elements expr and expr_const_operands.
11508         (groktypename, build_conditional_expr, build_compound_literal):
11509         Update prototypes.
11510         (in_late_binary_op): Declare.
11511         * c-typeck.c (note_integer_operands): New function.
11512         (in_late_binary_op): New variable.
11513         (decl_constant_value_for_broken_optimization): Move to c-common.c
11514         and rename to decl_constant_value_for_optimization.
11515         (default_function_array_conversion): Do not strip nops.
11516         (default_conversion): Do not call
11517         decl_constant_value_for_broken_optimization.
11518         (build_array_ref): Do not fold result.
11519         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
11520         result when operand is a VLA.
11521         (c_expr_sizeof_type): Update call to groktypename.  Handle
11522         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
11523         result when operand names a VLA type.
11524         (build_function_call): Update call to build_compound_literal.
11525         Only fold result for calls to __builtin_* functions.  Strip
11526         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
11527         the function designator.
11528         (convert_arguments): Fold arguments.  Update call to
11529         convert_for_assignment.
11530         (build_unary_op): Handle increment and decrement of
11531         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
11532         decrement earlier.  Fold operand of increment and decrement.
11533         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
11534         built for integer operand.  Wrap returns that are INTEGER_CSTs
11535         without being integer constant expressions or that have integer
11536         constant operands without being INTEGER_CSTs.
11537         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11538         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
11539         result is an integer constant expression or can be used in
11540         unevaluated parts of one and avoid folding and wrap as
11541         appropriate.  Fold operands before possibly doing -Wsign-compare
11542         warnings.
11543         (build_compound_expr): Wrap result for C99 if operands can be used
11544         in integer constant expressions.
11545         (build_c_cast): Update call to digest_init.  Do not ignore
11546         overflow from casting floating-point constants to integers.  Wrap
11547         results that could be confused with integer constant expressions,
11548         null pointer constants or floating-point constants.
11549         (c_cast_expr): Update call to groktypename.  Handle expressions
11550         included in type name.
11551         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
11552         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
11553         Update calls to convert_for_assignment.
11554         (convert_for_assignment): Take new parameter
11555         null_pointer_constant.  Do not strip nops or call
11556         decl_constant_value_for_broken_optimization.  Set
11557         in_late_binary_op for conversions to boolean.
11558         (store_init_value): Update call to digest_init.
11559         (digest_init): Take new parameter null_pointer_constant.  Do not
11560         call decl_constant_value_for_broken_optimization.  pedwarn for
11561         initializers not constant expressions.  Update calls to
11562         convert_for_assignment.
11563         (constructor_nonconst): New.
11564         (struct constructor_stack): Add nonconst element.
11565         (really_start_incremental_init, push_init_level, pop_init_level):
11566         Handle constructor_nonconst and nonconst element.
11567         (set_init_index): Call constant_expression_warning for array
11568         designators.
11569         (output_init_element): Fold value.  Set constructor_nonconst as
11570         applicable.  pedwarn for initializers not constant expressions.
11571         Update call to digest_init.  Call constant_expression_warning
11572         where constant initializers are required.
11573         (process_init_element): Use c_save_expr.
11574         (c_finish_goto_ptr): Fold expression.
11575         (c_finish_return): Fold return value.  Update call to
11576         convert_for_assignment.
11577         (c_start_case): Fold switch expression.
11578         (c_process_expr_stmt): Fold expression.
11579         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
11580         ensure statement expression is not evaluated in constant expression.
11581         (build_binary_op): Track whether results are integer constant
11582         expressions or may occur in such, disable folding and wrap results
11583         as applicable.  Fold operands for -Wsign-compare warnings unless
11584         in_late_binary_op.
11585         (c_objc_common_truthvalue_conversion): Handle results folded to
11586         integer constants that are not integer constant expressions.
11587         * doc/extend.texi: Document when typeof operands are evaluated,
11588         that condition of __builtin_choose_expr is an integer constant
11589         expression, and more about use of __builtin_constant_p in
11590         initializers.
11591
11592 2009-03-29  Richard Guenther  <rguenther@suse.de>
11593
11594         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11595         propagate addresses of array references.
11596
11597 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
11598
11599         * regmove.c (perhaps_ends_bb_p): Remove.
11600         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
11601         from INSN and check that the main loop stays within that basic block.
11602         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11603         (regmove_forward_pass): Split out from regmove_optimize.  Use
11604         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11605         (regmove_backward_pass): Split out from regmove_optimize.  Use
11606         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11607         (regmove_optimize): Simplify.
11608
11609 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
11610
11611         PR target/39545
11612         * config/i386/i386.c (classify_argument): Ignore flexible array
11613         member in struct and warn ABI change.
11614
11615 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
11616
11617         * config/i386/i386-protos.h (ix86_agi_dependent): New.
11618
11619         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11620         (ix86_adjust_cost): Updated.
11621
11622 2009-03-29  Jan Hubicka  <jh@suse.cz>
11623
11624         PR middle-end/28850
11625         * tree-pass.h (pass_cleanup_eh): New function.
11626         (remove_unreachable_regions): Break code handling RTL
11627         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11628         that can not be reached by runtime.
11629         (can_be_reached_by_runtime): New function.
11630         (label_to_region_map): New function.
11631         (num_eh_regions): New function.
11632         (rtl_remove_unreachable_regions): New function.
11633         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11634         (remove_eh_region): New function.
11635         * except.h: Include sbitmap and vecprim.
11636         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11637         num_eh_regions): Declare.
11638         * passes.c (init_optimization_passes): Schedule cleanup_eh.
11639         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
11640         * tree-eh.c (tree_remove_unreachable_handlers): New function.
11641         (tree_empty_eh_handler_p): New function.
11642         (cleanup_empty_eh): New function.
11643         (cleanup_eh): New function.
11644         (pass_cleanup_eh): New function.
11645
11646 2009-03-29  Jan Hubicka  <jh@suse.cz>
11647
11648         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11649         for removed regions.
11650
11651 2009-03-29  Jan Hubicka  <jh@suse.cz>
11652
11653         * except.c (dump_eh_tree): Dump all datastructures.
11654
11655 2009-03-29  Jan Hubicka  <jh@suse.cz>
11656
11657         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11658         (duplicate_eh_regions_1): Likewise.
11659         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11660         vector; call EH verification.
11661         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11662         Be ready for region being removed.
11663
11664 2009-03-29  Jan Hubicka  <jh@suse.cz>
11665
11666         * bitmap.c (bitmap_last_set_bit): New function.
11667         * bitmap.h (bitmap_last_set_bit): Declare.
11668
11669 2009-03-29  David Ayers  <ayers@fsfe.org>
11670
11671         PR objc/27377
11672         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11673         by calling objc_compare_types and surpress warnings about
11674         incompatible C pointers that are compatible ObjC pointers.
11675
11676 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
11677
11678         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11679         call initialize_inline_failed.
11680         (initialize_inline_failed): Move it from here ...
11681         * cgraph.c (initialize_inline_failed): ... to here.
11682         (cgraph_create_edge): Call initialize_inline_failed rather than
11683         setting inline_failed directly.
11684
11685 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11686
11687         PR target/32542
11688         * sysv4.opt (msdata): Improve comment.
11689         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11690         * sysv4.h (SVR4_ASM_SPEC): Likewise.
11691
11692 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11693
11694         PR target/30451
11695         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11696         load and store attributes.
11697
11698 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11699
11700         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11701         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11702         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11703         * doc/extend.texi (X86 Built-in Functions): Add index entries for
11704         __builtin_infq and __builtin_huge_valq.
11705
11706 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
11707
11708         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11709         atmega8m1 devices.
11710         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11711         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11712
11713 2009-03-28  Xinliang David Li  <davidxl@google.com>
11714
11715         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
11716         (do_dbg_cnt): New function.
11717
11718 2009-03-28  Jan Hubicka  <jh@suse.cz>
11719
11720         Merge from pretty-ipa:
11721
11722         2009-03-27  Jan Hubicka  <jh@suse.cz>
11723
11724         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11725         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11726         * passes.c (function_called_by_processed_nodes_p): New.
11727         * ipa-pure-const.c (check_call): Fix handling of operands.
11728         (analyze_function): Dump debug output for skipped bodies.
11729         (local_pure_const): Use function_called_by_processed_nodes_p.
11730         * dwarf2out.c (reference_to_unused): Use output.
11731         * passes.c (do_per_function_toporder): Likewise.
11732
11733         2008-11-12  Jan Hubicka  <jh@suse.cz>
11734
11735         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11736         * ipa-pure-const.c (funct_state_d): Add can throw field; make
11737         state_set_in_source enum
11738         (check_decl): Ignore memory tags; do not set fake looping flags;
11739         dump diagnostics.
11740         (check_operand, check_tree, check_rhs_var, check_lhs_var,
11741         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11742         (check_call, analyze_function): Rewrite.
11743         (check_stmt): New.
11744         (add_new_function): Update call of analyze_function.
11745         (generate_summary): Add call of analyze_function.
11746         (propagate): Propagate can_throw; handle state_set_in_source correctly.
11747         (local_pure_const): New function.
11748         (pass_local_pure_const): New pass.
11749         * ipa-inline.c (inline_transform): Set after_inlining.
11750         * tree-eh.c (stmt_can_throw_external): New.
11751         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11752         work with aliasing built.
11753         * tree-flow.h (stmt_can_throw_external): New.
11754         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11755         and local pure/const pass in early and late optimization queue.
11756
11757 2009-03-28  Martin Jambor  <mjambor@suse.cz>
11758
11759         * fold-const.c (get_pointer_modulus_and_residue): New parameter
11760         allow_func_align.
11761         (fold_binary): Allow function decl aligment consideration is the
11762         second argument is integer constant one.
11763         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11764         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11765         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11766
11767 2009-03-28  Jan Hubicka  <jh@suse.cz>
11768
11769         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11770         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11771         * function.h (rtl_data): Add nothrow flag.
11772         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11773         set DECL_NOTHROW for AVAILABLE functions.
11774
11775 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
11776
11777         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11778         following vector keyword has expansion starting with pixel or bool
11779         keyword, expand vector to __vector and pixel or bool to __pixel or
11780         __bool.
11781
11782         PR c++/39554
11783         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11784         warn_if_disallowed_function_p): Removed.
11785         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11786         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11787         warning_if_disallowed_function_p.
11788         * flags.h (warn_if_disallowed_function_p,
11789         warn_disallowed_functions): Removed.
11790         * common.opt (Wdisallowed-function-list=): Removed.
11791         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11792
11793 2009-03-28  Richard Guenther  <rguenther@suse.de>
11794
11795         PR tree-optimization/38723
11796         * tree-ssa-pre.c (compute_avail): Add all default definitions to
11797         the entry block.
11798
11799 2009-03-28  Jan Hubicka  <jh@suse.cz>
11800
11801         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11802         test introduced by my previous patch.
11803
11804 2009-03-28  Richard Guenther  <rguenther@suse.de>
11805
11806         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11807         the PHIs value undefined.
11808
11809 2009-03-28  Jan Hubicka  <jh@suse.cz>
11810
11811         * tree-pass.h (pass_fixup_cfg): New pass.
11812         * ipa-inline.c (inline_transform): Set
11813         always_inline_functions_inlined/after_inlining.
11814         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11815         (pass_fixup_cfg): New pass.
11816         * passes.c (init_optimization_passes): Add fixup_cfg.
11817
11818 2009-03-28  Richard Guenther  <rguenther@suse.de>
11819
11820         PR tree-optimization/38458
11821         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11822         argument use the arguments copy-of value.
11823
11824 2009-03-28  Richard Guenther  <rguenther@suse.de>
11825
11826         PR tree-optimization/38180
11827         * tree-ssa-ccp.c (get_default_value): Simplify.
11828         (likely_value): Likewise.
11829         (surely_varying_stmt_p): Properly handle VOP case.
11830         (ccp_initialize): Likewise.
11831         (ccp_fold): Handle propagating through *&.
11832         (fold_const_aggregate_ref): Also handle decls.
11833
11834 2009-03-28  Jan Hubicka  <jh@suse.cz>
11835
11836         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11837         * cgraph.h (cgraph_node): Likewise.
11838         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11839         (cgraph_reset_node): Use process flag.
11840         (cgraph_mark_functions_to_output): Likewise.
11841         (cgraph_expand_function): Likewise.
11842         (cgraph_expand_all_functions): Likewise.
11843         (cgraph_output_in_order): Likewise.
11844         * dwarf2out.c (reference_to_unused): Likewise.
11845         * passes.c do_per_function_toporder): Likewise.
11846
11847 2009-03-28  Jan Hubicka  <jh@suse.cz>
11848
11849         Bring from lto-branch:
11850
11851         2008-09-03  Doug Kwan  <dougkwan@google.com>
11852
11853         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11854         enums instead of reason strings.
11855         * cgraph.c (cgraph_create_edge): Same.
11856         (cgraph_inline_failed_string): New function.
11857         * cgraph.h (cgraph_inline_failed_t): New enum type.
11858         (cgraph_inline_failed_string): New prototype.
11859         (struct cgraph_edge): Change type of INLINED_FAILED from constant
11860         char pointer to cgraph_inline_failed_t.
11861         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11862         (cgraph_default_inline_p): Ditto.
11863         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
11864         to cgraph_inline_failed_t pointer.
11865         * cif-code.def: New file.
11866         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11867         reason string.
11868         (cgraph_check_inline_limits): Change type of REASON to pointer to
11869         cgraph_inline_failed_t.  Replace reason strings with enums.
11870         (cgraph_default_inline_p): Ditto.
11871         (cgraph_recursive_inlining_p): Ditto.
11872         (update_caller_keys): Change type of FAILED_REASON to
11873         cgraph_inline_failed_t.
11874         (cgraph_set_inline_failed): Change type of REASON to pointer to
11875         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
11876         convert enums to strings for text output.
11877         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11878         to be of type cgraph_inline_failed_t.  Replace reason strings with
11879         enums.  Call cgraph_inline_failed_string to covert enums
11880         to strings for text output.
11881         (cgraph_decide_inlining): Replace reason strings with enums.
11882         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11883         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
11884         for text output.
11885         * tree-inline.c (expand_call_inline): Change type of REASON
11886         to cgraph_inline_failed_t.  Replace reason strings with enums.
11887         Call cgraph_inline_failed_string for text output.
11888         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11889         (cgraph.o): Ditto.
11890
11891 2009-03-28  Jan Hubicka  <jh@suse.cz>
11892
11893         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11894         cgraph_clone_node): Remove master clone handling.
11895         (cgraph_is_master_clone, cgraph_master_clone): Remove.
11896         * cgraph.h (master_clone): Remove.
11897         (cgraph_is_master_clone, cgraph_master_clone): Remove.
11898         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11899         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11900
11901 2009-03-28  Jan Hubicka  <jh@suse.cz>
11902
11903         * cgraph.c (cgraph_function_body_availability): Functions declared
11904         inline are always safe to assume that it is not going to be replaced.
11905
11906 2009-03-28  Richard Guenther  <rguenther@suse.de>
11907
11908         PR tree-optimization/38513
11909         * tree-ssa-pre.c (eliminate): Remove redundant stores.
11910         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11911         EXC_PTR_EXPR and FILTER_EXPR.
11912         (get_ref_from_reference_ops): Likewise.
11913
11914 2009-03-28  Richard Guenther  <rguenther@suse.de>
11915
11916         PR tree-optimization/38968
11917         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11918         Use FLOOR_MOD_EXPR to compute misalignment.
11919
11920 2009-03-28  Richard Guenther  <rguenther@suse.de>
11921
11922         PR tree-optimization/37795
11923         * tree.h (combine_comparisons): Declare.
11924         * fold-const.c (combine_comparisons): Export.
11925         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11926         comparisons.
11927         (ifcombine_iforif): Use combine_comparisons.
11928
11929 2009-03-28  Jan Hubicka  <jh@suse.cz>
11930
11931         * tree-eh.c (inlinable_call_p): New function.
11932         (make_eh_edges): Use it.
11933         (verify_eh_edges): Use it.
11934         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11935         * except.c (reachable_next_level): Add inlinable_function argument
11936         (sjlj_find_directly_reachable_regions): Update.
11937         (add_reachable_handler): Do not set saw_any_handlers.
11938         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11939         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11940         Add new inlinable call parameter.
11941         (can_throw_internal, can_throw_external): Update.
11942         * except.h (can_throw_internal_1, can_throw_external_1,
11943         foreach_reachable_handler): Update declaration.
11944
11945 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
11946
11947         * config/arm/t-arm-coff, config/h8300/coff.h,
11948         config/i386/i386-aout.h, config/i386/i386-coff.h,
11949         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11950         config/pdp11/2bsd.h, config/rs6000/aix41.h,
11951         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11952         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11953         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11954         sys-types.h: Remove.
11955         * Makefile.in: Remove protoize and fixproto support and references
11956         in comments.
11957         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11958         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11959         Remove.
11960         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11961         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11962         unprotoize$(exeext).
11963         (rest.encap): Don't depend on $(STMP_FIXPROTO)
11964         (.PHONY): Don't depend on proto.
11965         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11966         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11967         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11968         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11969         build/gen-protos.o, build/scan.o, xsys-protos.h,
11970         build/fix-header$(build_exeext), build/fix-header.o,
11971         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11972         stmp-install-fixproto): Remove.
11973         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11974         SYSCALLS.c or fixproto files.
11975         (install-common): Don't install protoize.
11976         (install-headers-tar, install-headers-cpio, install-headers-cp):
11977         Don't depend on $(STMP_FIXPROTO).
11978         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
11979         install fixproto files or write out fixproto settings.
11980         (uninstall): Don't uninstall protoize.
11981         * config.gcc (use_fixproto): Remove.
11982         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11983         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11984         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11985         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11986         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11987         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11988         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11989         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11990         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11991         * config/t-vxworks (STMP_FIXPROTO): Remove.
11992         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11993         STMP_FIXPROTO): Remove.
11994         * config.in, configure: Regenerate.
11995         * crtstuff.c (gid_t, uid_t): Don't undefine.
11996         * doc/install.texi: Change m68k-coff to m68k-elf in example.
11997         (arm-*-coff, arm-*-aout: Remove target entries.
11998         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11999         Remove mention of AIX 4.1.
12000         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12001         * doc/invoke.texi (Running Protoize): Remove.
12002         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12003         (Protoize Caveats): Remove.
12004         * tsystem.h: Update comments on headers assumed to exist.
12005
12006 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
12007
12008         * genautomata.c: Add a new year to the copyright.  Add a new
12009         reference.
12010         (struct insn_reserv_decl): Add comments for member bypass_list.
12011         (find_bypass): Remove.
12012         (insert_bypass): New.
12013         (process_decls): Use insert_bypass.
12014         (output_internal_insn_latency_func): Output all bypasses with the
12015         same input insn in one switch case.
12016
12017         * rtl.def (define_bypass): Describe bypass choice.
12018         * doc/md.texi (define_bypass): Ditto.
12019
12020 2009-03-27  Richard Guenther  <rguenther@suse.de>
12021
12022         * gimplify.c (mark_addressable): Export.
12023         * tree-flow.h (mark_addressable): Declare.
12024         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12025         * tree-ssa.c (verify_phi_args): Verify that address taken
12026         variables have TREE_ADDRESSABLE set.
12027
12028 2009-03-27  Richard Guenther  <rguenther@suse.de>
12029
12030         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12031         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
12032         Do not mark decls TREE_ADDRESSABLE.
12033         (build_fold_addr_expr): Adjust.
12034         (fold_addr_expr): Remove.
12035         (fold_unary): Use build_fold_addr_expr.
12036         (fold_comparison): Likewise.
12037         (split_address_to_core_and_offset): Likewise.
12038         * coverage.c (tree_coverage_counter_addr): Mark the array decl
12039         TREE_ADDRESSABLE.
12040         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12041         (gimplify_modify_expr_to_memcpy): Mark source and destination
12042         addressable.
12043         * omp-low.c (create_omp_child_function): Mark the object decl
12044         TREE_ADDRESSABLE.
12045         (lower_rec_input_clauses): Mark the var we take the address of
12046         TREE_ADDRESSABLE.
12047         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12048
12049 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12050
12051         PR middle-end/39315
12052         * cfgexpand.c (expand_one_stack_var_at): Change alignment
12053         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12054
12055 2009-03-27  Richard Guenther  <rguenther@suse.de>
12056
12057         PR tree-optimization/39120
12058         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12059         constraints.
12060         (handle_lhs_call): Process return constraints.  Add escape
12061         constraints if necessary.
12062         (handle_const_call): Fill out return constraints.  Make nested
12063         case more precise.  Avoid consttmp if possible.
12064         (handle_pure_call): Fill out return constraints.  Avoid
12065         callused if possible.
12066         (find_func_aliases): Simplify call handling.
12067
12068 2009-03-27  Richard Guenther  <rguenther@suse.de>
12069
12070         PR tree-optimization/39120
12071         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12072         as a representative.
12073         (solve_graph): Do propagate CALLUSED.
12074         (handle_pure_call): Use a scalar constraint from CALLUSED for
12075         the return value.
12076         (find_what_p_points_to): CALLUSED shall not appear in poins-to
12077         solutions.
12078
12079 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12080
12081         PR c/39323
12082         * c-common.c (handle_aligned_attribute): Properly check alignment
12083         overflow.  Use (1U << i) instead of (1 << i).
12084
12085         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
12086
12087         * expr.h (get_mem_align_offset): Updated.
12088
12089         * tree.h (tree_decl_common): Change align to "unsigned int" and
12090         move it before pointer_alias_set.
12091
12092 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12093             Jakub Jelinek  <jakub@redhat.com>
12094
12095         PR target/38034
12096         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12097         gr_register_operand with gr_reg_or_0_operand.
12098         (cmpxchg_rel_di): Likewise.
12099         (sync_lock_test_and_set<mode>): Likewise.
12100
12101 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12102
12103         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12104         (true_regnum): Likewise.
12105
12106         * rtlanal.c (subreg_info): Moved to ...
12107         * rtl.h (subreg_info): Here.  New.
12108         (subreg_get_info): New.
12109
12110         * rtlanal.c (subreg_get_info): Make it extern.
12111
12112 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12113
12114         PR target/39472
12115         * config/i386/i386.c (ix86_abi): New.
12116         (override_options): Handle -mabi=.
12117         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
12118         (ix86_call_abi_override): Likewise.
12119         (init_cumulative_args): Likewise.
12120         (function_arg_advance): Likewise.
12121         (function_arg_64): Likewise.
12122         (function_arg): Likewise.
12123         (ix86_pass_by_reference): Likewise.
12124         (ix86_function_value_regno_p): Likewise.
12125         (ix86_build_builtin_va_list_abi): Likewise.
12126         (setup_incoming_varargs_64): Likewise.
12127         (is_va_list_char_pointer): Likewise.
12128         (ix86_init_machine_status): Likewise.
12129         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
12130         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
12131         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
12132         (ix86_function_abi): Make it static and return enum calling_abi.
12133         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
12134         with ix86_abi.
12135         (ix86_fn_abi_va_list): Updated.
12136
12137         * config/i386/i386.h (ix86_abi): New.
12138         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12139         (CONDITIONAL_REGISTER_USAGE): Likewise.
12140         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12141         (machine_function): Likewise.
12142
12143         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12144         with ix86_abi.
12145         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12146         (STACK_BOUNDARY): Likewise.
12147         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12148
12149         * config/i386/i386.opt (mabi=): New.
12150
12151         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12152         return enum calling_abi.
12153         (ix86_function_type_abi): Likewise.
12154         (ix86_function_abi): Removed.
12155
12156         * doc/invoke.texi: Document -mabi= option for x86.
12157
12158 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12159
12160         * builtins.c (real_dconstp): Delete.
12161         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12162
12163 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
12164             Jakub Jelinek  <jakub@redhat.com>
12165
12166         PR debug/37959
12167         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12168         (gen_subprogram_die): When a function is explicit, generate the
12169         DW_AT_explicit attribute.
12170         * langhooks.h (struct lang_hooks_for_decls): Add
12171         function_decl_explicit_p langhook.
12172         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12173         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12174
12175 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
12176
12177         * builtins.c (fold_builtin_memory_op): Optimize memmove
12178         into memcpy if we can prove source and destination don't overlap.
12179
12180         * tree-inline.c: Include gt-tree-inline.h.
12181         (clone_fn_id_num): New variable.
12182         (clone_function_name): New function.
12183         (tree_function_versioning): Use it.
12184         * Makefile.in (GTFILES): Add tree-inline.c.
12185
12186 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
12187
12188         * BASE-VER: Change to 4.5.0.
12189
12190 2009-03-27  Xinliang David Li  <davidxl@google.com>
12191
12192         PR tree-optimization/39557
12193         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12194
12195 2009-03-27  Xinliang David Li  <davidxl@google.com>
12196
12197         PR tree-optimization/39548
12198         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
12199         candidate check.
12200
12201 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12202
12203         * c-common.c (pointer_int_sum): Use %wd on return from
12204         tree_low_cst.
12205
12206 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12207
12208         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12209         on return from tree_low_cst.
12210
12211 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12212
12213         PR c++/36799
12214         * ginclude/stdarg.h (va_copy): Define also for
12215         __GXX_EXPERIMENTAL_CXX0X__.
12216
12217 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12218
12219         PR c++/35652
12220         * builtins.h (c_strlen): Do not warn here.
12221         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12222         * c-common.c (pointer_int_sum): Take an explicit location.
12223         Warn about offsets out of bounds.
12224         * c-common.h (pointer_int_sum): Adjust declaration.
12225
12226 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12227
12228         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12229         markup glitch.
12230
12231 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
12232
12233         PR c++/39554
12234         * opts.c (warn_if_disallowed_function_p): Don't assume
12235         get_callee_fndecl must return non-NULL.
12236
12237 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
12238
12239         PR rtl-optimization/39522
12240         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12241         when reg_reloaded_valid is set.
12242
12243 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12244
12245         * config/spu/divv2df3.c: New file.
12246         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12247         (DPBIT_FUNCS): Filter out _div_df.
12248
12249 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
12250
12251         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12252         a jump insn, count that jump in the distance to the loop start.
12253
12254 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12255
12256         PR target/39523
12257         * config/sh/sh.c (calc_live_regs): Fix condition for global
12258         registers except PIC_OFFSET_TABLE_REGNUM.
12259
12260 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
12261
12262         PR/39518
12263         * doc/invoke.texi (-mconsole): New.
12264         (-mcygwin): New.
12265         (-mno-cygwin): New.
12266         (-mdll): New.
12267         (-mnop-fun-dllimport): New.
12268         (-mthread): New.
12269         (-mwin32): New.
12270         (-mwindows): New.
12271         (sub section "i386 and x86-64 Windows Options"): New.
12272
12273 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
12274
12275         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12276         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12277
12278 2009-03-25  Richard Guenther  <rguenther@suse.de>
12279
12280         PR middle-end/39497
12281         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12282         of -Wno-error.
12283
12284 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
12285
12286         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12287         neither of haifa/selective schedulers are working.
12288
12289 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12290
12291         * doc/invoke.texi (Debugging Options): Fix description of
12292         -fno-merge-debug-strings.
12293
12294 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
12295
12296         * config/cris/libgcc.ver: New version-script.
12297         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12298
12299         * configure.ac <GAS features, nop mnemonic>: Add pattern
12300         crisv32-*-* for "nop".
12301         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
12302         * configure: Regenerate.
12303
12304 2009-03-24  Ira Rosen  <irar@il.ibm.com>
12305
12306         PR tree-optimization/39529
12307         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12308         mark_sym_for_renaming for the tag copied to the new vector
12309         pointer.
12310
12311 2009-03-24  Arthur Loiret  <aloiret@debian.org>
12312
12313         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
12314         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12315         EXTRA_SPEC_FUNCTIONS.
12316         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12317         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12318         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12319         -march and -mtune options.
12320
12321 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
12322
12323         * config/m68k/t-rtems: Add m5329 multilib.
12324
12325 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
12326             Jakub Jelinek  <jakub@redhat.com>
12327
12328         PR debug/39524
12329         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12330         nodes.
12331
12332 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
12333
12334         PR c/39495
12335         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12336         instead of c_parser_expression_conv, if original_code isn't one of the
12337         4 allowed comparison codes, fail.
12338
12339 2009-03-23  Richard Guenther  <rguenther@suse.de>
12340
12341         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12342         * tree.h (struct tree_type): Likewise.
12343         * reload.h (struct insn_chain): Likewise.
12344         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12345         * function.h (struct function): Likewise.
12346         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12347
12348 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
12349
12350         PR tree-optimization/39516
12351         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12352
12353 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
12354
12355         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
12356         should be set true if BITS_PER_WORD of target is bigger than 32
12357
12358 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
12359
12360         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12361         Translate -B-options to -rpath-link.  Correct existing
12362         rpath-link and conditionalize on !nostdlib.
12363
12364 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12365
12366         * doc/extend.texi (Function Attributes, Variable Attributes):
12367         Fix typos.
12368         * doc/invoke.texi (Debugging Options, Optimize Options)
12369         (i386 and x86-64 Options, MCore Options): Likewise.
12370
12371 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
12372
12373         PR debug/37890
12374         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12375         it for block local namespace aliases.
12376         (gen_decl_die): Pass context_die to gen_namespace_die.
12377
12378 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
12379
12380         PR c/39495
12381         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12382         minimum or maximum value.
12383
12384 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
12385
12386         * reginfo.c (globalize_reg): Recompute derived reg sets.
12387
12388 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
12389
12390         PR target/39063
12391         * libgcc2.c (mprotect): Do not use signed arguments for
12392         VirtualProtect, use DWORD arguments.  Also fix the 'may
12393         be used uninitialized' warning for the np variable.
12394
12395 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
12396
12397         PR target/39496
12398         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12399         functions using regparm calling conventions when not optimizing.
12400         (ix86_function_sseregparm): Similarly for sseregparm calling
12401         conventions.
12402
12403 2009-03-19  Li Feng  <nemokingdom@gmail.com>
12404
12405         PR middle-end/39500
12406         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12407         dependence if the first conflict is after niter iterations.
12408
12409 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
12410
12411         PR middle-end/38609
12412         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12413         functions with dynamic stack-pointer adjustments.
12414
12415 2009-03-19  Ben Elliston  <bje@au.ibm.com>
12416
12417         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12418         option; change to -msdata=data.
12419
12420 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12421
12422         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12423         and -fopenmp.
12424
12425 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
12426
12427         PR target/35180
12428         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12429
12430 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
12431
12432         * doc/invoke.texi (Code Gen Options): Expand discussion of
12433         -fno-common.
12434
12435 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
12436
12437         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12438         * matrix-reorg.c (struct matrix_info): Likewise.
12439         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12440         * rtl.h (struct mem_attrs): Likewise.
12441         * df.h (struct df): Likewise.
12442         * tree-data-ref.h (struct data_dependence_relation): Likewise.
12443         * ira-int.h (struct ira_allocno): Likewise.
12444         * df-scan.c (struct df_collection_rec): Likewise.
12445         * ira.c (struct equivalence): Likewise.
12446         * function.c (struct temp_slot): Likewise.
12447         * cfgloop.h (struct loop): Likewise.
12448
12449         PR debug/39485
12450         * function.c (use_register_for_decl): When not optimizing, disregard
12451         register keyword for variables with types containing methods.
12452
12453 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
12454
12455         PR middle-end/39447
12456         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12457         (is_simple_operand): Call contains_component_ref_p before calling data
12458         reference analysis that would fail on COMPONENT_REFs.
12459
12460         * tree-vrp.c (search_for_addr_array): Fix formatting.
12461
12462 2009-03-18  Richard Guenther  <rguenther@suse.de>
12463
12464         * tree-vect-transform.c (vect_loop_versioning): Fold the
12465         generated comparisons.
12466         * tree-vectorizer.c (set_prologue_iterations): Likewise.
12467         (slpeel_tree_peel_loop_to_edge): Likewise.
12468
12469 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12470
12471         PR middle-end/37805
12472         * opts.c (print_specific_help): In addition to `undocumented',
12473         accept `separate' and `joined' flags if passed alone.  Describe
12474         output by the first matched one of those.
12475         (common_handle_option): Skip over empty strings.
12476         * gcc.c (display_help): Fix help string for `--help='.
12477         * doc/invoke.texi (Option Summary, Overall Options): With
12478         `--help=', classes and qualifiers can both be repeated, but
12479         only the latter can be negated.  One should not pass only
12480         negated qualifiers.  Fix markup and examples.
12481
12482         Revert
12483         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
12484         PR middle-end/37805
12485         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12486         and -fhelp=separate.
12487
12488 2009-03-17  Jing Yu  <jingyu@google.com>
12489
12490         PR middle-end/39378
12491         * function.h (struct rtl_data): Move is_thunk from here...
12492         (struct function): ...to here.
12493         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
12494         * varasm.c (assemble_start_function): Change is_thunk from crtl to
12495         cfun.
12496         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12497         cfun.
12498         (alpha_does_function_need_gp, alpha_start_function): Likewise.
12499         (alpha_output_function_end_prologue): Likewise.
12500         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12501         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12502         (rs6000_output_function_epilogue): Likewise.
12503         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
12504
12505 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
12506
12507         PR target/39482
12508         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12509         from different units in a single alternative.
12510         (*truncdfsf_i387): Ditto.
12511         (*truncxfsf2_mixed): Ditto.
12512         (*truncxfdf2_mixed): Ditto.
12513
12514 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
12515
12516         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12517         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12518
12519         PR debug/39474
12520         * tree-ssa-live.c (remove_unused_locals): Don't remove local
12521         unused non-artificial variables when not optimizing.
12522
12523         PR debug/39471
12524         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12525         DW_TAG_imported_module even if decl is IMPORTED_DECL with
12526         NAMESPACE_DECL in its DECL_INITIAL.
12527
12528         PR middle-end/39443
12529         * optabs.c (set_user_assembler_libfunc): New function.
12530         * expr.h (set_user_assembler_libfunc): New prototype.
12531         * c-common.c: Include libfuncs.h.
12532         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12533         for memcmp, memset, memcpy, memmove and abort.
12534         * Makefile.in (c-common.o): Depend on libfuncs.h.
12535
12536         PR debug/39412
12537         * dwarf2out.c (gen_inlined_enumeration_type_die,
12538         gen_inlined_structure_type_die, gen_inlined_union_type_die,
12539         gen_tagged_type_instantiation_die): Removed.
12540         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12541         do nothing.
12542
12543 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
12544
12545         PR testsuite/38526
12546         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12547         its use.
12548         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12549         (check-parallel-%): Ditto.
12550         (check-consistency): Ditto.
12551
12552 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
12553
12554         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12555         local variable rhs by NULL_TREE.
12556
12557 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12558
12559         PR target/39477
12560         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
12561
12562 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12563
12564         PR target/39476
12565         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
12566
12567 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12568
12569         PR target/39473
12570         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12571         for ms->sysv ABI calls only in 64bit mode.
12572
12573         * config/i386/i386.md (untyped_call): Support 32bit.
12574
12575 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
12576
12577         * doc/extend.texi: Replace x86_65 with x86_64.
12578
12579 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
12580
12581         PR tree-optimization/39455
12582         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12583         mismatches for POINTER_TYPE_P (type).
12584         (number_of_iterations_le): Likewise.
12585
12586 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
12587
12588         * config/picochip/picochip.c: Removed profiling support.
12589         * config/picochip/picochip.md: Removed profiling instruction.
12590         * config/picochip/picochip.h: Removed profiling builtin.
12591
12592 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
12593
12594         * doc/install.texi (--with-host-libstdcxx): Document.
12595
12596 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
12597
12598         PR target/34299
12599         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12600         generate a warning if the function name does not begin with
12601         "__vector" and the function has either the 'signal' or 'interrupt'
12602         attribute, from here to ...
12603         (avr_declare_function_name): ...here. New function.
12604         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12605         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12606
12607 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
12608
12609         PR bootstrap/39454
12610         * cse.c (fold_rtx): Don't modify original const_arg1 when
12611         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12612         separate variable instead.
12613         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12614         from out of range shift counts.
12615         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12616
12617 2009-03-13  Catherine Moore  <clm@codesourcery.com>
12618
12619         * config/i386/x-mingw32 (host-mingw32.o): Replace
12620         diagnostic.h with $(DIAGNOSTIC_H).
12621
12622 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
12623
12624         PR target/39431
12625         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12626         predicate.
12627         * config/i386/sync.md (sync_compare_and_swap<mode>,
12628         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12629         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12630         into a register.
12631         (sync_double_compare_and_swapdi_pic,
12632         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12633         cmpxchg8b_pic_memory_operand instead of just memory_operand.
12634
12635 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12636
12637         PR target/39445
12638         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
12639
12640 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12641
12642         PR target/39327
12643         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12644         (avx_addsubv4df3): Likewise.
12645         (*avx_addsubv4sf3): Likewise.
12646         (sse3_addsubv4sf3): Likewise.
12647
12648 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12649
12650         PR target/38824
12651         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
12652
12653 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
12654
12655         PR debug/39432
12656         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12657         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12658         registers for allocnos created from user-defined variables.
12659
12660 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12661
12662         PR target/39181
12663         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12664         of non-integer mode as well.
12665
12666 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
12667
12668         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12669         for functions for which the parameter types are unknown.
12670
12671 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
12672
12673         PR target/39137
12674         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
12675         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12676         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12677         * config/i386/i386.c (ix86_local_alignment): For
12678         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12679         long long variables on the stack to avoid dynamic realignment.
12680         Allow the first argument to be a decl rather than type.
12681         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12682
12683 2009-03-11  Nick Clifton  <nickc@redhat.com>
12684
12685         PR target/5362
12686         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12687         options.
12688         Add description to mno-lsim option.
12689         * config/mcore/mcore.h: Remove comment about deprecated m4align
12690         option.
12691         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12692         * doc/invoke.texi: Add description of mno-lsim and
12693         mstack-increment options.
12694
12695         * config/fr30/fr30.opt: Document the -mno-lsim option.
12696         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12697         and -mno-lsim options.
12698
12699 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12700
12701         * fold-const.c (fold_comparison): Only call fold_inf_compare
12702         if the mode supports infinities.
12703
12704 2009-03-11  Jason Merrill  <jason@redhat.com>
12705
12706         PR debug/39086
12707         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12708         end already did.  Notice GIMPLE_CALL modifications of the result.
12709         Don't copy debug information from an ignored decl or a decl from
12710         another function.
12711
12712 2009-03-10  Richard Guenther  <rguenther@suse.de>
12713             Nathan Froyd  <froydnj@codesourcery.com>
12714
12715         PR middle-end/37850
12716         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
12717         (__divMODE3): Likewise.
12718
12719 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
12720
12721         PR tree-optimization/39394
12722         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12723         DECL_SIZE_UNIT of variable length FIELD_DECLs.
12724
12725 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12726
12727         * recog.c (verfiy_changes): Disallow renaming of hard regs in
12728         inline asms for register asm ("") declarations.
12729
12730 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
12731
12732         * fold-const.c (fold_unary): Fix comment.
12733
12734 2009-03-07  Jan Hubicka  <jh@suse.cz>
12735
12736         PR target/39361
12737         * tree-inline.c (setup_one_parameter): Do replacement of const
12738         argument by constant in SSA form.
12739
12740 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12741
12742         PR middle-end/38028
12743         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12744         determine alignment passed to assign_stack_local.
12745         (assign_parms_unsplit_complex): Likewise.
12746         * except.c (sjlj_build_landing_pads): Likewise.
12747
12748 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
12749
12750         PR middle-end/39360
12751         * tree-flow.h (add_referenced_var): Return bool instead of void.
12752         * tree-dfa.c (add_referenced_var): Return result of
12753         referenced_var_check_and_insert call.
12754         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12755         of referenced_var_check_and_insert.
12756
12757         PR debug/39372
12758         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
12759         (gen_variable_die): Emit DW_AT_location on abstract static variable's
12760         DIE, don't emit it if abstract origin already has it.
12761         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12762         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12763
12764 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12765
12766         * genpreds.c (needs_variable): Fix parentheses at variable name
12767         detection.
12768         (write_tm_constrs_h): Indent generated code.
12769
12770 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12771
12772         * doc/extend.texi (Function Attributes): Add documentation
12773         for isr attributes.
12774
12775 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
12776
12777         PR debug/39387
12778         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12779         take locus from its DECL_SOURCE_LOCATION instead of input_location.
12780
12781 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
12782
12783         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12784         the loop as bad.
12785
12786 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
12787
12788         PR debug/39379
12789         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12790         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12791
12792 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
12793
12794         * config/i386/i386.md (R8_REG, R9_REG): New constants.
12795         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12796         constants instead of magic numbers.
12797         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12798         (QI_REG_P): Ditto.
12799         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12800         (x86_64_ms_abi_int_parameter_registers): Ditto.
12801         (x86_64_int_return_registers): Ditto.
12802         (ix86_maybe_switch_abi): Ditto.
12803         (ix86_expand_call): Ditto for clobbered_registers array.
12804         (ix86_hard_regno_mode_ok): Ditto.
12805         (x86_extended_QIreg_mentioned_p): Ditto.
12806
12807 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
12808
12809         PR tree-optimization/39349
12810         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12811
12812         * combine.c (gen_lowpart_for_combine): Use omode when generating
12813         clobber.
12814
12815 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
12816
12817         PR rtl-optimization/39235
12818         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12819
12820 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
12821
12822         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12823
12824 2009-03-04  Richard Guenther  <rguenther@suse.de>
12825
12826         PR tree-optimization/39362
12827         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12828         that occur in abnormal PHIs should be varying.
12829
12830 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
12831
12832         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12833         Extend comments.
12834         (simple_iv):  Take loop as an argument instead of statement.
12835         * tree-scalar-evolution.h (simple_iv): Declaration changed.
12836         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12837         to simple_iv.
12838         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12839         Ditto.
12840         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12841         * matrix-reorg.c (analyze_transpose): Ditto.
12842         * tree-data-ref.c (dr_analyze_innermost): Ditto.
12843         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12844         * tree-predcom.c (ref_at_iteration): Ditto.
12845         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12846
12847 2009-03-04  Richard Guenther  <rguenther@suse.de>
12848
12849         PR tree-optimization/39358
12850         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12851         escaped_id and callused_id.
12852         (solve_graph): Likewise.
12853
12854 2009-03-04  Richard Guenther  <rguenther@suse.de>
12855
12856         PR tree-optimization/39339
12857         * tree-sra.c (try_instantiate_multiple_fields): Make it
12858         no longer ICE on the above.
12859
12860 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
12861
12862         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12863         that fits within Pmode.
12864
12865 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
12866
12867         PR middle-end/10109
12868         * tm.texi (LIBCALL_VALUE): Update description.
12869
12870 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
12871
12872         PR middle-end/34443
12873         * doc/extend.texi (section): Update description.
12874
12875 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
12876
12877         PR middle-end/39345
12878         * tree-inline.c (remapped_type): New.
12879         (can_be_nonlocal): Call remapped_type instead of remap_type.
12880
12881 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
12882
12883         PR fortran/39354
12884         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12885         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12886
12887 2009-03-03  Richard Guenther  <rguenther@suse.de>
12888
12889         PR middle-end/39272
12890         * tree.c (tree_nonartificial_location): New function.
12891         * tree.h (tree_nonartificial_location): Declare.
12892         * builtins.c (expand_builtin_memory_chk): Provide location
12893         of the call location for artificial function pieces.
12894         (maybe_emit_chk_warning): Likewise.
12895         (maybe_emit_sprintf_chk_warning): Likewise.
12896         (maybe_emit_free_warning): Likewise.
12897         * expr.c (expand_expr_real_1): Likewise.
12898
12899 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
12900
12901         PR tree-optimization/39343
12902         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12903         COMPONENT_REF t has ARRAY_TYPE.
12904
12905 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
12906
12907         PR middle-end/39335
12908         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12909         when the type precision of the induction variable should be
12910         larger than the type precision of nit.
12911         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12912         * graphite.c (graphite_loop_normal_form): Same.
12913         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12914
12915 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
12916
12917         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12918         (*call_1_rex64_ms_sysv): Use named constants instead of magic
12919         numbers to describe clobbered registers.
12920         (*call_value_0_rex64_ms_sysv): Ditto.
12921         * config/i386/mmx.md (mmx_emms): Ditto.
12922         (mmx_femms): Ditto.
12923
12924 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
12925
12926         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12927         of ABI_64.
12928
12929 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12930
12931         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12932         (spu_section_type_flags): New function.
12933
12934 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
12935
12936         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12937         reg_class_contents of FLOAT_REGS into a temporary.
12938
12939 2009-03-02  Richard Guenther  <rguenther@suse.de>
12940             Ira Rosen  <irar@il.ibm.com>
12941
12942         PR tree-optimization/39318
12943         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12944         information to the vectorized statement.
12945
12946 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
12947
12948         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12949         variable.  Use defined names instead of magic constants for REX SSE
12950         registers.
12951
12952 2009-03-01  Richard Guenther  <rguenther@suse.de>
12953
12954         PR tree-optimization/39331
12955         * omp-low.c (lower_send_shared_vars): Do not receive new
12956         values for the reference of DECL_BY_REFERENCE parms or results.
12957
12958 2009-03-01  Jan Hubicka  <jh@suse.cz>
12959
12960         PR debug/39267
12961         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12962         BLOCK_NONLOCALIZED_VAR): New macros.
12963         (tree_block): Add nonlocalized_vars.
12964         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12965         gen_decl_die): Add origin argument.  Allow generation of die with
12966         origin at hand only.
12967         (gen_member_die, gen_type_die_with_usage, force_decl_die,
12968         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12969         of gen_*.
12970         (gen_block_die): Fix checking for unused blocks.
12971         (process_scope_var): Break out from .... ; work with origins only.
12972         (decls_for_scope) ... here; process nonlocalized list.
12973         (dwarf2out_ignore_block): Look for nonlocalized vars.
12974         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12975         vars.
12976         (dump_scope_block): Dump them.
12977         * tree-inline.c (remap_decls): Handle nonlocalized vars.
12978         (remap_block): Likewise.
12979         (can_be_nonlocal): New predicate.
12980         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12981
12982 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12983
12984         * configure: Regenerate.
12985
12986 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12987
12988         * optc-gen.awk: No need to duplicate option flags twice.
12989         Reuse help texts for duplicate options which do not have any.
12990
12991         * gcc.c (display_help): Document --version.
12992
12993         * gcc.c (main): If print_help_list and verbose_flag, ensure
12994         driver output comes before subprocess output.
12995
12996         * optc-gen.awk: Assign all remaining fields to help string,
12997         space-separated, for multi-line help in *.opt.
12998
12999         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13000         -Wno-pedantic-ms-format is for MinGW targets only.
13001
13002         * doc/options.texi (Option file format): Fix bad indentation,
13003         restoring dropped sentence.
13004
13005 2009-02-28  Jan Hubicka  <jh@suse.cz>
13006
13007         * tree-inline.c (tree_function_versioning): Output debug info.
13008
13009 2009-02-28  Jan Hubicka  <jh@suse.cz>
13010
13011         PR debug/39267
13012         * tree-inline.c (setup_one_parameter): Do not copy propagate
13013         arguments when not optimizing.
13014
13015 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13016
13017         PR target/39327
13018         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13019         (avx_addsubv4df3): Likewise.
13020         (*avx_addsubv4sf3): Likewise.
13021         (sse3_addsubv4sf3): Likewise.
13022         (*avx_addsubv2df3): Likewise.
13023         (sse3_addsubv2df3): Likewise.
13024         (avx_unpckhps256): Correct item selectors.
13025         (avx_unpcklps256): Likewise.
13026         (avx_unpckhpd256): Likewise.
13027         (avx_unpcklpd256): Likewise.
13028
13029 2009-02-28  Jan Hubicka  <jh@suse.cz>
13030
13031         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13032         static vars.
13033         (copy_arguments_for_versioning): If var is declared don't declare it.
13034         (tree_function_versioning): First setup substitutions and then copy
13035         args.
13036
13037 2009-02-27  Jan Hubicka  <jh@suse.cz>
13038
13039         PR debug/39267
13040         * cgraph.h (varpool_output_debug_info): Remove.
13041         * cgraphunit.c (varpool_output_debug_info): Remove.
13042         * dwarf2out.c (deferred_locations_struct): New struct
13043         (deferred_locations): New type.
13044         (deferred_locations_list): New static var.
13045         (deffer_location): New function.
13046         (gen_variable_die): Use it.
13047         (decls_for_scope): Output info on local static vars.
13048         (dwarf2out_finish): Process deferred locations.
13049         * varpool.c (varpool_output_debug_info): Remove.
13050
13051 2009-02-27  Jan Hubicka  <jh@suse.cz>
13052
13053         PR debug/39267
13054         * tree.h (TREE_PROTECTED): Fix comment.
13055         (BLOCK_HANDLER_BLOCK): Remove.
13056         (struct tree_block): Remove handler_block add body_block.
13057         (inlined_function_outer_scope_p): New.
13058         (is_body_block): Remove.
13059         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13060         * dwarf2out.c (is_inlined_entry_point): Remove.
13061         (add_high_low_attributes): Use inlined_function_outer_scope_p.
13062         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
13063         code.
13064         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13065         * gimplify.c (gimplify_expr): Gimplify body blocks.
13066         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13067         block with multiple subblocks.
13068         (dump_scope_block): Prettier output; dump more flags and info.
13069         (dump_scope_blocks): New.
13070         (remove_unused_locals): Use dump_scope_blocks.
13071         * tree-flow.h (dump_scope_blocks): Declare.
13072         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13073         * stmt.c (is_body_block): Remove.
13074         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13075         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13076
13077 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
13078
13079         PR middle-end/39308
13080         * graphite.c (graphite_loop_normal_form): Do not call
13081         number_of_iterations_exit from a gcc_assert.
13082
13083 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13084
13085         * config/s390/s390.c (s390_swap_cmp): Look for conditional
13086         jumps if COND is NULL.
13087         (find_cond_jump): New function.
13088         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
13089         * config/s390/s390.md: Remove z10_cobra attribute value.
13090
13091 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
13092
13093         * config/alpha/alpha.h (alpha_expand_mov): Return false if
13094         force_const_mem returns NULL_RTX.
13095
13096 2009-02-26  Jan Hubicka  <jh@suse.cz>
13097
13098         PR debug/39267
13099         * cgraph.h (varpool_output_debug_info): Remove.
13100         * cgraphunit.c (varpool_output_debug_info): Remove.
13101         * dwarf2out.c (deferred_locations_struct): New struct
13102         (deferred_locations): New type.
13103         (deferred_locations_list): New static var.
13104         (deffer_location): New function.
13105         (gen_variable_die): Use it.
13106         (decls_for_scope): Output info on local static vars.
13107         (dwarf2out_finish): Process deferred locations.
13108         * varpool.c (varpool_output_debug_info): Remove.
13109
13110 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13111
13112         PR rtl-optimization/39241
13113         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13114         to subreg_offset_representable_p.
13115
13116 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13117
13118         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13119         execute function prototype.  Get f and nregs from max_reg_num
13120         and get_insns.  Remove the first backward pass as it's dead,
13121         guard the forward pass by flag_expensive_optimizations.
13122         (rest_of_handle_regmove): Delete.
13123         (pass_regmove): Replace it with regmove_optimize.
13124
13125 2009-02-25  Martin Jambor  <mjambor@suse.cz>
13126
13127         PR tree-optimization/39259
13128         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
13129         calls_alloca function flags.
13130         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13131         calls are detected.
13132
13133 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13134
13135         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13136         flags_set_1_rtx, flags_set_1_set): Delete.
13137         (regmove_optimize): Do not call mark_flags_life_zones.
13138
13139 2009-02-24  Julian Brown  <julian@codesourcery.com>
13140
13141         PR target/35965
13142         * config/arm/arm.c (require_pic_register): Only set
13143         cfun->machine->pic_reg once per function.
13144
13145 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
13146
13147         * doc/invoke.texi (Link Options): Document an easier way to pass
13148         options that take arguments to the GNU linker using -Xlinker and -Wl.
13149
13150 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
13151
13152         PR target/33785
13153         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13154
13155 2009-02-24  Richard Guenther  <rguenther@suse.de>
13156
13157         PR debug/39285
13158         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13159
13160 2009-02-24  Richard Guenther  <rguenther@suse.de>
13161             Zdenek Dvorak  <ook@ucw.cz>
13162
13163         PR tree-optimization/39233
13164         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13165         from converting them to a generic type.
13166
13167 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
13168
13169         PR tree-optimization/39260
13170         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13171         contains a condition with a real type.
13172         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13173
13174 2009-02-23  Jason Merrill  <jason@redhat.com>
13175
13176         PR c++/38880
13177         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13178         narrowing_initializer_constant_valid_p.
13179         (narrowing_initializer_constant_valid_p): Don't return
13180         null_pointer_node for adding a pointer to itself.
13181
13182 2009-02-23  Jan Hubicka  <jh@suse.cz>
13183
13184         PR c/12245
13185         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13186         resizing.
13187
13188 2009-02-23  Jan Hubicka  <jh@suse.cz>
13189
13190         PR tree-optimization/37709
13191         * tree.c (block_ultimate_origin): Move here from dwarf2out.
13192         * tree.h (block_ultimate_origin): Declare.
13193         * dwarf2out.c (block_ultimate_origin): Move to tree.c
13194         * tree-ssa-live.c (remove_unused_scope_block_p):
13195         Eliminate blocks containig no instructions nor live variables nor
13196         nested blocks.
13197         (dump_scope_block): New function.
13198         (remove_unused_locals): Enable removal of dead blocks by default;
13199         enable dumping at TDF_DETAILS.
13200
13201 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13202
13203         * config/i386/i386.c (classify_argument): Don't allow COImode
13204         and OImode.
13205         (function_arg_advance_32): Don't allow OImode.
13206         (function_arg_32): Likewise.
13207         (function_value_32): Likewise.
13208         (return_in_memory_32): Likewise.
13209         (function_arg_64): Remove OImode comment.
13210
13211 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13212
13213         PR target/39261
13214         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13215         ix86_expand_vector_set for V4DImode in 64bit mode only.
13216         (ix86_expand_vector_init_one_var): Likewise.
13217
13218 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
13219
13220         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13221
13222 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
13223
13224         PR bootstrap/39257
13225         * loop-iv.c: Revert last change.
13226         * emit-rtl.c: Likewise.
13227
13228 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13229
13230         PR target/39256
13231         * config/i386/i386.c (type_natural_mode): Remove an extra
13232         space in the warning message.
13233         (function_value_32): Handle 32-byte vector modes.
13234         (return_in_memory_32): Likewise.
13235
13236 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
13237
13238         * loop-iv.c (truncate_value): New function.
13239         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13240         of lowpart_subreg.
13241         (lowpart_subreg): Move to...
13242         * emit-rtl.c: ...here.
13243
13244 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
13245
13246         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13247         accidental and undocumented change at revision 140860.
13248
13249 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
13250
13251         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13252         take gimple_seq * arguments.
13253         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13254         types_compatible_p langhook.
13255
13256 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
13257             Joseph Myers  <joseph@codesourcery.com>
13258
13259         * config/arm/arm.c (arm_builtin_va_list): New function.
13260         (arm_expand_builtin_va_start): Likewise.
13261         (arm_gimplify_va_arg_expr): Likewise.
13262         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13263         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13264         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13265         (va_list_type): New variable.
13266         (arm_mangle_type): Mangle va_list_type appropriately.
13267
13268 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
13269
13270         PR middle-end/39157
13271         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13272         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13273         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13274         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13275         parameter to 1000 for -O1 by default.
13276         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13277         parameter.
13278         * loop-invariant.c: Include params.h.
13279         (move_loop_invariants): Don't call move_single_loop_invariants on
13280         very large loops.
13281
13282 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
13283
13284         * calls.c (emit_library_call_value_1): Use slot_offset instead of
13285         offset when calculating bounds for indexing stack_usage_map.  Fixes
13286         a buffer overflow with certain target setups.
13287
13288 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
13289
13290         PR target/39240
13291         * calls.c (expand_call): Clear try_tail_call if caller and callee
13292         disagree in promotion of function return value.
13293
13294 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
13295
13296         PR target/39175
13297         * c-common.c (c_determine_visibility): If visibility changed and
13298         DECL_RTL has been already set, call make_decl_rtl to update symbol
13299         flags.
13300
13301 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
13302
13303         PR c++/39188
13304         * varasm.c (assemble_variable): Don't check DECL_NAME when
13305         globalizing a variable.
13306
13307 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
13308
13309         PR c/38483
13310         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13311         expression before any __builtin_trap call.
13312         * c-typeck.c (build_function_call): Convert and check function
13313         arguments before generating a call to a trap.  Evaluate the
13314         function arguments before the trap.
13315
13316 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
13317
13318         PR target/39228
13319         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13320         (UNSPEC_FXAM_MEM): New unspec.
13321         (fxam<mode>2_i387_with_temp): New insn and split pattern.
13322         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
13323         memory using fxam<mode>2_i387_with_temp to remove excess precision.
13324
13325 2009-02-19  Richard Guenther  <rguenther@suse.de>
13326
13327         PR tree-optimization/39207
13328         PR tree-optimization/39074
13329         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13330         storedanything_tree): New.
13331         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
13332         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
13333         (build_succ_graph): Add edges from STOREDANYTHING to all
13334         non-direct nodes.
13335         (init_base_vars): Initialize STOREDANYTHING.
13336         (compute_points_to_sets): Free substitution info after
13337         building the succ graph.
13338         (ipa_pta_execute): Likewise.
13339
13340         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13341         field.
13342         (do_ds_constraint): Do not add to special var or non-pointer
13343         field solutions.
13344         (type_could_have_pointers): Split out from ...
13345         (could_have_pointers): ... here.  For arrays use the element type.
13346         (create_variable_info_for): Initialize may_have_pointers.
13347         (new_var_info): Likewise.
13348         (handle_lhs_call): Make the HEAP variable unknown-sized.
13349         (intra_create_variable_infos): Use a type with pointers for
13350         PARM_NOALIAS, make it unknown-sized.
13351
13352 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
13353
13354         PR target/39224
13355         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
13356
13357 2009-02-18  Jason Merrill  <jason@redhat.com>
13358
13359         PR target/39179
13360         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13361         value if DECL_EXTERNAL.
13362         * tree-sra.c (sra_walk_gimple_assign): Likewise.
13363         * target.h (gcc_target::binds_local_p): Clarify "module".
13364         * tree.h (TREE_PUBLIC): Clarify "module".
13365
13366 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
13367
13368         PR target/38891
13369         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13370         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13371
13372 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
13373
13374         PR target/39082
13375         * c.opt (Wabi): Support C and ObjC.
13376         (Wpsabi): New.
13377
13378         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13379
13380         * config/i386/i386.c (classify_argument): Warn once about the ABI
13381         change when passing union with long double.
13382
13383         * doc/invoke.texi: Update -Wabi for warning psABI changes.
13384
13385 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
13386
13387         PR c/35447
13388         * c-parser.c (c_parser_compound_statement): Always enter and leave
13389         a scope.
13390
13391 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13392
13393         PR target/34587
13394         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13395
13396 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
13397
13398         PR tree-optimization/36922
13399         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13400         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13401         Likewise.
13402
13403 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13404
13405         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13406         to 0 for EABI64.
13407
13408 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13409
13410         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13411
13412 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13413
13414         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13415         tree sharing.
13416
13417 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
13418             Richard Sandiford  <rdsandiford@googlemail.com>
13419
13420         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13421         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13422         (loongson_biadd): ...this.
13423
13424 2009-02-17  Richard Guenther  <rguenther@suse.de>
13425
13426         PR tree-optimization/39202
13427         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13428         a var make sure to follow existing collapses.
13429
13430 2009-02-17  Richard Guenther  <rguenther@suse.de>
13431
13432         PR middle-end/39214
13433         * langhooks.c (lhd_print_error_function): Check for NULL block.
13434
13435 2009-02-17  Richard Guenther  <rguenther@suse.de>
13436
13437         PR tree-optimization/39204
13438         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13439         of the PHI arg.
13440
13441 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
13442
13443         * config/soft-fp/double.h: Update from glibc CVS.
13444
13445 2009-02-17  Richard Guenther  <rguenther@suse.de>
13446
13447         PR tree-optimization/39207
13448         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13449         strict-aliasing warnings for pointers pointing to NULL.
13450
13451 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
13452
13453         PR c/35446
13454         * c-parser.c (c_parser_braced_init): Call pop_init_level when
13455         skipping until next close brace.
13456
13457 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
13458
13459         PR target/37049
13460         * config/i386/i386.c (ix86_expand_push): Set memory alignment
13461         to function argument boundary.
13462
13463 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13464
13465         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13466         in the lea_add. Reload eventually constraints it properly.
13467         * config/picochip/constraints.md: Remove the target constraint
13468         "b", since it is not needed anymore.
13469
13470 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
13471
13472         * gthr-dce.h: Uglify function parameter and local variable names.
13473         * gthr-gnat.h: Likewise.
13474         * gthr-mipssde.h: Likewise.
13475         * gthr-nks.h: Likewise.
13476         * gthr-posix95.h: Likewise.
13477         * gthr-posix.h: Likewise.
13478         * gthr-rtems.h: Likewise.
13479         * gthr-single.h: Likewise.
13480         * gthr-solaris.h: Likewise.
13481         * gthr-tpf.h: Likewise.
13482         * gthr-vxworks.h: Likewise.
13483         * gthr-win32.h: Likewise.
13484
13485 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13486
13487         PR target/39196
13488         * config/i386/i386.md: Restrict the new peephole2 to move
13489         between MMX/SSE registers.
13490
13491 2009-02-15  Richard Guenther  <rguenther@suse.de>
13492
13493         Revert
13494         2009-02-13  Richard Guenther  <rguenther@suse.de>
13495
13496         * configure.ac: Enable LFS.
13497         * configure: Re-generate.
13498         * config.in: Likewise.
13499
13500 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13501
13502         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13503         spu_srqwbyte, spu_srqwbytebc): Define.
13504         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13505         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13506         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13507         "shrqby_<mode>"): New insn-and-split patterns.
13508         * config/spu/spu.c (expand_builtin_args): Determine and return
13509         number of operands using spu_builtin_description data.
13510         (spu_expand_builtin_1): Use it.
13511
13512 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
13513
13514         PR target/38056
13515         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13516         TARGET_CONST_GP.
13517
13518 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13519
13520         PR target/39149
13521         * config/i386/i386.c (override_options): Correct warning
13522         messages for -malign-loops, -malign-jumps and -malign-functions.
13523
13524 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13525
13526         PR target/39152
13527         * config/i386/i386.md: Restrict the new peephole2 to move
13528         between the general purpose registers.
13529
13530 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13531
13532         PR target/39162
13533         * config/i386/i386.c (type_natural_mode): Add a new argument.
13534         Return the original mode and warn ABI change if vector size is 32byte.
13535         (function_arg_advance): Updated.
13536         (function_arg): Likewise.
13537         (ix86_function_value): Likewise.
13538         (ix86_return_in_memory): Likewise.
13539         (ix86_sol10_return_in_memory): Likewise.
13540         (ix86_gimplify_va_arg): Likewise.
13541         (function_arg_32): Don't warn ABX ABI change here.
13542         (function_arg_64): Likewise.
13543
13544 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13545
13546         * loop-iv.c (implies_p): In the final case, test that operands 0
13547         of the two comparisons match.
13548
13549         * config/bfin/bfin.c (find_prev_insn_start): New function.
13550         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13551         (find_next_insn_start): Move.
13552
13553 2009-02-13  Richard Guenther  <rguenther@suse.de>
13554
13555         * configure.ac: Enable LFS.
13556         * configure: Re-generate.
13557         * config.in: Likewise.
13558
13559 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
13560
13561         PR c/35444
13562         * c-parser.c (c_parser_parms_list_declarator): Discard pending
13563         sizes on syntax error after some arguments have been parsed.
13564
13565 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
13566
13567         * doc/invoke.texi (-fira): Remove.
13568
13569 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13570
13571         * caller-save.c: Replace regclass.c with reginfo.c in comments.
13572         * recog.c: Likewise.
13573         * rtl.h: Likewise.
13574
13575 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
13576
13577         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13578         (umul_ppmm): Likewise.
13579         (count_leading_zeros): Likewise.
13580         (count_trailing_zeros): Likewise.
13581         (UMUL_TIME): Likewise.
13582
13583 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13584
13585         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13586         soft-fp/t-softfp to tmake_file.
13587
13588         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
13589         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13590         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13591         IA64_BUILTIN_INFQ]: New.
13592         (ia64_init_builtins): Initialize __builtin_infq,
13593         __builtin_fabsq and __builtin_copysignq if not HPUX.
13594         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13595         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13596
13597         * config/ia64/lib1funcs.asm (__divtf3): Define only if
13598         SHARED is defined.
13599         (__fixtfti): Likewise.
13600         (__fixunstfti): Likewise.
13601         (__floattitf): Likewise.
13602
13603         * config/ia64/libgcc-glibc.ver: New.
13604         * config/ia64/t-fprules-softfp: Likewise.
13605         * config/ia64/sfp-machine.h: Likewise.
13606
13607         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13608         (LIBGCC2_TF_CEXT): Likewise.
13609         (TF_SIZE): Likewise.
13610         (TARGET_INIT_LIBFUNCS): Likewise.
13611
13612         * config/ia64/t-glibc (SHLINB_MAPFILES):
13613         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
13614
13615 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13616
13617         * config/i386/i386.c (construct_container): Rewrite processing
13618         BLKmode with X86_64_SSE_CLASS.
13619
13620 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
13621
13622         PR target/39152
13623         * config/i386/i386.md: Replace simplify_replace_rtx with
13624         replace_rtx in the new peephole2.
13625
13626 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
13627
13628         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13629         loop unrolling do not happen at -O2.
13630
13631 2009-02-12  Michael Matz  <matz@suse.de>
13632
13633         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13634
13635 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
13636
13637         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13638         for -g3.
13639
13640 2009-02-12  Ben Elliston  <bje@au.ibm.com>
13641
13642         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13643         patterns when updating the back chain.  Missed in the 2009-02-10
13644         change.
13645
13646 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
13647
13648         * doc/extend.texi (Decimal Floating Types): Update identifier of
13649         draft TR and list of missing support.
13650
13651 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
13652
13653         PR middle-end/39154
13654         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13655         bit to variable length decl's flags, add it also to its
13656         pointer replacement variable.
13657
13658 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
13659             Jakub Jelinek  <jakub@redhat.com>
13660
13661         PR target/39118
13662         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13663         (memory_blockage): New expander.
13664         (*memory_blockage): New insn pattern.
13665         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13666         instead of general blockage at the end of function prologue when
13667         frame pointer is used to access red zone area.  Do not emit blockage
13668         when profiling, it is emitted in generic code.
13669         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13670         function epilogue when frame pointer is used to access red zone area.
13671
13672 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
13673
13674         PR target/38824
13675         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13676         by arithmetic with memory operands.
13677         * config/i386/predicates.md (commutative_operator): New.
13678
13679 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
13680
13681         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13682         bulleted lists.
13683
13684 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
13685
13686         * alias.h (record_alias_subset): Declare.
13687         * alias.c (record_alias_subset): Make global.
13688
13689 2009-02-10  Nick Clifton  <nickc@redhat.com>
13690
13691         * tree-parloops.c: Change license to GPLv3.
13692         * ipa-struct-reorg.c: Change license to GPLv3.
13693         * ipa-struct-reorg.h: Change license to GPLv3.
13694
13695 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
13696
13697         PR c/39084
13698         * c-decl.c (start_struct): Return NULL on error.
13699
13700 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
13701
13702         PR middle-end/39124
13703         * cfgloopmanip.c (remove_path): Call remove_bbs after
13704         cancel_loop_tree, not before it.
13705
13706         PR target/39139
13707         * function.h (struct function): Add has_local_explicit_reg_vars bit.
13708         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13709         VAR_DECLs were seen.
13710         * tree-ssa-live.c (remove_unused_locals): Recompute
13711         cfun->has_local_explicit_reg_vars.
13712         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13713         copies or clearings if cfun->has_local_explicit_reg_vars.
13714
13715 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
13716
13717         PR target/39118
13718         * config/i386/i386.c (expand_prologue): Emit blockage at the end
13719         of function prologue when frame pointer is used to access
13720         red zone area.
13721
13722 2009-02-10  Richard Guenther  <rguenther@suse.de>
13723
13724         PR middle-end/39127
13725         * gimplify.c (gimple_regimplify_operands): Always look if
13726         we need to create a temporary.
13727
13728 2009-02-10  Richard Guenther  <rguenther@suse.de>
13729
13730         PR tree-optimization/39132
13731         * tree-loop-distribution.c (todo): New global var.
13732         (generate_memset_zero): Trigger TODO_rebuild_alias.
13733         (tree_loop_distribution): Return todo.
13734
13735 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
13736
13737         PR target/39119
13738         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13739         (x86_64_reg_class_name): Removed.
13740         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
13741         first one isn't X86_64_SSE_CLASS or any other ones aren't
13742         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
13743         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13744         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
13745         and 3 X86_64_SSEUP_CLASS.
13746         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
13747         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13748
13749 2009-02-10  Ben Elliston  <bje@au.ibm.com>
13750
13751         * config/rs6000/rs6000.md (allocate_stack): Always use an update
13752         form instruction to update the stack back chain word, even if the
13753         user has disabled the generation of update instructions.
13754         (movdi_<mode>_update_stack): New.
13755         (movsi_update_stack): Likewise.
13756         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13757         always use an update form instruction to update the stack back
13758         chain word.
13759
13760 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
13761
13762         PR middle-end/38953
13763         * graphite.c (if_region_set_false_region): After moving a region in
13764         the false branch of a condition, remove the empty dummy basic block.
13765         (gloog): Remove wrong fix for PR38953.
13766
13767 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13768
13769         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13770         generation due to implicit sign extension.
13771
13772 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
13773
13774         PR middle-end/38981
13775         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13776         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13777
13778 2009-02-09  Richard Guenther  <rguenther@suse.de>
13779
13780         PR middle-end/35202
13781         * convert.c (convert_to_real): Disable (float)fn((double)x)
13782         to fnf(x) conversion if errno differences may occur and
13783         -fmath-errno is set.
13784
13785 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
13786
13787         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13788         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13789         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13790
13791 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
13792
13793         PR c/35434
13794         * c-common.c (handle_alias_attribute): Disallow attribute for
13795         anything not a FUNCTION_DECL or VAR_DECL.
13796
13797 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
13798
13799         PR c/39035
13800         * real.c (do_compare): Special-case compare of zero against
13801         decimal float value.
13802
13803 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
13804
13805         PR c/36432
13806         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13807         as indicating flexible array members unless the field itself is
13808         being declarared as the incomplete array.
13809
13810 2009-02-06  Jan Hubicka  <jh@suse.cz>
13811
13812         PR tree-optimization/38844
13813         * ipa-inline.c (try_inline): Stop inlining recursion when edge
13814         is already inlined.
13815
13816 2009-02-06  Richard Guenther  <rguenther@suse.de>
13817
13818         PR middle-end/38977
13819         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13820         fork because we may expand it as __gcov_fork.
13821
13822 2009-02-06  Nick Clifton  <nickc@redhat.com>
13823
13824         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
13825
13826 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
13827
13828         PR tree-optimization/35659
13829         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13830         vn_phi_eq): Shortcut if hashcode does not match.
13831         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13832         NULL operands.
13833         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13834         and avoid iterative_hash_expr.
13835         (FOR_EACH_VALUE_ID_IN_SET): New.
13836         (value_id_compare): Remove.
13837         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13838         sort expressions by value id.
13839
13840 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
13841
13842         PR target/38991
13843         * config/sh/predicates.md (general_movsrc_operand): Don't check
13844         the subreg of system registers here.
13845
13846 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
13847
13848         PR c++/39106
13849         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13850         on the copied decl.
13851
13852 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
13853
13854         PR rtl-optimization/39110
13855         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13856         addresses, not aligned ones.
13857
13858 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
13859             Richard Guenther  <rguenther@suse.de>
13860
13861         PR tree-optimization/39100
13862         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13863         comment says and add edges.
13864
13865 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
13866
13867         PR c/35435
13868         * c-common.c (handle_tls_model_attribute): Ignore attribute for
13869         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13870
13871 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
13872
13873         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13874         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13875         register_bb_in_sese, new_sese, free_sese): Moved.
13876         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13877         outermost_loop_in_scop, build_scop_iteration_domain,
13878         expand_scalar_variables_ssa_name, get_vdef_before_scop,
13879         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13880         Use loop_in_sese_p instead of loop_in_scop_p.
13881         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13882         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13883         (scopdet_basic_block_info): Fix bug in scop detection.
13884         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13885         eq_loop_to_cloog_loop): Remove.
13886         (nb_loops_around_loop_in_scop, nb_loop
13887         ref_nb_loops): Moved here...
13888         * graphite.h (ref_nb_loops): ... from here.
13889         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13890         (loop_domain_dim, loop_iteration_vector_dim): Remove.
13891         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13892         * testsuite/gcc.dg/graphite/scop-19.c: New
13893
13894 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
13895             Hans-Peter Nilsson  <hp@axis.com>
13896
13897         PR rtl-optimization/37889
13898         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13899         Move offset handling from PLUS to before the switch.  Use new
13900         arguments when considering SYMBOL_REFs too.
13901         (rtx_addr_can_trap_p): Pass dummy offset and size.
13902         (enum may_trap_p_flags): Remove.
13903         (may_trap_p_1): Pass size from MEM_SIZE.
13904
13905         PR rtl-optimization/38921
13906         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13907         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13908         * rtlanal.c (may_trap_after_code_motion_p): Delete.
13909         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13910
13911 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
13912
13913         AVX Programming Reference (January, 2009)
13914         * config/i386/sse.md (*vpclmulqdq): New.
13915
13916 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
13917
13918         PR tree-optimization/38977
13919         PR gcov-profile/38292
13920         * calls.c (special_function_p): Disregard __builtin_ prefix.
13921
13922 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
13923
13924         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13925         non-indexable addresses even before reload.
13926
13927 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
13928
13929         PR c/29129
13930         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13931         as having variable size.  Do not give an error for unnamed
13932         parameters with [*] declarators.  Give a warning for type names
13933         with [*] declarators and mark them as variable size.
13934         * c-parser.c (c_parser_sizeof_expression): Do not give an error
13935         for sizeof applied to [*] type names.
13936
13937 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13938
13939         PR C++/36607
13940         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13941
13942 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
13943
13944         * gcc.c (process_command): Update copyright notice dates.
13945         * gcov.c (print_version): Likewise.
13946         * gcov-dump.c (print_version): Likewise.
13947         * mips-tfile.c (main): Likewise.
13948         * mips-tdump.c (main): Likewise.
13949
13950 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
13951
13952         PR c/35433
13953         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13954         for composite type involving a zero-length array type.
13955
13956 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
13957
13958         PR target/35318
13959         * function.c (match_asm_constraints_1): Skip over
13960         initial optional % in the constraint.
13961
13962         PR inline-asm/39059
13963         * c-parser.c (c_parser_postfix_expression): If fixed point is not
13964         supported, don't accept FIXED_CSTs.
13965         * c-decl.c (finish_declspecs): Error if fixed point is not supported
13966         and _Sat is used without _Fract/_Accum.  Set specs->type to
13967         integer_type_node for cts_fract/cts_accum if fixed point is not
13968         supported.
13969
13970 2009-02-02  Catherine Moore  <clm@codesourcery.com>
13971
13972         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
13973
13974 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
13975
13976         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13977         (ABI_HAS_64BIT_SYMBOLS): Use it.
13978         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13979
13980 2009-02-02  Paul Brook  <paul@codesourcery.com>
13981
13982         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13983
13984 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
13985
13986         PR inline-asm/39058
13987         * recog.h (asm_operand_ok): Add constraints argument.
13988         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
13989         recurse on matching constraint.
13990         (check_asm_operands): Pass constraints as 3rd argument to
13991         asm_operand_ok.  Don't look up matching constraint here.
13992         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13993         to asm_operand_ok.
13994
13995 2009-02-02  Ben Elliston  <bje@au.ibm.com>
13996
13997         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13998         TARGET_NARROW_VOLATILE_BITFIELD macro names.
13999
14000 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14001
14002         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14003         information.  Remove some obsolete information.  Reorganize.
14004
14005         * config/pa/fptr.c: Revert license to GPL 2.
14006         * config/pa/milli64.S: Likewise.
14007
14008 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14009
14010         PR target/38904
14011         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
14012         LIBRARY name in, instead of hard-coding it.
14013         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
14014         extra target make frag to tmake_files according to EH model.
14015         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
14016         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
14017         frags that define makefile variable EH_MODEL appropriately.
14018         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
14019         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
14020         to "-sjlj" according to type of EH configured.
14021         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14022         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
14023         to "_sjlj" according to type of EH configured.
14024         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14025         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
14026         (SHLIB_LINK):  Add missing semicolon to if-else construct.
14027         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14028         string value of "pe_dll" command-line option.
14029         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
14030         (SHLIB_SONAME):  Use it when overriding t-cygming default.
14031         (SHLIB_IMPLIB):  Override t-cygming default.
14032         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14033         string value of "pe_dll" command-line option.
14034
14035 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14036
14037         PR target/38952
14038         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
14039         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
14040
14041 2009-01-31  Richard Guenther  <rguenther@suse.de>
14042
14043         PR tree-optimization/38937
14044         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14045         computing the transitive closure.
14046
14047 2009-01-30  Richard Guenther  <rguenther@suse.de>
14048
14049         PR tree-optimization/39041
14050         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14051         Propagate variable indices only if the types match for this stmt.
14052
14053 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
14054
14055         PR target/39013
14056         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14057         inline but never defined.
14058
14059 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
14060
14061         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14062         (*insv_h_di_reg_extimm): New insn.
14063         (*insv_l<mode>_reg_extimm): New insn.
14064
14065 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14066
14067         * config/picochip/picochip.c (flag_conserve_stack): set
14068         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14069         fconserve-stack. Reduce call-overhead used by inliner.
14070
14071 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14072
14073         PR/38157
14074         * common.opt (flag_conserve_stack): Initialised to zero.
14075
14076 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
14077
14078         PR/39002
14079         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14080         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14081         method.
14082
14083 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14084
14085         * ira-color.c (allocno_reload_assign): Update comments.
14086         * regmove.c (regmove_optimize): Likewise.
14087
14088         * ra.h: Removed.
14089
14090 2009-01-29  Robert Millan  <rmh@aybabtu.com>
14091
14092         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14093         * config/i386/kopensolaris-gnu.h: New file.  Undefine
14094         `MD_UNWIND_SUPPORT'.
14095         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
14096
14097 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
14098
14099         PR tree-optimization/39007
14100         * tree-loop-distribution.c (generate_builtin): Use
14101         recompute_dominator to compute the immediate dominator of the
14102         basic block just after the loop.
14103
14104 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14105
14106         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14107         (ASM_OUTPUT_DWARF_PCREL): Define.
14108
14109 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14110
14111         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14112         * doc/passes.texi: Remove entries about regclass, local-alloc, and
14113         global.  Modify entries about regmove and IRA.
14114
14115         * ra-conflict.c: Remove the file.
14116
14117         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14118
14119         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14120         (pass_regclass_init): Rename to pass_reginfo_init.
14121
14122         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14123
14124         * toplev.h (flag_ira): Remove.
14125
14126         * caller-save.c (setup_save_areas): Remove flag_ira.
14127
14128         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
14129
14130         * global.c: Remove the file.
14131
14132         * opts.c (decode_options): Remove flag_ira.
14133
14134         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14135
14136         * regmove.c: Modify file description.
14137         (find_use_as_address, try_auto_increment): Define them only if
14138         AUTO_INC_DEC is defined.
14139         (replacement_quality, replace_in_call_usage, fixup_match_1,
14140         stable_and_no_regs_but_for_p): Remove.
14141         (reg_set_in_bb): Make it static.
14142         (regmove_optimize): Remove flag_ira and code which worked for
14143         !flag_ira.
14144
14145         * local-alloc.c: Remove the file.
14146
14147         * common.opt (fira): Remove.
14148
14149         * ira.c: Include except.h.
14150         (eliminable_regset): Move from global.c.
14151         (mark_elimination): Ditto.  Remove flag_ira.
14152         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14153         equiv_mem_modified, validate_equiv_mem_from_store,
14154         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14155         contains_replace_regs, memref_referenced_p, memref_used_between_p,
14156         no_equiv, recorded_label_ref): Move from local-alloc.c.
14157         (update_equiv_regs): Ditto.  Make it static.
14158         (print_insn_chain, print_insn_chains): Move it from global.c.
14159         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
14160         (build_insn_chain): Ditto.  Make it static.
14161         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
14162         Rename to init_live_subregs.
14163         (gate_ira): Remove flag_ira.
14164
14165         * regclass.c: Rename reginfo.c.  Change file description.
14166         (FORBIDDEN_INC_DEC_CLASSES): Remove.
14167         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
14168         (init_reg_sets_1): Remove code for evaluation of
14169         reg_class_superclasses and losing_caller_save_reg_set.
14170         (init_regs): Remove init_reg_autoinc.
14171         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14172         ok_for_base_p_nonstrict): Remove.
14173         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
14174         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
14175         corresponding entries.
14176         (dump_regclass, record_operand_costs, scan_one_insn,
14177         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14178         record_address_regs, auto_inc_dec_reg_p): Remove.
14179         (gt-regclass.h): Rename to gt-reginfo.h.
14180
14181         * rtl.h (dump_global_regs, retry_global_alloc,
14182         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
14183
14184         * Makefile.in (RA_H): Remove.
14185         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14186         Rename regclass.o to reginfo.o.
14187         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
14188         gt-reginfo.h.
14189         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14190         (GTFILES): Rename regclass.c to reginfo.c.
14191
14192         * passes.c (init_optimization_passes): Remove pass_local_alloc and
14193         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
14194
14195         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14196         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14197         Remove flag_ira.
14198         (finish_spills): Ditto.  Remove code for !flag_ira.
14199
14200 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
14201
14202         PR middle-end/35854
14203         * doc/invoke.texi (rtl debug options): Complete rewrite.
14204         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14205         to auto_inc_dec".
14206         * mode-switching.c (pass_mode_switching): Rename pass from
14207         "mode-sw" to "mode_sw".
14208         * except.c (pass_convert_to_eh_ranges): Rename pass from
14209         "eh-ranges" to "eh_ranges".
14210         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14211         to "subreg1".
14212
14213
14214 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
14215             Alexander Monakov  <amonakov@ispras.ru>
14216
14217         PR middle-end/38857
14218         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14219         register.
14220         (move_exprs_to_boundary): Change return type and pass through
14221         should_move from move_op.  Relax assert.  Update usage ...
14222         (schedule_expr_on_boundary): ... here.  Use should_move instead of
14223         cant_move.
14224         (move_op_orig_expr_found): Indicate that insn was disconnected from
14225         stream.
14226         (code_motion_process_successors): Do not call after_merge_succs
14227         callback if original expression was not found when traversing any of
14228         the branches.
14229         (code_motion_path_driver): Change return type.  Update prototype.
14230         (move_op): Update comment.  Add a new parameter (should_move).  Update
14231         prototype.  Set *should_move based on indication provided by
14232         move_op_orig_expr_found.
14233
14234 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14235
14236         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14237         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14238         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14239         * config/rs6000/rs6000.c (rs6000_override_options): Default
14240         avoid-indexed-addresses on for Power6, off for everything else.
14241         (avoiding_indexed_address_p): New function.
14242         (rs6000_legitimize_address): Use it.
14243         (rs6000_legitimate_address): Likewise.
14244         * config/rs6000/rs6000.md (movXX_updateX): Likewise
14245
14246 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
14247
14248         PR tree-optimization/38997
14249         * tree-loop-distribution.c (generate_memset_zero): Use
14250         POINTER_PLUS_EXPR for a pointer addition.
14251
14252 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14253
14254         * config/s390/s390.md (bswap<mode>2): New pattern added.
14255
14256 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14257
14258         * config/s390/s390.md (*tls_load_31): Added type attribute.
14259
14260 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14261
14262         * config/s390/s390.md: Fix a few comments.
14263
14264 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14265
14266         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14267         (*tm<mode>_full): Fixed z10prop attribute.
14268         (*tst<mode>_extimm): Fixed z10prop attribute.
14269         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14270         (*tstqiCCT_cconly): Fixed z10prop attribute.
14271         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14272         (*movsi_larl): Fixed z10prop attribute.
14273         (*movsi_zarch): Fixed z10prop attribute.
14274         (*movsi_eas): Fixed z10prop attribute.
14275         (*movhi): Fixed z10prop attribute.
14276         (*movqi): Fixed z10prop attribute.
14277         (*movstrictqi): Fixed z10prop attribute.
14278         (*mov<mode>): Fixed z10prop attribute.
14279         (*movcc): Fixed z10prop attribute.
14280         (*sethighpartdi_64): Fixed z10prop attribute.
14281         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14282         (*negdi2_sign_cc): Fixed z10prop attribute.
14283         (*negdi2_sign): Fixed z10prop attribute.
14284         (*absdi2_sign_cc): Fixed z10prop attribute.
14285         (*absdi2_sign): Fixed z10prop attribute.
14286         (*negabsdi2_sign_cc): Fixed z10prop attribute.
14287         (*negabsdi2_sign): Fixed z10prop attribute.
14288         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14289         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14290         (doloop_si64): Fixed z10prop attribute.
14291         (doloop_si31): Fixed z10prop attribute.
14292         (doloop_long): Fixed z10prop attribute.
14293         (indirect_jump): Fixed z10prop attribute.
14294         (nop): Fixed z10prop attribute.
14295         (main_base_64): Fixed z10prop attribute.
14296         (reload_base_64): Fixed z10prop attribute.
14297
14298 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
14299
14300         PR rtl-optimization/38740
14301         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14302         if !optimize.
14303         * config/mips/mips.c (mips_reorg): Likewise.
14304
14305 2009-01-28  Richard Guenther  <rguenther@suse.de>
14306
14307         PR tree-optimization/38926
14308         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14309         with the correct value id to a value.
14310         (do_regular_insertion): Use the value number of edoubleprime
14311         for the value number of the expr.
14312
14313         Revert
14314         2008-08-21  Richard Guenther  <rguenther@suse.de>
14315
14316         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14317         a PHI ask VN if it is already available.
14318         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14319         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
14320
14321 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
14322
14323         PR middle-end/38934
14324         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14325         set to varying whenever max has TREE_OVERFLOW set, similarly
14326         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14327
14328 2009-01-28  Richard Guenther  <rguenther@suse.de>
14329
14330         PR middle-end/38908
14331         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14332         uninitialized aggregate uses in call arguments.
14333
14334 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
14335
14336         PR tree-optimization/38984
14337         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14338         the nothing_id variable if -fno-delete-null-pointer-checks.
14339
14340 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
14341
14342         PR target/38988
14343         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14344         (set_got_offset_rex64): Ditto.
14345
14346 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14347
14348         PR target/38941
14349         * doc/extend.texi: Improve local variable with asm reg.
14350
14351 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
14352
14353         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14354         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14355         was not supplied then set warn_packed_bitfield_compat to the
14356         default value of 1.
14357         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14358         against 1.
14359
14360 2009-01-27  Richard Guenther  <rguenther@suse.de>
14361
14362         PR tree-optimization/38503
14363         * cfgexpand.c (expand_gimple_basic_block): Ignore
14364         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14365         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14366         variables that cannot have TBAA applied.
14367         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14368         statements.
14369
14370 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
14371
14372         PR middle-end/38969
14373         * calls.c (initialize_argument_information): Do not wrap complex
14374         arguments in SAVE_EXPR.
14375
14376 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
14377
14378         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
14379         (INSTALL_LIBGCC): Revert typo commit.
14380
14381 2009-01-26  Richard Guenther  <rguenther@suse.de>
14382
14383         PR tree-optimization/38745
14384         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14385         from special handling.
14386
14387 2009-01-26  Richard Guenther  <rguenther@suse.de>
14388
14389         PR tree-optimization/38745
14390         * tree-ssa.c (execute_update_addresses_taken): Do not include
14391         variables that cannot possibly be a register in not_reg_needs.
14392         Do not clear TREE_ADDRESSABLE on vars that may not become
14393         registers.
14394         * tree-ssa.c (update_alias_info_1): Include those in the set
14395         of addressable vars.
14396
14397 2009-01-26  Richard Guenther  <rguenther@suse.de>
14398
14399         PR middle-end/38851
14400         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14401         * tree-ssa-dse.c: Include langhooks.h
14402         (execute_simple_dse): Remove stores with zero size.
14403
14404 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
14405
14406         PR c/38957
14407         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14408         as PLUS_EXPR.
14409
14410 2009-01-24  Julian Brown  <julian@codesourcery.com>
14411
14412         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14413         config/arm/linux-atomic.c.
14414         * config/arm/linux-atomic.c: New.
14415
14416 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
14417
14418         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14419         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14420         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14421
14422 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14423
14424         PR c/38938
14425         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
14426         properly.
14427
14428 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
14429
14430         PR tree-optimization/38953
14431         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14432         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14433         (gloog): Split the exit of the scop when the scop exit is a loop exit.
14434         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14435         changed the CFG.
14436
14437 2009-01-24  Paul Brook  <paul@codesourcery.com>
14438
14439         * config/arm/neon.md (neon_type): Move to arm.md.
14440         (neon_mov<VSTRUCT>): Add neon_type attribute.
14441         * config/arm/arm.md (neon_type): Move to here.
14442         (conds): Add "unconditioal" and use as default for NEON insns.
14443
14444 2009-01-24  Ben Elliston  <bje@au.ibm.com>
14445
14446         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14447         void *' warning from -Wc++-compat.
14448         * Makefile.in (dominance.o-warn): Remove.
14449
14450 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
14451
14452         PR tree-optimization/38932
14453         * fold-const.c (fold_unary_ignore_overflow): New.
14454         * tree.h (fold_unary_ignore_overflow): Declare.
14455         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14456         * tree-ssa-sccvn.c (visit_reference_op_load,
14457         simplify_unary_expression): Likewise.
14458
14459 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
14460
14461         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14462         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
14463         regardless of their type.
14464         * c-common.c (handle_packed_attribute): Don't ignore packed on
14465         bitfields.
14466         * c.opt (Wpacked-bitfield-compat): New warning option.
14467         * stor-layout.c (place_field): Warn if offset of a field changed.
14468         * doc/extend.texi (packed): Mention the ABI change.
14469         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14470         (Warning Options): Add it to the list.
14471
14472 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
14473
14474         * c-opts.c (c_common_post_options): Fix a typo in comments.
14475
14476 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
14477
14478         PR middle-end/38615
14479         * gimplify.c (gimplify_init_constructor): Fix promotion of const
14480         variables to static.
14481         * doc/invoke.texi (-fmerge-all-constants): Update description.
14482
14483 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
14484
14485         PR target/38931
14486         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14487         (*movdi_1_rex64): Use type "mmx" for alternative 5.
14488
14489 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
14490
14491         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14492         a word boundary.
14493         (LOCAL_ALIGNMENT): Similarly.
14494
14495 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
14496             Joseph Myers  <joseph@codesourcery.com>
14497
14498         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14499         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14500         * config/arm/arm-tune.md: Regenerate.
14501         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14502         -march=iwmmxt2.
14503
14504 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
14505
14506         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14507         version number to five.
14508
14509 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
14510
14511         PR c++/38930
14512         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
14513         * c-common.c (set_underlying_type): Likewise.
14514         (is_typedef_decl ): Likewise
14515         * tree.h: Likewise
14516         (set_underlying_type): Likewise.
14517         (is_typedef_type): Likewise.
14518
14519 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14520
14521         PR middle-end/38587
14522         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14523         crossing setjmps.
14524
14525 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
14526
14527         PR bootstrap/37660
14528         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
14529         (LIBGCC_SPEC):  Don't define.
14530         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
14531
14532 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
14533
14534         PR rtl-optimization/38879
14535         * alias.c (base_alias_check): Unaligned access via AND address can
14536         alias all surrounding object types except those with sizes equal
14537         or wider than the size of unaligned access.
14538
14539 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
14540
14541         PR c++/26693
14542         * c-decl.c (clone_underlying_type): Move this ...
14543         * c-common.c (set_underlying_type): ... here.
14544         Also, make sure the function properly sets TYPE_STUB_DECL() on
14545         the newly created typedef variant type.
14546         (is_typedef_decl ): New entry point.
14547         * tree.h: Added a new member member_types_needing_access_check to
14548         struct tree_decl_non_common.
14549         (set_underlying_type): New entry point.
14550         (is_typedef_type): Likewise.
14551
14552 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
14553
14554         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14555         Check whether two instructions have memory references that
14556         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
14557         are helper functions for traversing.
14558         * alias.h (insn_alias_sets_confilict_p): New prototypes.
14559         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14560         not to draw dependency edge for instructions with non-conflicting
14561         alias sets.
14562
14563 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
14564
14565         PR other/38758
14566         * longlong.h: Update copyright years.  Use soft-fp license notice.
14567         Sync __clz_tab declaration with glibc.
14568
14569 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
14570
14571         PR target/30687
14572         * doc/extend.texi (syscall_linkage): New.
14573         (version_id): Modify.
14574
14575 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14576             Richard Guenther  <rguenther@suse.de>
14577
14578         PR tree-optimization/38747
14579         PR tree-optimization/38748
14580         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14581         conversion if the base address is an indirect reference and the
14582         aliasing sets could cause issues.
14583
14584 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
14585
14586         * common.opt (fgraphite, fgraphite-identity): Add comment for
14587         explaining why these options are not documented.
14588
14589 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
14590
14591         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14592         gimple_call_lhs is NULL.
14593
14594 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
14595
14596         PR target/38868
14597         * emit-rtl.c (adjust_address_1): Make sure memref is never
14598         overwritten.
14599
14600 2009-01-20  Ben Elliston  <bje@au.ibm.com>
14601
14602         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14603         const qualifier from arg parameter. Remove unnecessary cast to char *.
14604         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14605         const qualifier from arg 2.
14606
14607 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
14608
14609         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
14610
14611 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
14612
14613         PR c/38869
14614         * rtl.h (reinit_regs): New prototype.
14615         * regclass.c: Include ira.h.
14616         (reinit_regs): New.
14617         * Makefile.in (regclass.o): Add ira.h.
14618         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14619
14620 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
14621
14622         PR target/38736
14623         * c-common.c (handle_aligned_attribute): Use
14624         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14625         default alignment value.
14626
14627         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14628
14629         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14630         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14631
14632         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
14633         __BIGGEST_ALIGNMENT__.
14634
14635         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14636
14637 2009-01-18  Richard Guenther  <rguenther@suse.de>
14638
14639         PR tree-optimization/38819
14640         * tree-flow.h (operation_could_trap_helper_p): Declare.
14641         * tree-eh.c (operation_could_trap_helper_p): Export.
14642         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14643         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14644         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14645         are about to insert a possibly trapping instruction and fail
14646         in this case.
14647
14648 2009-01-18  Andreas Schwab  <schwab@suse.de>
14649
14650         * doc/install.texi (Configuration): Remove obsolete paragraph
14651         about use of --with-gnu-ld with --with-gnu-as.
14652
14653 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
14654
14655         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14656         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14657         Follow spelling conventions.
14658
14659 2009-01-18  Ben Elliston  <bje@au.ibm.com>
14660
14661         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14662         C++ warning about implicit conversion from void * to struct
14663         bitmap_head_def *.
14664         (bitmap_obstack_free): Likewise for bitmap_element *.
14665         * Makefile.in (bitmap.o-warn): Remove.
14666
14667 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
14668
14669         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
14670
14671 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
14672             Tobias Grosser  <tobi.grosser@amd.com>
14673
14674         * graphite.c (graphite_trans_scop_block): Do not block single
14675         nested loops.
14676
14677 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
14678
14679         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14680         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14681         test with assertion.
14682
14683 2009-01-16  Richard Guenther  <rguenther@suse.de>
14684
14685         PR tree-optimization/38835
14686         PR middle-end/36227
14687         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14688         and INT + PTR -> (INT)(PTR p+ INT) folding.
14689         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14690
14691 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
14692
14693         PR target/38554
14694         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14695         the subreg from a lowpart subreg if it is also casting the value.
14696
14697 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14698             Tobias Grosser  <tobi.grosser@amd.com>
14699
14700         * graphite.c (compare_prefix_loops): New.
14701         (build_scop_canonical_schedules): Rewritten.
14702         (graphite_transform_loops): Move build_scop_canonical_schedules
14703         after build_scop_iteration_domain.
14704
14705 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14706             Tobias Grosser  <tobi.grosser@amd.com>
14707
14708         * graphite.c (add_conditions_to_domain): Add the loops to
14709         the dimension of the iteration domain.  Do copy the domain
14710         only when it exists.
14711         (build_scop_conditions_1): Do not call add_conditions_to_domain.
14712         (add_conditions_to_constraints): New.
14713         (can_generate_code_stmt, can_generate_code): Removed.
14714         (gloog): Do not call can_generate_code.
14715         (graphite_transform_loops): Call add_conditions_to_constraints
14716         after building the iteration domain.
14717
14718 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
14719
14720         PR tree-optimization/38789
14721         * tree-ssa-threadedge.c
14722         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14723         __builtin_constant_p.
14724
14725 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
14726
14727         * dce.c (delete_unmarked_insns): Reversed the order that insns are
14728         examined before deleting them.
14729
14730 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
14731
14732         * function.c (aggregate_value_p): Correctly extract the function
14733         type from CALL_EXPR_FN lookup.
14734
14735 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14736
14737         * config/picochip/picochip.c (picochip_override_options): Revert
14738         CFI asm flag disable commited previously.
14739
14740 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
14741             Tobias Grosser  <tobi.grosser@amd.com>
14742             Jan Sjodin  <jan.sjodin@amd.com>
14743
14744         * graphite.c (scan_tree_for_params): On substractions negate
14745         all the coefficients of the term.
14746         (clast_to_gcc_expression_red): New.  Handle reduction expressions
14747         of more than two operands.
14748         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14749         (get_vdef_before_scop): Handle also the case of default definitions.
14750
14751 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
14752
14753         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14754         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14755         Also use them when walking CALL_INSN_FUNCTION_USAGE.
14756
14757 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
14758             Joey Ye  <joey.ye@intel.com>
14759
14760         PR middle-end/37843
14761         * cfgexpand.c (expand_stack_alignment): Don't update stack
14762         boundary nor check incoming stack boundary here.
14763         (gimple_expand_cfg): Update stack boundary and check incoming
14764         stack boundary here.
14765
14766 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
14767
14768         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
14769
14770 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
14771
14772         PR rtl-optimization/38245
14773         * calls.c (expand_call): Add stack arguments to
14774         CALL_INSN_FUNCTION_USAGE even for pure calls (when
14775         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14776         in regs and partially in memory or BLKmode arguments.
14777         (emit_library_call_value_1): Add stack arguments to
14778         CALL_INSN_FUNCTION_USAGE even for pure calls (when
14779         ACCUMULATE_OUTGOING_ARGS).
14780         * dce.c: Include tm_p.h.
14781         (find_call_stack_args): New function.
14782         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
14783         argument.
14784         (mark_insn): Call find_call_stack_args for CALL_Ps.
14785         (prescan_insns_for_dce): Walk insns backwards in bb rather than
14786         forwards.  Allocate and free arg_stores bitmap if needed, pass it
14787         down to deletable_insn_p, don't mark stores set in arg_stores
14788         bitmap, clear the bitmap at the beginning of each bb.
14789         * Makefile.in (dce.o): Depend on $(TM_P_H).
14790
14791 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
14792
14793         PR target/22599
14794         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14795         to make sure the insn is a conditional test (bug 22599).  Reformat a
14796         few long lines.
14797
14798 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
14799
14800         PR middle-end/38431
14801         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14802         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14803         (gloog): Do not call cleanup_tree_cfg.
14804         (graphite_transform_loops): Call cleanup_tree_cfg after all
14805         scops have been code generated.
14806
14807 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
14808         * doc/gty.texi (Invoking the garbage collector): Added new node
14809         and section documenting ggc_collect.
14810
14811 2009-01-14  Richard Guenther  <rguenther@suse.de>
14812
14813         PR tree-optimization/38826
14814         PR middle-end/38477
14815         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14816         initialization notes only if we actually emitted a warning.
14817         (intra_create_variable_infos): Add constraints for a result decl
14818         that is passed by hidden reference.
14819         (build_pred_graph): Mark all related variables non-direct on
14820         address-taking.
14821
14822 2009-01-14  Nick Clifton  <nickc@redhat.com>
14823
14824         * ira-conflicts.c: Include addresses.h for the definition of
14825         base_reg_class.
14826         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14827         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
14828
14829 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
14830
14831         PR target/38811
14832         * Makefile.in (ira-lives.o): Add except.h.
14833
14834         * ira-lives.c: Include except.h.
14835         (process_bb_node_lives): Process can_throw_internal.
14836
14837 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
14838
14839         PR rtl-optimization/38774
14840         * combine.c (simplify_set): When undoing cc_use change, don't do
14841         PUT_CODE on the newly created comparison, but instead put back the
14842         old comparison.
14843
14844 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
14845
14846         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14847         values.  Remove duplicate arm8 entry.
14848
14849 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
14850
14851         PR tree-optimization/38786
14852         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14853         the SSA_NAME case of expand_scalar_variables_expr.
14854         Set the type of an expression to the type of its assign statement.
14855         (expand_scalar_variables_expr): Also gather the scalar computation
14856         used to index the memory access.  Do not pass loop_p.
14857         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
14858         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
14859         the gimple_stmt_iterator where it inserts new code.
14860         Do not pass loop_p.
14861         (copy_bb_and_scalar_dependences): Do not pass loop_p.
14862         (translate_clast): Update call to copy_bb_and_scalar_dependences.
14863
14864 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
14865
14866         * graphite.h (debug_value): Removed.
14867         * graphite.c (debug_value): Removed.
14868
14869 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
14870
14871         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14872         ldrd/strd with two 32-bit instructions.
14873
14874 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
14875
14876         * config/arm/arm.c (struct processors): Pass for speed down into
14877         cost helper functions.
14878         (const_ok_for_op): Handle COMPARE and inequality nodes.
14879         (arm_rtx_costs_1): Rewrite.
14880         (arm_size_rtx_costs): Update prototype.
14881         (arm_rtx_costs): Pass speed down to helper functions.
14882         (arm_slowmul_rtx_costs): Rework cost calculations.
14883         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14884         (arm_9e_rtx_costs): Likewise.
14885
14886 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
14887
14888         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
14889         relocations of local symbols wider than UNITS_PER_WORD are not valid.
14890         (alpha_legitimize_address): Do not split local symbols wider than
14891         UNITS_PER_WORD into HIGH/LO_SUM parts.
14892
14893 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
14894
14895         PR bootstrap/38580
14896         * gcc.c (process_command): Replace call to execvp with calls
14897         to pex_one and exit.
14898
14899 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
14900
14901         PR target/29141
14902         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14903         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14904         variant for devices with 3-byte PC.
14905         (__tablejump_elpm__): New.
14906
14907 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
14908
14909         PR c/32041
14910         * c-parser.c (c_parser_postfix_expression): Allow `->' in
14911         offsetof member-designator, handle it as `[0].'.
14912
14913 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14914
14915         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14916         function when not using named sections on targets with named sections
14917         if branch distance is less than 262132.
14918
14919 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
14920
14921         * combine.c (combine_instructions):  Recompute
14922         optimize_this_for_speed_p  for each BB in the main combine loop.
14923
14924 2009-01-12  Tomas Bily  <tbily@suse.cz>
14925
14926         PR middlend/38385
14927         * tree-loop-distribution.c (prop_phis): New function.
14928         (generate_builtin): Call prop_phis.
14929         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
14930
14931 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
14932
14933         PR tree-optimization/38807
14934         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14935         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14936
14937 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
14938
14939         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14940         subreg of op0 to the original op0.
14941
14942 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
14943
14944         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
14945
14946 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
14947
14948         PR debug/7055
14949         * mips-tfile.c (parse_def): Fix parsing of def strings
14950         starting with digits.
14951
14952 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
14953
14954         PR target/38695
14955         * config/arm/arm.c (arm_is_long_call_p): Don't call
14956         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14957
14958 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
14959
14960         * regrename.c (regrename_optimize): Fix dumping.
14961         (find_oldest_value_reg): Preserve REG_POINTER.
14962         (copy_hardreg_forward_1): Likewise.
14963
14964 2009-01-09  Diego Novillo  <dnovillo@google.com>
14965
14966         * gimple.h (struct gimple_statement_base) <uid>: Document
14967         the restrictions on its use.
14968         (gimple_uid): Tidy.
14969         (gimple_set_uid): Tidy.
14970
14971 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
14972
14973         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14974         zero guard even if align_bytes != 0 and count is smaller than
14975         size_needed.
14976
14977 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
14978
14979         PR rtl-optimization/38495
14980         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
14981         (add_range_and_copies_from_move_list): Print all added ranges.
14982         Add ranges to memory optimized destination.
14983
14984 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
14985
14986         PR target/38686
14987         PR target/38708
14988         * config/i386/i386.c (override_options): Reject
14989         -mstringop-strategy=rep_8byte with -m32.
14990         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14991         to 1.  Do count comparison against epilogue_size_needed at compile
14992         time even when count_exp was constant forced into register.  For
14993         size_needed don't jump to epilogue, instead just avoid aligning
14994         and invoke the body algorithm.  If need_zero_guard, add zero guard
14995         even if count is non-zero, but smaller than size_needed + number of
14996         bytes that could be stored for alignment.
14997         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14998         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
14999         but smaller than size_needed + number of bytes that could be stored
15000         for alignment.  Compare size_needed with epilogue_size_needed instead
15001         of desired_align - align, don't adjust size_needed, pass
15002         epilogue_size_needed to the epilogue expanders.
15003
15004         PR c/35742
15005         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
15006
15007 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15008
15009         * pa.c (last_address): Change to unsigned.
15010         (update_total_code_bytes): Change argument to unsigned.  Don't
15011         check if insn addresses are set.
15012         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15013         addresses are not set.
15014         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15015
15016 2009-01-09  Nick Clifton  <nickc@redhat.com>
15017
15018         * config/sh/symbian.c: Replace uses of DECL_INLINE with
15019         DECL_DECLARED_INLINE_P.
15020
15021 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15022
15023         PR middle-end/38347
15024         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15025         GET_MODE (op0) in operand_subword_force calls.
15026
15027         PR middle-end/38771
15028         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15029         fold_convert arg0 operands to TREE_TYPE (op0) first.
15030
15031 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
15032
15033         * params.def (ira-max-conflict-table-size): Decrease default value
15034         to 1000.
15035
15036 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
15037
15038         PR tree-optimization/37031
15039         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15040         on parameter_set.
15041         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15042         allocate it using gc instead of heap, use VEC_quick_push instead of
15043         VEC_safe_push.
15044         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15045         instead of heap, use VEC_quick_push instead of VEC_safe_push.
15046         * tree-data-ref.h (struct access_matrix): Change matrix to gc
15047         allocated vector from heap allocated.
15048         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15049         * tree-loop-linear.c (linear_transform_loops): Allocate nest
15050         vector only after perfect_loop_nest_depth call.
15051
15052 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
15053             Jan Sjodin  <jan.sjodin@amd.com>
15054
15055         PR tree-optimization/38559
15056         * graphite.c (debug_value, copy_constraint,
15057         swap_constraint_variables, scale_constraint_variable, ): New.
15058         (get_lower_bound, get_upper_bound): Removed.
15059         (graphite_trans_bb_strip_mine): Clean up this code that works
15060         only for constant number of iterations.  Fully copy upper and
15061         lower bound constraints, not only the constant part of them.
15062         * graphite.h (debug_value): Declared.
15063
15064 2009-01-08  Ira Rosen  <irar@il.ibm.com>
15065
15066         PR tree-optimization/37194
15067         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
15068         Don't add the cost of cost model guard in prologue to scalar
15069         outside cost in case of known number of iterations.
15070
15071 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
15072             Alan Modra  <amodra@bigpond.net.au>
15073
15074         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15075         non-word-aligned REG+CONST addressing.
15076
15077 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15078
15079         PR target/38706
15080         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15081         free_after_compilation when outputting a thunk.
15082         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15083         Do not call free_after_compilation here.
15084
15085 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15086
15087         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
15088         (ix86_valid_target_attribute_inner_p): Ditto.
15089
15090 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
15091
15092         PR tree-optimization/38492
15093         PR tree-optimization/38498
15094         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15095         * tree-chrec.h (scev_is_linear_expression): Declared.
15096         * graphite.c (graphite_cannot_represent_loop_niter): New.
15097         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15098         (graphite_loop_normal_form): Use gcc_assert.
15099         (scan_tree_for_params): Use CASE_CONVERT.
15100         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15101         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15102         Use gcc_assert.  Discard scops that contain unhandled cases.
15103         (build_scop_conditions): Return a boolean status for unhandled cases.
15104         (strip_mine_profitable_p): Print the loop number, not its depth.
15105         (is_interchange_valid): Pass the depth of the loop nest, don't
15106         recompute it wrongly.
15107         (graphite_trans_bb_block): Same.
15108         (graphite_trans_bb_block): Print tentative of loop blocking.
15109         (graphite_trans_scop_block): Do not print that the loop has been
15110         blocked.
15111         (graphite_transform_loops): Do not handle scops that contain condition
15112         scalar phi nodes.
15113
15114 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15115
15116         AVX Programming Reference (December, 2008)
15117         * config/i386/avxintrin.h (_mm256_stream_si256): New.
15118         (_mm256_stream_pd): Likewise.
15119         (_mm256_stream_ps): Likewise.
15120
15121         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15122         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15123         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15124         (bdesc_special_args): Add __builtin_ia32_movntdq256,
15125         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15126         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15127         (ix86_expand_special_args_builtin): Likewise.
15128
15129         * config/i386/sse.md (AVXMODEDI): New.
15130         (avx_movnt<mode>): Likewise.
15131         (avx_movnt<mode>): Likewise.
15132         (<sse>_movnt<mode>): Remove AVX support.
15133         (sse2_movntv2di): Likewise.
15134
15135 2009-01-07  Richard Guenther  <rguenther@suse.de>
15136
15137         PR middle-end/38751
15138         * fold-const.c (extract_muldiv): Remove obsolete comment.
15139         (fold_plusminus_mult_expr): Undo MINUS_EXPR
15140         to PLUS_EXPR canonicalization for the canonicalization.
15141
15142 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
15143
15144         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15145         hosted cross-compilers generating less efficient code.
15146
15147 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
15148
15149         * function.h (rtl_data): Add a dbr_scheduled_p field.
15150         * reorg.c (dbr_schedule): Set it.
15151         (gate_handle_delay_slots): Check it.
15152         * config/mips/mips.c (mips_base_delayed_branch): Delete.
15153         (mips_reorg): Check flag_delayed_branch instead of
15154         mips_base_delayed_branch.
15155         (mips_override_options): Don't set mips_base_delayed_branch
15156         or flag_delayed_branch.
15157
15158 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
15159
15160         PR rtl-optimization/38426.
15161         * ira.c (ira): Set current_function_is_leaf earlier.
15162
15163 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
15164
15165         PR rtl-optimization/38722
15166         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15167         too early, only set a flag and modify after last possible
15168         undo_all point.
15169
15170 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
15171
15172         PR c/34252
15173         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15174         * real.c (decimal_single_format): Correct values of emin and emax.
15175         (decimal_double_format): Ditto.
15176         (decimal_quad_format): Ditto.
15177         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15178         computation of DECnn_MIN and DECnn_MAX for corrected values of
15179         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
15180         __DECnn_MIN__, and adjust its computation for the corrected value
15181         of emin.
15182
15183 2009-01-06  Jan Hubicka  <jh@suse.cz>
15184
15185         PR target/38744
15186         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
15187
15188 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15189
15190         * doc/contrib.texi (Contributors): Slightly adjust the end note.
15191         Add Robert Clark to the list of testers.
15192
15193 2009-01-06  Jan Hubicka  <jh@suse.cz>
15194             Kai Tietz  <kai.tietz@onevision.com>
15195
15196         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15197         * config/i386/i386.c (ix86_expand_call): Add clobbers.
15198
15199 2009-01-06  Jan Hubicka  <jh@suse.cz>
15200             Kai Tietz  <kai.tietz@onevision.com>
15201
15202         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15203         for w64 ABI.
15204         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
15205         (ix86_nsaved_regs): Count only general purpose regs.
15206         (ix86_nsaved_sseregs): New.
15207         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15208         to 16 for w64; compute padding and size of sse reg save area.
15209         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15210         general purpose regs.
15211         (ix86_emit_save_sse_regs_using_mov): New.
15212         (ix86_expand_prologue): Save SSE regs if needed.
15213         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15214         (ix86_emit_restore_sse_regs_using_mov): New.
15215         (ix86_expand_epilogue): Save SSE regs if needed.
15216
15217 2009-01-06  Jan Hubicka  <jh@suse.cz>
15218             Kai Tietz  <kai.tietz@onevision.com>
15219
15220         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15221         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15222         functions when accumulate outgoing args is off.
15223
15224 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
15225
15226         PR bootstrap/38742
15227         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15228         before using pseudos_have_intersected_live_ranges_p.
15229
15230         * ira-int.h (ira_assert): Always define.
15231
15232 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
15233
15234         AVX Programming Reference (December, 2008)
15235         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15236         (_mm256_permute2_pd): Likewise.
15237         (_mm_permute2_ps): Likewise.
15238         (_mm256_permute2_ps): Likewise.
15239         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15240         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15241
15242         * config/i386/i386.c (ix86_builtins): Remove
15243         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15244         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15245         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15246         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15247         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15248         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15249         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15250         __builtin_ia32_vpermil2ps256.
15251         (ix86_init_mmx_sse_builtins): Updated.
15252         (ix86_expand_args_builtin): Likewise.
15253
15254 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15255
15256         * pa.c (output_call): Relocate non-jump insns in the delay slot of
15257         long absolute calls when generating PA 2.0 code.
15258
15259 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
15260
15261         PR rtl-optimization/38583
15262         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15263
15264         * params.def (ira-max-conflict-table-size): New.
15265
15266         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
15267
15268         * ira.h (ira_conflicts_p): New external definition.
15269
15270         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15271         table.  Report this.  Return result of building.
15272         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
15273         building conflict table.
15274
15275         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
15276         (ira_color): Use ira_conflicts_p.
15277
15278         * global.c: Include ira.h.
15279         (pseudo_for_reload_consideration_p, build_insn_chain): Use
15280         ira_conflicts_p.
15281
15282         * Makefile.in (global.o): Add ira.h.
15283
15284         * ira-build.c (mark_all_loops_for_removal,
15285         propagate_some_info_from_allocno): New.
15286         (remove_unnecessary_allocnos): Call
15287         propagate_some_info_from_allocno.
15288         (remove_low_level_allocnos): New.
15289         (remove_unnecessary_regions): Add parameter.  Call
15290         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
15291         parameter to remove_unnecessary_regions.
15292         (ira_build): Remove all regions but root if the conflict table was
15293         not built.  Update conflict hard regs for allocnos crossing calls.
15294
15295         * ira.c (ira_conflicts_p): New global.
15296         (ira): Define and use ira_conflicts_p.
15297
15298         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15299         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
15300         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
15301
15302 2009-01-06  Ben Elliston  <bje@au.ibm.com>
15303
15304         * gengtype-lex.l (YY_NO_INPUT): Define.
15305
15306 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15307
15308         PR c/34911
15309         * c-common.c (handle_vector_size_attribute): Also reject
15310         BOOLEAN_TYPE types.
15311
15312 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
15313
15314         PR tree-optimization/38492
15315         * graphite.c (rename_map_elt, debug_rename_elt,
15316         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15317         rename_map_elt_info, eq_rename_map_elts,
15318         get_new_name_from_old_name, bb_in_sese_p): Moved around.
15319         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15320         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15321         (sese_build_livein_liveouts): New.
15322         (new_sese, free_sese): New.
15323         (new_scop): Call new_sese.
15324         (free_scop): Call free_sese.
15325         (rename_variables_from_edge, rename_phis_end_scop): Removed.
15326         (register_old_new_names): Renamed register_old_and_new_names.
15327         (register_scop_liveout_renames, add_loop_exit_phis,
15328         insert_loop_close_phis, struct igp,
15329         default_liveout_before_guard, add_guard_exit_phis,
15330         insert_guard_phis, copy_renames): New.
15331         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15332         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15333         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15334         (scop_adjust_phis_for_liveouts): New.
15335         (gloog): Call scop_adjust_phis_for_liveouts.
15336
15337         * graphite.h (struct sese): Documented.  Added fields liveout,
15338         num_ver and livein.
15339         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15340         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15341         (struct scop): Added field liveout_renames.
15342         (SCOP_LIVEOUT_RENAMES): New.
15343
15344 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
15345
15346         PR tree-optimization/38510
15347         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15348         (translate_clast): Call recompute_all_dominators before
15349         graphite_verify.
15350         (gloog): Call recompute_all_dominators before graphite_verify.
15351
15352 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
15353             Jan Sjodin  <jan.sjodin@amd.com>
15354
15355         PR tree-optimization/38500
15356         * graphite.c (create_sese_edges): Call fix_loop_structure after
15357         splitting blocks.
15358
15359 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
15360
15361         * config.gcc: Add m32r*-*-rtems*.
15362         * config/m32r/rtems.h: New file.
15363
15364 2009-01-05  Ben Elliston  <bje@au.ibm.com>
15365
15366         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15367         (.po.pox): Likewise.
15368         (po/gcc.pot): Likewise.
15369
15370 2009-01-04  David S. Miller  <davem@davemloft.net>
15371
15372         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15373         (STARTING_FRAME_OFFSET): Always set to zero.
15374
15375 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
15376
15377         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15378         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15379         fixed-point types, and vectors of the same.
15380
15381 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
15382
15383         * config/mips/sync.md (*mb_barrier): Rename to...
15384         (*memory_barrier): ...this.
15385
15386 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
15387
15388         * doc/extend.texi (Function Attributes): Move @cindex after @item
15389         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
15390         and put in alphabetical order. Fix 'target' name and put in order.
15391         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15392         typos.
15393
15394 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
15395
15396         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15397         (memory_barrier): Expand as unspec instead of unspec_volatile.
15398         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15399         (*memory_barrier): Define as unspec instead of unspec_volatile.
15400         Use (match_dup 0) as input operand.
15401
15402         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15403         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15404         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
15405         scratch register.  Remove operand 1.
15406         (*stbar): Define as unspec instead of unspec_volatile.
15407         Use (match_dup 0) as input operand, remove (const_int 8).
15408         (*membar): Define as unspec instead of unspec_volatile.
15409         Use (match_dup 0) as input operand, remove input operand 2.
15410
15411         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15412         (memory_barrier): Expand as unspec instead of unspec_volatile.
15413         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15414         (*memory_barrier): Define as unspec instead of unspec_volatile.
15415         Use (match_dup 0) as input operand.
15416
15417         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15418         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15419         Set volatile flag on operand 0.
15420         (*memory_barrier): New insn pattern.
15421
15422         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15423         insn operands.
15424         (*memory_barrier): Use (match_dup 0) as input operand.
15425
15426         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15427         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15428         Set volatile flag on operand 0.
15429         (*mb_internal): New insn pattern.
15430
15431         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15432
15433 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
15434
15435         PR middle-end/38586
15436         * function.c (struct temp_slot): Move to the section of the file
15437         that deals with temp slots.  Remove field 'address'.
15438         (temp_slot_address_table): New hash table of address -> temp slot.
15439         (struct temp_slot_address_entry): New struct, items for the table.
15440         (temp_slot_address_compute_hash, temp_slot_address_hash,
15441         temp_slot_address_eq, insert_temp_slot_address): Support functions
15442         for the new table.
15443         (find_temp_slot_from_address): Rewrite to use the new hash table.
15444         (remove_unused_temp_slot_addresses): Remove addresses of temp
15445         slots that have been made available.
15446         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15447         worker function for remove_unused_temp_slot_addresses.
15448         (assign_stack_temp_for_type): Don't clear the temp slot address list.
15449         Add the temp slot address to the address -> temp slot map.
15450         (update_temp_slot_address): Update via insert_temp_slot_address.
15451         (free_temp_slots): Call remove_unused_temp_slot_addresses.
15452         (pop_temp_slots): Likewise.
15453         (init_temp_slots): Allocate the address -> temp slot map, or empty
15454         the map if it is already allocated.
15455         (prepare_function_start): Initialize temp slot processing.
15456
15457 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
15458
15459         PR middle-end/38584
15460         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15461         Calculate the size of all stack vars assuming no packing of stack
15462         vars will happen, replacing a quadratic algorithm with a linear one.
15463
15464 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
15465
15466         PR target/38707
15467         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15468         can't be used.
15469
15470 2009-01-03  Diego Novillo  <dnovillo@google.com>
15471
15472         * doc/contrib.texi: Update contributions.
15473
15474 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
15475
15476         PR c++/38705
15477         * builtins.c (fold_builtin_memory_op): Give up if either operand
15478         is volatile.  Set srctype or desttype to non-qualified version
15479         of the other type.
15480
15481         PR c/38700
15482         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15483         and FUNCTION_DECLs.
15484
15485 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
15486
15487         PR rtl-optimization/35805
15488         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15489         problem if fast dce is able to remove any instructions.
15490         * dce.c (dce_process_block): Fix dump message.
15491
15492 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
15493
15494         PR 33649
15495         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15496
15497 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
15498
15499         PR middle-end/38690
15500         * tree-flow.h (op_code_prio, op_prio): New prototypes.
15501         * tree-pretty-print.c (op_code_prio): New function.
15502         (op_prio): No longer static.  Use op_code_prio.
15503         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15504         Use op_prio and op_code_prio to determine if () should be
15505         printed around operand(s) or not.
15506
15507         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15508         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15509         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15510         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15511         pp_character instead of pp_string for single letter printing.
15512
15513 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
15514
15515         * doc/extend.texi: Fix '#pragma GCC option' typo.
15516
15517 2009-01-02  Richard Guenther  <rguenther@suse.de>
15518
15519         * doc/install.texi (--enable-checking): Mention different
15520         default for stage1.
15521         (--enable-stage1-checking): Document.
15522
15523 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
15524
15525         PR middle-end/30142
15526         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
15527         case to be an error.
15528
15529 2009-01-02  Ben Elliston  <bje@au.ibm.com>
15530
15531         * config/fp-bit.h (pack_d): Constify argument.
15532         * config/fp-bit.c (makenan): Constify return type. Remove casts.
15533         (isnan): Constify argument.
15534         (isinf): Likewise.
15535         (iszero): Likewise.
15536         (pack_d): Likewise.
15537         (_fpadd_parts): Constify return type.
15538         (_fpmul_parts): Likewise.
15539         (_fpdiv_parts): Likewise.
15540
15541 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
15542
15543         PR c/36489
15544         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
15545         warn about overwriting initializer with side-effects or
15546         -Woverride-init if !IMPLICIT.
15547         (output_init_element): Likewise.  Pass IMPLICIT down to
15548         add_pending_init.
15549         (process_init_element): Add IMPLICIT argument.  Pass it down
15550         to output_init_element.
15551         (push_init_element, pop_init_level, set_designator): Adjust
15552         process_init_element callers.
15553         (set_nonincremental_init, set_nonincremental_init_from_string):
15554         Adjust add_pending_init callers.
15555         (output_pending_init_elements): Adjust output_init_element callers.
15556         * c-tree.h (process_init_element): Adjust prototype.
15557         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15558         process_init_element callers.
15559
15560 \f
15561 Copyright (C) 2009 Free Software Foundation, Inc.
15562
15563 Copying and distribution of this file, with or without modification,
15564 are permitted in any medium without royalty provided the copyright
15565 notice and this notice are preserved.